Приведённая процедура работает примерно 10000 тактов, в то время как луч доходит до первой линии экрана за 14336 тактов. Прибавьте к этому ещё процедуру опроса клавиатуры. Тем не менее процедура обеспечивает синхронизацию если первыми же командами выдавать знакоместо на экран после HALT. А вот оптимизированный вариант данной процедуры:
........LD H,#40
M2....LD B,32
........LD L,B
........OR A
M1....DEC L
........RL (HL)
........DJNZ M1
........INC H
........BIT 3,H
........JR Z,M2
........RET
Чтобы быть уверенным, что процедура сработает до того, как её догонит луч, следует в начале добавить строки:
HALT
XOR A
OUT (254),A
А в конце:
LD A,7
OUT (254),A
И по бордюру будет наглядно видно как долго работают процедуры.
