Arduino Nano 3.0 - эмулятор компьютера под управлением ОС CP/M

Тема в разделе "Глядите, что я сделал", создана пользователем FoxyLab, 23 мар 2017.

  1. DetSimen

    DetSimen Guest

    Нет. С 0x0000 по 0x00FF лежит таблица переходов
     
  2. Igor68

    Igor68 Гуру

    Это в PC, а на CP/M-80 0x000 - перезапуск/запуск системы а 0x005 вызов системных функций, потом какая-то служебка и вроде как стек. Потому как заполнение стека по декременту у I8080(КР580ВМ80А)
     
  3. FoxyLab

    FoxyLab Гик

    Вот карта первых 256 байт в CP/M:
    upload_2019-10-23_14-56-47.png

    SP программа обычно настраивает при запуске.
     

    Вложения:

    Igor68 нравится это.
  4. Igor68

    Igor68 Гуру

    Ну вот видите: Я НЕ ПРАВ.
     
  5. Igor68

    Igor68 Гуру

    Ещё есть и набор функций, вызываемых по CALL 5. Наверное не актуально сейчас... просто для некого сравнения.
     
    FoxyLab нравится это.
  6. Igor68

    Igor68 Гуру

    Кстати хотел уточнить. Имел ввиду не стек программ, что загрузятся, а самой CP/M-80 при загрузке/запуске. Т.е. для ОС.
     
    FoxyLab нравится это.
  7. FoxyLab

    FoxyLab Гик

    Ответ на этот вопрос - в исходном коде самой ОС:

    ;
    ;**************************************************************
    ;*
    ;*
    ;* C C P - C o n s o l e C o m m a n d P r o c e s s o r
    ;*
    ;**************************************************************
    ;*
    COMMAND LXI SP,CCPSTACK;setup stack area.

    CCPSTACK указывает вот куда (просто область в ОЗУ вблизи начала BDOS) ->

    ;
    ; ccp stack area.
    ;
    DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    CCPSTACK:EQU $ ;end of ccp stack area.
     
    Igor68 нравится это.
  8. FoxyLab

    FoxyLab Гик

    Винтаж как он есть - StarTrek на ЭЛТ ТВ:
    [​IMG]
     
    Последнее редактирование: 26 окт 2019
    Igor68 нравится это.
  9. parovoZZ

    parovoZZ Гуру

    Мы так скоро заново GSM телефон изобретем.
     
  10. Igor68

    Igor68 Гуру

    Да уже давно СНОВА изобрели... вот ардуина к примеру. Сколько восьмибитный мусолим и мусоли?! А разговор-то: "я к ардуине контроллер такой-то прикрутил". А со стороны выглядит так: "Глядите - я к четырём колёсам мерседес приделал! Круто!"
     
  11. FoxyLab

    FoxyLab Гик

    В области homebrew computers AVR чаще всего применяется как компаньон Z80/6502 или даже более экзотичного 6809 для управления периферией или как в Veronica в качестве видеокарты для компьютера 6502 (хотя ее создательница уже и перешла сейчас на более мощное поделие в качестве видеокарты). При изучении многих таких проектов, например, известной серии Гранта Сирла, мою перфекционисткую жабу пробуждало упоминание о том, что стандартным способом общения такого компьютера с внешним миром является последовательный порт. Наверно, это логично при использовании телетайпа, ну так где же его взять... А подключение к более мощному компьютеру - это как-то не тру. Поэтому в моем проекте авр-ка сама все делает - и 8080 эмулирует, и ОС загружает, и принимает данные с клавиатуры (посредством STM8, который, что логично, слабее ее) и выводит видеосигнал (при желании может и с телетайпом работать). В этом и есть уникальность этого проекта и мне интересно было реализовать все это, как и многим другим людям, которые just for fun творят в этой области.
     
    Igor68 нравится это.
  12. Igor68

    Igor68 Гуру

    А предыдущее моё сообщение вообще-то не в Ваш адрес.
     
  13. ZAZ-965

    ZAZ-965 Гуру

    @FoxyLab, шахматные программы запускать не пробовали?
     
  14. FoxyLab

    FoxyLab Гик

    Схема PS/2-UART преобразователя для подключения PS/2-клавиатуры:
    [​IMG]
    Дополнительные опции -
    страничный режим (блокировка прокрутки) — управление клавишей Scroll Lock с индикацией светодиодом;
    ввод русских букв в кодировке КОИ-8 — переключение языка комбинацией клавиш Alt-Shift с индикацией светодиодом;
    аппаратная перезагрузка сочетанием клавиш Ctrl-Alt-Del
     
    Igor68 нравится это.
  15. FoxyLab

    FoxyLab Гик

    Нет, из настольных игр - реверси.
     
  16. FoxyLab

    FoxyLab Гик

    Я преодолел ограничение физического разрешения видеовыхода моего "нанокомпьютера" (45 колонок) в стиле портативного микрокомпьютера Osborne 1 - используя два виртуальных экрана.
    Содержимое текущего виртуального экрана хранится в видеопамяти (ОЗУ микроконтроллера), а содержимое другого виртуального экрана - в основной памяти (I2C-чипах).
    Они расположены горизонтально, разрешение виртуального экрана - 40 колонок и 19 строк + 1 строка статуса:
    [​IMG]
    Таким образом, виртуальные экраны эмулируют физический экран с 80 колонками (Osborne эмулировал физический экран со 128 колонками посредством перекрывающихся виртуальных экранов шириной 56 колонок).
    Переключение режимов (физический экран/виртуальные экраны) осуществляется из программы-монитора.
    Переключение между виртуальными экранами осуществляется комбинацией клавиш CTRL-O.
    Пример:
    левый виртуальный экран
    [​IMG]
    правый виртуальный экран
    [​IMG]
     
    Igor68 нравится это.
  17. SergeiL

    SergeiL Оракул Модератор

    Не, CP/M прикольная, сам долго в ladder играл, с 7 дюймого диска, но время идет :)
     
    Последнее редактирование: 14 ноя 2019
  18. timon

    timon Гик

    А какой шрифт вы используете? 6*7рх? Хотите отправлю вам 8х8 в cp866 или 8*16 в Latin?
     
    FoxyLab нравится это.
  19. FoxyLab

    FoxyLab Гик

    Шрифт самописный, 4 на 8 (4 пиксела отводятся под символ целиком), пробелы между символами генерируются аппаратно, такая багофича :) Там есть свои ухищрения как то "монтажные" логические операции над четырьмя битами, выравнивание шрифта во флэше по границе 256 байт - все ради сокращения до минимума задержек при генерации пикселей:
    [​IMG]
    Поэтому другая ширина шрифта не подойдет, но спасибо за желание помочь!!!
     
    Последнее редактирование: 14 ноя 2019
    Igor68 нравится это.
  20. FoxyLab

    FoxyLab Гик

    It's challenge.
    Кто-то и релейные компьютеры мастерит, а кто-то - даже первобытные орудия :)