Обо мне
Привет! Меня зовут Лис и это мой блог. Здесь я могу ныть и страдать, писать про код и обо всем.
Календарь записей
Май 2024
ПнВтСрЧтПтСбВс
12345
6789101112
13141516171819
20212223242526
2728293031
Теги
Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet

30 янв 2023 Двадцатая попытка создания процессора 8088

Не секрет, что мне нравится писать процессоры снова и снова. Даже я принял это как данность, что процесс написания процессора (какой ироничный каламбур!) мне просто нравится. Несмотря на это, необходима, все равно, цель, иначе процесс то процессом, а что в итоге делаю, сам не пойму, неизвестно. Недавно выложил на ютубе 3.5 часа видео, с того момента записал еще 1 час работы, в котором в целом, прилично было сделано инструкции, но они все так сказать, несложные, однотипные. Например, инструкции mov r, imm или условный короткий переход, все эти инструкции не особо сложные, потому я справился с ними суммарно за 35 минут, а остальные 25 минут делал встраивание процессора в девборду Марсохода2, там где Циклон 3.
Теперь к самому главному. Как ранее я говорил, цель моего всего действия в том, чтобы, когда я сделаю процессор, запихнуть его в какой-нибудь ретро-корпус и запускать очень простые программы. Мне конечно, несколько жалко, что нет диска, чтобы сохраняться, но ничего, не страшно, для этой цели вообще-то, у меня будет процессор AVR. Так вот, что я буду запускать на процессоре? Например, создам экран загрузки BIOS, для сохранения ощущения аутентичности. Второе, что сделаю, это сам Биос, с разными опциями, которые правда, сохранять нельзя... да, вот все упирается в сохранение. Потом я сделаю микробейсик, где можно будет писать и выполнять очень простые программы. За основу возьму 512 байтный бейсик с бутсектора.
Еще у меня есть в планах делать микропрограммы и даже микроигры. Единственное только, что они не поместятся в 32кб и надо диск... да что же такое, везде диск нужен! Эх, видимо, без диска компьютер не может никогда считаться полноценным, поэтому какой-то диск, но прицепить придется. Мне только не хочется делать проводками, а как-то по-хорошему сделать надо, все-таки.
Снимок экрана от 2023-01-30 09-55-04.png
На шилде расширения есть 2 usb разъема, которые я могу применить не совсем так как надо, а прицепить туда sd-карту. Так что без диска никак вообще. Надо думать как его сделать правильно. Конечно, на шилде еще есть место для дополнительных пинов, их тоже можно использовать. Надо проверить, надо все проверить и сделать — без диска никак, как я сейчас только что выяснил.
Метки: 8088

28 янв 2023 Почти три с половиной часа кодинга

Не буду я делать по 8 часов видосы, сделал пока что 3 с половиной часа, и вот что я успел сделать за это время:
instr.png
Моя любимая табличка с выполненными опкодами. Для 8088 интересная ситуация получается, там некоторые опкоды работают не так, как на обычном 86-м процессоре, например, все 60-6F отведены под алиасы. Так как я решил что не буду отклоняться именно от 8088, то там будут алиасы. Более новые программы уже не запустить на этом процессоре... А я и не собираюсь, вообще-то. Максимум HELLO WORLD будет на нем запущен, а для этого даже простейшего процессора хватит.
Проще говоря, хочу создавать простые программы для процессора этого, например, те же сортировки. Ресурсов Циклона 3 хватит. Там много не надо, 38 Кб для программ и данных, 8 Кб для видеопамяти, в итоге и получается 46 Кб. Программы для этого процессора будут предельно простые, вообще. Это важно, прямо вообще важно, потому что когда делаешь такие вещи, хочется сделать что-то большее, чем вывод HELLO WORLD на экране, а что-то такое, сверх-космическое.
Как и обычно, после того как сделаю процессор (если сделаю), то на нём захочется запустить или создать операционную систему. Вот этого делать не надо! Все потому, что для того, чтобы запустить ОС, нужен диск, которого я подключить не могу к Марсоходу. Даже если бы и мог, толку от нее ноль.
Микро-операционная система может быть только для того, чтобы запускать разные мелкие программки из памяти. Например, можно сделать интерпретатор бейсика, который будет запускать заранее загруженные программы. Все должно быть максимально, предельно просто. Вот в чем суть всего того, что я хочу сделать и всегда делал.
Простота программ должна быть обязательно.
Метки: Процессор, 8088

27 янв 2023 Создание 8088 процессора под видеозапись

Короче, вот что начал я делать, стал писать процессор на верилоге, но не просто так, а записывая абсолютно все. Процессор с нуля. Единственное что могу смотреть — это доки и какой-нибудь си-код, например, из PCem эмулятора, ну и на сайте у себя тоже. Копипаста запрещается, все должно быть написано руками без копипасты из своих других процессоров. Делаю это для того, чтобы оценить то время, за которое реально создам процессор с нуля. И это должен быть процессор 8088, чтобы он вмещался также в Циклон 3 для Марсохода2.
I8088.jpg
Все отлично знают, что у меня просто мания создавать процессоры, особенно архитектуры 86-го. Много создавал уже разных эмуляторов, и мне очень хочется именно зафиксировать на видео. Оно получится видимо, больше чем 8 часов, но это нормально. Все эти видео специально не буду ускорять, прямо так склейку сделаю и выложу на ютуб себе, сохраню как есть. Ну, может быть, музыку наложу, чтобы совсем не скучно было. Никто смотреть не будет все равно это дело.
На данный момент я работал над процессором 2 часа и 5 минут и за это время смог сделать, но не отладить:
  • Чтение опкода и префикса
  • Сделал АЛУ на 8 операции
  • Чтение байта modrm и считывание опкода из памяти и регистров
  • Запись в память или регистр
На самом деле, это довольно значительно, но поскольку я уже ранее все это делал, то не так сложно. Отладки не выполнял, просто пока что написал по памяти. Посмотрим потом, как это работать будет.
Далее надо сделать исполнение инструкции, и вот тут самая большая проблема. Инструкции выполняются минимум за 2Т, но я принципиально решил, что не буду ничего ускорять. Процессор 8088 и так медленный был и выполнялся на низких частотах (от 5 до 16 Мгц), так что я ровным счетом ничего не потеряю от того, что запущу на 25 Мгц.
Метки: Процессор, 8088
<< Ранние записи | Поздние записи >>