0REM"
10REM" Written By 1st June '89
20MODE7
30VDU23;8202;0;0;0;
40*FX4,2
50*FX200,3
60DIM LineA$(13),LineB$(13)
70MTitleA$=STRING$(32,"."):TitleA$=ST
RING$(20,"."):FORF=1TO13:LineA$(F)=STRIN
G$(22,"."):NEXT
80MTitleB$=STRING$(32,"."):TitleB$=ST
RING$(20,"."):FORF=1TO13:LineB$(F)=STRIN
G$(22,"."):NEXT
90Blank$=STRING$(10," ")
100PROCsurrounds
110PROCins
120VDU15
130CLS:PROCscreen(65)
140MTitleA$=FNinput(1,1,32)
150TitleA$=FNinput(11,3,20)
160FORF=1TO13:LineA$(F)=FNinput(11,F+4
,22):NEXT
170PRINTTAB(0,19)" Do you want to alte
r anything ? ";:REPEAT:G=GET:UNTILG=89OR
G=121ORG=78ORG=110:PRINTCHR$G;:IFG=89ORG
=121PROCchange(65)
180CLS:PROCscreen(66)
190MTitleB$=FNinput(1,1,32)
200TitleB$=FNinput(11,3,20)
210FORF=1TO13:LineB$(F)=FNinput(11,F+4
,22):NEXT
220PRINTTAB(0,19)" Do you want to alte
r anything ? ";:REPEAT:G=GET:UNTILG=89OR
G=121ORG=78ORG=110:PRINTCHR$G;:IFG=89ORG
=121PROCchange(66)
230CLS:PRINT" Is everything ok ? ";:RE
PEAT:G=GET:UNTILG=89ORG=121ORG=78ORG=110
:PRINTCHR$G:IFG=78ORG=110PROCchange(1)
240CLS:PRINT" Please turn printer on a
nd then press any key";:D=GET
250MODE3:VDU23;8202;0;0;0;:VDU2
260VDU1,27,1,77
270PRINTBlank$;STRING$(49,"-")
280PRINTBlank$;"|A ";TitleA$;" |B ";Ti
tleB$;" |"
290PRINTBlank$;"|";STRING$(23,"-");"|"
;STRING$(23,"-");"|"
300FORF=4TO16:PRINTBlank$;"| ";LineA$(
F-3);"| ";LineB$(F-3);"|":NEXT
310PRINTBlank$;"|";STRING$(47,"-");"|"
320PRINTBlank$;"| A ";MTitleA$;ST
RING$(7," ");"|"
330PRINTBlank$;"| B ";MTitleB$;ST
RING$(7," ");"|"
340PRINTBlank$;"|";STRING$(47,"-");"|"
350PRINTBlank$;"|";STRING$(33," ");"Wr
itten by |"
360PRINTBlank$;"|";STRING$(33," ");"R.
Bathgate 89 |"
370PRINTBlank$;STRING$(49,"-")
380VDU3
390PRINT''" Press any key to co
ntinue";:D=GET:MODE7:VDU23;8202;0;0;0;:P
ROCsurrounds:PRINT" Do you want a second
copy ? ";:REPEAT:G=GET:UNTILG=89ORG=121
ORG=78ORG=110:PRINTCHR$G:IFG=89ORG=121GO
TO230
400PRINT'" Again ? ";:REPEAT:G=GET:UNT
ILG=89ORG=121ORG=78ORG=110:PRINTCHR$G:IF
G=89ORG=121RUN ELSE CALL!-4
410DEFPROCsurrounds
420FORF=0TO1:PRINTTAB(0,F);"
430PRINTTAB(0,2);" STRING
"t"
440PRINTTAB(12,2);"R.Bathgate
450FORF=3TO23:PRINTTAB(0,F);" ";TAB(
37,F);" NEXT
460PRINTTAB(0,24);" STRING
;">";
470VDU28,3,23,36,4
480ENDPROC
490DEFPROCscreen(s%)
500PRINTTAB(0,0);" Side: ";CHR$s%'" ";
510PRINTTAB(0,2);" STRING
520PRINTTAB(0,3);" Title : ";
530PRINTTAB(0,4);" STRING
540FORF=5TO17:PRINTTAB(0,F);" Line ";F
-4;TAB(9,F);": ";:NEXT
550PRINTTAB(0,18);" STRING
560IFs%=65PRINTTAB(1,1);MTitleA$;TAB(1
1,3);TitleA$:FORF=1TO13:PRINTTAB(11,F+4)
;LineA$(F):NEXT
570IFs%=66PRINTTAB(1,1);MTitleB$;TAB(1
1,3);TitleB$:FORF=1TO13:PRINTTAB(11,F+4)
;LineB$(F):NEXT
580ENDPROC
590DEFFNinput(x%,y%,l%)
600work$=""
610PRINTTAB(0,y%);">";
620FORL=1TOl%
630G=GET:IFG=127ANDLEN(work$)>0THENwor
k$=LEFT$(work$,LEN(work$)-1):PRINTTAB(x%
,y%);CHR$127;".":x%=x%-1:L=L-1:GOTO630
640IFG=127ANDLEN(work$)=0GOTO630
650IFG=13L=l%:IFG=13ANDLEN(work$)<l%TH
ENPRINTTAB(x%,y%);STRING$(l%-LEN(work$),
" "):work$=work$+STRING$(l%-LEN(work$),"
"):GOTO690
660work$=work$+CHR$G
670PRINTTAB(x%,y%);CHR$G
680x%=x%+1
690NEXT
700IFy%<>1PRINTTAB(0,y%)" ";ELSEPRINTT
AB(0,y%)" ";
710=work$
720DEFPROCchange(s%)
730IFs%=1 ab%=1:CLS:PRINT'" Which side
(A/B) ? ";:REPEAT:s%=GET:UNTILs%=65ORs%
=66:PRINTCHR$s%:ELSE ab%=s%
740CLS
750PROCscreen(s%)
760PRINTTAB(0,19);" Move cursor, then
press Space";
770PRINTTAB(0,1);">":x=1:y=1
780*FX4,1
790REPEAT:G=GET:UNTILG=138ORG=139ORG=3
2:IFG=32GOTO920
800IFG=138 y=y+1
810IFG=139 y=y-1
820IFy<1 y=17:x=1
830IFy>17 y=1:x=17
840IFy=2ANDy>x y=3:x=1
850IFy=4ANDy<x y=3:x=5
860IFy=4ANDy>x y=5:x=3
870IFy=2ANDy<x y=1:x=3
880PRINTTAB(0,y);">"
890IFx<>1PRINTTAB(0,x);" " ELSEPRINTTA
B(0,1);" "
900x=y
910GOTO790
920*FX4,2
930PRINTTAB(0,19);" Type in new line
";
940IFy=1ANDs%=65 PRINTTAB(1,1);STRING$
(32,"."):MTitleA$=FNinput(1,1,32):ELSEIF
y=1ANDs%=66 PRINTTAB(1,1);STRING$(32,"."
):MTitleB$=FNinput(1,1,32)
950IFy=3ANDs%=65 PRINTTAB(11,3);STRING
$(20,"."):TitleA$=FNinput(11,3,20):ELSEI
Fy=3ANDs%=66 PRINTTAB(11,3);STRING$(20,"
."):TitleB$=FNinput(11,3,20)
960IFy>=5ANDy<=17ANDs%=65 PRINTTAB(11,
y);STRING$(22,"."):LineA$(y-4)=FNinput(1
1,y,22):ELSE IFy>=5ANDy<=17ANDs%=66 PRIN
TTAB(11,y);STRING$(22,"."):LineB$(y-4)=F
Ninput(11,y,22)
970PRINTTAB(0,19)" Do you want to alte
r any more ? ";:REPEAT:G=GET:UNTILG=89OR
G=121ORG=78ORG=110:PRINTCHR$G:IFG=89ORG=
121s%=ab%:GOTO730ELSEENDPROC
980DEFPROCins
990VDU14
1000PRINT''" Do you require instruction
s ? ";:REPEAT:G=GET:UNTILG=89ORG=121ORG=
78ORG=110:PRINTCHR$G:IFG=78ORG=110ENDPRO
C
1010CLS:PRINT'" This program will work
with any 'Epson compatible' printer, o
r alternatively any printer that is c
apable or printing 12 chars per inch by
modifying line 300 to the appropriate c
ommand."
1020PRINT'" The first line you edit is
what appears on the base of the
cassette, ie to tell you gener
ally whats on it. The title is self exp
lanatory, then you have a maximum of
13 lines for the individual details.
"
1030PRINT'" The cursor at the side jus
t shows which line you are
currently editing."
1040PRINT'" The number of dots indicat
es how long each line can be. If you
want a line to be blank, just press
Return."
1050PRINT'" After you've edited side A
, you can alter anything if you want.
Just use the cursor keys to move to th
e correct line, press Space and type in
the new line."
1060PRINT'" Once you've cleared up any
errors you move onto side B and
edit that in the same way."
1070PRINT'" Finally, once all errors h
ave been changed, make sure your
printer is switched on and the inlay
will be printed out to the right size.
All you need to do now is cut it out
, and fold along the dotted lines!"
1080PRINT'" Press any key to continue":
G=GET
1090ENDPROC