See all articles from ZXir QLive Alive! v7 n1
1700 Find$="NULL"
1710 Search
1720 END DEFine
1730 :
1740 DEFine PROCedure label
1750 bop: AT 24,12: INK 2: INPUT " printer ready (y/n)? ";a$
1760 IF a$=="y" THEN GO TO 1780
1770 IF a$=="n" OR a$<>"Y" OR a$<>"y" THEN Show_DIF
1780 DELETE RAM1_label_DIF
1790 OPEN_NEW#5,RAM1_label_DIF
1800 Record$=Z$(n+1)
1810 FOR r=0 TO LEN(Record$)
1820 IF r=LEN(Record$) THEN PRINT#5
1830 PRINT#5,Record$(r+1);
1840 NEXT r: END FOR r
1850 CLOSE#5
1860 la=14: exp_to_txt
1870 END DEFine
1890 DEFine PROCedure exp_to_txt
1900 DELETE ram1_Record_txt
1910 OPEN_NEW#5,ram1_Record_txt
1920 FOR n=la TO LEN(Record$)
1930 IF Record$(n)=CHR$(34) THEN NEXT n
1940 IF Record$(n)=CHR$(44) THEN bop: PRINT#5: END IF
1950 IF Record$(n)<>CHR$(44) THEN PRINT#5,Record$(n);
1960 NEXT n
1970 END FOR n
1980 CLOSE#5
1990 DIM T$(16,96)
2000 OPEN_IN#5,ram1_Record_txt
2010 FOR e=0 TO 14
2020 IF EOF(#5) THEN EXIT e
2030 INPUT#5,T$(e)
2040 END FOR e: CLOSE#5: e=e-1
2050 OPEN#4,ser1
2060 s=4 : REMark for onscreen test >>> s=2
2070 key_$=T$(0)
2080 s1_$=T$(1)
2090 s2_$=T$(2)
2100 s3_$=T$(3)
2110 s4_$=T$(4)
2120 s5_$=T$(5)
2130 s6_$=T$(6)
2140 s7_$=T$(7)
2150 s8_$=T$(8)
2160 s9_$=T$(9)
2170 s10_$=T$(10)
2180 offset$=Blank$(1 TO margin$)
2190 IF LEN(s2_$)=0 THEN PRINT#s,offset$ & s1_$
2200 IF LEN(s2_$)>=1 THEN PRINT#s,offset$ & s2_$;" ";s1_$
2210 PRINT#s,offset$ & s3_$
2220 IF LEN(s4_$)=0 THEN GO TO 2230: ELSE PRINT#s,offset$ & s4_$
2230 PRINT#s,offset$ & s5_$;", ";s6_$;" ";s7_$
2240 Adjust_Printer
2250 CLOSE#4
2260 n=lstnm
2270 Show_DIF
2280 END DEFine
2300 DEFine PROCedure Set_Printer
2310 DELETE Dvice$ & "LineF_eed"
2320 OPEN_NEW#5,Dvice$ & "LineF_eed"
2330 BLOCK 260,14,45,167,0: STRIP 0: INK 5: AT 17,15: PRINT CHR$(188);" Line Feeds between labels": AT 17,11: INPUT LnFd$
2340 IF LEN(LnFd$)=0 THEN LnFd$="0": END IF : FOR h=1 TO LEN(LnFd$): IF LnFd$(h)>CHR$(57) OR LnFd$(h)<CHR$(48) THEN bop: LnFd$="0": END IF : NEXT h: END FOR h
2350 PRINT#5,LnFd$
2360 BLOCK 260,14,45,167,0: STRIP 0: INK 5: AT 17,15: PRINT CHR$(188);" Margin Offset": AT 17,11: INPUT margin$
2370 IF LEN(margin$)=0 THEN margin$="4": END IF : FOR h=1 to LEN(margin$): IF margin$(h)>CHR$(57) or margin$(h)<CHR$(48) THEN bop: margin$="1": END IF: NEXT h: END FOR h
2380 PRINT#5,margin$
2390 CLOSE#5: END DEFine
2410 DEFine PROCedure Adjust_Printer: DIM T$(2,3)
2420 WHEN ERRor
2430 LnFd$="3": margin$="4"
2440 END WHEN
2450 OPEN_IN#5,Dvice$ & "LineF_eed"
2460 FOR e=0 TO 1
2470 IF EOF(#5) THEN EXIT e
2480 INPUT#5,T$(e)
2490 END FOR e: CLOSE#5: e=e-1
2500 LET LnFd$=T$(0)
2510 LET margin$=T$(1)
2520 LET offset=margin$
2530 FOR Z=1 TO LnFd$
2540 PRINT#s
2550 NEXT Z: END FOR Z
2560 END DEFine
2580 DEFine PROCedure Search : REMark open File: CLOSE#5: CLOSE#6
2590 DIM Z$(384,756)
2600 OPEN_IN#6,Dvice$ & Sname$ & EXTen$
2610 FOR c=0 TO 386
2620 IF EOF(#6) THEN EXIT c
2630 WHEN ERRor
2640 CONTINUE
2650 END WHEN
2660 INPUT#6,Z$(c)
2670 END FOR c: CLOSE#6
2680 c=c-2
2690 m=0: n=0
2700 sedit: labels: Show_DIF
2710 END DEFine
2730 DEFine PROCedure show_date
2740 AT 2,10
2750 FOR r=1 TO LEN(Record$)
2760 IF Record$(2)=CHR$(34) THEN rr=r+1
2770 show_rest
2780 END DEFine
2800 DEFine PROCedure show_key
2810 AT 2,40
2820 FOR r=rr TO LEN(Record$)
2830 IF Record$(r)=CHR$(34) THEN rr=r
2840 show_rest
2850 END DEFine
2870 DEFine PROCedure show_rest
2880 FOR r=r TO LEN(Record$)
2890 IF Record$(r)=CHR$(34) THEN NEXT r
2900 IF Record$(r)=CHR$(26) THEN GO TO 2970
2910 IF Record$(r)=CHR$(44) AND Record$(r-1)=CHR$(34) THEN GO TO 2960
2920 IF Record$(r)=CHR$(44) AND Record$(r-1)<>CHR$(34) THEN PRINT Record$(r);: NEXT r
2930 IF Record$(r)=CHR$(44) AND Record$(r-1)<>CHR$(32) THEN PRINT : NEXT r
2940 IF Record$(r)<>CHR$(44) THEN PRINT Record$(r);: NEXT r
2950 END FOR r
2960 PRINT Blank$;Blank$;Blank$;Blank$: rr=r+2
2970 END DEFine
2990 DEFine PROCedure show_nums
3000 STRIP 0: INK 7
3010 y=2
3020 WINDOW 130,12,106,170
3030 FOR r=rn TO LEN(Record$)
3040 IF Record$(r)<>CHR$(44) THEN PRINT Record$(r);: NEXT r: END IF
3050 IF y=2: WINDOW 130,12,105,180
3060 IF y=3: WINDOW 130,12,105,190
3070 IF y=4: WINDOW 130,12,356,170
3080 IF y=5: WINDOW 130,12,356,180
3090 IF y=6: WINDOW 130,12,356,190
3100 IF Record$(r)=CHR$(44) THEN y=y+1: NEXT r: END IF
3110 END FOR r
3120 WINDOW 512,256,0,0: INK 0
3130 END DEFine
3150 DEFine PROCedure Show_DIF : y=0 : REMark CHR$(34/44/32)= ",<space>
3160 WINDOW 512,256,0,0
3170 redit: stripe
3180 AT 22,2: PRINT "Rec # : ";: INK 2: PRINT n;TO 22;: INK 0: PRINT "Find : ";: IF Find$="NULL" THEN INK 7: ELSE INK 5: PRINT Find$
3190 STRIP 0: INK 7:
3200 AT 24,3: PRINT CHR$(190); CHR$(191); CHR$(188); CHR$(189);: INK 2: PRINT" [back/next/first/last] ";: INK 7: PRINT TO 42,"F";: INK 5: PRINT"ind ";: INK 7: PRINT"M";: INK 5: PRINT"ore ";: INK 7: PRINT"R";: INK 5: PRINT"ecord ";: INK 7: PRINT"P";: INK 5: PRINT"rints";: INK 7: PRINT"W";: INK 5: PRINT"itche";: INK 7: PRINT"X";: INK 5: PRINT"it"
3210 Record$=Z$(n+1)
3220 STRIP 2: INK 7
3230 AT 1,2: PRINT "Using : "; Sname$ & EXTen$;Blank$
3240 AT 2,2: PRINT " Date : ";Blank$
3250 show_date
3260 AT 2,34: PRINT "Key : ";Blank$
3270 WINDOW 260,10,240,20: PAPER 2: CLS
3280 rc=1
3290 FOR r=rr TO CHR$(34)
3300 STRIP 0: INK 7
3310 IF Record$(r)=CHR$(34) THEN NEXT r
3320 IF Record$(r)=CHR$(26) THEN r=r-1: END IF
3330 IF Record$(r)=CHR$(32) AND Record$(r-1)=CHR$(44) THEN PRINT Record$(r-1);" ";: NEXT r
3340 IF Record$(r)<>CHR$(44) AND Record$(r-1)=CHR$(44) AND Record$(r-2)=CHR$(34)THEN show_nums: GO TO 3410
3350 IF Record$(r)=CHR$(44) AND Record$(r-1)<>CHR$(34) THEN PRINT;: NEXT r
3360 IF Record$(r)=CHR$(44) THEN PRINT: NEXT r
3370 PRINT Record$(r);
3380 NEXT r
3390 END FOR r
3400 WINDOW 512,256,0,0
3410 Options
3420 END DEFine Show_DIF
3440 DEFine PROCedure Options
3450 REPeat ops
3460 LET reed=CODE(INKEY$(-1))
3470 IF reed=10 THEN Show_DIF
3480 IF reed=70 OR reed=102 THEN find
3490 IF reed=77 OR reed=109 THEN more
3500 IF reed=80 OR reed=112 THEN label
3510 IF reed=82 OR reed=114 THEN Record
3520 IF reed=87 OR reed=119 THEN sWatch
3530 IF reed=88 OR reed=120 THEN PAPER 7: CLS: menu
3540 IF reed=208 THEN up
3550 IF reed=216 THEN down
3560 IF reed=192 THEN first
3570 IF reed=200 THEN last
3580 END REPeat ops
3590 Show_DIF
3600 END DEFine Options
3620 DEFine PROCedure up
3630 IF n<=0 THEN first
3640 FndBlnk: n=n-1: lstnm=n: Show_DIF
3650 END DEFine up
3670 DEFine PROCedure down
3680 n=n+1
3690 IF n=c THEN first
3700 FndBlnk: lstnm=n: Show_DIF
3710 END DEFine down
3730 DEFine PROCedure first
3740 FndBlnk: n=0: Show_DIF
3750 END DEFine first
3770 DEFine PROCedure last
3780 n=c-1
3790 IF n=c THEN first
3800 FndBlnk: lstnm=n: Show_DIF
3810 END DEFine last
3830 DEFine PROCedure Record
3840 stripe: AT 22,10: PRINT Blank$(1 TO 5): AT 22,2: INPUT "Rec # : ";Rn$
3850 IF Rn$="" THEN Show_DIF
3860 n=Rn$
3870 IF n>c THEN last
3880 Show_DIF
3890 END DEFine Record
3910 DEFine PROCedure find
3920 POKE 163976,0
3930 stripe: FndBlnk: AT 22,22: INPUT 'Find : '; Find$
3940 IF Find$=="" THEN Show_DIF
3950 n=-1
3960 more
3970 END DEFine find
3990 DEFine PROCedure more
4000 IF Find$=="NULL" OR Find$="" THEN Show_DIF
4010 AT 22,29: STRIP 7: INK 2: PRINT Find$
4020 cap$=Find$(1)
4030 IF CODE(cap$)>96 THEN bop: cap$=CHR$(CODE(cap$)-32)
4040 FOR n=n+1 TO c-1
4050 Record$=Z$(n+1)
4060 AT 22,10: PAPER 7: INK 2: PRINT n;Blank$(1 TO 4): PAPER 0: INK 7
4070 FOR fi=0 TO LEN(Record$)
4080 IF cap$<>Record$(fi+1) AND Find$(1)<>Record$(fi+1) THEN NEXT fi
4090 IF Find$(1)==Record$(1+fi) THEN IF Find$==Record$(1+fi TO LEN(Find$)+fi): lstnm=n: Show_DIF
4100 NEXT fi
4110 END FOR fi
4120 NEXT n
4130 END FOR n
4140 n=c-1 AND Find$<>REC$(1+fi TO LEN(Find$)+fi): STRIP 7: bop: INK 2: AT 22,29: PRINT'no (more) match(es) found for "';: INK 0: PRINT Find$;: INK 2: PRINT'" ... ': bop: STRIP 0: INK 2: AT 24,10: PRINT" ";Press$;" ": PAUSE: BLOCK 300,10,168,220,7: FndBlnk: n=lstnm: Show_DIF
4150 END DEFine more
4170 DEFine PROCedure menu : REMark program screen
4180 fenetre=0: CLS: INK 0
4190 Find$="NULL"
4200 Cmd_Line: MoreFile: SelectFile
4210 END DEFine start
4230 DEFine PROCedure Cmd_Line : REMark more program screen
4240 PAPER 7: AT 1,7: stripe: PRINT" FILES I/O DEVICES "TO 50;"EXIT "
4250 BLOCK 512,1,0,9,2: BLOCK 512,1,0,20,2
4260 INK 2: AT 1,58: PRINT' @ PLATYPUS Software': INK 0
4270 END DEFine Cmd_Line
4290 DEFine PROCedure Key1
4300 REPeat KEYp
4310 ke=CODE(INKEY$)
4320 IF ke=9 OR ke=32 OR ke=27 OR ke=253 THEN bop: EXIT KEYp
4330 IF ke=208 OR ke=216 THEN EXIT KEYp
4340 END REPeat KEYp
4350 END DEFine Key1
4370 DEFine PROCedure Key2
4380 REPeat Qep
4390 ke=CODE(INKEY$)
4400 IF ke=70 OR ke=71 OR ke=77 OR ke=78 THEN EXIT Qep
4410 IF ke=82 OR ke=84 OR ke=87 OR ke=88 THEN EXIT Qep
4420 IF ke=102 OR ke=103 OR ke=109 OR ke=110 THEN EXIT Qep
4430 IF ke=114 OR ke=116 OR ke=119 OR ke=120 THEN EXIT Qep
4440 IF ke=232 OR ke=236 OR ke=240 OR ke=248 THEN EXIT Qep
4450 IF ke=250 OR ke=253 OR ke=27 OR ke=9 THEN EXIT Qep
4460 IF ke<236 AND ke>=27 THEN bop: Key2
4470 END REPeat Qep: END DEFine Key2
4490 DEFine PROCedure Key3
4500 REPeat QEYp
4510 ke=CODE(INKEY$)
4520 IF ke=234 OR ke=82 OR ke=114 OR ke=115 OR ke=83 THEN EXIT QEYp
4530 IF ke=67 OR ke=68 OR ke=79 OR ke=86 OR ke=87 THEN EXIT QEYp
4540 IF ke=99 OR ke=100 OR ke=111 OR ke=118 OR ke=119 THEN EXIT QEYp
4550 IF ke=232 OR ke=236 OR ke=238 OR ke=240 OR ke=248 OR ke=234 THEN EXIT QEYp
4560 IF ke=242 OR ke=80 OR ke=112 OR ke=246 OR ke=121 OR ke=89 THEN EXIT QEYp
4570 IF ke=250 OR ke=253 OR ke=27 OR ke=9 THEN EXIT QEYp
4580 IF ke<236 AND ke>=27 THEN bop: Key3
4590 END REPeat Q
4600 END DEFine Key3
4620 DEFine PROCedure PickOne : REMark TAB/shift-TAB/SPACE
4630 IF ke = 250 THEN BEEP 900,20: menu
4640 IF ke = 253 THEN BEEP 900,20: PrevWindow
4650 IF ke = 9 THEN BEEP 200,10: NextWindow
4660 IF ke = 27 THEN BEEP 200,10: fenetre=4: PrevWindow
4670 END DEFine PickOne
4690 DEFine PROCedure NextWindow : REMark move to right
4700 fenetre = fenetre+1: IF fenetre>2 THEN fenetre=0
4710 WindowChoice
4720 END DEFine NextWindow
4740 DEFine PROCedure PrevWindow : REMark move to left
4750 fenetre=fenetre-1: IF fenetre<0 THEN fenetre=2
4760 WindowChoice
4770 END DEFine PrevWindow
4790 DEFine PROCedure WindowChoice : REMark branch to ...
4800 CLScreen
4810 IF fenetre = 0 THEN File
4820 IF fenetre = 1 THEN devo
4830 IF fenetre = 2 THEN out
4840 END DEFine WindowChoice
4860 DEFine PROCedure out : REMark EXIT program
4870 Cmd_Line: AT 1,49: STRIP 2: INK 7: PRINT " EXIT ": stripe
4880 Key1: PickOne
4890 SELect ON ke
4900 =32: GO TO 5980
4910 END SELect
4920 END DEFine
4940 DEFine PROCedure devo : REMark select I/O device
4950 Cmd_Line: AT 1,14: STRIP 2: INK 7: PRINT" I/O DEVICES "
4960 WINDOW#3,136,112,84,20
4970 PAPER#3,7: BORDER#3,1,2: INK#3,5: CLS#3
4980 BLOCK 7,112,220,21,55: BLOCK 137,7,90,132,55
4990 STRIP#3,0: PRINT#3,TO 6;"I/O device"; Blank$(1 TO 6): STRIP#3,7: INK#3,0
5000 PRINT#3," [F1] = flp1_ "
5010 PRINT#3, " [F2] = flp2_ "
5020 PRINT#3," [F3] = mdv1_ "
5030 PRINT#3, " [F4] = mdv2_ "
5040 PRINT#3," [F5] = other " : REMark ser1/ser2/etc., okay
5050 STRIP#3,2: INK#3,7: PRINT#3," ";Label$;" "
5060 GR=0: fenetre=1: Key2: PickOne
5070 SELect ON ke
5080 =27: fenetre=0: File
5090 =232, 70,102: Dvice$="flp1_": menu
5100 =236, 71,103: Dvice$="flp2_": menu
5110 =240, 77,109: Dvice$="mdv1_": menu
5120 =244, 78,110: Dvice$="mdv2_": menu
5130 =119, 87: Dvice$="win1_": menu
5140 =120, 88: Dvice$="win2_": menu
5150 =114, 82: Dvice$="ram1_": menu
5160 =116, 84: Dvice$="ram2_": menu
5170 =248: IPdev
5180 File
5190 END SELect : END DEFine devo
5210 DEFine PROCedure IPdev : REMark "other" I/O device
5220 BLOCK 54,10,162,100,7: stripe
5230 AT 10,27: INPUT Dvice$
5240 IF LEN(Dvice$)<>5 THEN GO TO 5220
5250 IF Dvice$(5)<>"_" THEN GO TO 5220
5260 IF Dvice$(4)<CHR$(49) OR Dvice$(4)>CHR$(56) THEN GO TO 5230: ELSE devo
5270 END DEFine IPdev
5290 DEFine PROCedure File: CLOSE#5: CLOSE#6: MoreFile: SelectFile: END DEFine
5310 DEFine PROCedure MoreFile: CLOSE#5: CLOSE#6
5320 IF GR=0: COLOR=7: STRAP=5: PEN=0
5330 IF GR=1: COLOR=31: STRAP=51: PEN=2
5340 CLScreen
5350 Cmd_Line: AT 1,7: STRIP 2: INK 7: PRINT" FILES ": stripe
5360 WINDOW#3,266,187,42,20
5370 PAPER#3,COLOR: BORDER#3,1,2: INK#3,0: CLS#3
5380 BLOCK 268,8,46,207,55: BLOCK 7,188,308,21,55
5390 PRINT#3," [F1] = ";: UNDER#3,1: PRINT#3,"O";: UNDER#3,0: PRINT#3,"pen a database for SEARCHing"
5400 PRINT#3," [F2] = ";: UNDER#3,1: PRINT#3,"C";: UNDER#3,0: PRINT#3,"reate a new database"
5410 PRINT#3," [F3] = ";: UNDER#3,1: PRINT#3,"D";: UNDER#3,0: PRINT#3,"evices (change)"
5420 BLOCK#3,262,45,0,63,7: PAPER#3,7
5430 PRINT#3," [F4] = s";: UNDER#3,1: PRINT#3,"W";: UNDER#3,0: PRINT#3,"itch ";Dvice$ & Sname$ & EXTen$
5440 BLOCK#3,262,45,0,83,COLOR: STRIP#3,COLOR: PRINT#3," [F5] = ";: UNDER#3,1: PRINT#3,"V";: UNDER#3,0: PRINT#3,"erify ";Dvice$ & Sname$ & EXTen$
5450 INK#3,7: STRIP#3,2: BLOCK#3,262,40,0,105,2
5460 PRINT#3," [F6] = ";: UNDER#3,1: PRINT#3,"R";: UNDER#3,0: PRINT#3,"eturn to ";Dvice$ & Sname$ & EXTen$
5470 STRIP#3,0: BLOCK#3,262,60,0,125,0
5480 PRINT#3," [F7] = ";: UNDER#3,1: PRINT#3,"S";: UNDER#3,0: PRINT#3,"creen_edit ";Dvice$ & Sname$ & EXTen$
5490 PRINT#3," [F8] = ";: UNDER#3,1: PRINT#3,"P";: UNDER#3,0: PRINT#3,"rinter Line Feeds ";: INK#3,5: PRINT#3, LnFd$;: INK#3,7: PRINT#3," / Margin ";: INK#3,5: PRINT#3,margin$
5500 INK#3,7: PRINT#3," [F9] = director";: UNDER#3,1: PRINT#3,"Y";: UNDER#3,0
5510 END DEFine MoreFile
5530 DEFine PROCedure SelectFile
5540 Key3: PickOne
5550 YourChoice=ke
5560 SELect ON YourChoice
5570 = 27: out
5580 =232, 111, 79: GR=1: Search
5590 =234, 114, 82: GR=1: reSHOW
5600 =236, 99, 67: GR=0: MoreFile: bop: xyz=0: MakeFile
5610 =238, 115, 83: GR=0: MakeLabel: CLS
5620 =240, 100, 68: GR=1: MoreFile: devo
5630 =242, 112, 80: GR=0: Set_Printer
5640 =244, 119, 87: GR=1: sWitch
5650 =248, 118, 86: CLScreen: COPY Dvice$ & Sname$ & EXTen$ TO con_438X201A42X31: GR=0: PAUSE
5660 =246, 121, 89: GR=1: direct: PAUSE
5670 END SELect
5680 File
5690 END DEFine SelectFile
5710 DEFine PROCedure sWitch : REMark change active Filename
5720 GR=1: MoreFile
5730 CLStrip
5740 AT 1,7: STRIP 2: INK 7: PRINT" NEW_NAME ": stripe
5750 BLOCK 200,12,104,90,0
5760 BLOCK 196,10,106,90,7
5770 STRIP#3,7: AT 9,17: INPUT' NEW Filename: '; Sname$
5780 IF LEN(Sname$)=0: Sname$="GADDRESS": BEEP 100,10
5790 IF LEN(Sname$)>8: Sname$="GADDRESS": BEEP 2000,20: GO TO 5720
5800 GR=0: File
5810 END DEFine New_Name
5830 DEFine PROCedure reSHOW: CLS: sedit: ReLabel: Show_DIF: END DEFine
5850 DEFine PROCedure ReLabel
5860 WINDOW 86,160,10,50
5870 FOR la=1 TO 10
5880 PRINT L$(la)
5890 NEXT la: END FOR la
5900 PRINT: PRINT
5910 FOR la=11 TO 13
5920 PRINT L$(la)
5930 NEXT la: WINDOW 86,40,260,170
5940 FOR la=14 TO 16
5950 PRINT L$(la)
5960 NEXT la
5970 END DEFine
5990 DEFine PROCedure direct: DIM dir$(384,24)
6000 DELETE Dvice$ & "FLIST_imp"
6010 OPEN_NEW#6,Dvice$ & "FLIST_imp"
6020 DIR#6,Dvice$: CLOSE#6
6030 OPEN_IN#7,Dvice$ & "FLIST_imp"
6040 FOR c=0 TO 383
6050 IF EOF(#7) THEN EXIT c
6060 INPUT#7,dir$(c): END FOR c: CLOSE #7: c=c-1
6070 CLS#3: PAPER#3,7: INK#3,0: PRINT#3
6080 FOR n=2 TO c
6090 dirY$=dir$(n)
6100 IF LEN(dirY$)>4 AND dirY$(LEN(dirY$)-3 TO LEN(dirY$))=="_exp": bop: PRINT#3,TO 2;dirY$
6110 NEXT n
6120 END DEFine
6130:
6140 CLScreen: CLStrip: bop
6150 AT 1,8: INK 0: STRIP 5: PRINT" CAPS LOCK ";: IF NOT PEEK_W(163976): PRINT "off ": ELSE : INK 2: PRINT "ON ": stripe
6160:
6170 REMark ******* PLAYTYPUS Software *******