0 DATA" " 10 DATA" 10 000 01 " 20 DATA" 10 111 01 " 30 DATA" 10 000 000 01 " 40 DATA" 10 111 111 01 " 50 DATA" 10 000 000 000 01 " 60 DATA" 10 111 111 111 01 " 70 DATA"10 000 000 000 000 01 " 80 DATA" 10 111 111 111 111 01 " 90 DATA" 10 000 000 1100 0101 " 100 DATA" 10 00010 0011 000 01 " 110 DATA" 10 000 00010 0011 01 " 120 DATA" 10 000 000 000 111 01 " 130 DATA" 10 00010 0011 1100 0101 " 140 DATA" 10 000 00010 0011 111 01 " 150 DATA" 10 111 111 1100 0101 " 160 DATA" 10 10111 0011 111 01 " 170 DATA" 10 10111 0011 1100 0101 " 180 DATA" 10 111 111 111 000 01 " 190 DATA" 10 111 10111 0011 01 " 200 DATA" 10 111 10111 0011 000 01 " 210 DATA" 10 1100 0011 01 " 220 DATA" 10 00010 0011 01 " 230 DATA" 10 000 000 111 01 " 240 DATA" 10 00010 0011 111 01 " 250 DATA" 1010 0011 1100 0101 " 260 DATA" 10 111 111 000 01 " 270 DATA" 10 10111 0011 01 " 280 DATA" 10 10111 0011 000 01 " 290 DATA" 1010 0011 111 01 " 300 DATA" 1010 0011 000 01 " 310 DATA" 1010 00100 0001 01 " 320 DATA" 10 1000 0011 000 01 " 330 DATA" 10 1000 00100 0001 01 " 340 DATA" 10 1110 0011 111 01 " 350 DATA" 1010 11011 0111 01 " 360 DATA" 10 1110 11011 0111 01 " 370 DATA" 1010 10011 0011 01 " 380 DATA" 101010 000011 0011 01 " 390 DATA" 10 1000 0011 111 01 " 400 DATA" 10 000 1000 0011 111 01 " 410 DATA" 1010 00110 0011 01 " 420 DATA" 101010 001111 0011 01 " 430 DATA" 10 1110 0011 000 01 " 440 DATA" 10 111 1110 0011 000 01 " 450 460 REM *********************** 470 MODE7 472 VDU3 480 *FX21 490 VDU23,1,0;0;0;0; 500 B=129 510 C1=134:C2=131:F1=C1:F2=C2 520 C3=150:C4=147:F3=C3:F4=C4 530 REPEAT:VDU(30) 540 IF F1=C1 F1=C2 ELSE F1=C1 550 IF F1=C1 F2=C2 560 IF F1=C2 F2=C1 570 IF F3=C3 F3=C4 ELSE F3=C3 580 IF F3=C3 F4=C4 590 IF F3=C4 F4=C3 600 PRINTCHR$(B)CHR$(157) 610 PRINTCHR$(B)CHR$(157)CHR$(F3)" 8``)08`d`d_&``d_&`,_&``d_&``d" 620 PRINTCHR$(B)CHR$(157)CHR$(F3)" 5 55 j jj jj_p j_ppjj j" 630 PRINTCHR$(B)CHR$(157)CHR$(F3)" =``)55 j jj jj! j! ij&``n" 640 PRINTCHR$(B)CHR$(157)CHR$(F3)" 5 55 j jjpppzjpppjpppzj j" 650 PRINTCHR$(B)CHR$(157) 660 PRINTCHR$(B)CHR$(157) 670 PRINTCHR$(B)CHR$(157)CHR$(F1)CHR$(141)" 1...Display Source" 680 PRINTCHR$(B)CHR$(157)CHR$(F2)CHR$(141)" 1...Display Source" 690 PRINTCHR$(B)CHR$(157) 700 PRINTCHR$(B)CHR$(157)CHR$(F1)CHR$(141)" 2...Print Cards" 710 PRINTCHR$(B)CHR$(157)CHR$(F2)CHR$(141)" 2...Print Cards" 720 PRINTCHR$(B)CHR$(157) 730 PRINTCHR$(B)CHR$(157)CHR$(F1)CHR$(141)" 3...Return to Menu" 740 PRINTCHR$(B)CHR$(157)CHR$(F2)CHR$(141)" 3...Return to Menu" 750 PRINTCHR$(B)CHR$(157) 760 PRINTCHR$(B)CHR$(157)CHR$(F1)CHR$(141)" 4...Amoeba Mode 4" 770 PRINTCHR$(B)CHR$(157)CHR$(F2)CHR$(141)" 4...Amoeba Mode 4" 780 PRINTCHR$(B)CHR$(157) 790 PRINTCHR$(B)CHR$(157)CHR$(F1)CHR$(141)" 7...Amoeba Mode 7" 800 PRINTCHR$(B)CHR$(157)CHR$(F2)CHR$(141)" 7...Amoeba Mode 7" 810 PRINTCHR$(B)CHR$(157) 820 PRINTCHR$(B)CHR$(157) 830 PRINTCHR$(B)CHR$(157) 840 PRINTCHR$(B)CHR$(157); 850 A$=INKEY$(50) 860 IF ASC(A$)<0 A$=" " 862 IF A$="2" MODE4:PROCprinter:MODE7:VDU23,1,0;0;0;0; 870 UNTIL INSTR("1347",A$) 880 : 890 REM *DIR:2 910 IF A$="3" THEN VDU11:OSCLI"DIR $":OSCLI"EXEC !BOOT":END 920 IF A$="4" MODE4:OSCLI"/A4or7st" 930 IF A$="7" MODE7:OSCLI"/A4or7st" 940 : 950 buffer=&5000 960 bufsize=&2000 970 F$="A4or7_c" 980 HIMEM=buffer 990 DIMcode 400,scr%(20) 1000 ONERROR RUN 1010 *FX4,1 1020 PROCasscode 1030 REMPROCfile 1040 F%=OPENIN F$ 1050 REM"Colour toggles on c 1060 ?&74=1:?&72=130 1070 B%=&900:times%=0:back%=0:new%=0 1080 div=EXT#F%/100 1090 : 1100 REPEAT 1110 new%=1:PROCld 1120 REPEAT 1130 start%=G%:?&73=0:scol%=?&72 1140 REPEAT 1150 CALL gline 1160 UNTIL ?&73=24 OR G%>=T% 1170 IF ?&73<>24:REPEAT:PRINTSTRING$(40," ");:?&73=?&73+1:UNTIL ?&73=24 1180 depth=(bufsize*(times%-1)+G%-buffer)/div 1190 REPEAT 1200 PRINTTAB(0,24)CHR$(157)CHR$(132); 1210 IF depth<10 PRINT" "; 1220 IF depth<100 PRINT" "; 1230 PRINTSTR$(INT(depth))"%"; 1240 IF EOF#F% AND G%>=T% PRINTCHR$(136)" Any Key Finishes or B,[ "; ELSE PRINT" Any Key [,],B,F or P "; 1250 IFstart%=buffer:VDU7:E%=1:PRINT"(TOB) "; 1260 IFE%=0:IFG%>=T%:VDU7:E%=1:PRINT"(BOB) "; 1270 IFE%:E%=0 ELSE PRINT" "; 1280 PRINTTAB(0,24); 1290 *FX21 1300 K%=GET:G$=CHR$(K%) 1310 IF K%=136 OR K%=139 PROCback1 1320 IF K%=137 OR K%=138 PROCforward1 1330 IFINSTR("Bb",G$) PROCjumpback 1340 IFINSTR("Ff",G$) PROCjumpforward 1350 IFINSTR("Cc",G$) PROCcolour 1360 IFINSTR("Pp",G$) PROCprtScreen 1370 UNTIL K% 1380 UNTILG%>=T% 1390 UNTILEOF#F% 1400 : 1410 CLOSE#F% 1420 *FX4,0 1430 RUN 1440 END 1450 : 1460 DEFPROCcolour 1470 ?&74=?&74 EOR 1 1480 IF ?&74 ?&72=130 ELSE ?&72=0 1490 G%=start% 1500 ENDPROC 1510 : 1520 DEFPROCcolminus 1530 ?&72=?&72-1 1540 IF?&72=132:?&72=131 1550 IF?&72=129:?&72=134 1560 ENDPROC 1570 : 1580 DEFPROCcolplus 1590 ?&72=?&72+1 1600 IF?&72=132:?&72=133 1610 IF?&72=135:?&72=130 1620 ENDPROC 1630 : 1640 DEFPROCld 1650 IFback% times%=times%-1:PTR#F%=scr%(times%) 1660 IFnew%:times%=times%+1:scr%(times%)=PTR#F% 1670 IF EXT#F%-PTR#F%>(bufsize-1) H%=bufsize ELSE H%=EXT#F%-PTR#F% 1680 PRINTTAB(0,24)CHR$(157)CHR$(132)" Loading Please Wait ";TAB(0,24); 1690 A%=4 1700 X%=B% MOD 256 1710 Y%=B% DIV 256 1720 B%?0=F% 1730 B%!1=buffer 1740 B%!5=H% 1750 CALL&FFD1 1760 D%=0:back%=0:new%=0:G%=buffer:T%=G%+H%+D% 1770 IF PTR#F%=EXT#F% ENDPROC 1780 S%=&6FFF 1790 REPEAT 1800 D%=D%+1 1810 S%=S%+1 1820 R%=BGET#F% 1830 ?S%=R% 1840 UNTIL?S%=13 AND ?(S%-1)=13 1850 S%?1=&FF 1860 T%=G%+H%+D% 1870 ENDPROC 1880 : 1890 DEFPROCfile 1900 REPEAT 1910 *. 1920 PRINT'"Filename :"; 1930 INPUT F$ 1940 IF LEFT$(F$,1)="*" OSCLI+F$ 1950 UNTILLEFT$(F$,1)<>"*" 1960 ENDPROC 1970 : 1980 DEFPROCback1 1990 IFstart%=buffer:IFtimes%>1:G$="B":ENDPROC 2000 IFstart%=buffer:K%=0:ENDPROC 2010 ?&72=scol% 2020 IF?&74:IF?start%=13:PROCcolminus 2030 VDU30:G%=start%-1 2040 REPEAT:G%=G%-1:UNTIL ?G%=13 OR G%=&3000 2050 IF G%<>buffer:G%=G%+1 2060 ENDPROC 2070 : 2080 DEFPROCforward1 2090 IFG%>=T%:G$="F":ENDPROC 2100 ?&72=scol% 2110 VDU30:G%=start%-1 2120 REPEAT:G%=G%+1:UNTIL ?G%=13 2130 G%=G%+1 2140 IF?&74:IF ?G%=13 PROCcolplus 2150 ENDPROC 2160 : 2170 DEFPROCjumpback 2180 IFG%<=(buffer+&600) AND times%=1:G%=buffer:ENDPROC 2190 IFG%>(buffer+&600):G%=G%-&600:REPEAT:G%=G%-1:UNTIL ?G%=13 OR G%=buffer:ENDPROC 2200 back%=1 2210 PROCld:G%=&6A00:REPEAT:G%=G%-1:UNTIL ?G%=13 2220 ENDPROC 2230 : 2240 DEFPROCjumpforward 2250 IFG%>(T%-&380):ENDPROC 2260 G%=G%+&300 2270 REPEAT:G%=G%+1:UNTIL?G%=13 2280 ENDPROC 2290 : 2300 DEFPROCprtScreen 2310 U%=start%:E%=0:cnt%=0:VDU2 2320 REPEAT 2330 REPEAT 2340 A%=?U% 2350 IFA%=141:E%=1 2360 IFA%>126:A%=32 2370 IFA%>31:VDU1,A% 2380 U%=U%+1 2390 UNTIL?U%=13 OR U%>T% 2400 IFE%:REPEAT:U%=U%+1:UNTIL?U%=13:cnt%=cnt%+1:VDU1,13:E%=0 2410 cnt%=cnt%+1:VDU1,13 2420 UNTILcnt%=24 OR U%>T% 2430 VDU1,13,3:K%=0 2440 ENDPROC 2450 : 2460 DEFPROCerror 2470 CLOSE#F% 2480 *FX4,0 2490 PRINT 2500 ENDPROC 2510 : 2520 DEFPROCasscode 2530 FOR I%=0 TO 2 STEP 2 2540 P%=code 2550 [OPTI% 2560 .gline 2570 LDX &74:STX &76 2580 LDA &72:JSR &FFEE 2590 .loopa 2600 JSR get 2610 CMP #13:BEQ a2 2620 CMP #126:BCS a1 2630 CMP #32:BCC a1 2640 JSR &FFEE:INC &76 2650 .a1 2660 LDX &76:CPX #40:BNE loopa 2670 INC &7F 2680 .a2 2690 LDX &74:BEQ a3 2700 JSR seeatg:CMP #13:BNE a3 2710 LDX &7F:BEQ d2 2720 LDA &404:PHA 2730 JSR get:JSR seeatg 2740 LDX &41C:BNE d1:DEC &41D 2750 .d1 2760 DEC &41C 2770 TAX:PLA:STA &404 2780 CPX #13:BNE a3 2790 .d2 2800 JSR chcol 2810 .a3 2820 LDX #0:STX &7F 2830 LDA &404:CMP #13:BNE a4 2840 LDA #32 2850 .cloop 2860 LDX &76:CPX #40:BEQ a4 2870 JSR &FFEE:INC &76:BNE cloop 2880 .a4 2890 LDA &404:CMP #13:BEQ a5 2900 CMP #32:BEQ a5:JSR back 2910 .a5 2920 INC &73 2930 RTS 2940 \ ******* subroutines ******** 2950 .get 2960 LDX &41C:STX &80 2970 LDX &41D:STX &81 2980 LDY #0:LDA (&80),Y:STA &404 2990 INC &41C:BNE g1:INC &41D 3000 .g1 3010 RTS 3020 .seeatg 3030 LDX &41C:STX &80 3040 LDX &41D:STX &81 3050 LDY #0:LDA (&80),Y 3060 RTS 3070 .chcol 3080 INC &72:LDX &72 3090 CPX #132:BNE c1 3100 LDY #133:STY &72 3110 .c1 3120 CPX #135:BNE c2 3130 LDY #130:STY &72 3140 .c2 3150 RTS 3160 .back 3170 JSR seeatg 3180 CMP #32:BEQ b0 3190 CMP #13:BNE b2 3200 .b0 3210 INC &41C:BNE b1:INC &41D 3220 .b1 3230 RTS 3240 .b2 3250 LDX &41C:STX &82:LDX &41D:STX &83 3260 LDX #0:STX &75 3270 .loopb1 3280 LDY #2 3290 .b3 3300 LDX &41C:BNE b4:DEC &41D 3310 .b4 3320 DEC &41C:DEY:BNE b3 3330 JSR get:INC &75:DEC &76 3340 CMP #32:BEQ b6 3350 LDX &76:CPX &74:BNE loopb1 3360 .b5 3370 LDX #0:STX &75 3380 LDX &82:STX &41C 3390 LDX &83:STX &41D 3400 JSR seeatg:CMP #13:BNE b6 3410 INC &41C:BNE b6:INC &41D 3420 .b6 3430 LDX &75:BEQ b7:LDA #127 3440 .loopb2 3450 JSR &FFEE:DEC &75:BNE loopb2 3460 JSR &FFE7 3470 .b7 3480 RTS 3490 ]NEXT:ENDPROC 3500 : 3510 DEFPROCprinter 3512 VDU23,1,0;0;0;0; 3520 ONERROR RUN 3530 VDU23,244,&18,&18,&30,&E3,&C7,&0C,&18,&18 3540 VDU23,245,&18,&18,&0C,&C7,&E3,&30,&18,&18 3550 CLS 3560 PRINT"These cards do not quite fit on a" 3570 PRINT"sheet of A4, but will do if the paper" 3580 PRINT"is turned half way, so this program" 3590 PRINT"prompts you to do so." 3600 PRINT''"Ready printer press a key when ready." 3610 A=GET 3620 CLS 3630 FOR I=1 TO 44 STEP 4 3640 IF I=21 PROCturnpage 3650 FOR N=0 TO 3 3660 PROCgetcard(I+N) 3670 PROCdcard(N,25,G$) 3680 NEXT 3690 PROCprint 3700 REMA=GET 3710 NEXT 3720 3730 ENDPROC 3740 3750 DEFPROCturnpage 3760 PRINTTAB(0,10)"TURN PAPER AND PRESS A KEY":A=GET 3770 CLS 3780 ENDPROC 3790 3800 DEFPROCgetcard(C%) 3810 RESTORE C%*10 3820 READ G$ 3830 ENDPROC 3840 3850 DEFPROCdcard(x,y,G$) 3860 FOR SY%=1 TO LEN(G$) STEP 7 3870 N%=SY% DIV 7 +y 3880 C$=MID$(G$,SY%,7) 3890 PRINTTAB(x*10,N%); 3900 FOR J%=1 TO 7 3910 IF MID$(C$,J%,1)="1" VDU244 3920 IF MID$(C$,J%,1)="0" VDU245 3930 IF MID$(C$,J%,1)=" " VDU32 3940 NEXT 3950 NEXT 3960 ENDPROC 3970 3980 DEFPROCprint 3990 PROCassemble 4000 REM*LOAD SCREEN 4010 *FX 5,1 4020 VDU2,1,27,1,65,1,8 4030 FOR Y%=255 TO 0 STEP -32 4040 VDU 1,27,1,75,1,64,1,1 4050 FOR X%=0 TO 1279 STEP 4 4060 !Xlo=X%+Y%*&10000 4070 ?bitstodo=8 4080 CALL makebyte 4090 NEXT 4100 VDU1,10 4110 NEXT 4120 REMVDU1,12,3 4130 VDU3 4140 ENDPROC 4150 4160 DEF PROCassemble 4170 OSWORD=&FFF1 4180 OSWRCH=&FFEE 4190 DIM S% 80 4200 Xlo=S% 4210 Xhi=S%+1 4220 Ylo=S%+2 4230 Yhi=S%+3 4240 colour=S%+4 4250 byte=S%+5 4260 bitstodo=S%+6 4270 S%=S%+7 4280 FOR opt=0 TO 2 STEP 2 4290 P%=S% 4300 [OPT opt 4310 .makebyte LDA #9 4320 LDX #Xlo MOD 256 4330 LDY #Xlo DIV 256 4340 JSR OSWORD 4350 CLC 4360 LDA colour 4370 BNE rotate 4380 SEC 4390 .rotate ROL byte 4400 SEC 4410 LDA Ylo 4420 SBC #4 4430 STA Ylo 4440 BCC dec_Yhi 4450 JMP decdone 4460 .dec_Yhi DEC Yhi 4470 .decdone DEC bitstodo 4480 BNE makebyte 4490 LDA #1 4500 JSR OSWRCH 4510 LDA byte 4520 EOR #&FF 4530 JSR OSWRCH 4540 RTS 4550 ] 4560 NEXT opt 4570 ENDPROC