home *** CD-ROM | disk | FTP | other *** search
- 10 ' *************************************************************
-
- ***** CASSETTE LABEL PRINTER *****
- 11 ' ***** 2/25/90 *****
-
- ***** (c) 1990 by Richard Altman -- All Rights Reserved *****
-
- *************************************************************
- 12 '
- 13 ' USER SUPPORTED
- 14 '
- 15 ' This program is user-supported software. It is copyrighted and cannot
- 16 ' be sold for profit (without the author's express written permission), but
- 17 ' it may be copied and distributed for free.
- 18 '
- 19 ' The SHAREWARE concept is a distribution method that gives the user the
- 20 ' opportunity to try a software program before buying. Its continued exist-
- 21 ' ence depends on each user paying for what he does, in fact, use.
- 22 '
- 23 ' If you find this program [CASSLBL.BAS] useful, please send the $20 (or
- 24 ' more) registration fee directly to the author:
- 25 '
- 26 ' Richard S. Altman -- P.O. Box 4388 -- Clearlake, CA 95422
- 27 '
- 28 ' Upon registration, you will receive a floppy diskette containing the
- 29 ' latest version of this program, as well as a printed manual and a COMPILED
- 30 ' version. You will also receive an ADDRESS LABEL program, a FREE calendar
- 31 ' printing program and other programs by the same author.
- 32 '
- 33 ' WHEN ORDERING, please be sure to indicate single or double density
- 34 ' disk drive, and the name of the program [CASSLBL.BAS]. Comments on pro-
- 35 ' grams are also most welcome!
- 36 '
- 37 ' Due to possible unforeseen circumstances, the above offer is subject
- 38 ' to change without notice.
- 39 '
- 40 ' SET UP VARIABLES: String: A$-F$
- 41 ' Integer: G-J, T-Z Single Precision: K-S
-
-
- 42 DEFSTR A-F:DEFINT G-J,T-Z:WIDTH 255:CLS=CHR$(26):PRINT CLS:C7=CHR$(7)
- 43 DIM F(24),LC(34),AT(34),AB(34),A1(34),A2(34),A3(34),AL(34),AR(34),A4(34)
- 44 CLR=CHR$(24):CX=CHR$(23):A=CHR$(34):LR$=" RETURN ":ESC=CHR$(27):FE=ESC+"="
- 45 CO=ESC+"B4":CF=ESC+"C4":EO=ESC+"B0":EF=ESC+"C0":FC=" >>>>>>>> "+CX
- 46 EL=ESC+"L":FOR X=1 TO 24:F(X)=FE+CHR$(X+31)+CHR$(32):NEXT:GOSUB 5020
- 47 DEF FNF(X,Y)=FE+CHR$(X+31)+CHR$(Y+31):CLN=STRING$(56,32)
- 48 DEF FNTITLE$(X,M$)=FNF(X,1)+STRING$((80-LEN(M$))/2,12)+M$:FA=F(23)+FC
- 49 DD=STRING$(79,45):FF=FNF(11,18)+CLN+C7+FNF(11,18):EE=STRING$(78,32)
- 50 F1="first line":F2="second line":F3="third line":F4="bottom line"
- 51 S$=STRING$(44,32)+STRING$(44,8):S1$=STRING$(45,32)+STRING$(45,8):F=" "
- 52 F8=F+STRING$(30,46)+"|"+STRING$(34,8):FY=" correct? (Y/N) "
- 53 FRR=" <RETURN> for ==blank== ? ":FR=FNF(16,15)+"PRESS"+FRR
- 54 F9=LEFT$(F8,33)+"......|"+STRING$(40,8):GOTO 100
- 55 '
- 60 ' Print box outline & title
- 61 PRINT CLS
- 62 L$=FNTITLE$(2," CASSETTE LABEL PROGRAM "):GOSUB 5065
- 63 PRINT EL CHR$(43)CHR$(42)CHR$(43)CHR$(181)CF' Top
- 64 PRINT EL CHR$(53)CHR$(32)CHR$(43)CHR$(42)' L Diag
- 65 PRINT EL CHR$(53)CHR$(191)CHR$(43)CHR$(181)' R Diag
- 66 PRINT EL CHR$(54)CHR$(32)CHR$(111)CHR$(32)' L Side
- 67 PRINT EL CHR$(54)CHR$(191)CHR$(111)CHR$(191)' R Side
- 68 PRINT EL CHR$(111)CHR$(32)CHR$(111)CHR$(191)CO' Bottom
- 69 RETURN
- 70 LPRINT ESC"E";ESC CHR$(34);CHR$(15);:RETURN:' Elite
- 72 LPRINT ESC"N";ESC CHR$(33);CHR$(15);:RETURN:' Pica--BOLD
- 74 LPRINT ESC"Q";ESC CHR$(34);CHR$(15);:RETURN:' Compressed
- 75 L$=FA:GOSUB 5065:PRINT" NEW ";:RETURN
- 80 PRINT F9;
- 82 LINE INPUT": ";FLN:LN=LEN(FLN):RETURN
- 85 RS=INT(RS):RS$=STR$(RS):RZ$=STRING$(43,32)+"C-":RETURN
- 90 GOSUB 6000:IF AK=CHR$(13) THEN LZ$=F+F:RETURN
- 91 IF AK="A" THEN LZ$="SIDE A":RETURN
- 92 IF AK="B" THEN LZ$="SIDE B":RETURN ELSE 90
- 95 '
- 100 ' Start program
- 105 GOSUB 60:PRINT FNTITLE$(5,"PROGRAM FEATURES:")+CF
- 110 PRINT FNF(8,5)"1 -- At the top of the label, you may print a MAXIMUM of ";
- 115 PRINT"3 lines.":GOSUB 70:PRINT FNF(10,5)"2 -- On the first line only, ";
- 120 PRINT"you may print the line in BOLD LETTERS."FNF(12,5)"3 -- ";
- 125 L$=" OPTIONAL: ":GOSUB 5065:PRINT" You may add "A"SIDE A/B"A;
- 130 PRINT" on the left side of the label."FNF(14,5)"4 -- ";:GOSUB 5065
- 135 PRINT" You may add the LENGTH on the right side."FNF(16,5)"5 -- ";
- 140 GOSUB 5065:PRINT" It is possible to print a single line at the bottom."
- 145 PRINT FNF(18,5)"6 -- ";:GOSUB 5065:PRINT" You may also SAVE/LOAD a ";
- 150 PRINT"label onto a Disk File."FNF(24,11)"Press <"CO;:L$=" ANY KEY "
- 155 GOSUB 5065:PRINT"> to start..."F;C7;:GOSUB 6000
- 160 PRINT F(22)CX:GOSUB 4500
- 165 GOSUB 60:GOTO 3500
- 170 IF XL<>0 THEN 700
- 200 ' Input the label data
- 210 GOSUB 60:PRINT FNF(7,5)"Input data for the ";:L$="first line"
- 220 GOSUB 5050:PRINT":"FNF(12,10)STRING$(52,46)
- 230 PRINT FNF(11,10)"Do you want the FIRST LINE in BOLD LETTERS? (Y/N)"F;
- 240 GOSUB 6050:IF AK="Y" OR AK=CHR$(13) THEN 350
- 300 ' First line regular
- 310 BOLD="N":PRINT FNF(11,10)CLN;FNF(12,10)CLN
- 320 PRINT FNF(12,18)STRING$(36,46)" (36 char. max.)"FNF(11,18);
- 330 LINE INPUT;LN$:L=LEN(LN$):IF L<3 OR L>36 THEN PRINT FF;:GOTO 330 ELSE 400
- 350 ' First line BOLD
- 360 BOLD="Y":PRINT FNF(11,10)CLN FNF(12,10)CLN
- 370 PRINT FNF(12,18)STRING$(30,46)" (";:L$=" BOLD ":GOSUB 5065
- 380 PRINT" 30 char. max.)"FNF(11,18);
- 390 LINE INPUT;LN$:L=LEN(LN$):IF L<3 OR L>30 THEN PRINT FF;:GOTO 390
- 400 ' 2nd and 3rd lines
- 410 LINE1$=LN$
- 420 LL$="second":GOSUB 450:LINE2$=LN$
- 430 LL$="third": GOSUB 450:LINE3$=LN$:GOTO 500
- 450 ' 2nd/3rd/Bottom lines
- 460 GOSUB 60:PRINT FNF(7,5)"Input data for the ";:L$=LL$+" line":GOSUB 5050
- 470 PRINT":"FNF(12,18)STRING$(36,46)" (36 char. max.)"FNF(11,18);
- 480 LINE INPUT;LN$:IF LEN(LN$)>36 THEN PRINT FF;:GOTO 480
- 490 RETURN
- 500 ' "SIDE 1," etc.
- 510 GOSUB 60:PRINT FNF(7,5)"Input for the ";:L$="SIDE #":GOSUB 5050:PRINT":"
- 520 PRINT FNF(11,15)"Enter <";:L$=" A ":GOSUB 5065:PRINT"> for "A"SIDE A"A
- 530 PRINT FNF(13,15)"Enter <";:L$=" B ":GOSUB 5065:PRINT"> for "A"SIDE B"A;FR;
- 540 GOSUB 90
- 550 ' Tape length
- 560 GOSUB 60:PRINT FNF(7,5)"Input for ";:L$="Tape length":GOSUB 5050:PRINT":"
- 570 PRINT FNF(11,15)"Enter <";:L$=" NUMBER ":GOSUB 5065:PRINT"> for Tape ";
- 575 PRINT"Length"FNF(13,22);:L$=" Example -- `60' for a C-60 tape. ":GOSUB 5065
- 580 PRINT FR:PRINT FNF(16,50);:LINE INPUT;RS$:RS=VAL(RS$):IF RS<5 THEN 600
- 585 GOSUB 85:IF RS>120 THEN PRINT FNF(16,50)STRING$(8,32);C7:GOTO 580
- 590 IF RS>99 THEN RZ$=RZ$+RIGHT$(RS$,3) ELSE RZ$=RZ$+RIGHT$(RS$,2)
- 600 ' Bottom line
- 610 LL$="bottom":GOSUB 450:LINE4$=LN$
- 700 ' Add spaces to lines
- 710 L=LEN(LINE1$):LB=36-L:IF BOLD="Y" THEN L1=30-L ELSE L1=36-L
- 720 L=LEN(LINE2$):L2=36-L:L=LEN(LINE3$):L3=36-L:L=LEN(LINE4$):L4=36-L
- 730 LB=LB\2+3:L1=L1\2+3:L2=L2\2+3:L3=L3\2+3:L4=L4\2+3
- 740 SB=LB+1:S1=L1+1:S2=L2+1:S3=L3+1:S4=L4+1:IF RT=9 THEN RT=0:RETURN
-
-
- 800 ' Check input
- 810 GOSUB 60:IF BOLD="Y" THEN L$=FNF(6,8)+" BOLD ":GOSUB 5065:PRINT">>>":B1=L$
- 815 PRINT FNF(6,20) STRING$(SB,32)LINE1$ STRING$(SB,32)
- 820 PRINT FNF(8,20) STRING$(S2,32)LINE2$ STRING$(S2,32)
- 825 PRINT FNF(10,20)STRING$(S3,32)LINE3$ STRING$(S3,32)
- 830 PRINT FNF(14,8)LZ$ FNF(14,26)RZ$
- 835 PRINT EL CHR$(76)CHR$(72)CHR$(76)CHR$(151)' Top
- 840 PRINT EL CHR$(81)CHR$(67)CHR$(76)CHR$(72)' L Diag 1
- 845 PRINT EL CHR$(81)CHR$(156)CHR$(76)CHR$(151)'R Diag 1
- 850 PRINT EL CHR$(81)CHR$(67)CHR$(90)CHR$(67)' L Side
- 855 PRINT EL CHR$(81)CHR$(156)CHR$(90)CHR$(156)'R Side
- 860 PRINT EL CHR$(90)CHR$(67)CHR$(95)CHR$(72)' L Diag 2
- 865 PRINT EL CHR$(90)CHR$(156)CHR$(95)CHR$(151)'R Diag 2
- 870 PRINT EL CHR$(95)CHR$(72)CHR$(95)CHR$(151)' Bottom
- 875 PRINT FNF(18,20)STRING$(S4,32)LINE4$ STRING$(S4,32)FNF(23,22);
- 880 IF RET=99 THEN RET=0:RETURN
- 885 L$=" IS THE ABOVE DATA CORRECT? (Y/N) ":GOSUB 5065:PRINT C7;
- 890 GOSUB 6050:IF AK="Y" OR AK=CHR$(13) THEN 2000
-
-
- 1000 ' Make corrections in Label
- 1010 PRINT F(6)" ":GOSUB 62:PRINT F(22)CX:L$=B1:GOSUB 5060
-
-
- 1050 GOSUB 1700:J=1:GOSUB 1500:PRINT F1;FY;
- 1060 GOSUB 6050:IF AK="N" THEN 1070 ELSE 1100
- 1070 GOSUB 75:L$=F1:GOSUB 5050:IF BOLD="Y" THEN PRINT F8; ELSE PRINT F9;
- 1080 GOSUB 82:IF BOLD="N" THEN 1090
- 1085 IF LN>30 THEN PRINT C7;:GOTO 1070 ELSE 1095
- 1090 IF LN>36 THEN PRINT C7;:GOTO 1070
- 1095 IF LN>3 THEN LINE1$=FLN:RT=9:GOSUB 700
-
-
- 1100 GOSUB 1600:J=2:GOSUB 1500:PRINT F2;FY;
- 1110 GOSUB 6050:IF AK="N" THEN 1120 ELSE 1150
- 1120 GOSUB 75:L$=F2:GOSUB 5050:GOSUB 80
- 1130 IF LN>36 THEN PRINT C7;:GOTO 1120
- 1140 IF LN>3 THEN LINE2$=FLN:RT=9:GOSUB 700
-
-
- 1150 GOSUB 1600:J=3:GOSUB 1500:PRINT F3;FY;
- 1160 GOSUB 6050:IF AK="N" THEN 1170 ELSE 1200
- 1170 GOSUB 75:L$=F3:GOSUB 5050:GOSUB 80
- 1180 IF LN>36 THEN PRINT C7;:GOTO 1170
- 1190 IF LN>3 THEN LINE3$=FLN:RT=9:GOSUB 700
-
-
- 1200 GOSUB 1600:J=4:GOSUB 1500:PRINT A"SIDE X"A" label "FY;
- 1210 GOSUB 6050:IF AK="N" THEN 1220 ELSE 1250
- 1220 GOSUB 5065:PRINT" A) for ";:L$="SIDE A":GOSUB 5050:PRINT" B) for ";
- 1230 L$="SIDE B":GOSUB 5050:PRINT" "FRR;:GOSUB 90
-
-
- 1250 GOSUB 1600:J=5:GOSUB 1500:PRINT A"TAPE LENGTH"A;FY;
- 1260 GOSUB 6050:IF AK="N" THEN 1270 ELSE 1300
- 1270 GOSUB 5065:PRINT" Enter <";:L$="NUMBER":GOSUB 5050:PRINT"> for Tape ";
- 1280 PRINT"Length -- "FNF(24,20)"Example -- `60' for a C-60 tape."FNF(23,48);
- 1285 LINE INPUT;RS$:RS=VAL(RS$):IF RS=0 THEN 1300
- 1290 GOSUB 85:IF RS>120 THEN 1270
- 1295 IF RS>99 THEN RZ$=RZ$+RIGHT$(RS$,3) ELSE RZ$=RZ$+RIGHT$(RS$,2)
-
-
- 1300 GOSUB 1600:J=6:GOSUB 1500:PRINT F4;FY;
- 1305 GOSUB 6050:IF AK="N" THEN 1310 ELSE 1325
- 1310 GOSUB 75:L$=F4:GOSUB 5050:GOSUB 80
- 1315 IF LN>36 THEN PRINT C7;:GOTO 1310
- 1320 IF LN>3 THEN LINE4$=FLN:RT=9:GOSUB 700
- 1325 GOTO 700
- 1500 ' Correction subroutine #1
- 1510 GOSUB 5010:RT=9:ON J GOSUB 1730,1740,1750,1760,1770,1785
- 1520 RT=0:GOSUB 5015:L$=FA:GOSUB 5065:PRINT" Is the ";:RETURN
- 1600 ' Correction subroutine #2
- 1610 GOSUB 5010:GOSUB 5030:RT=9:ON J GOSUB 1730,1740,1750,1760,1770,1785
- 1620 RT=0:GOSUB 5015:GOSUB 5035:GOSUB 5025
- 1630 FOR X=6 TO 18 STEP 2:PRINT FNF(X,64)F;F:NEXT:GOTO 5020
- 1700 ' Correction Screen subroutine
- 1710 GOSUB 5010:GOSUB 5030:FOR X=5 TO 11:PRINT FNF(X,19)S1$:NEXT
- 1720 FOR X=17 TO 19:PRINT FNF(X,19)S1$:NEXT
- 1730 PRINT FNF(6,20) S$;STRING$(SB,32)LINE1$;STRING$(SB,32):IF RT=9 THEN RETURN
- 1740 PRINT FNF(8,20) S$;STRING$(S2,32)LINE2$;STRING$(S2,32):IF RT=9 THEN RETURN
- 1750 PRINT FNF(10,20)S$;STRING$(S3,32)LINE3$;STRING$(S3,32):IF RT=9 THEN RETURN
- 1760 PRINT FNF(14,7)" "LZ$" ":IF RT=9 THEN RETURN
- 1770 PRINT FNF(14,69)" "RIGHT$(RZ$,LEN(RZ$)-43)" ";
- 1775 IF LEN(RZ$)=47 THEN PRINT" " ELSE PRINT
- 1780 IF RT=9 THEN RETURN
- 1785 PRINT FNF(18,20)S$;STRING$(S4,32)LINE4$;STRING$(S4,32):IF RT=9 THEN RETURN
- 1790 GOSUB 5015:GOTO 5035
-
-
- 2000 ' Print Labels
- 2010 L$=F(23)+FC:GOSUB 5065
- 2020 PRINT" How many LABELS (Max.=50) do you wish to print"F;F" [X to ";
- 2030 PRINT"check]"STRING$(20,8);:INPUT QN$:QN=VAL(QN$):IF QN>50 THEN 2000
- 2040 IF QN$="X" OR QN$="x" THEN 800
- 2050 IF QN$="0" THEN 3000
- 2060 PRINT F(22)CX:IF QN<2 THEN QN=1:GOSUB 2200:GOTO 3000
- 2070 FOR Q=1 TO QN
- 2075 PRINT FNF(23,20)CF"Label #"Q;SPC(8)"Press <ANY KEY> to pause."F;CO;
- 2080 IF INKEY$<>"" THEN 2500
- 2090 GOSUB 2200:FOR T=1 TO 500:NEXT T,Q:GOTO 3000
- 2200 ' Printing Subroutine
- 2210 GOSUB 70:LPRINT EL"000";:IF BOLD="Y" THEN GOSUB 72 ELSE GOSUB 70
- 2220 LPRINT STRING$(L1,32)LINE1$:GOSUB 70
- 2230 LPRINT STRING$(L2,32)LINE2$
- 2240 LPRINT STRING$(L3,32)LINE3$:LPRINT:LPRINT:GOSUB 74:LPRINT" "LZ$;RZ$
- 2250 LPRINT:LPRINT:GOSUB 70:LPRINT STRING$(L4,32)LINE4$:LPRINT:LPRINT:RETURN
- 2500 ' Interrupt Printing
- 2510 GOSUB 60:L$=FNTITLE$(7," PRINTING INTERRUPTED "):GOSUB 5065
- 2520 PRINT FNF(10,15)"The PRINTER will pause when it finishes the last Label."
- 2530 PRINT FNF(12,15)"Press <";:L$=" Q ":GOSUB 5065
- 2540 PRINT"> to STOP (QUIT) printing."
- 2550 PRINT FNF(16,15)"Press any other key to continue..."F;:GOSUB 6000
- 2560 IF AK="Q" THEN 3000 ELSE RET=99:GOSUB 800:GOTO 2090
-
-
- 3000 ' Printing is finished -- What next?
- 3005 GOSUB 60:L$=LR$
- 3010 PRINT FNF(6,15)"Press <";:GOSUB 5065:PRINT"> to print some more Labels.";
- 3015 PRINT FNF(9,15)"OTHER OPTIONS:":L$=FNF(11,21)+" 1 ":GOSUB 5065
- 3020 L$="Old Label":PRINT" --- to start over (NEW Label/ERASE ";:GOSUB 5050
- 3025 PRINT")":L$=FNF(13,21)+" 2 ":GOSUB 5065
- 3030 PRINT" --- to change/check the CURRENT Label.":L$=FNF(15,21)+" 3 "
- 3035 GOSUB 5065:PRINT" --- to SAVE the Label on Disk File."
- 3040 L$=FNF(17,21)+" Q ":GOSUB 5065:PRINT" --- to QUIT to ";:L$="System"
- 3045 GOSUB 5050:PRINT"."FNF(6,62);
- 3050 GOSUB 6000:IF AK="Q" THEN 3400
- 3055 IF AK=CHR$(13) THEN RET=99:GOSUB 800:L$=F(22)+FC:GOSUB 5065:GOTO 2020
- 3060 IF AK="1" THEN 3200
- 3065 IF AK="2" THEN 800
- 3070 IF AK="3" THEN GOSUB 60:GOTO 4000 ELSE 3050
-
-
- 3200 ' --- NEW Label
- 3210 CLOSE:LX=0:XL=0:GOTO 165
-
-
- 3400 ' --- QUIT to System ?
- 3410 GOSUB 60:PRINT FNF(12,20)"Are you ready to QUIT to ";:L$="System"
- 3420 GOSUB 5050:PRINT"? (Y/N)"F;C7;:GOSUB 6000
- 3430 IF AK="Y" THEN PRINT CLS:SYSTEM ELSE 3000
-
-
- 3500 ' Load LABELS from Disk File
- 3505 L$=FNTITLE$(5," INPUT LABELS from DISK FILE "):GOSUB 5065:XL=0:LQ=21
- 3510 PRINT CF:FOR X=8 TO LQ-5:PRINT FNF(X,2)EE:NEXT:PRINT F(LQ)CX;CO
- 3515 CLOSE:OPEN "I",#1,"CASSLBL.DAT":LL=-15:L=8
- 3520 INPUT#1,LC(0),AT(0),AB(0),A1(0),A2(0),A3(0),AL(0),AR(0),A4(0)
- 3525 COUNT!=LC(0):FOR X=1 TO COUNT!:LL=LL+19:IF LL>61 THEN LL=4:L=L+1
- 3530 INPUT #1,LC(X),AT(X),AB(X),A1(X),A2(X),A3(X),AL(X),AR(X),A4(X)
- 3535 PRINT FNF(L,LL);USING"##";X;:PRINT": "AT(X);
- 3540 NEXT:LQ=(COUNT!-1)\4+13:IF LQ<15 THEN LQ=15
- 3545 PRINT F(LQ-3)C7;STRING$(80,131);CX
- 3550 PRINT F(LQ) ">>>>> Input the NUMBER of the file you've chosen --- "
- 3555 PRINT F(LQ+2)">>>>> Press <"EO;LR$;EF"> to input a NEW Label, or ";
- 3560 PRINT"press <"EO" X "EF"> to Delete a File."FNF(LQ,55);:INPUT LX$
- 3565 PRINT CX:XL=VAL(LX$):IF LX$="X" OR LX$="x" THEN 3585
- 3570 IF XL=0 THEN 170 ELSE IF XL>COUNT! THEN 3510
- 3575 BOLD=AB(XL):LINE1$=A1(XL):LINE2$=A2(XL):LINE3$=A3(XL):LZ$=AL(XL)
- 3580 RZ$=AR(XL):LINE4$=A4(XL):GOTO 170
- 3585 PRINT F(LQ)CX">>>>> Input the NUMBER of the file you wish to DELETE -- ";
- 3590 INPUT LX:XL=LX:LC=LC(0):IF XL=0 OR XL>LC THEN 3510
- 3595 IF XL>2 THEN 3610
- 3600 PRINT F(LQ+2)">>>>> ";:L$=" Files #1 and #2 cannot be deleted. "
- 3605 GOSUB 5065:PRINT" Press <ANY KEY> to continue. "C7;:GOSUB 6000:GOTO 3510
- 3610 L$=AT(XL):PRINT F(LQ+2)">>>>> "XL;CHR$(8)": "A;:GOSUB 5050
- 3615 PRINT A" is the file to be DELETED."F;CX;:IF M$="**" THEN RETURN
- 3620 L$=" Correct (Y/N) ?? ":GOSUB 5065:PRINT C7;
- 3625 GOSUB 6000:LC=LC(0):IF AK="Y" THEN 3630 ELSE 3510
- 3630 M$="**":GOSUB 3610:M$=A
- 3635 FOR X=XL TO LC+1:AT(X)=AT(X+1):AB(X)=AB(X+1):A1(X)=A1(X+1):A2(X)=A2(X+1)
- 3640 A3(X)=A3(X+1):AL(X)=AL(X+1):AR(X)=AR(X+1):A4(X)=A4(X+1):NEXT
- 3645 LC=LC-1:FOR X=0 TO LC:LC(X)=LC:NEXT
- 3650 CLOSE:OPEN "O",#1,"CASSLBL.DAT":FOR X=0 TO LC
- 3655 WRITE#1,LC(X),AT(X),AB(X),A1(X),A2(X),A3(X),AL(X),AR(X),A4(X):NEXT
- 3660 GOTO 3510
-
-
- 4000 ' Save LABELS onto Disk file
- 4005 L$=FNTITLE$(7," SAVE LABELS onto DISK FILE "):GOSUB 5065:AK=""
- 4010 IF COUNT!<32 THEN 4030
- 4015 PRINT FNF(12,14)"You have reached the MAXIMUM number of Labels (32) ..."
- 4020 PRINT FNF(14,14)"Press <ANY KEY> to return to Menu."F;C7;
- 4025 GOSUB 6000:GOTO 3000
- 4030 PRINT FNF(10,10)"1st line of Label:"F;LINE1$
- 4035 PRINT FNF(11,10)"2nd line of Label:"F;LINE2$
- 4040 PRINT FNF(12,10)"3rd line of Label:"F;LINE3$
- 4045 PRINT FNF(13,10)"4th line of Label:"F;LINE4$
- 4050 PRINT FNF(16,10)"Input the TITLE you wish to call this Label ---":CLOSE #1
- 4055 PRINT FNF(18,10)"Press <RETURN> to cancel this option and return to Menu."
- 4060 PRINT FNF(16,59);:LINE INPUT ATITLE:LA=LEN(ATITLE)
- 4065 IF LA<3 OR LA>15 THEN 3000
- 4070 FOR X=10 TO 18:PRINT FNF(X,2)EE:NEXT
- 4075 PRINT FNF(12,10)"Saving the label onto Disk File.":L$=ATITLE
- 4080 PRINT FNF(14,10)"Title = "A;:GOSUB 5050:PRINT A;F;
- 4085 OPEN "I",#1,"CASSLBL.DAT":INPUT#1,LC,AT,AB,A1,A2,A3,AL,AR,A4
- 4090 COUNT!=LC+1:FOR X=1 TO LC
- 4095 INPUT#1,LC(X),AT(X),AB(X),A1(X),A2(X),A3(X),AL(X),AR(X),A4(X):NEXT
- 4100 CLOSE:LC=COUNT!:FOR X=0 TO 32:LC(X)=LC:NEXT:AT(LC)=ATITLE
- 4105 OPEN "O",#1,"CASSLBL.DAT"
- 4110 AB(LC)=BOLD:A1(LC)=LINE1$:A2(LC)=LINE2$:A3(LC)=LINE3$
- 4115 AL(LC)=LZ$:AR(LC)=RZ$:A4(LC)=LINE4$:FOR X=0 TO LC
- 4120 WRITE #1,LC(X),AT(X),AB(X),A1(X),A2(X),A3(X),AL(X),AR(X),A4(X):NEXT
- 4125 CLOSE:GOTO 3000
-
-
- 4500 ' Check PRINTER alignment
- 4510 GOSUB 60:L$=FNTITLE$(6," CHECK PRINTER LINE SETTING ")+CF:GOSUB 5065
- 4520 AK="":WIDTH LPRINT 96
- 4530 PRINT FNF(10,12)"Position PRINT HEAD at ";:L$="top":GOSUB 5050:K$=INKEY$
- 4540 PRINT" of Cassette Label.":L$=FNF(12,12)+"Manually":GOSUB 5050
- 4550 PRINT" reverse the platen one `click' for best position.":L$=LR$
- 4560 PRINT FNF(16,12)"Press <";:GOSUB 5065:PRINT"> when FINISHED."F;CO;C7;
- 4570 GOSUB 6000:IF AK=CHR$(13) OR AK="F" THEN RETURN ELSE 4570
-
-
- 5000 ' ***** Misc. Subroutines
-
-
- 5010 PRINT ESC "B0";:RETURN:' Inverse Video ON/OFF
- 5015 PRINT ESC "C0";:RETURN
- 5020 PRINT ESC "B4";:RETURN:' Turn Cursor ON/OFF
- 5025 PRINT ESC "C4";:RETURN
- 5030 PRINT ESC "B1";:RETURN:' Reduced Intensity ON/OFF
- 5035 PRINT ESC "C1";:RETURN
- 5040 PRINT ESC "B3";:RETURN:' Underline ON/OFF
- 5045 PRINT ESC "C3";:RETURN
- 5050 GOSUB 5040:PRINT L$;:GOTO 5045:' Underline L$ -----
- 5060 GOSUB 5030:GOSUB 5065:GOTO 5035:' Revrs. Video L$
- 5065 PRINT EO;L$;EF;:RETURN:' BRIGHT Video L$
-
-
- 6000 ' INKEY$ Subroutines
- 6010 K$=INKEY$:AK=""
- 6020 AK=INKEY$:IF AK="" THEN 6020
- 6030 IF ASC(AK)>90 THEN AK=CHR$(ASC(AK)-32)
- 6040 RETURN
- 6050 GOSUB 6010:IF AK="Y" OR AK="N" OR AK=CHR$(13) THEN RETURN ELSE 6050
- 6060 '
- K)>90 THEN AK=CHR$(ASC(AK)-32)
- 6040 RETURN
- 6050 GOSUB 6010:IF AK="Y" OR AK="N" OR AK=CHR$(13) T