home *** CD-ROM | disk | FTP | other *** search
Wrap
10 REM ********************** 20 REM * LABEL.MAKER * 30 REM * BY DOUG HILDEBRAND * 40 REM * COPYRIGHT (C) 1987 * 50 REM * BY MICROSPARC, INC * 60 REM * CONCORD, MA 01742 * 70 REM ********************** 80 GOTO 310 90 IF K$ = "" THEN 140: REM INPUT ROUTINE 100 BU$ = LEFT$(BB$, LEN(K$) +1) + LEFT$(UU$,L) + LEFT$(BB$,L): PRINT K$;: INVERSE : PRINT " ";: NORMAL 110 WAIT -16384,128:K = PEEK( -16384): IF K = 141 OR K = 155 THEN PRINT B$" ";: POKE -16368,0: RETURN 120 IF K <160 OR K = 255 THEN 110 130 PRINT BU$;:LI = 0:K$ = "": INVERSE : PRINT " ";: NORMAL : PRINT B$;: GOTO 280 140 PRINT LEFT$(UU$,L) LEFT$(BB$,L);:LI = 0:K$ = "": POKE -16368,0: INVERSE : PRINT " ";: NORMAL : PRINT B$; 150 POKE -16368,0 160 K = PEEK( -16384): IF K <128 THEN 160 170 IF K >159 AND K < >255 THEN 290 180 IF K = 141 THEN FOR K = LI TO L: PRINT " ";: NEXT : POKE -16368,0: RETURN 190 IF K < >155 THEN 230 200 IF LI = 0 THEN K$ = EX$: PRINT U$;: POKE -16368,0: RETURN 210 IF LI = L THEN PRINT " ";: PRINT B$; 220 PRINT LEFT$(BB$,LI);: GOTO 140 230 IF (K < >136 AND K < >255) THEN 280 240 IF LI = 0 THEN PRINT CHR$(7);: GOTO 150 250 IF LI = 1 THEN PRINT B$;: PRINT U$U$;: PRINT B$;: PRINT B$;: INVERSE : PRINT " ";: NORMAL : PRINT B$;:LI = LI -1:K$ = "": GOTO 150 260 IF LI = L THEN PRINT B$;: PRINT U$" ";: PRINT B$B$;: INVERSE : PRINT " ";: NORMAL : PRINT B$;:LI = LI -1:K$ = LEFT$(K$,LI): GOTO 150 270 PRINT B$;: PRINT U$U$;: PRINT B$;: PRINT B$;: INVERSE : PRINT " ";: NORMAL : PRINT B$;:LI = LI -1:K$ = LEFT$(K$,LI): GOTO 150 280 IF K <160 THEN 150 290 IF LI = L THEN PRINT CHR$(7);: GOTO 150 300 PRINT CHR$(K);: INVERSE : PRINT " ";: NORMAL : PRINT B$;:K$ = K$ + CHR$(K -128):LI = LI +1: GOTO 150 310 HOME : PRINT "PRINT SHOP LABEL MAKER": PRINT "BY DOUGLAS HILDEBRAND": PRINT "COPYRIGHT (C) 1987": PRINT "BY MICROSPARC, INC.": VTAB 12: PRINT "PRESS RETURN TO CONTINUE";: GET Z$: PRINT 320 LOMEM: 22528:DN = PEEK( -21912):N$ = "":AD$ = "":CS$ = "":GF = 0:LB$ = CHR$(91):EX$ = CHR$(27):SL = 1 330 B$ = CHR$(136):U$ = CHR$(223) 340 FOR I = 1 TO 80:BB$ = BB$ +B$:UU$ = UU$ +U$:BL$ = BL$ +" ": NEXT 350 D$ = CHR$(4):FLAG = 0:F = 0 360 EF = 1: ONERR GOTO 1360 370 PRINT D$"BLOAD LABELMAKER.ML.0" 380 PRINT D$"BLOAD LABELMAKER.ML.1" 390 GOSUB 1800: REM EPSON CODES//GOSUB 1810 FOR IMAGEWRITER/PROWRITER 400 REM GOSUB 1760:REM PRINTER-SPECIFIC PATCHES 410 REM GOSUB 1750:REM INTERFACE-SPECIFIC PATCHES 420 EF = 2: ONERR GOTO 1360 430 HOME : GOSUB 1520 440 HC$ = "CLPTGSQ" 450 GET A$: PRINT : IF A$ > CHR$(96) THEN A$ = CHR$( ASC(A$) -32) 460 FOR I = 1 TO LEN(HC$) 470 IF A$ = MID$ (HC$,I,1) THEN PK = I:I = LEN(HC$): GOTO 500 480 NEXT I 490 GOSUB 1640: GOTO 450 500 ON PK GOTO 530,590,700,1040,1100,1250,1460 510 GOTO 450 520 REM CATALOG ROUTINE 530 EF = 6: ONERR GOTO 1360 540 HOME : PRINT D$;"CATALOG" 550 PRINT : PRINT "PRESS RETURN TO CONTINUE...";: GET A$ 560 PRINT EX$; CHR$(17) 570 GOTO 420 580 REM LOAD CONVERTED PICTURE 590 EF = 3: ONERR GOTO 1360 600 HOME : VTAB 10: HTAB 10: PRINT "ENTER PICTURE NAME: ": PRINT 610 VTAB 23: HTAB 12: PRINT "RETURN FOR MENU" 620 VTAB 12 630 HTAB 11: INPUT "";PN$: IF LEN(PN$) = 0 GOTO 420 640 PN$ = PN$ +".CVT":A$ = PN$: GOSUB 1660:PN$ = A$ 650 L% = LEN(PN$ +"LOADING ")/2: VTAB 15: HTAB (19 -L%): FLASH : PRINT "LOADING ";PN$;: NORMAL : PRINT 660 VTAB 23: HTAB 5: PRINT LEFT$(BL$,32): VTAB 20 670 PRINT D$;"BLOAD ";PN$ 680 GF = 1: GOTO 420 690 REM PRINT THE LABELS 700 HOME : ON NOT (GF) GOTO 1820: PRINT "HOW MANY LABELS ACROSS (1,2, OR 3): ";: INPUT "";NC$ 710 ON NC$ <"1" OR NC$ >"3" GOTO 700:NC = INT( VAL(NC$)) 720 IF NC = 2 OR NC = 1 THEN BK$ = LEFT$(BL$,35) 730 IF NC = 3 THEN BK$ = LEFT$(BL$,24) 740 POKE 795,NC: POKE 796,NC: POKE 798,FILL(NC) 750 IF LL$(1) = "" GOTO 770 760 HOME : VTAB 2: FOR I = 1 TO 4: PRINT : PRINT LEFT$(LL$(I),35 -11 *(NC = 3)): NEXT I: VTAB 12: PRINT "IS THE ADDRESS OK? ";: GET X$: ON X$ = "Y" OR X$ = CHR$(121) GOTO 860: IF X$ < >"N" AND X$ < > CHR$(110) THEN PRINT CHR$(7);: GOTO 760 770 HOME 780 FOR I = 1 TO 4: VTAB 2 +I *2: PRINT "LINE "I":";:K$ = "":L = LEN(BK$) -2: GOSUB 90: PRINT 790 IF K = 155 THEN I = 4: GOTO 420 800 LL$(I) = K$: NEXT I 810 FOR I = 1 TO 4:LL$(I) = " " +LL$(I):LL = LEN(BK$) - LEN(LL$(I)): IF LL >0 THEN LL$(I) = LL$(I) + LEFT$(BK$,LL) 820 IF LL <0 THEN LL$(I) = LEFT$(LL$(I), LEN(BK$)) 830 NEXT I 840 FOR I = 1 TO 4: POKE 789 +I, LEN(LL$(I)): NEXT I: POKE 794, PEEK(793) 850 FOR J = 1 TO 4:K = 18879 +64 *J: FOR I = 1 TO LEN(LL$(J)): POKE K +I, ASC( MID$ (LL$(J),I,1)): NEXT I,J: GOTO 760 860 VTAB 23: HTAB 12: PRINT "RETURN FOR MENU" 870 VTAB 12 880 INPUT "HOW MANY LABEL ROWS? ";NL$ 890 IF NC = 2 OR NC = 1 THEN PRINT EX$ CHR$(17) 900 IF LEN(NL$) = 0 GOTO 420 910 NL = VAL(NL$) 920 F = 1 930 IF NC = 2 OR NC = 1 THEN PRINT EX$ CHR$(17) 940 HOME : VTAB 12: PRINT "PRESS ESCAPE TO STOP PRINTING" 950 PRINT D$;"PR#"SL: PRINT CHR$(9)"255N": PRINT CM$; 960 PRINT LZ$; 970 FOR I = 1 TO NL 980 CALL 854 990 PRINT L6$;: PRINT 995 FOR XX = 1 TO 1000: NEXT XX 1000 PRINT LZ$;: IF PEEK( -16384) = 155 THEN I = NL 1010 NEXT I 1020 PRINT : PRINT D$;"PR#0": GOTO 420 1030 REM TOGGLE DISK DRIVES 1040 IF DN = 1 THEN DN = 2: GOTO 1060 1050 DN = 1 1060 POKE -21912,DN 1070 GOSUB 1630: GOTO 440 1080 REM GET PRINT SHOP GRAPHIC 1090 REM AND CONVERT FOR PRINTING 1100 EF = 4: ONERR GOTO 1360 1110 HOME : VTAB 10: HTAB 10: PRINT "ENTER GRAPHIC NAME: ": PRINT 1120 VTAB 23: HTAB 12: PRINT "RETURN FOR MENU" 1130 VTAB 12 1140 HTAB 11: INPUT "";GN$: IF LEN(GN$) = 0 GOTO 420 1150 A$ = GN$: GOSUB 1660:GN$ = A$ 1160 CALL 851: REM CLEAR $4000-$43FF 1170 PRINT D$;"BLOAD ";GN$;",A$4000" 1180 VTAB 23: HTAB 5: PRINT LEFT$(BL$,32) 1190 L% = LEN(GN$ +"CONVERTING ")/2: VTAB 15: HTAB (19 -L%): FLASH : PRINT "CONVERTING ";GN$;: NORMAL 1200 VTAB 23: HTAB 5: PRINT LEFT$(BL$,32) 1210 FOR KK = 16956 TO 16959: POKE KK,0: NEXT KK 1220 CALL 848: REM CONVERT THE PICTURE 1230 GF = 1: GOTO 420 1240 REM SAVE CONVERTED PICTURE 1250 EF = 5: ONERR GOTO 1360 1260 HOME : ON NOT (GF) GOTO 1820: VTAB 10: HTAB 10: PRINT "ENTER PICTURE NAME: ": PRINT 1270 VTAB 23: HTAB 12: PRINT "RETURN FOR MENU" 1280 VTAB 12 1290 HTAB 11: INPUT "";PN$: IF PN$ = "" GOTO 420 1300 PN$ = PN$ +".CVT":A$ = PN$: GOSUB 1660:PN$ = A$ 1310 L% = LEN(PN$ +"SAVING ")/2: VTAB 15: HTAB (19 -L%): FLASH : PRINT "SAVING ";PN$;: NORMAL : PRINT 1320 VTAB 23: HTAB 5: PRINT LEFT$(BL$,32) 1330 PRINT D$;"BSAVE ";PN$;",A$5000,L$758" 1340 GOTO 420 1350 REM ERROR HANDLER 1360 EC = PEEK(222):EL = PEEK(219) *256 + PEEK(218): POKE 216,0: CALL -3288 1370 IF EC = 4 THEN A$ = "DISK IS WRITE-PROTECTED": GOTO 1440 1380 IF EC = 6 THEN A$ = "FILE NOT FOUND ON THIS DISK": GOTO 1440 1390 IF EC = 8 THEN A$ = "I/O ERROR--CHECK DRIVE DOOR": GOTO 1440 1400 IF EC = 9 THEN A$ = "DISK FULL": GOTO 1440 1410 IF EC = 10 THEN A$ = "FILE LOCKED": GOTO 1440 1420 IF EC = 13 THEN A$ = "FILE TYPE MISMATCH": GOTO 1440 1430 A$ = "ERROR " + STR$(EC) +" IN LINE " + STR$(EL) 1440 HOME : VTAB 10: PRINT LEFT$(BL$, INT((40 - LEN(A$))/2))A$: VTAB 22: PRINT "ESC TO QUIT, RETURN TO TRY AGAIN";: GET A$: PRINT : IF A$ < >EX$ THEN ON EF GOTO 360,420,590,1100,1250,530 1450 REM QUIT ROUTINE 1460 POKE -21912,1 1470 IF F = 0 GOTO 1500 1480 PRINT CHR$(4)"PR#"SL: PRINT EC$: PRINT CHR$(12) 1490 PRINT CHR$(4)"PR#0" 1500 HOME : END 1510 REM SCREEN MENU 1520 HOME : VTAB 5 1530 PRINT "PRINT SHOP LABEL MAKER" 1540 VTAB 8 1550 X = 5 1560 HTAB X: PRINT LB$"C] - CATALOG CURRENT DISK" 1570 HTAB X: PRINT LB$"G] - CONVERT PRINT SHOP GRAPHIC" 1580 HTAB X: PRINT LB$"L] - LOAD CONVERTED PICTURE" 1590 HTAB X: PRINT LB$"P] - PRINT LABELS" 1600 HTAB X: PRINT LB$"S] - SAVE CONVERTED PICTURE" 1610 HTAB X: PRINT LB$"T] - TOGGLE BETWEEN DRIVE 1 & 2" 1620 HTAB X: PRINT LB$"Q] - QUIT" 1630 VTAB 17: HTAB 8: PRINT "DISK DRIVE ";: INVERSE : PRINT DN;: NORMAL : PRINT " IS ACTIVE" 1640 VTAB 19: HTAB 9: PRINT "ENTER CHOICE: "; 1650 RETURN 1660 AA$ = "" 1670 FOR Z = 1 TO LEN(A$) 1680 T$ = MID$ (A$,Z,1) 1690 IF ASC(T$) > = 97 THEN T$ = CHR$( ASC(T$) -32) 1700 AA$ = AA$ +T$ 1710 NEXT Z 1720 A$ = AA$ 1730 RETURN 1740 REM DATA FOR INTERFACE GOES HERE 1750 REM ROUTINE TO POKE INTERFACE DATA STARTING AT 17902--ENDS W/ RETURN 1760 POKE 17409,1: POKE 17495,10: POKE 17496,48: POKE 17510,1: REM PROWRITER/IMAGEWRITER PIN INVERSION 1770 POKE 17964,6: POKE 17965,27: POKE 17966,83: POKE 17967,48: POKE 17968,48: POKE 17969,56: POKE 17970,56: REM PROWRITER/IMAGEWRITER GRAPHICS 1780 POKE 17972,4: POKE 17973,27: POKE 17974,84: POKE 17975,49: POKE 17976,52: REM PRO/IMWR7/72-IN.LINESPACING 1790 RETURN 1800 L6$ = EX$ +"A" + CHR$(16):LZ$ = EX$ +"1":CM$ = CHR$(15):FILL(1) = 21:FILL(2) = 21:FILL(3) = 7:EC$ = EX$ +"@": RETURN 1810 L6$ = EX$ +"T32":LZ$ = EX$ +"T14":CM$ = EX$ +"Q":FILL(1) = 21:FILL(2) = 21:FILL(3) = 7:EC$ = EX$ +"N" +EX$ +"A": RETURN 1820 VTAB 12: PRINT "NO GRAPHIC IN MEMORY" 1830 VTAB 22: PRINT "PRESS RETURN TO CONTINUE";: GET Z$: PRINT 1840 GOTO 420