; http://www.cpcrulez.2ya.com
; ; ; ROUTINE RSX MSAVE ET MLOAD : MPACK ; Serge QUERNE ; ; ORG #A350 ; ; DEF DES RSX ; LD BC,MSAVE ; MSAVE,ADRRAM,ADROV,LONG LD HL,TAB1 CALL #BCD1 LD BC,MLOAD ; MLOAD,ADRRAM,ADROV,LONG LD HL,TAB2 CALL #BCD1 LD BC,MLDIR ; MLDIR,ADROV1,ADROV2,LONG LD HL,TAB3 CALL #BCD1 LD BC,MBSAVE ; MBSAVE LD HL,TAB4 CALL #BCD1 LD BC,MBLOAD ; MBLOAD LD HL,TAB5 CALL #BCD1 LD BC,MBRUN ; MBRUN LD HL,TAB6 CALL #BCD1 LD BC,MPEEK ; MPEEK,ADROV LD HL,TAB7 CALL #BCD1 LD BC,MPOKE LD HL,TAB8 CALL #BCD1 LD BC,MDUMP LD HL,TAB9 CALL #BCD1 ; ; INIT RAMS OVERLAY ; LD B,4 LD A,B INIT PUSH AF PUSH BC CALL RAMS LD HL,#4000 LD DE,#4001 LD BC,#3FFF XOR A LD (HL),A LDIR POP BC POP AF INC A DJNZ INIT XOR A JP RAMS ; MSAVE DEFW NOM1 JP ROUT1 NOM1 DEFM MSAV DEFB "E"+#80 DEFB 0 MLOAD DEFW NOM2 JP ROUT2 NOM2 DEFM MLOA DEFB "D"+#80 DEFB 0 MLDIR DEFW NOM3 JP ROUT3 NOM3 DEFM MLDI DEFB "R"+#80 DEFB 0 MBSAVE DEFW NOM4 JP ROUT4 NOM4 DEFM MBSAV DEFB "E"+#80 DEFB 0 MBLOAD DEFW NOM5 JP ROUT5 NOM5 DEFM MBLOA DEFB "D"+#80 DEFB 0 MBRUN DEFW NOM6 JP ROUT6 NOM6 DEFM MBRU DEFB "N"+#80 DEFB 0 MPEEK DEFW NOM7 JP ROUT7 NOM7 DEFM MPEE DEFB "K"+#80 DEFB 0 MPOKE DEFW NOM8 JP ROUT8 NOM8 DEFM MPOK DEFB "E"+#80 DEFB 0 MDUMP DEFW NOM9 JP ROUT9 NOM9 DEFM MDUM DEFB "P"+#80 DEFB 0 TAB1 DEFS 4 TAB2 DEFS 4 TAB3 DEFS 4 TAB4 DEFS 4 TAB5 DEFS 4 TAB6 DEFS 4 TAB7 DEFS 4 TAB8 DEFS 4 TAB9 DEFS 4 ; ; MSAVE,ADRRAM,ADROV,LONG ; ROUT1 CALL PARAML SUITE PUSH BC PUSH DE PUSH HL CALL CALC POP HL XOR A CALL RAMS LD A,(HL) PUSH AF LD A,B CALL RAMS POP AF LD (DE),A POP DE POP BC INC HL INC DE DEC BC LD A,B OR C JR NZ,SUITE XOR A JP RAMS CALC LD B,4 LD A,#3F SUITE1 CP D JR NC,INF ADD A,#40 INC B JR SUITE1 INF SBC A,#3F EX DE,HL LD D,A LD E,0 XOR A SBC HL,DE LD DE,#4000 ADD HL,DE EX DE,HL RET PARAML LD B,(IX+#01) LD C,(IX+#00) LD D,(IX+#03) LD E,(IX+#02) LD H,(IX+#05) LD L,(IX+#04) RET ; ; MLOAD,ADRRAM,ADROV,LONG ; ; ROUT2 CALL PARAML CONT PUSH BC PUSH DE PUSH HL CALL CALC POP HL LD A,B CALL RAMS LD A,(DE) PUSH AF XOR A CALL RAMS POP AF LD (HL),A POP DE POP BC INC DE INC HL DEC BC LD A,B OR C JR NZ,CONT XOR A JP RAMS ; ; MLDIR,ADROV1,ADROV2,LONG ; ROUT3 CALL PARAML EX DE,HL CONT2 PUSH BC PUSH DE PUSH HL CALL EXT POP HL PUSH HL PUSH AF EX DE,HL CALL EXT POP AF LD (DE),A POP HL POP DE POP BC INC HL INC DE DEC BC LD A,B OR C JR NZ,CONT2 DECON XOR A JP RAMS EXT CALL CALC LD A,B CALL RAMS LD A,(DE) RET RAMS OR #C0 DI PUSH BC LD B,#7F OUT (C),A POP BC EI RET ; ; MBSAVE ; ROUT4 LD HL,#AE5E LD DE,#100 PUSH DE LD BC,18 LDIR LD HL,#16B LD A,#FF LD (HL),A LD HL,(#AE66) LD DE,#16F XOR A SBC HL,DE LD BC,#80 ADD HL,BC PUSH HL LD (#16C),HL POP BC POP DE PUSH DE POP HL JP SUITE ; ; MBLOAD ; ROUT5 LD A,4 CALL RAMS LD BC,(#416C) LD A,(#416B) CP #FF RET NZ XOR A CALL RAMS LD HL,#100 LD D,H LD E,L CALL CONT LD HL,#100 LD DE,#AE5E LD BC,18 LDIR RET ; ; MBRUN ; ROUT6 CALL ROUT5 CALL #B900 JP #EA78 ; ; MPEEK,ADROV ; ROUT7 CALL PARAML PUSH BC POP DE CALL EXT PUSH AF CALL DECON LD A,"#" CALL #BB5A POP AF ; CONV PUSH AF ; ROUTINE CONVERSION ACCU EN CARACT AFF SRA A SRA A SRA A SRA A CALL CONV1 POP AF CONV1 AND #0F OR #30 CP #3A JR C,CONV2 ADC A,#7 CONV2 CALL #BB5A RET ; ; MPOKE,ADROV,VAL ; ROUT8 CALL PARAML PUSH BC CALL EXT POP HL EX DE,HL LD (HL),E INC HL LD (HL),D JP DECON ; ; MDUMP,ADROV ; ROUT9 CALL PARAML PUSH BC LD A,2 CALL #BC0E POP DE D3 LD B,16 CALL TAB LD A,D CALL CONV LD A,E CALL CONV CALL TAB D2 PUSH BC PUSH DE CALL EXT POP DE CP 32 JR NC,D1 LD A,"." D1 CALL #BB5A LD A,32 CALL #BB5A INC DE POP BC DJNZ D2 CALL #BB06 CP 32 JP NZ,DECON LD A,13 CALL #BB5A LD A,10 CALL #BB5A JR D3 ; TAB PUSH BC LD B,5 TABU LD A,32 CALL #BB5A DJNZ TABU POP BC RET |