...
...
Последний раз редактировалось Viktor2312; 01.02.2016 в 16:59.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Кое что уже делали
вот ссылка
я в ковырял там большой кусок, особенно с conout
Viktor2312, ты меня извини..., но это больше похоже на изучение ассемблера для ВМ80.
Посмотри 2-ой пост в этой теме -не пожалеешь, там esl давал ссылку на свои изыскания, он проделал очень большую работу. Практически всё разложено по полочкам: видна структура BOOTM и CONOUT.
В таблице 9.1 есть несколько ошибок, перепутаны адреса подпрограмм: "CONIN", "CONSTAT", ".AROMR".
Посмотри аттач к этому посту.
Разыскиваю всё, что связано с ПЭВМ "Ириша".
Viktor2312, не воспринимай так близко к сердцу, помочь хочется.
Посмотри это http://zx.pk.ru/attachment.php?attac...4&d=1295181617, esl выкладывал. Там листинги (ИДА не нужна), правда мнемоника Z80. Если подождёшь до завтра, конвертну в формат ВМ80 (софт на другом компьютере, не сподручно). Могу выложить то что сделал esl, в таком же варианте, думаю он не будет против .
Очень хороший вариант для изучения это эмулятор b2m.
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/files/emu.rar
В нём есть встроенный отладчик, очень хороший, можно всё смотреть как в живую. И память и регистры процессора. Попробуй.
---------- Post added at 01:16 ---------- Previous post was at 01:14 ----------
Да. В тех листингах о которых я упомянул это всё видно.
Последний раз редактировалось KokaF77; 15.09.2011 в 01:22.
Разыскиваю всё, что связано с ПЭВМ "Ириша".
Вот именно, попробуй. А чтобы облегчить тебе задачу, расскажу, как я бы делал:
1. Запускаем эмулятор, выбираем "Иришу".
2. В меню выбираем View/Start debugger
3. Перемещаемся на адрес 0000 (нажать Ctrl+G, ввести в верхнее поле 0)
4. Ставим точку останова (нажать F9)
5. Запускаем прерванную эмуляции (нажать F5)
6. Нажать на тулбаре красную кнопку "Reset" (или нажать Ctrl+Break), снова появится отладчик, PC будет 0000, остальные регистры не изменились, но можно перейти туда клавишей Tab и установить нули. Таким образом получим ситуацию как после включения.
7. Нажимая клавишу F8 смотрим результат исполнения каждой команды.
В принципе, вместо пунктов 3-6 можно просто установить все регистры в ноль, включая и PC, получится то-же самое.
И никаких справочников не надо
В мнемонике ВМ80:
В мнемонике Z80:Код:ROM:006F _LDIR: ROM:006F ROM:006F 7E mov a, m ROM:0070 12 stax d ROM:0071 23 inx h ROM:0072 13 inx d ROM:0073 0B dcx b ROM:0074 78 mov a, b ROM:0075 B1 ora c ROM:0076 C2 6F 00 jnz _LDIR ROM:0079 C9 ret
Эта подпрограммка аналог команды пересылки LDIR микропроцессора Z80: загрузка с инкрементом до BC=0.Код:ROM:006F _LDIR: ROM:006F ROM:006F 7E ld a, (hl) ROM:0070 12 ld (de), a ROM:0071 23 inc hl ROM:0072 13 inc de ROM:0073 0B dec bc ROM:0074 78 ld a, b ROM:0075 B1 or c ROM:0076 C2 6F 00 jp nz, _LDIR ROM:0079 C9 ret
У ВМ80 её нет, поэтому есть эта подпрограмма.Действие команды подобно пересылке блока данных при ПДП. Как для
адресации, так и для счётчика байтов отведено по 16 бит, т.о. могут обрабатываться блоки любой
длины и в любом месте памяти. Блоки данных могут также перекрываться. При HL=DE команда
теряет смысл т.к. источник и приёмник идентичны. Следует обратить внимание, что при
обработке команды сначала пересылаются данные, только затем декрементируется ВС, и на
основании этого решается вопрос о цикличности команды, выполнять дальнейшую пересылку
данных либо прекратить команду. После выполнения команды BC=0.
Я так понял ты об этом фрагменте:
С адреса FF74h располагается "область сохранения текущего режима ASRAR" (16 байт) программы CONOUT. Здесь заносятся в эту область начальные значения, при инициализации системы. В HL загружаем адрес откуда переслать, в DE - куда, в BC - сколько байт.Код:ROM:024B 21 97 00 lxi h, 0097h ROM:024E 01 10 00 lxi b, 10h ROM:0251 11 74 FF lxi d, FF74h ROM:0254 CD 6F 00 call _LDIR
Так и есть. Только это верно при включенной нулевой карте памяти.
По поводу BOOTM: для неё отведён диапазон адресов в ПЗУ 0000-1FFFh.
Опять же это верно для нулевой карты памяти. Она включается при старте компьютера, а так же когда необходимо обратиться к подпрограммам находящимся в ПЗУ модуля процессора. При включении других карт памяти, в этой области располагается ОЗУ. При выборе программы "МОНИТОР" в стартовом меню, включается первая карта. А в ней по адресам ниже 4000h располагается ОЗУ.
Ниже пара карт распределения памяти из МПСиС.
Эта попроще.
Её достаточно для запуска ПЭВМ в минимальной конфигурации. А так же для работы с МСИ.
Эта посложнее.
Именно эта карта необходима для взаимодействия МП с КНГМД.PC2,3
00 - ROM,RAM1,RAM2,VRAM
01 - RAM3,RAM1,RAM2,VRAM
10 - RAM3,RAM4,RAM2,RAM5
11 - RAM3,RAM6,RAM2,RAM7
Последний раз редактировалось KokaF77; 15.09.2011 в 17:58.
Разыскиваю всё, что связано с ПЭВМ "Ириша".
Последний раз редактировалось Mick; 15.10.2011 в 12:46.
А какими командами (или Esc-последовательностями) задаётся режим экрана для CONOUT? Через порты переключить несложно, но драйвер вывода об этом ведь не узнает.
В двух словах: это такая последовательность символов, начинается кодом 1Bh (код клавиши Esc), затем буква, означающая для драйвера консоли определённую функцию, ну и параметры могут быть, заканчивающиеся иногда символом ]. Есть стандарты, VT52, VT100, но могут быть и расширения, например для управления режимом экрана.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)