Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet
30 янв 2023
Двадцатая попытка создания процессора 8088
Не секрет, что мне нравится писать процессоры снова и снова. Даже я принял это как данность, что процесс написания процессора (какой ироничный каламбур!) мне просто нравится. Несмотря на это, необходима, все равно, цель, иначе процесс то процессом, а что в итоге делаю, сам не пойму, неизвестно. Недавно выложил на ютубе 3.5 часа видео, с того момента записал еще 1 час работы, в котором в целом, прилично было сделано инструкции, но они все так сказать, несложные, однотипные. Например, инструкции
Теперь к самому главному. Как ранее я говорил, цель моего всего действия в том, чтобы, когда я сделаю процессор, запихнуть его в какой-нибудь ретро-корпус и запускать очень простые программы. Мне конечно, несколько жалко, что нет диска, чтобы сохраняться, но ничего, не страшно, для этой цели вообще-то, у меня будет процессор AVR. Так вот, что я буду запускать на процессоре? Например, создам экран загрузки BIOS, для сохранения ощущения аутентичности. Второе, что сделаю, это сам Биос, с разными опциями, которые правда, сохранять нельзя... да, вот все упирается в сохранение. Потом я сделаю микробейсик, где можно будет писать и выполнять очень простые программы. За основу возьму 512 байтный бейсик с бутсектора.
Еще у меня есть в планах делать микропрограммы и даже микроигры. Единственное только, что они не поместятся в 32кб и надо диск... да что же такое, везде диск нужен! Эх, видимо, без диска компьютер не может никогда считаться полноценным, поэтому какой-то диск, но прицепить придется. Мне только не хочется делать проводками, а как-то по-хорошему сделать надо, все-таки.
На шилде расширения есть 2 usb разъема, которые я могу применить не совсем так как надо, а прицепить туда sd-карту. Так что без диска никак вообще. Надо думать как его сделать правильно. Конечно, на шилде еще есть место для дополнительных пинов, их тоже можно использовать. Надо проверить, надо все проверить и сделать — без диска никак, как я сейчас только что выяснил.
mov r, imm
или условный короткий переход, все эти инструкции не особо сложные, потому я справился с ними суммарно за 35 минут, а остальные 25 минут делал встраивание процессора в девборду Марсохода2, там где Циклон 3.Теперь к самому главному. Как ранее я говорил, цель моего всего действия в том, чтобы, когда я сделаю процессор, запихнуть его в какой-нибудь ретро-корпус и запускать очень простые программы. Мне конечно, несколько жалко, что нет диска, чтобы сохраняться, но ничего, не страшно, для этой цели вообще-то, у меня будет процессор AVR. Так вот, что я буду запускать на процессоре? Например, создам экран загрузки BIOS, для сохранения ощущения аутентичности. Второе, что сделаю, это сам Биос, с разными опциями, которые правда, сохранять нельзя... да, вот все упирается в сохранение. Потом я сделаю микробейсик, где можно будет писать и выполнять очень простые программы. За основу возьму 512 байтный бейсик с бутсектора.
Еще у меня есть в планах делать микропрограммы и даже микроигры. Единственное только, что они не поместятся в 32кб и надо диск... да что же такое, везде диск нужен! Эх, видимо, без диска компьютер не может никогда считаться полноценным, поэтому какой-то диск, но прицепить придется. Мне только не хочется делать проводками, а как-то по-хорошему сделать надо, все-таки.
На шилде расширения есть 2 usb разъема, которые я могу применить не совсем так как надо, а прицепить туда sd-карту. Так что без диска никак вообще. Надо думать как его сделать правильно. Конечно, на шилде еще есть место для дополнительных пинов, их тоже можно использовать. Надо проверить, надо все проверить и сделать — без диска никак, как я сейчас только что выяснил.
28 янв 2023
Почти три с половиной часа кодинга
Не буду я делать по 8 часов видосы, сделал пока что 3 с половиной часа, и вот что я успел сделать за это время:
Моя любимая табличка с выполненными опкодами. Для 8088 интересная ситуация получается, там некоторые опкоды работают не так, как на обычном 86-м процессоре, например, все
Проще говоря, хочу создавать простые программы для процессора этого, например, те же сортировки. Ресурсов Циклона 3 хватит. Там много не надо, 38 Кб для программ и данных, 8 Кб для видеопамяти, в итоге и получается 46 Кб. Программы для этого процессора будут предельно простые, вообще. Это важно, прямо вообще важно, потому что когда делаешь такие вещи, хочется сделать что-то большее, чем вывод
Как и обычно, после того как сделаю процессор (если сделаю), то на нём захочется запустить или создать операционную систему. Вот этого делать не надо! Все потому, что для того, чтобы запустить ОС, нужен диск, которого я подключить не могу к Марсоходу. Даже если бы и мог, толку от нее ноль.
Микро-операционная система может быть только для того, чтобы запускать разные мелкие программки из памяти. Например, можно сделать интерпретатор бейсика, который будет запускать заранее загруженные программы. Все должно быть максимально, предельно просто. Вот в чем суть всего того, что я хочу сделать и всегда делал.
Простота программ должна быть обязательно.
Моя любимая табличка с выполненными опкодами. Для 8088 интересная ситуация получается, там некоторые опкоды работают не так, как на обычном 86-м процессоре, например, все
60-6F
отведены под алиасы. Так как я решил что не буду отклоняться именно от 8088, то там будут алиасы. Более новые программы уже не запустить на этом процессоре... А я и не собираюсь, вообще-то. Максимум HELLO WORLD
будет на нем запущен, а для этого даже простейшего процессора хватит.Проще говоря, хочу создавать простые программы для процессора этого, например, те же сортировки. Ресурсов Циклона 3 хватит. Там много не надо, 38 Кб для программ и данных, 8 Кб для видеопамяти, в итоге и получается 46 Кб. Программы для этого процессора будут предельно простые, вообще. Это важно, прямо вообще важно, потому что когда делаешь такие вещи, хочется сделать что-то большее, чем вывод
HELLO WORLD
на экране, а что-то такое, сверх-космическое.Как и обычно, после того как сделаю процессор (если сделаю), то на нём захочется запустить или создать операционную систему. Вот этого делать не надо! Все потому, что для того, чтобы запустить ОС, нужен диск, которого я подключить не могу к Марсоходу. Даже если бы и мог, толку от нее ноль.
Микро-операционная система может быть только для того, чтобы запускать разные мелкие программки из памяти. Например, можно сделать интерпретатор бейсика, который будет запускать заранее загруженные программы. Все должно быть максимально, предельно просто. Вот в чем суть всего того, что я хочу сделать и всегда делал.
Простота программ должна быть обязательно.
27 янв 2023
Создание 8088 процессора под видеозапись
Короче, вот что начал я делать, стал писать процессор на верилоге, но не просто так, а записывая абсолютно все. Процессор с нуля. Единственное что могу смотреть — это доки и какой-нибудь си-код, например, из PCem эмулятора, ну и на сайте у себя тоже. Копипаста запрещается, все должно быть написано руками без копипасты из своих других процессоров. Делаю это для того, чтобы оценить то время, за которое реально создам процессор с нуля. И это должен быть процессор 8088, чтобы он вмещался также в Циклон 3 для Марсохода2.
Все отлично знают, что у меня просто мания создавать процессоры, особенно архитектуры 86-го. Много создавал уже разных эмуляторов, и мне очень хочется именно зафиксировать на видео. Оно получится видимо, больше чем 8 часов, но это нормально. Все эти видео специально не буду ускорять, прямо так склейку сделаю и выложу на ютуб себе, сохраню как есть. Ну, может быть, музыку наложу, чтобы совсем не скучно было. Никто смотреть не будет все равно это дело.
На данный момент я работал над процессором 2 часа и 5 минут и за это время смог сделать, но не отладить:
Далее надо сделать исполнение инструкции, и вот тут самая большая проблема. Инструкции выполняются минимум за 2Т, но я принципиально решил, что не буду ничего ускорять. Процессор 8088 и так медленный был и выполнялся на низких частотах (от 5 до 16 Мгц), так что я ровным счетом ничего не потеряю от того, что запущу на 25 Мгц.
Все отлично знают, что у меня просто мания создавать процессоры, особенно архитектуры 86-го. Много создавал уже разных эмуляторов, и мне очень хочется именно зафиксировать на видео. Оно получится видимо, больше чем 8 часов, но это нормально. Все эти видео специально не буду ускорять, прямо так склейку сделаю и выложу на ютуб себе, сохраню как есть. Ну, может быть, музыку наложу, чтобы совсем не скучно было. Никто смотреть не будет все равно это дело.
На данный момент я работал над процессором 2 часа и 5 минут и за это время смог сделать, но не отладить:
- Чтение опкода и префикса
- Сделал АЛУ на 8 операции
- Чтение байта modrm и считывание опкода из памяти и регистров
- Запись в память или регистр
Далее надо сделать исполнение инструкции, и вот тут самая большая проблема. Инструкции выполняются минимум за 2Т, но я принципиально решил, что не буду ничего ускорять. Процессор 8088 и так медленный был и выполнялся на низких частотах (от 5 до 16 Мгц), так что я ровным счетом ничего не потеряю от того, что запущу на 25 Мгц.
<< Ранние записи |
Поздние записи >>