С любовью к вам, 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. Причина: Добавил комментарии. Исправил...
Разыскиваю всё, что связано с ПЭВМ "Ириша".
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)