10 REM ******************
   20 REM    Card Compiler
   30 REM By Timothy Surtell
   40 REM ******************
   50 REM NC200 Version 3.5 (Condensed)
   60 REM Downloaded from Tim's NC Users' Site
   70 REM http://www.ncus.org.uk
   80 F$=" ":P=0:PL=65:EJECT=TRUE:SPACE=1
   90 ONERRORVDU15:CLOSE#0:PROCIERROR:OSCLI("QUIT")
  100 CLS:PROCBOX(20,6,60,8):PRINTTAB(21,8)"Please wait...Loading printer setup"
  110 DIMID(30),L$(30),s(30,16),d(30,16),S1(30),S2(30),STY$(16),NON1(16),NON2(16),NON3(16),NOF1(16),NOF2(16),NOF3(16),IN$(40)
  120 FORI=1 TO 30:S1(I)=35:S2(I)=0:NEXT
  130 K=OPENIN("PRINTER.CCP")
  140 INPUT#K,P$,NS
  150 FORI=1 TO 16:INPUT#K,STY$(I),NON1(I),NON2(I),NON3(I),NOF1(I),NOF2(I),NOF3(I):NEXT
  160 CLOSE#0
  170 ONERRORVDU15:PROCQUIT:GOTO170
  180 PROCHEADER("Main Menu")
  190 PROCBOX(0,8,26,14):PROCBOX(53,8,79,14):PROCBOX(0,1,26,7):PROCBOX(27,1,52,7):PROCBOX(53,1,79,7)
  200 MOVE206,94DRAW268,94DRAW247,115DRAW206,94
  210 PRINTTAB(36,2)CHR$17"C"CHR$18"ard"TAB(36,3)CHR$17"C"CHR$18"ompiler"TAB(28,5)"Business Card Program."TAB(28,6)"NC200 Version 3.5"TAB(28,7)"Programmed By T.Surtell."
  220 IFF$<>" "PRINTTAB(28,10)"Press RED, GREEN, BLUE,"TAB(28,11)"or WHITE to continue,"TAB(28,12)"or press "CHR$17"Stop"CHR$18" to exit..."
  230 IFF$=" "PRINTTAB(28,10)"Press RED or BLUE to"TAB(28,11)"continue, or press "CHR$17"Stop "CHR$18TAB(28,12)"to exit..."
  240 PRINTTAB(10,3)"To "CHR$17"Edit"CHR$18TAB(4,4)"Your Business Cards"TAB(8,5)"Press  RED."
  250 IFF$<>" "PRINTTAB(62,3)"To  "CHR$17"Print"CHR$18TAB(57,4)"Your Business Cards"TAB(60,5)"Press  GREEN."
  260 IFF$=" "PRINTTAB(62,2)"To  "CHR$17"Print"CHR$18TAB(57,3)"Your Business Cards"TAB(60,4)"Press  GREEN."TAB(57,6)"No cards  to print!":PROCBORD(56,8,76,10)
  270 PRINTTAB(7,10)"To  "CHR$17"Save/Load"CHR$18TAB(4,11)"Your Business Cards"TAB(8,12)"Press BLUE."
  280 IFF$<>" "PRINTTAB(63,10)"To "CHR$17"View"CHR$18TAB(57,11)"Your Business Cards"TAB(60,12)"Press  WHITE."
  290 IFF$=" "PRINTTAB(63,9)"To "CHR$17"View"CHR$18TAB(57,10)"Your Business Cards"TAB(60,11)"Press  WHITE."TAB(57,13)"No cards   to view!":PROCBORD(56,1,76,3)
  300 IFP$="***No Printer***"PRINTTAB(5,15)"***There is no printer setup- press S to get to the setup menu...***";
  310 G=INKEY(10)
  320 PROCTIME
  330 IFG=242PROCEDITING:GOTO170
  340 IFG=243ANDF$<>" "PROCPRINT:GOTO170
  350 IFG=243ANDF$=" "VDU7
  360 IFG=241PROCFILE:GOTO170
  370 IFG=240ANDF$<>" "PROCVIEW:GOTO170
  380 IFG=240ANDF$=" "VDU7
  390 IFG=83ANDP$="***No Printer***"PROCSETUP:GOTO170
  400 IFG=222PROCPASS:GOTO170
  410 GOTO310
  420 END
  430 DEF PROCHEADER(H$)
  440 CLS:VDU14:PRINTSPC80TAB(0,0)"NC200 Card Compiler ";CHR$186;" ";H$TAB(41,0);CHR$186;" File in memory : ";
  450 IFF$=" "PRINT;"**None**"ELSEPRINT;F$
  460 PRINTTAB(69,0)CHR$186
  470 VDU15
  480 ENDPROC
  490 DEF PROCBOX(X1,Y1,X2,Y2)
  500 X1=(X1+1)*6-3:X2=(X2+1)*6-3:Y1=Y1*8+4:Y2=Y2*8+4
  510 MOVEX1-3,Y1-6:PLOT103,X2+3,Y2+3
  520 MOVEX1,Y1:DRAWX2,Y1:DRAWX2,Y2:DRAWX1,Y2:DRAWX1,Y1
  530 MOVEX1+1,Y1-1:DRAWX2+1,Y1-1:DRAWX2+1,Y2-1
  540 MOVEX1+2,Y1-2:PLOT21,X2+2,Y1-2:PLOT21,X2+2,Y2-2
  550 ENDPROC
  560 DEF PROCBORD(X1,Y1,X2,Y2)
  570 X1=(X1+1)*6-3:X2=(X2+1)*6-3:Y1=Y1*8+4:Y2=Y2*8+4
  580 MOVEX1,Y1+2:DRAWX2,Y1+2:DRAWX2,Y2-2:DRAWX1,Y2-2:DRAWX1,Y1+2
  590 ENDPROC
  600 DEF PROCTIME
  610 VDU14:PRINTTAB(72,0)RIGHT$(TIME$,8):VDU15
  620 ENDPROC
  630 DEF PROCTEXT1
  640 N=8
  650 FORI=S TO S+5
  660   IFID(I)=0PRINTTAB(2,N)SPC35
  670   IFID(I)=1PRINTTAB(2,N)SPC35TAB(2,N)L$(I)
  680   IFID(I)=2PRINTTAB(2,N)SPC35TAB(2,N)CHR$17"***Logo***"CHR$18
  690   N=N+1
  700 NEXT
  710 ENDPROC
  720 DEF PROCTEXT2
  730 N=10
  740 FORI=S TO S+3
  750   IFd(L,I)=1VDU17:PRINTTAB(2,N)SPC35TAB(2,N)STY$(I):VDU18 ELSE PRINTTAB(2,N)SPC35TAB(2,N)STY$(I)
  760   N=N+1
  770 NEXT
  780 ENDPROC
  790 DEF PROCTEXT3
  800 N=12
  810 FORI=S TO S+1
  820   PRINTTAB(3,N)SPC34TAB(3,N)STY$(I)
  830   N=N+1
  840 NEXT
  850 PRINTTAB(44,12)SPC30TAB(44,12)"On Numbers : ";NON1(S+(Y-12));",";NON2(S+(Y-12));",";NON3(S+(Y-12))
  860 PRINTTAB(43,13)SPC31TAB(43,13)"Off Numbers : ";NOF1(S+(Y-12));",";NOF2(S+(Y-12));",";NOF3(S+(Y-12))
  870 ENDPROC
  880 DEF PROCTEXT4
  890 N=7
  900 FORI=S TO S+6
  910   IFI=0PRINTTAB(2,N)CHR$218;STRING$(35,CHR$196);CHR$191:GOTO960
  920   IFI=NUM+1PRINTTAB(2,N)CHR$192;STRING$(35,CHR$196);CHR$217:GOTO960
  930   IFI<NUM+1ANDID(I)=0PRINTTAB(2,N)CHR$179;SPC35CHR$179
  940   IFI<NUM+1ANDID(I)=1PRINTTAB(2,N)CHR$179;SPCS1(I);L$(I);SPCS2(I);CHR$179
  950   IFI<NUM+1ANDID(I)=2PRINTTAB(2,N)CHR$179;SPC12CHR$17"***Logo.***"CHR$18SPC12CHR$179
  960   N=N+1
  970 NEXT
  980 ENDPROC
  990 DEF PROCINPUT(X,Y,LIM)
 1000 PRINTTAB(X,Y)STRING$(LIM+1,CHR$176)CHR$14TAB(X,Y)CHR$176CHR$15:XX=1:FORI=1 TO LIM+1:IN$(I)="":NEXT:X=X-1
 1010 IFP=2FORI=1 TO LEN(VAR$):IN$(I)=MID$(VAR$,I,1):PRINTTAB(X+I,Y)IN$(I):NEXT:VDU14:PRINTTAB(X+XX,Y)IN$(1):VDU15 ELSE VAR$=""
 1020 G=INKEY(10)
 1030 PROCTIME
 1040 IFG=-1GOTO1020
 1050 IFG=13PROCVAR:ENDPROC
 1060 IFG=242ANDXX>1ANDIN$(XX)=""PRINTTAB(X+XX,Y)CHR$176:XX=XX-1:VDU14:PRINTTAB(XX+X,Y)IN$(XX):VDU15:GOTO1020
 1070 IFG=242ANDXX>1ANDIN$(XX)<>""PRINTTAB(X+XX,Y)IN$(XX):XX=XX-1:VDU14:PRINTTAB(XX+X,Y)IN$(XX):VDU15:GOTO1020
 1080 IFG=243ANDIN$(XX+1)=""ANDIN$(XX)<>""ANDXX<LIM+1PRINTTAB(X+XX,Y)IN$(XX):XX=XX+1:VDU14:PRINTTAB(XX+X,Y)CHR$176:VDU15:GOTO1020
 1090 IFG=243ANDIN$(XX+1)<>""ANDXX<LIM+1PRINTTAB(X+XX,Y)IN$(XX):XX=XX+1:VDU14:PRINTTAB(XX+X,Y)IN$(XX):VDU15:GOTO1020
 1100 IFG=242ORG=243GOTO1020
 1110 IFG=127PROCDEL:GOTO1020
 1120 PROCINS
 1130 GOTO1020
 1140 DEF PROCINS
 1150 I=LIM+1:REPEAT:I=I-1:UNTILIN$(I)<>""ORI=1
 1160 IFI=LIM ENDPROC
 1170 FORZ=I TO XX STEP -1:IN$(Z+1)=IN$(Z):NEXT
 1180 IN$(XX)=CHR$G
 1190 IFP=0ORP=2FORZ=XX TO I+1:PRINTTAB(X+Z,Y)IN$(Z):NEXTELSEIFP=1FORZ=XX TO I+1:PRINTTAB(X+Z,Y)"*":NEXT
 1200 XX=XX+1:IFIN$(XX)=""VDU14:PRINTTAB(X+XX,Y)CHR$176:VDU15ELSEVDU14:PRINTTAB(X+XX,Y)IN$(XX):VDU15
 1210 ENDPROC
 1220 DEF PROCDEL
 1230 I=LIM+1:REPEAT:I=I-1:UNTILIN$(I)<>""ORI=1
 1240 IFXX=1ENDPROC
 1250 IFIN$(XX)=""PRINTTAB(X+XX,Y)CHR$176
 1260 XX=XX-1
 1270 FORZ=XX TO I:IN$(Z)=IN$(Z+1):NEXT
 1280 IN$(I)=""
 1290 FORZ=XX TO I:PRINTTAB(X+Z,Y)IN$(Z):NEXT
 1300 PRINTTAB(X+I,Y)CHR$176
 1310 IFIN$(XX)=""VDU14:PRINTTAB(X+XX,Y)CHR$176:VDU15ELSEVDU14:PRINTTAB(X+XX,Y)IN$(XX):VDU15
 1320 ENDPROC
 1330 DEF PROCVAR
 1340 I=LIM+1:REPEAT:I=I-1:UNTILIN$(I)<>""ORI=1
 1350 IFP=2VAR$=""
 1360 FORZ=1 TO I:VAR$=VAR$+IN$(Z):NEXT
 1370 IFIN$(XX)=""PRINTTAB(X+XX,Y)CHR$176ELSEPRINTTAB(X+XX,Y)IN$(XX)
 1380 ENDPROC
 1390 DEF PROCEDITING
 1400 ONERRORVDU15:GOTO170
 1410 PROCHEADER("Edit Cards")
 1420 PROCBOX(0,11,79,14):PROCBOX(0,0,39,10):PROCBORD(1,1,37,8):PROCBOX(42,5,79,10):PROCBORD(43,7,54,9):PROCBORD(55,7,66,9):PROCBORD(67,7,78,9):PROCBOX(42,0,79,4)
 1430 PRINTTAB(2,2)"Use ";:VDU27,24,27,25:PRINT" to select line, ";:VDU27,27,27,26:PRINT" to select command.  Press L to edit a logo or J for"TAB(2,3)"justification.  Press ";CHR$255;" to continue or "CHR$17"Stop"CHR$18" to exit."
 1440 PRINTTAB(47,7)"Edit"TAB(56,7)"Add Before"TAB(70,7)"Delete"
 1450 NUM=31:REPEAT:NUM=NUM-1:UNTILID(NUM)<>0 OR NUM=0:PRINTTAB(58,12)CHR$19"Status"CHR$20TAB(44,13)CHR$17"No. of lines : "CHR$18;NUM:G=0:FORI=1 TO 30:G=G+LEN(L$(I)):NEXT:PRINTTAB(44,14)CHR$17"No. of characters : "CHR$18;G
 1460 S=1:X=49:Y=8
 1470 PRINTTAB(38,Y);:VDU27,27:PRINTTAB(X,9);:VDU27,24:PRINTTAB(2,6)CHR$17"Current line : "CHR$18;S+(Y-8);" "
 1480 PROCTEXT1
 1490 G=INKEY(10)
 1500 PROCTIME
 1510 IFG=240ANDS>1ANDY=8S=S-1:PROCTEXT1
 1520 IFG=241ANDS+5<30ANDY=13S=S+1:PROCTEXT1
 1530 IFG=240ANDY>8PRINTTAB(38,Y);" ":Y=Y-1:PRINTTAB(38,Y);:VDU27,27
 1540 IFG=241ANDY<13PRINTTAB(38,Y);" ":Y=Y+1:PRINTTAB(38,Y);:VDU27,27
 1550 IFG=240ORG=241PRINTTAB(2,6)CHR$17"Current line : "CHR$18;S+(Y-8);" "
 1560 IFG=242ANDX>49PRINTTAB(X,9);" ":X=X-12:PRINTTAB(X,9);:VDU27,24
 1570 IFG=243ANDX<73PRINTTAB(X,9);" ":X=X+12:PRINTTAB(X,9);:VDU27,24
 1580 IFG=13ANDX=49PROCEDIT:GOTO1400
 1590 IFG=13ANDX=61PROCADD:GOTO1400
 1600 IFG=13ANDX=73PROCDELETE:GOTO1400
 1610 IFG=76ANDID(S+(Y-8))=2PROCELOGO:GOTO1400
 1620 IFG=74PROCJUST:GOTO1400
 1630 GOTO1490
 1640 DEF PROCEDIT
 1650 L=S+(Y-8)
 1660 ONERRORVDU15:GOTO1400
 1670 PROCHEADER("Edit Line")
 1680 IF ID(L)=1 GOTO1750 ELSE IF ID(L)=2 PROCLOGO:GOTO1950
 1690 PROCBOX(0,12,79,14):PRINTTAB(2,2)"Do you want text or a logo on line ";L;" ?  Press T or L..."
 1700 G$=INKEY$(1)
 1710 PROCTIME
 1720 IF G$="T" GOTO1750
 1730 IF G$="L" PROCLOGO:GOTO1950
 1740 GOTO1700
 1750 PROCBOX(0,12,79,14):PROCBOX(0,9,79,11)
 1760 IF L$(L)="" PRINTTAB(2,2)"Line ";L;" is empty." ELSE PRINTTAB(2,2)"Line ";L;" reads '";L$(L);"'."
 1770 PRINTTAB(2,5)"Please type in the new line ";L;" : "
 1780 VAR$=L$(L):P=2:PROCINPUT(35,5,35):P=0
 1790 PROCBOX(0,0,40,8):PROCBOX(42,0,79,8):PROCBORD(1,1,38,6)
 1800 PRINTTAB(2,8)"List of styles and fonts :"TAB(44,10)"Use ";:VDU27,24,27,25:PRINT" to move, SPACEBAR to select,"TAB(44,11)CHR$255" to finish, or press "CHR$17"Stop "CHR$18TAB(44,12)"to exit..."
 1810 S=1:Y=10
 1820 PRINTTAB(39,Y);:VDU27,27
 1830 FORI=1 TO 9:d(L,I)=s(L,I):NEXT
 1840 PROCTEXT2
 1850 G=INKEY(10)
 1860 PROCTIME
 1870 IF G=240 AND S>1 AND Y=10 S=S-1:PROCTEXT2
 1880 IFG=241ANDS+3<NS ANDY=13S=S+1:PROCTEXT2
 1890 IFG=240ANDY>10PRINTTAB(39,Y);" ":Y=Y-1:PRINTTAB(39,Y);:VDU27,27
 1900 IFG=241ANDY<13PRINTTAB(39,Y);" ":Y=Y+1:PRINTTAB(39,Y);:VDU27,27
 1910 IFG=32ANDd(L,S+(Y-10))=0 d(L,S+(Y-10))=1:PROCTEXT2:G=0
 1920 IFG=32ANDd(L,S+(Y-10))=1 d(L,S+(Y-10))=0:PROCTEXT2:G=0
 1930 IFG=13logo=FALSE:GOTO1950
 1940 GOTO1850
 1950 IFF$=" "F$="Untitled"
 1960 IFlogo=FALSE ID(L)=1:L$(L)=VAR$:S1(L)=((35-LEN(L$(L)))DIV2):S2(L)=(35-(S1(L)+LEN(L$(L))))
 1970 IFlogo=TRUE AND(ID(L)=1 OR ID(L)=0) ID(L)=2:L$(L)=STRING$(N*6,CHR$(0)):S1(L)=((35-N)DIV2):S2(L)=(35-(S1(L)+N))
 1980 IFlogo=TRUE ANDID(L)=2ANDS1(L)+S2(L)<N S1(L)=((35-N)DIV2):S2(L)=(35-(S1(L)+N)):L$(L)=L$(L)+STRING$(N*6-LEN(L$(L)),CHR$0)
 1990 IFlogo=TRUE ANDID(L)=2ANDS1(L)+S2(L)>N S1(L)=((35-N)DIV2):S2(L)=(35-(S1(L)+N)):L$(L)=L$(L)+LEFT$(L$(L),N*6)
 2000 FORI=1 TO NS
 2010   s(L,I)=d(L,I)
 2020 NEXT
 2030 ENDPROC
 2040 DEF PROCADD
 2050 L=S+(Y-8)
 2060 ONERRORVDU15:GOTO1400
 2070 PROCHEADER("Add Line Before")
 2080 IFL$(30)<>""PROCBOX(1,6,78,9):PRINTTAB(2,7)"Sorry, there will be too many lines if one more is added."TAB(2,8)"Press "CHR$17"Stop "CHR$18"to exit...":G=GET:ENDPROC
 2090 PROCBOX(0,12,79,14):PRINTTAB(2,2)"Do you want text or a logo on the new line ";L;" ?  Press T or L..."
 2100 G$=INKEY$(1)
 2110 PROCTIME
 2120 IFG$="T"GOTO2150
 2130 IFG$="L"PROCLOGO:GOTO2350
 2140 GOTO2100
 2150 PROCBOX(0,12,79,14):PROCBOX(0,9,79,11)
 2160 PRINTTAB(2,2)"This will be the new line ";L;"."
 2170 PRINTTAB(2,5)"Please type in the new line ";L;" : "
 2180 PROCINPUT(35,5,35)
 2190 PROCBOX(0,0,40,8):PROCBOX(42,0,79,8):PROCBORD(1,1,38,6)
 2200 PRINTTAB(2,8)"List of styles and fonts : "TAB(44,10)"Use ";:VDU27,24,27,25:PRINT" to move, SPACEBAR to select,"TAB(44,11)CHR$255" to finish, or press "CHR$17"Stop "CHR$18TAB(44,12)"to exit..."
 2210 S=1:Y=10
 2220 FORI=1 TO NS:d(L,I)=0:NEXT
 2230 PRINTTAB(39,Y);:VDU27,27
 2240 PROCTEXT2
 2250 G=INKEY(10)
 2260 PROCTIME
 2270 IFG=240ANDS>1ANDY>1ANDY=10S=S-1:PROCTEXT2
 2280 IFG=241ANDS+3<NS ANDY=13S=S+1:PROCTEXT2
 2290 IFG=240ANDY>10PRINTTAB(39,Y);" ":Y=Y-1:PRINTTAB(39,Y);:VDU27,27
 2300 IFG=241ANDY<13PRINTTAB(39,Y);" ":Y=Y+1:PRINTTAB(39,Y);:VDU27,27
 2310 IFG=32ANDd(L,S+(Y-10))=0d(L,S+(Y-10))=1:PROCTEXT2:G=0
 2320 IFG=32ANDd(L,S+(Y-10))=1d(L,S+(Y-10))=0:PROCTEXT2:G=0
 2330 IFG=13logo=FALSE:GOTO2350
 2340 GOTO2250
 2350 IFF$=" "F$="Untitled"
 2360 PROCBOX(15,3,65,5):PRINTTAB(17,11)"Please wait...Re-arranging lines..."
 2370 FORI=29 TO L STEP -1
 2380   ID(I+1)=ID(I):L$(I+1)=L$(I):S1(I+1)=S1(I):S2(I+1)=S2(I)
 2390   FORA=1 TO NS:s(I+1,A)=s(I,A):NEXT
 2400 NEXT
 2410 IFlogo=FALSE ID(L)=1:L$(L)=VAR$:S1(L)=((35-LEN(L$(L)))DIV2):S2(L)=(35-(S1(L)+LEN(L$(L))))
 2420 IFlogo=TRUE ID(L)=2:L$(L)=STRING$(N*6,CHR$(0)):S1(L)=((35-N)DIV2):S2(L)=(35-(S1(L)+N))
 2430 FORI=1 TO NS
 2440   s(L,I)=d(L,I)
 2450 NEXT
 2460 ENDPROC
 2470 DEF PROCDELETE
 2480 L=S+(Y-8)
 2490 ONERRORVDU15:GOTO1400
 2500 PROCHEADER("Delete Line")
 2510 PROCBOX(0,11,79,14)
 2520 IFID(L)=1PRINTTAB(1,2)"Line ";L;" reads '";L$(L);"'."TAB(1,3)"ARE YOU SURE THAT YOU WANT TO DELETE LINE ";L;" ? Press Y or N..."
 2530 IFID(L)=2PRINTTAB(1,2)"Line ";L;" is a logo."TAB(1,3)"ARE YOU SURE THAT YOU WANT TO DELETE LINE ";L;" ? Press Y or N..."
 2540 IFID(L)=0PRINTTAB(1,2)"Line ";L;" is empty."TAB(1,3)"ARE YOU SURE THAT YOU WANT TO DELETE LINE ";L;" ? Press Y or N..."
 2550 G$=INKEY$(1)
 2560 PROCTIME
 2570 IFG$="Y"GOTO2600
 2580 IFG$="N"ENDPROC
 2590 GOTO2550
 2600 PROCBOX(15,3,65,5):PRINTTAB(17,11)"Please wait...Re-arranging lines..."
 2610 IFL=30GOTO2660
 2620 FORI=L TO 29
 2630   ID(I)=ID(I+1):L$(I)=L$(I+1):S1(I)=S1(I+1):S2(I)=S2(I+1)
 2640   FORA=1 TO NS:s(I,A)=s(I+1,A):NEXT
 2650 NEXT
 2660 ID(30)=0:L$(30)="":S1(30)=0:S2(30)=0:FORI=1 TO 9:s(30,I)=0:NEXT
 2670 NUM=31:REPEAT:NUM=NUM-1:UNTILID(NUM)<>0ORNUM=0
 2680 IFNUM=0F$=" "
 2690 ENDPROC
 2700 DEF PROCELOGO
 2710 T=S+(Y-8)
 2720 ONERRORVDU15:GOTO1400
 2730 B=T
 2740 IFID(T+1)=2ANDS1(T+1)=S1(T)B=B+1ELSE GOTO2770
 2750 IFID(T+2)=2ANDS1(T+2)=S1(T)B=B+1ELSE GOTO2770
 2760 IFID(T+3)=2ANDS1(T+3)=S1(T)B=B+1ELSE GOTO2770
 2770 PROCHEADER("Edit Logo")
 2780 PROCBOX(0,10,79,14):PROCBOX(0,0,79,9)
 2790 PRINTTAB(2,2)"Edit the logo.  Use ";:VDU27,24,27,25,27,27,27,26:PRINT" to move, SPACEBAR to mark and remove, or "CHR$255" to"TAB(2,3)"finish.  Use < and > for line shift feature.  Press "CHR$17"Stop "CHR$18"to exit..."
 2800 X=1:Y=1:WLIM=(35-(S1(T)+S2(T)))*6:HLIM=(B-(T-1))*8:L=B
 2810 MOVE9,7:PLOT103,WLIM*2+10,HLIM*2+8:MOVE9,7:DRAWWLIM*2+10,7:DRAWWLIM*2+10,HLIM*2+8:DRAW9,HLIM*2+8:DRAW9,7
 2820 PRINTTAB(2,4)"Please wait, re-drawing logo..."
 2830 gy=-8:FORI=B TO T STEP -1:gy=gy+16:GX=8:FORA=1 TO WLIM:GY=gy:GX=GX+2:BIT=1:FORK=1 TO 8
 2840       IF (ASC(MID$(L$(I),A,1)) AND BIT) MOVEGX,GY:PLOT101,GX+1,GY+1
 2850       BIT=BIT*2:GY=GY+2:NEXT:NEXT:NEXT
 2860 PRINTTAB(2,4)SPC35
 2870 GX=10:GY=8:BIT=1
 2880 FSH=FALSE
 2890 MOVEGX,GY:PLOT102,GX+1,GY+1
 2900 G=INKEY(25)
 2910 PROCTIME
 2920 IFFSH=TRUE FSH=FALSE ELSEFSH=TRUE
 2930 IFG>-1ANDFSH=FALSE MOVEGX,GY:PLOT102,GX+1,GY+1:FSH=TRUE
 2940 IFG=240ANDY<HLIM MOVEGX,GY:PLOT102,GX+1,GY+1:Y=Y+1:GY=GY+2:MOVEGX,GY:PLOT102,GX+1,GY+1:BIT=BIT*2:IF Y MOD 8=1 L=L-1:BIT=1
 2950 IFG=241ANDY>1MOVEGX,GY:PLOT102,GX+1,GY+1:Y=Y-1:GY=GY-2:MOVEGX,GY:PLOT102,GX+1,GY+1:BIT=BIT/2:IF Y MOD 8=0 L=L+1:BIT=128
 2960 IFG=242ANDX>1MOVEGX,GY:PLOT102,GX+1,GY+1:X=X-1:GX=GX-2:MOVEGX,GY:PLOT102,GX+1,GY+1
 2970 IFG=243ANDX<WLIM MOVEGX,GY:PLOT102,GX+1,GY+1:X=X+1:GX=GX+2:MOVEGX,GY:PLOT102,GX+1,GY+1
 2980 IFG=44ANDASC(LEFT$(L$(L),1))=0L$(L)=RIGHT$(L$(L),LEN(L$(L))-1)+CHR$0:GOTO2800
 2990 IFG=60AND FNCHECK(1)=FALSE FORI=T TOB:L$(I)=RIGHT$(L$(I),LEN(L$(I))-1)+CHR$0:NEXT:GOTO2800
 3000 IFG=46ANDASC(RIGHT$(L$(L),1))=0L$(L)=CHR$0+MID$(L$(L),1,LEN(L$(L))-1):GOTO2800
 3010 IFG=62AND FNCHECK(2)=FALSE FORI=T TOB:L$(I)=CHR$0+MID$(L$(I),1,LEN(L$(I))-1):NEXT:GOTO2800
 3020 IFG=32PROCMARK:MOVEGX,GY:PLOT102,GX+1,GY+1
 3030 IFG=13ENDPROC
 3040 GOTO2890
 3050 DEF FNCHECK(z)
 3060 Z=FALSE
 3070 FORI=T TO B
 3080   IF z=1 AND ASC(LEFT$(L$(I),1))>0 Z=TRUE
 3090   IF z=2 AND ASC(RIGHT$(L$(I),1))>0 Z=TRUE
 3100 NEXT
 3110 IF Z=TRUE =TRUE ELSE =FALSE
 3120 DEF PROCMARK
 3130 C=ASC(MID$(L$(L),X,1))
 3140 IF(C ANDBIT)C=C-BIT:MOVEGX,GY:PLOT103,GX+1,GY+1:GOTO3160
 3150 C=C+BIT:MOVEGX,GY:PLOT101,GX+1,GY+1
 3160 L$(L)=LEFT$(L$(L),X-1)+CHR$(C)+MID$(L$(L),X+1)
 3170 ENDPROC
 3180 DEF PROCJUST
 3190 L=S+(Y-8)
 3200 ONERRORVDU15:GOTO1400
 3210 PROCHEADER("Justification")
 3220 PROCBOX(0,8,79,14):PRINTTAB(2,2)"Use ";:VDU27,27,27,26:PRINT" to move, "CHR$255" to finish..."
 3230 PROCBORD(2,9,18,11):PROCBORD(20,9,36,11):PROCBORD(38,9,54,11):PRINTTAB(3,5)"Left justified"TAB(25,5)"Centred"TAB(39,5)"Right justified":X=14:MOVEX,77:PLOT102,X+98,91
 3240 G=INKEY(10)
 3250 PROCTIME
 3260 IFG=242ANDX>14MOVEX,77:PLOT102,X+98,91:X=X-108:MOVEX,77:PLOT102,X+98,91
 3270 IFG=243ANDX<230MOVEX,77:PLOT102,X+98,91:X=X+108:MOVEX,77:PLOT102,X+98,91
 3280 IFG=13ANDX=14ANDID(L)<2S1(L)=0:S2(L)=(35-LEN(L$(L))):ENDPROC
 3290 IFG=13ANDX=230ANDID(L)<2S1(L)=(35-LEN(L$(L))):S2(L)=0:ENDPROC
 3300 IFG=13ANDX=122ANDID(L)<2S1(L)=((35-LEN(L$(L)))DIV2):S2(L)=(35-(S1(L)+LEN(L$(L)))):ENDPROC
 3310 IFG=13ANDX=14ANDID(L)=2S1(L)=0:S2(L)=(35-(LEN(L$(L))/6)):ENDPROC
 3320 IFG=13ANDX=230ANDID(L)=2S1(L)=(35-(LEN(L$(L))/6)):S2(L)=0:ENDPROC
 3330 IFG=13ANDX=122ANDID(L)=2S1(L)=((35-(LEN(L$(L))/6))DIV2):S2(L)=(35-(S1(L)+(LEN(L$(L))/6))):ENDPROC
 3340 GOTO3240
 3350 END
 3360 DEF PROCPRINT
 3370 ONERRORVDU15:GOTO170
 3380 PROCHEADER("Print Cards")
 3390 N=2
 3400 PROCBOX(0,6,79,14):PROCBOX(0,0,79,5)
 3410 PRINTTAB(1,2)"Press ";:VDU27,24,27,25:PRINT" to move, ";:VDU27,27,27,26:PRINT" to change, S for printer setup, ";CHR$255;" to print, or press "CHR$17"Stop"CHR$18TAB(1,3)"to exit..."
 3420 PRINTTAB(4,5)"Number of cards to be printed :"TAB(14,6)"Page length (Lines) :"TAB(21,7)"Line spacing : ";SPACE TAB(8,8)"Eject page after printing : ";:IFEJECT=TRUE PRINT"Yes" ELSE PRINT"No"
 3430 PRINTTAB(33,11)CHR$19CHR$17"Print Status"CHR$20CHR$18TAB(1,13)"Current Printer : ";P$ TAB(1,14)"Number of lines :"TAB(40,13)"Number of cards per page :"TAB(49,14)"Number of pages :"
 3440 Y=5:PROCRECALC:PRINTTAB(2,5);:VDU27,26
 3450 G=INKEY(10)
 3460 PROCTIME
 3470 IFG=240ANDY>5PRINTTAB(2,Y)" ":Y=Y-1:PRINTTAB(2,Y);:VDU27,26
 3480 IFG=241ANDY<8PRINTTAB(2,Y)" ":Y=Y+1:PRINTTAB(2,Y);:VDU27,26
 3490 IFG=242ANDN>2ANDY=5 N=N-2:PROCRECALC
 3500 IFG=243ANDN<1000ANDY=5 N=N+2:PROCRECALC
 3510 IFG=242ANDPL>1ANDY=6 PL=PL-1:PROCRECALC
 3520 IFG=243ANDPL<1000ANDY=6 PL=PL+1:PROCRECALC
 3530 IFG=242ANDY=7 SPACE=1:PRINTTAB(36,7);SPACE;"  ":PROCRECALC
 3540 IFG=243ANDY=7 SPACE=2:PRINTTAB(36,7);SPACE;"  ":PROCRECALC
 3550 IFG=242ANDY=8 EJECT=FALSE:PRINTTAB(36,8)"No "
 3560 IFG=243ANDY=8 EJECT=TRUE:PRINTTAB(36,8)"Yes"
 3570 IFG=83PROCSETUP:GOTO3370
 3580 IFG=13GOTO3600
 3590 GOTO3450
 3600 ONERRORVDU6:VDU15:VDU3:GOTO170
 3610 PROCHEADER("Print Cards"):PROCBOX(13,5,67,8):PRINTTAB(15,8)"Now printing '";F$;"' on the ";P$:PRINTTAB(15,9)"Press "CHR$17"Stop "CHR$18"to cancel..."
 3620 n=0:nn=0
 3630 VDU2:VDU21
 3640 PRINTCHR$218;STRING$(35,CHR$196);CHR$194;STRING$(35,CHR$196);CHR$191
 3650 FORI=1 TO NUM
 3660   VDU3:VDU6:PROCTIME:VDU2:VDU21
 3670   FORA=1 TO NS
 3680     IFs(I,A)=1VDU1,NON1(A),1,NON2(A),1,NON3(A)
 3690   NEXT
 3700   IFID(I)=0PRINTCHR$179;SPC35;CHR$179;SPC35;CHR$179
 3710   IFID(I)=1PRINTCHR$179;SPC(S1(I));L$(I);SPC(S2(I));CHR$179;SPC(S1(I));L$(I);SPC(S2(I));CHR$179
 3720   IFID(I)=2ANDI+1<30ANDID(I+1)=2VDU1,27,1,65,1,8
 3730   IFID(I)=2b=(35-(S1(I)+S2(I)))*12DIV256:l=(35-(S1(I)+S2(I)))*12MOD256
 3740   IFID(I)=2PRINTCHR$179;SPCS1(I);:VDU1,27,1,76,1,l,1,b:FORi=1TOl DIV2:VDU1,ASC(MID$(L$(I),i)),1,ASC(MID$(L$(I),i)):NEXT:PRINTSPCS2(I);CHR$179;
 3750   IFID(I)=2PRINTSPCS1(I);:VDU1,27,1,76,1,l,1,b:FORi=1TOl DIV2:VDU1,ASC(MID$(L$(I),i)),1,ASC(MID$(L$(I),i)):NEXT:PRINTSPCS2(I);CHR$179
 3760   IFID(I)=2ANDI+1<30ANDID(I+1)=2VDU1,27,1,50
 3770   FORA=1 TO NS
 3780     IFs(I,A)=1VDU1,NOF1(A),1,NOF2(A),1,NOF3(A)
 3790   NEXT
 3800   IFSPACE=2PRINTCHR$179;SPC35;CHR$179;SPC35;CHR$179
 3810 NEXT
 3820 n=n+2:nn=nn+2
 3830 IFn=N ANDEJECT=TRUE PRINTCHR$192;STRING$(35,CHR$196);CHR$193;STRING$(35,CHR$196);CHR$217:VDU1,12,3,6:PRINTTAB(15,9)"Finished Printing.  Press any key...":REPEAT:PROCTIME:UNTILINKEY(10)<>-1:ENDPROC
 3840 IFn=N ANDEJECT=FALSE PRINTCHR$192;STRING$(35,CHR$196);CHR$193;STRING$(35,CHR$196);CHR$217:VDU3,6:PRINTTAB(15,9)"Finished Printing.  Press any key...":REPEAT:PROCTIME:UNTILINKEY(10)<>-1:ENDPROC
 3850 IFnn=NF PRINTCHR$192;STRING$(35,CHR$196);CHR$193;STRING$(35,CHR$196);CHR$217:VDU1,12
 3860 IFnn=NF VDU3,6:PRINTTAB(15,9)"Press any key to print next page...":G=GET:PRINTTAB(15,9)"Press "CHR$17"Stop "CHR$18"to cancel..."SPC12:VDU2,21:nn=0:GOTO3640
 3870 IFnn<NF PRINTCHR$195;STRING$(35,CHR$196);CHR$197;STRING$(35,CHR$196);CHR$180
 3880 GOTO3650
 3890 DEF PROCRECALC
 3900 NUM=31:REPEAT:NUM=NUM-1:UNTILID(NUM)<>0 OR NUM=0:PRINTTAB(19,14);NUM
 3910 NF=(((PL-1)DIV(NUM+1)))*2
 3920 IFSPACE=2NF=NF DIV2
 3930 np=((N-1)DIVNF)
 3940 PRINTTAB(67,13);NF;" "TAB(67,14);np+1;" "
 3950 PRINTTAB(36,5);N;" "TAB(36,6);PL;" "
 3960 ENDPROC
 3970 DEF PROCSETUP
 3980 S=1:Y=12
 3990 ONERRORVDU15:GOTO3370
 4000 PROCHEADER("Printer Setup")
 4010 PROCBOX(0,10,79,14):PROCBOX(0,7,79,9):PROCBOX(0,0,40,6):PROCBOX(41,0,79,6):PROCBORD(2,1,39,4)
 4020 IFP$<>"***No Printer***"PRINTTAB(1,2)"The current printer is ";P$;".  ";NS;" styles have been set up."ELSEPRINTTAB(1,2)"***There is no printer set up for the program***"
 4030 PRINTTAB(1,4)"Press ";:VDU27,24,27,25:PRINT" to move, "CHR$255" to change.  Press "CHR$17"Stop "CHR$18"to exit..."TAB(3,10)CHR$17"Style number : "CHR$18"1"TAB(54,10)CHR$17CHR$19"Style Setup"CHR$18CHR$20TAB(2,7)"Current Printer : "P$
 4040 PRINTTAB(1,Y);:VDU27,26
 4050 PROCTEXT3
 4060 G=INKEY(10)
 4070 PROCTIME
 4080 IFG=240ANDS=1ANDY=12PRINTTAB(1,Y);" ":Y=7:PRINTTAB(1,Y);:VDU27,26:GOTO4060
 4090 IFG=241ANDY=7PRINTTAB(1,Y);" ":Y=12:PRINTTAB(1,Y);:VDU27,26:GOTO4060
 4100 IFG=240ANDS>1ANDY=12 S=S-1:PROCTEXT3
 4110 IFG=241ANDS+1<16ANDY=13S=S+1:PROCTEXT3
 4120 IFG=240ANDY>12PRINTTAB(1,Y);" ":Y=Y-1:PRINTTAB(1,Y);:VDU27,26:PROCTEXT3
 4130 IFG=241ANDY<13PRINTTAB(1,Y);" ":Y=Y+1:PRINTTAB(1,Y);:VDU27,26:PROCTEXT3
 4140 IF(G=240ORG=241)ANDY>7PRINTTAB(18,10);S+(Y-12);" "
 4150 IFG=13ANDY=7PROCPNAME:PROCSSAVE:GOTO3990
 4160 IFG=13ANDY>11PROCSNAME:PROCSSAVE:GOTO3990
 4170 GOTO4060
 4180 DEF PROCPNAME
 4190 ONERRORVDU15:Y=12:GOTO3990
 4200 PROCBOX(3,4,76,7)
 4210 PRINTTAB(5,9)"Old printer was '"P$"'."TAB(5,10)"Type in the name of the new printer :":PROCINPUT(43,10,20):P$=VAR$:Y=12
 4220 ENDPROC
 4230 DEF PROCSNAME
 4240 ONERRORVDU15:Y=12:GOTO3990
 4250 PROCBOX(3,1,76,11):PROCBOX(4,7,75,10):PROCBOX(4,2,75,6)
 4260 PRINTTAB(6,6)"Old name of style ";S+(Y-12);" was '"STY$(S+(Y-12));"'."TAB(6,7)"Type in the new name :":PROCINPUT(29,7,16):s$=VAR$
 4270 PRINTTAB(5,10)"Please enter the three control codes needed to turn on the style."TAB(5,11)"If the style only requires two codes, press "CHR$255" for the third."
 4280 PRINTTAB(5,12)"Code 1 :":PROCINPUT(14,12,3):non1=VAL(VAR$):PRINTTAB(20,12)"Code 2 :":PROCINPUT(29,12,3):non2=VAL(VAR$):PRINTTAB(35,12)"Code 3 :":PROCINPUT(44,12,3):non3=VAL(VAR$)
 4290 PRINTTAB(5,12)SPC50TAB(5,10)"Please enter the three control codes needed to turn off the style."TAB(5,11)"If the style only requires two codes, press "CHR$255" for the third."
 4300 PRINTTAB(5,12)"Code 1 :":PROCINPUT(14,12,3):nof1=VAL(VAR$):PRINTTAB(20,12)"Code 2 :":PROCINPUT(29,12,3):nof2=VAL(VAR$):PRINTTAB(35,12)"Code 3 :":PROCINPUT(44,12,3):nof3=VAL(VAR$)
 4310 NON1(S+(Y-12))=non1:NON2(S+(Y-12))=non2:NON3(S+(Y-12))=non3:NOF1(S+(Y-12))=nof1:NOF2(S+(Y-12))=nof2:NOF3(S+(Y-12))=nof3:STY$(S+(Y-12))=s$
 4320 ENDPROC
 4330 DEF PROCSSAVE
 4340 NS=17:REPEAT:NS=NS-1:UNTILSTY$(NS)<>"" OR NS=0
 4350 K=OPENOUT("PRINTER.CCP")
 4360 PRINT#K,P$,NS
 4370 FORI=1 TO 16
 4380   PRINT#K,STY$(I),NON1(I),NON2(I),NON3(I),NOF1(I),NOF2(I),NOF3(I)
 4390 NEXT
 4400 CLOSE#K
 4410 ENDPROC
 4420 DEF PROCFILE
 4430 PROCHEADER("File Handling")
 4440 ONERRORVDU15:GOTO170
 4450 PROCBOX(0,5,79,8)
 4460 IFF$=" "PRINTTAB(1,8)"Do you want to Load some cards or get a Directory ?"TAB(1,9)"Press L or D"; ELSE PRINTTAB(1,8)"Do you want to Load some cards, Save your cards, or get a Directory ?"TAB(1,9)"Press L,S or D";
 4470 PRINT", or press "CHR$17"Stop "CHR$18"to exit..."
 4480 G=INKEY(10)
 4490 PROCTIME
 4500 IFG=68OSCLI("CAT"):GOTO4430
 4510 IFG=76PROCLOAD:ENDPROC
 4520 IFG=83ANDF$<>" "PROCSAVE:ENDPROC
 4530 IFG=83ANDF$=" "VDU7:GOTO4480
 4540 GOTO4480
 4550 DEF PROCLOAD
 4560 PROCHEADER("Load Cards")
 4570 ONERRORVDU15:CLOSE#0:PROCFERROR:GOTO4430
 4580 PROCBOX(0,5,79,8)
 4590 PRINTTAB(1,8)"If you do not want to delete the cards in memory, press "CHR$17"Stop"CHR$18" now."TAB(1,9)"Please type in the filename :":PROCINPUT(31,9,8)
 4600 PROCBOX(0,1,79,4):PRINTTAB(1,12)"Please wait, loading '"VAR$"'."
 4610 K=OPENIN(VAR$+".CAR")
 4620 FORI=1 TO 30
 4630   INPUT#K,ID(I),L$(I),S1(I),S2(I)
 4640   FORA=1 TO 16
 4650     INPUT#K,s(I,A)
 4660   NEXT
 4670 NEXT
 4680 CLOSE#0
 4690 F$=VAR$
 4700 ENDPROC
 4710 DEF PROCSAVE
 4720 ONERRORVDU15:CLOSE#0:PROCFERROR:GOTO4430
 4730 PROCBOX(0,5,79,8)
 4740 IFF$<>" "AND F$<>"Untitled" PRINTTAB(1,8)"Do you want to save your cards as '"F$;"' ?  Press Y or N..." ELSE GOTO4800
 4750 G=INKEY(10)
 4760 PROCTIME
 4770 IFG=89f$=F$:GOTO4810
 4780 IFG=78GOTO4800
 4790 GOTO4750
 4800 PRINTTAB(1,9)"Please type in the filename :":PROCINPUT(31,9,8):f$=VAR$
 4810 PROCBOX(0,2,40,4):PRINTTAB(1,12)"Please wait, saving '"f$"'."
 4820 K=OPENOUT(f$+".CAR")
 4830 FORI=1 TO 30
 4840   PRINT#K,ID(I),L$(I),S1(I),S2(I)
 4850   FORA=1 TO 16
 4860     PRINT#K,s(I,A)
 4870   NEXT
 4880 NEXT
 4890 CLOSE#0
 4900 F$=f$
 4910 ENDPROC
 4920 DEF PROCFERROR
 4930 IFERR=27ENDPROC
 4940 IFERR=190ENDPROC
 4950 PROCBOX(0,2,40,4)
 4960 IFERR=222PRINTTAB(1,12)"File does not exist...":FORI=1 TO 5000:NEXT:ENDPROC
 4970 IFERR=198PRINTTAB(1,12)"The memory is full...":FORI=1 TO 5000:NEXT:ENDPROC
 4980 ENDPROC
 4990 DEF PROCIERROR
 5000 PROCBOX(0,1,60,4)
 5010 IFERR=222PRINTTAB(1,12)"Printer setup file 'PRINTER.CCP' not found in memory."TAB(1,13)"Load onto memory from disk.  Press any key...":G=GET:ENDPROC
 5020 IF ERR=11 PRINTTAB(1,12)"There is not enough memory to run the program."TAB(1,13)"Delete some files to create space.  Press any key...":G=GET:ENDPROC
 5030 ENDPROC
 5040 DEF PROCVIEW
 5050 ONERRORVDU15:GOTO170
 5060 PROCHEADER("View Cards")
 5070 PROCBOX(0,12,79,14):PROCBOX(0,0,42,11):PROCBOX(43,0,79,11):PROCBORD(1,1,40,9)
 5080 PRINTTAB(1,2)"Press ";:VDU27,24,27,25:PRINT" or press "CHR$17"Stop "CHR$18"to exit..."TAB(1,5)"Your business card :"TAB(44,5)CHR$19"The styles used :"CHR$20
 5090 NUM=31:REPEAT:NUM=NUM-1:UNTILID(NUM)<>0 OR NUM=0
 5100 S=0:Y=8:PRINTTAB(41,8);:VDU27,27
 5110 PROCTEXT4:PROCSTYLES
 5120 G=INKEY(10)
 5130 PROCTIME
 5140 IFG=240ANDS>0ANDY=8 S=S-1:PROCTEXT4
 5150 IFG=241ANDS+5<NUM ANDY=12S=S+1:PROCTEXT4
 5160 IFG=240ANDY>8PRINTTAB(41,Y);" ":Y=Y-1:PRINTTAB(41,Y);:VDU27,27
 5170 IFG=241ANDY<12ANDS+(Y-7)<NUM PRINTTAB(41,Y);" ":Y=Y+1:PRINTTAB(41,Y);:VDU27,27
 5180 IFG=240ORG=241PROCSTYLES
 5190 GOTO5120
 5200 DEF PROCSTYLES
 5210 FORI=6 TO 14
 5220   PRINTTAB(44,I)SPC35
 5230 NEXT
 5240 N=7:I=1
 5250 REPEAT
 5260   IFs(S+(Y-7),I)=1PRINTTAB(44,N)STY$(I):N=N+1
 5270   I=I+1
 5280 UNTIL N=15 OR I=NS+1
 5290 IFI=NS+1ENDPROC
 5300 N=7
 5310 REPEAT
 5320   IF s(S+(Y-7),I)=1 PRINTTAB(62,N)STY$(I):N=N+1
 5330   I=I+1
 5340 UNTIL N=15 OR I=NS+1
 5350 ENDPROC
 5360 DEF PROCQUIT
 5370 ONERRORVDU15:GOTO170
 5380 PROCHEADER("Quit")
 5390 PROCBOX(0,6,79,8)
 5400 PRINTTAB(1,8)"ARE YOU SURE YOU WANT TO QUIT ? Press Y or N..."
 5410 G=INKEY(10)
 5420 PROCTIME
 5430 IFG=89OSCLI("QUIT")
 5440 IFG=78ENDPROC
 5450 GOTO5410
 5460 DEF PROCPASS
 5470 ONERRORVDU15:P=0:GOTO170
 5480 PROCBOX(0,6,79,8)
 5490 P=1:PRINTTAB(1,8)"Please type in the password or press "CHR$17"Stop "CHR$18":"
 5500 PROCINPUT(45,8,4)
 5510 IFVAR$="ZOOM"END
 5520 P=0
 5530 ENDPROC
 5540 DEF PROCLOGO
 5550 PROCHEADER("Edit Line")
 5560 PROCBOX(0,5,79,14)
 5570 PRINTTAB(2,2)"Please state the width of the logo (in characters).  Use the ";:VDU27,27,27,26:PRINT" keys to move,"TAB(2,3)CHR$255" to select, or "CHR$17"Stop "CHR$18"to exit..."TAB(2,9)"(1 character = 6 pixels)"
 5580 N=3:FORI=6 TO 70 STEP 4:PROCBORD(I,8,I+3,10):PRINTTAB(I+1,6);N:N=N+2:NEXT
 5590 N=3:I=38:MOVEI,69:PLOT102,I+20,83
 5600 G=INKEY(10)
 5610 PROCTIME
 5620 IFG=242ANDN>3MOVEI,69:PLOT102,I+20,83:N=N-2:I=I-24:MOVEI,69:PLOT102,I+20,83
 5630 IFG=243ANDN<35MOVEI,69:PLOT102,I+20,83:N=N+2:I=I+24:MOVEI,69:PLOT102,I+20,83
 5640 IFG=13GOTO5660
 5650 GOTO5600
 5660 logo=TRUE
 5670 ENDPROC