| Code: .ORG #0000 DI LD BC,#FFEE XOR A OUT (C),A INC C LD A,#04 OUT (C),A DEC C DEC A OUT (C),A INC C OUT (C),A DEC C DEC A OUT (C),A INC C LD A,#FE OUT (C),A LD C,#19 LD A,#05 OUT (C),A LD A,#62 OUT (C),A LD C,#1D LD A,#CF OUT (C),A XOR A OUT (C),A LD C,#1C LD A,#EA OUT (C),A JR, @NEAR1
RST 38 JP #0000
NEAR1: LD HL,#FEF0 LD DE,#009E ; STRING "ACEX_30K_LOADING" LOOP1: LD A,(DE) CP (HL) JR NZ,@NEAR2 INC E INC L JR NZ,@LOOP1 LD BC,#FFEE LD A,#02 OUT (C),A INC C LD A,#F0 OUT (C),A LD C,#1C LD A,#62 OUT (C),A LD HL,#1000 JR,@NEAR3 NEAR2: LD HL,#0100 NEAR3: LD DE,#FE00 LD A,(#FEE0) CP #49 JR NZ,@NEAR4 LD A,(#FEE1) CP #4D JR NZ,@NEAR4 DEC D NEAR4: LD IY,#0107 LD IX,#FFFD JR @NEAR5
NEAR5: LD A,(HL) CP #00 ; если загруженный байт = 00 JR NZ,@NEAR6 INC HL ; загружаем следующий - это количество идущих подряд нулей LD B,(HL) ; и сохраняем в B - счетчик для DJNZ NEAR6: LD (DE),A RRCA LD (DE),A RRCA LD (DE),A RRCA LD (DE),A RRCA LD (DE),A RRCA LD (DE),A RRCA LD (DE),A RRCA LD (DE),A CP #00 ; если отправляем байт 00, JR NZ,@NEAR7 DJNZ @NEAR6 ; то повторяем нужное уоличество раз NEAR7: INC E INC HL JR @NEAR5
DI HALT
| |