;DEBUG ;//////// FVAR DB "1-ST VAR: ",0 SVAR DB "2-ND VAR: ",0 DEBUG_PRINTZ LD (HL_D_POINT+1),HL CALL PUSHALL HL_D_POINT LD HL,#0000 LD C,DSS_PCHARS RST #10 CALL CRLF CALL POPALL RET PUSHALL EX (SP),HL ;PUSH HL & GET ADDRESS PUSH DE PUSH BC PUSH AF EXX PUSH HL PUSH DE PUSH BC EXX EX AF,AF' PUSH AF EX AF,AF' PUSH IX PUSH IY JP (HL) ;JUMP TO ADDRESS (RET) POPALL POP HL ;GET ADDRESS POP IY POP IX EX AF,AF' POP AF EX AF,AF' EXX POP BC POP DE POP HL EXX POP AF POP BC POP DE EX (SP),HL ;PUT ADDRESS RET ;//////// ;DEBUG ;SHOW WINDOW ARRAY WIN_SHOW LD DE,(WIN_XY) LD A,(WIN_H) LD H,A LD A,(WIN_W) LD L,A IN A,(#E2) LD B,A LD C,DSS_WINREST LD IX,MYWIN DI RST #10 EI RET SAVE_POSITION DW 0 WIN_SAVE LD C,DSS_CURSOR RST #10 LD (SAVE_POSITION),DE ; RET ; LD DE,(WIN_XY) LD A,(WIN_H) LD H,A LD A,(WIN_W) LD L,A IN A,(#E2) LD B,A LD C,DSS_WINCOPY LD IX,SCR_BUF DI RST #10 EI RET WIN_BACK LD DE,(WIN_XY) LD A,(WIN_H) LD H,A LD A,(WIN_W) LD L,A IN A,(#E2) LD B,A LD C,DSS_WINREST LD IX,SCR_BUF DI RST #10 EI LD DE,(SAVE_POSITION) LD C,DSS_LOCATE RST #10 RET WIN_CLS LD HL,0 LD BC,(WIN_W) ; INC BC ; INC BC LD A,(WIN_H) OR A RET Z MULHGT ADD HL,BC DEC A JR NZ,MULHGT ADD HL,HL DEC HL DEC HL PUSH HL LD HL,MYWIN LD D,H LD E,L LD A," " LD (HL),A INC HL LD A,(SCR_ATTR) LD (HL),A INC HL EX DE,HL POP BC LDIR RET WIN_XY WIN_X DB #16 WIN_Y DB 10 WIN_H DW 7 WIN_W DW 34 WIN_ADDR DW MYWIN WIN_CUR_XY DW 0 WIN_LOCATE LD (WIN_CUR_XY),DE LD HL,0 INC D DEC D JR Z,TOP_LN LD BC,(WIN_W) SLA C ADDYC1 ADD HL,BC DEC D JR NZ,ADDYC1 TOP_LN SLA E ADD HL,DE LD DE,MYWIN ADD HL,DE LD (WIN_ADDR),HL RET WIN_PCHARS LD A,(HL) INC HL OR A RET Z CP 13 JR Z,CR_L CP 10 JR Z,LF_L CALL WIN_PUTCHAR JR WIN_PCHARS CR_L LD DE,(WIN_CUR_XY) LD D,0 PUSH HL CALL WIN_LOCATE POP HL JR WIN_PCHARS LF_L LD DE,(WIN_CUR_XY) INC E PUSH HL CALL WIN_LOCATE POP HL JR WIN_PCHARS WIN_PUTCHAR LD DE,(WIN_ADDR) LD (DE),A INC DE INC DE LD (WIN_ADDR),DE RET CRLF LD A,#0D LD C,DSS_PUTCHAR RST #10 LD A,#0A LD C,DSS_PUTCHAR RST #10 RET MESSAGE LD E,A LD D,0 CALL MESAGE CALL PRINTZ RET MESAGE INC DE LD HL,MSG0 LD BC,MSG1-MSG0 LCPIR2 XOR A CPIR RET PO RET NZ DEC DE LD A,D OR E JP NZ,LCPIR2 RET PRINTZ LD A,(HL) INC HL OR A RET Z CP "%" JR NZ,PRINTZ2 LD A,(HL) INC HL SUB "1" PUSH HL LD L,A LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD BC,PRM1 ADD HL,BC LD C,DSS_PCHARS RST #10 POP HL JR PRINTZ PRINTZ2 LD C,DSS_PUTCHAR RST #10 JP PRINTZ LOCATE_ LD C,DSS_LOCATE RST #10 RET PRINT_A PRINT_ LD C,DSS_PUTCHAR RST #10 RET MOVEBLOCKZ LD BC,255 JR PUTPRMA PUTVAR LD DE,PRM1 PUTPRM LD BC,15 PUTPRMA LD A,(HL) LDI RET PO OR A JR NZ,PUTPRMA RET PRM1 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PRM2 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PRM3 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PRM4 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PRM5 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PRM6 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PRM7 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PRM8 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PRM9 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; PRINT MODULE DUMP LD B,2 DUMPLP1 PUSH BC PUSH HL CALL CRLF POP HL CALL PHEXSTR POP BC DJNZ DUMPLP1 CALL CRLF RET PHEX LD E,A RRCA RRCA RRCA RRCA AND #0F ADD A,#30 CP #3A JR C,PHEX2 ADD A,7 PHEX2 CALL PRINT_ LD A,E AND #0F ADD A,#30 CP #3A JR C,PHEX3 ADD A,7 PHEX3 CALL PRINT_ RET PHEXSTR LD B,#10 PHS1 PUSH BC LD A,(HL) CALL PHEX LD A,#20 CALL PRINT_ POP BC INC HL DJNZ PHS1 RET PRINTNUM LD HL,PRM1 NUMC LD C,"0"-1 NUMC1 INC C SUB 100 JR NC,NUMC1 ADD A,100 LD (HL),C INC HL NUMB LD C,"0"-1 NUMB1 INC C SUB 10 JR NC,NUMB1 ADD A,10 ADD A,"0" LD (HL),C INC HL LD (HL),A INC HL LD (HL),0 RET PRINT99 LD L,A LD H,0 JR PRL99 PRINTHL LD DE,10000 CALL DIGIT LD DE,1000 CALL DIGIT LD DE,100 CALL DIGIT PRL99 LD DE,10 CALL DIGIT LD A,"0" ADD A,L JP PRINT_A DIGIT LD B,#FF PH1 INC B AND A SBC HL,DE JR NC,PH1 ADD HL,DE LD A,"0" ADD A,B JP PRINT_A