0100 ; SPELLING FLASH CARDS›0110 ; BY ANDY BARTON›0120 ; (c)1988, ANTIC PUBLISHING›0130 ;›0140 ; ASM TO MOVE BLOCKS OF DATA›0150 ; AND REDEFINE DISPLAY LIST›0160 ;›0170 ;DEFINITIONS›0180 ; $F0-$F1 = FROM ADR›0190 ; $D4-$D5 = TO ADR›0200 ; $EE-$EF = COUNT OR DL ADR›0210 *= $0600›0220 ;TO MOVE > 256 BYTES›0230 DM›0240 PLA ›0250 JSR LOAD›0260 DM1›0270 LDY #0›0280 LDA ($F0),Y›0290 STA ($D4),Y›0300 INC $D4›0310 BNE DM2›0320 ;›0330 INC $D5›0340 DM2›0350 INC $F0›0360 BNE DM3›0370 ;›0380 INC $F1›0390 DM3›0400 DEC $EE›0410 BNE DM1›0420 ;›0430 DEC $EF›0440 BPL DM1›0450 ;›0460 RTS ›0470 ;›0480 ;MOVE MEM AND ALTER DISPLAY LIST›0490 ;›0500 ;X=USR (ADLON,›0510 ;[SAVE 160] SC+400,ADR(S$),160,›0520 ;[BLANK 80] ADR(S$),SC+400,80,›0530 ;[MOVE UP ] SC+560,SC+480,400,›0540 ;[ALTER DL] ADL.DATA,DL+15,4)›0550 ;›0560 ADLON›0570 PLA ›0580 ;SAVE 160 BYTES›0590 JSR LOAD›0600 JSR SM›0610 ;BLANK-OUT WINDOW›0620 JSR LOAD›0630 JSR SM›0640 ;MOVE UP 400 BYTES›0650 JSR LOAD›0660 JSR DM1›0670 ;ALTER DL›0680 JSR LOAD›0690 JSR SM›0700 RTS ›0710 ;›0720 ;MOVE MEN & RESTORE DISPLAY LIST›0730 ;X=USR (ADLOFF,›0740 ;[DOWN] SC+879,SC+959,400,›0750 ;[RESTORE] ADR(S$),SC+400,160›0760 ;[ DL ] DL+14,DL+15,4)›0770 ;›0780 ADLOFF›0790 PLA ›0800 ;MOVE DOWN 400›0810 JSR LOAD›0820 LDY #0›0830 RDM›0840 LDA ($F0),Y›0850 STA ($D4),Y›0860 DEC $D4›0870 BNE RDM1›0880 ;›0890 DEC $D5›0900 RDM1›0910 DEC $F0›0920 BNE RDM2›0930 ;›0940 DEC $F1›0950 RDM2›0960 DEC $EE›0970 BNE RDM›0980 ;›0990 DEC $EF›1000 BPL RDM›1010 ;›1020 ;RESTORE 160›1030 ;›1040 JSR LOAD›1050 JSR SM›1060 ;RESTORE DL›1070 JSR LOAD›1080 JSR SM›1090 RTS ›1100 ;SUBROUTINES›1110 ;›1120 LOAD›1130 PLA ›1140 TAX ›1150 PLA ›1160 TAY ›1170 PLA ›1180 STA $F1›1190 PLA ›1200 STA $F0›1210 PLA ›1220 STA $D5›1230 PLA ›1240 STA $D4›1250 PLA ›1260 STA $EF›1270 PLA ›1280 STA $EE›1290 TYA ›1300 PHA ›1310 TXA ›1320 PHA ›1330 RTS ›1340 ;›1350 ;MOVE <256 BYTES›1360 SM›1370 LDX $EE›1380 LDY #0›1390 SM1›1400 LDA ($F0),Y›1410 STA ($D4),Y›1420 INY ›1430 DEX ›1440 BNE SM1›1450 ;›1460 RTS ›1470 ;›1480 ;ALTERNATE DL DATA›1490 ;›1500 ADL.DATA›1510 .BYTE 6,7,10,10›1520 ;›1530 .OPT NO LIST›