-
Ошибся: нужно не 6, а аж 7 байт (out(c),a двухбайтный). И писать в порт значение не 48(30h), а 16(10h, 0001 0 000b). Чтоб при запуске этой прошивки на 128к-машине не происходило переключения ПЗУ на 128к.
10h - это нулевая страница RAM , нулевой экран, единичный ROM (что соответствует выбору ROM48, мы же уже в нем - вот и оставляем дальше) и нулевой бит блокировки конфигурации.
Код:
01fd7f ld bc,07ffdh
3e10 ld a,10h
ed79 out (c),a
По адресу 04AA находится, возможно, какой-то мусор, но трогать страшновато без его понимания
Вот область 386E-3CFF мне нравится больше, хотя в пентагоновской прошивке в ней что-то уже есть в самом начале, поэтому лучше в конце, где сплошные FF.
"Врезку" проще сделать прям в самом начале.
Было:
Код:
0000 f3 di
0001 af xor a
0002 11ffff ld de,0ffffh
0005 c3cb11 jp 11cbh
Стало:
Код:
0000 f3 di
0001 af xor a
0002 11ffff ld de,0ffffh
0005 c3e03c jp 3ce0h
[...]
3ce0 01fd7f ld bc,07ffdh
3ce3 3e10 ld a,10h
3ce5 ed79 out (c),a
3ce7 af xor a
3ce8 c3cb11 jp 11cbh
3ceb ff rst 38h
3cec ff rst 38h
[...]
Вроде вкрячивается в имеющиеся у меня прошивки ROM48 стандартную и пентагоновскую.
Проверьте, pls, кто с опытом в этом деле.
PS. я тут немножко попортил свой стендовый Ленинград, поэтому сам прошью и проверю попозже, когда дойдут руки его вернуть к жизни.
-
По адресу 04aa 24 байта подпрограммы для zx81, она по ошибке включена в ПЗУ Спектрума и никак не используется.
-
Патч в адресах 3ce0h вполне работает, сброс происходит нормально, экран включается правильный. один только минус: перестает работать удобная точка входа в трдос 15555 (ее просто удобно набирать и она до 15616 должна докатиться по nop-ам).