скандалист и другозавр, Dizzy-XX — жуткая поделка, так игры не пишут.
У меня неприятность с реалом случилась. Запустил sna на реале, появился странный баг, который в определённом месте вешал игру. Ни один эмулятор мне этого баг не повторяет, а я случайно спалил CF карту... и возможно DivIDE, хотя он запускается вроде. Но CF карта даже на ПЦ перестала определяться...
Была большая надежда на zxmak2 и EightyOne но увы всё чисто :( Надо искать cf карту.
Суть проблемы: Тырканье регистра I во время прерывания. Биты 7 и 6 зарезервированы для флагов.
И подпрограмма делает финт - инвертирует бит 3, если установлен бит 6. Потом процедуры графики, потом обратно инвертируем оба бита 6 и 3, при условии что 6 был установлен.
; процедуры графики определяют буфер какого экрана восстановить по 3-му биту.Код:LD A,I
BIT 6,A
RLA
JR Z,$+7
RRA
XOR %00001000 ; Cf=0
LD I,A
CALL C,BUBBLES_LIB.RND_BUBBLES ; Генератор пузырьков
Код:LD A,I
BIT 6,A
JR Z,$+9
XOR %01001000 ; Обратная инверсия бита текущего экрана и сброс 6-го бита
LD (PAGE+1),A
LD I,A

