С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ааа.. Ты про это ПЗУ. Ладно, займусь, наверное. А что обычно в него прошивается?
На 112-той странице только схема, в текст я особо не вчитывался, а зря. Там сказано, что описание п/п загрузки есть в главе 9. Сейчас вот посмотрел, и действительно, есть описание на стр. 88
А я методом тыка делал ПЗУ. Вобщем, для примера, засунул в ПЗУ две имеющиеся у меня игры. Качай новую версию
Если будешь делать своё, имей ввиду, файл должен быть ровно 64Кб. Неиспользованный остаток забивается байтом 0FFh.
вау, первые игры для ириши
b2m, ты просто волшебник!
Поясни, пожалуйста, смысл этой строки из конфига.
image[0].file="Irisha\disk.cpm"
Или это на будущее?
А в этих точно нет ошибок?
map[1][0000-FFFF]=mem1[0000]
map[3][0000-FFFF]=mem1[0000]
Может вместо FFFF должно быть 3FFF?
Разыскиваю всё, что связано с ПЭВМ "Ириша".
Образ по умолчанию. Я сделал себе для экспериментов пустой образ - файл длинной 720Кб забитый байтом 0E5h. Это просто его имя
В принципе, всё работает, но я другого и не ожидал. Эмуляция ВГ93 оттачивалась не на одном компьютере
Действительно, ошибка. Не заметил, потому что всё работает (т.к. последующие строчки задали области как надо). Можешь сам исправить
b2m, специально для тебя.
Загрузчик ОС для МСИ.
Бинарник и листинг загрузчика добавил в пост 280.Код:RAM:A000 ; --------------------------------------------------------------------------- RAM:A000 31 00 A0 lxi sp, 0A000h RAM:A003 0E 2E mvi c, 2Eh ; '.' RAM:A005 CD 00 20 call conout RAM:A008 21 00 A4 lxi h, 0A400h RAM:A00B E5 push h RAM:A00C 01 04 01 lxi b, 0104h RAM:A00F RAM:A00F loc_A00F: ; CODE XREF: RAM:A03Bj RAM:A00F E1 pop h RAM:A010 E5 push h RAM:A011 RAM:A011 loc_A011: ; CODE XREF: RAM:A024j RAM:A011 ; RAM:A04Dj ... RAM:A011 3E 27 mvi a, 27h ; 00100111b - чтение сектора с дискеты RAM:A013 D3 50 out 50h RAM:A015 CD 70 A0 call sub_A070 ; ожидание ТРБ RAM:A018 79 mov a, c ; № номер сектора (04) RAM:A019 D3 51 out 51h RAM:A01B CD 70 A0 call sub_A070 ; ожидание ТРБ RAM:A01E 78 mov a, b RAM:A01F D3 51 out 51h ; № дорожки (01) RAM:A021 CD 5C A0 call sub_A05C ; ОШИБКА? RAM:A024 DA 11 A0 jc loc_A011 ; перечитать сектор. RAM:A027 16 80 mvi d, 80h RAM:A029 3E 03 mvi a, 3 ; 00000011b - разгрузка буффера RAM:A02B D3 50 out 50h RAM:A02D RAM:A02D loc_A02D: ; CODE XREF: RAM:A035j RAM:A02D CD 70 A0 call sub_A070 ; ожидание ТРБ RAM:A030 DB 51 in 51h RAM:A032 77 mov m, a RAM:A033 23 inx h RAM:A034 15 dcr d RAM:A035 C2 2D A0 jnz loc_A02D RAM:A038 CD 5C A0 call sub_A05C ; ОШИБКА? RAM:A03B DA 0F A0 jc loc_A00F ; перечитать с начала. RAM:A03E 79 mov a, c ; вычисляем новый сектор RAM:A03F C6 03 adi 3 ; 4,7,10,13,16,19,22,25, RAM:A041 FE 1B cpi 1Bh ; 2,5,8,11,14,17,20,23,26, RAM:A043 DA 48 A0 jc loc_A048 ; 3,6,9,12,15,18,21,24. RAM:A046 D6 1A sui 1Ah ; 1,4,7,.....,24. RAM:A048 RAM:A048 loc_A048: ; CODE XREF: RAM:A043j RAM:A048 D1 pop d RAM:A049 E5 push h RAM:A04A 4F mov c, a RAM:A04B FE 01 cpi 1 RAM:A04D C2 11 A0 jnz loc_A011 ; Новый сектор 1? нет, читаем ту же дорожку. RAM:A050 05 dcr b ; да, вычисляем новую дорожку (00). RAM:A051 CA 11 A0 jz loc_A011 ; Читаем следующую дорожку (00). RAM:A054 0E 21 mvi c, 21h ; '!' ; Последняя прочитана, RAM:A056 CD 00 20 call conout ; выводим "!", RAM:A059 C3 00 BA jmp boot ; запускаем ОС. RAM:A05C RAM:A05C ; --------------- S U B R O U T I N E --------------------------------------- RAM:A05C RAM:A05C RAM:A05C sub_A05C: ; CODE XREF: RAM:A021p RAM:A05C ; RAM:A038p ... RAM:A05C DB 50 in 50h RAM:A05E 17 ral RAM:A05F 17 ral RAM:A060 17 ral RAM:A061 17 ral RAM:A062 D2 5C A0 jnc sub_A05C RAM:A065 1F rar RAM:A066 D0 rnc RAM:A067 C5 push b RAM:A068 0E 3F mvi c, 3Fh ; '?' RAM:A06A CD 00 20 call conout RAM:A06D C1 pop b RAM:A06E 37 stc RAM:A06F C9 ret RAM:A06F ; End of function sub_A05C RAM:A06F RAM:A070 RAM:A070 ; --------------- S U B R O U T I N E --------------------------------------- RAM:A070 RAM:A070 RAM:A070 sub_A070: ; CODE XREF: RAM:A015p RAM:A070 ; RAM:A01Bp ... RAM:A070 DB 50 in 50h RAM:A072 17 ral RAM:A073 DA 70 A0 jc sub_A070 RAM:A076 C9 ret RAM:A076 ; End of function sub_A070 RAM:A076 RAM:A076 ; ---------------------------------------------------------------------------
Можно прикручивать МСИ. Вместо ОС, для проверки, в образ диска пока можно внедрить какую либо программу, ту же игрушку.
Позже будет и система.
Последний раз редактировалось KokaF77; 15.08.2011 в 00:43. Причина: Добавил комментарии. Исправил...
Разыскиваю всё, что связано с ПЭВМ "Ириша".
Эту тему просматривают: 8 (пользователей: 0 , гостей: 8)