home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib24a.dsk
/
MAY.1985
/
BANNER.BOSS.bas
next >
Wrap
BASIC Source File
|
2023-02-26
|
12KB
|
138 lines
10 REM **********************
20 REM * BANNER.BOSS *
30 REM * BY DAVID SIGETICH *
40 REM * COPYRIGHT (C) 1985 *
50 REM * BY MICROSPARC, INC *
60 REM * CONCORD, MA 01742 *
70 REM **********************
80 TEXT : HOME : INVERSE : PRINT " BANNER.BOSS ": PRINT "** COPYRIGHT 1985, MICROSPARC, INC. **": NORMAL : POKE 34,2
90 DIM C$(26),S$(22),X$(22),A%(58,123):EE$ = CHR$(27):D$ = CHR$(4):U$ = " "
100 PRINT : PRINT TAB( 8)"WHAT PRINTER DO YOU HAVE?": PRINT : PRINT TAB( 14)"<E>PSON": PRINT TAB( 14)"<P>ROWRITER/IMAGEWRITER"
110 VTAB 13: HTAB 14: CALL -958: PRINT "< >";: CALL -1008: CALL -1008: GET PT$: PRINT PT$: IF PT$ < >"E" AND PT$ < >"P" THEN 110
120 IF PT$ = "E" THEN LF$ = "":P1$ = EE$ +"W" + CHR$(1):P2$ = EE$ + CHR$(65) + CHR$(6):P3$ = EE$ +"E":P4$ = CHR$(14):P5$ = EE$ +"@"
130 IF PT$ = "P" THEN LF$ = "":P1$ = CHR$(9) +"80N":P2$ = EE$ +"B" + CHR$(6):P3$ = EE$ +"!":P4$ = CHR$(14):P5$ = EE$ + CHR$(34) + CHR$(15)
140 GOTO 260
150 REM PRINT SUBROUTINE
160 INDENT = 24: IF SL$ = "L" THEN INDENT = 6
170 FOR J = 1 TO A%(C,0): PRINT SIZE$; SPC( INDENT);U$;C$(J);LF$
180 NEXT J
190 IF U$ < >" " THEN 220
200 IF SL$ = "L" THEN PRINT : PRINT : PRINT : PRINT : RETURN
210 FOR Z = 1 TO 4: PRINT LF$: NEXT : RETURN
220 IF I = LEN(MM$) THEN RETURN
230 IF SL$ = "L" THEN 250
240 FOR Z = 1 TO 3: PRINT SIZE$; SPC( INDENT);U$;LF$: NEXT : RETURN
250 FOR Z = 1 TO 3: PRINT SIZE$; SPC( INDENT);U$: NEXT : RETURN
260 REM MAIN PROGRAM
270 HOME
280 VTAB 3: PRINT " PRESS CAPS LOCK KEY DOWN.": REM DELETE THIS LINE IF YOU DON'T HAVE AN APPLE //E
290 MM$ = "": VTAB 4: HTAB 1
300 PRINT "YOUR MESSAGE MAY BE 225 CHARACTERS LONG."
310 VTAB 6: HTAB 1: PRINT "YOUR MESSAGE: ": VTAB 12: PRINT "TYPE SIZE: (";: INVERSE : PRINT "S";: NORMAL : PRINT "/L) >": PRINT " SMALL/LARGE)"
320 VTAB 15: PRINT "UNDERLINE? (Y/";: INVERSE : PRINT "N";: NORMAL : PRINT ") >": PRINT "---------": VTAB 18: PRINT "NORMAL/EMPHASIZED (";: INVERSE : PRINT "N";: NORMAL : PRINT "/E) >"
330 VTAB 20: INVERSE : HTAB 15: PRINT "OK?";: NORMAL : PRINT " (Y/";: INVERSE : PRINT "N";: NORMAL : PRINT ") >"
340 VTAB 24: HTAB 1: INVERSE : PRINT " CHARACTERS: A-Z 1-0 !" + CHR$(34) +"$()*:=-+;<,>.?/ ";: NORMAL
350 REM MESSAGE GETTER
360 VTAB 6: HTAB 15
370 GET A$: IF A$ = CHR$(13) AND MM$ < >"" THEN 440
380 IF A$ = CHR$(8) AND LEN(MM$) = >2 THEN MM$ = LEFT$(MM$, LEN(MM$) -1): CALL -1008: CALL -868: GOTO 370
390 IF A$ = CHR$(8) AND LEN(MM$) = <1 THEN MM$ = "": HTAB 15: CALL -868: GOTO 370
400 IF ASC(A$) <32 THEN 370
410 IF LEN(MM$) = 225 THEN PRINT CHR$(7);: GOTO 370
420 MM$ = MM$ +A$: PRINT A$;: GOTO 370
430 REM ANSWER GETTER
440 VTAB 12: HTAB 26: GET SL$:SIZE$ = "": IF SL$ = "L" THEN SIZE$ = P4$: PRINT SL$: IF PT$ = "E" THEN P2$ = ""
450 IF SL$ < >"L" THEN P1$ = "": VTAB 12: HTAB 26: PRINT "S"
460 U$ = " ": VTAB 15: HTAB 26: GET A$: PRINT "N": IF A$ = "Y" THEN VTAB 15: HTAB 26: PRINT "Y":U$ = "@@"
470 FT$ = "": VTAB 18: HTAB 26: GET A$: PRINT "N": IF A$ = "E" THEN VTAB 18: HTAB 26: PRINT "E":FT$ = P3$
480 VTAB 20: HTAB 26: GET A$: PRINT A$: IF A$ < >"Y" THEN VTAB 6: CALL -958:MM$ = "": GOTO 260
490 REM MESSAGE PRINTER
500 IF S$(1) = " " THEN 570
510 HOME : VTAB 12: PRINT "DEFINING CHARACTER SET...": PRINT : PRINT
520 FOR N = 1 TO 22: FOR M = 1 TO N:S$(N) = S$(N) +" ":X$(N) = X$(N) +"@": NEXT : NEXT
530 FOR N = 0 TO 58: READ Y$,M
540 IF N = 2 THEN PRINT CHR$(34);" ";: GOTO 560
550 PRINT Y$;" ";
560 FOR L = 0 TO M: READ A%(N,L): NEXT : NEXT
570 HOME : VTAB 12: PRINT "PRINTING..."
580 PRINT D$"PR#1": PRINT P5$;
590 PRINT P1$;: PRINT P2$;: PRINT FT$;: PRINT
600 FOR I = 1 TO LEN(MM$)
610 C$ = MID$ (MM$,I,1):C = ASC(C$) -32: IF C >58 THEN 690
620 T = 0: FOR L = 1 TO A%(C,0):C$(L) = ""
630 IF A%(C,T +1) <0 THEN C$(L) = C$( -A%(C,T +1)): GOTO 670
640 FOR B = 1 TO A%(C,T +1):T = T +2
650 C$(L) = C$(L) +S$(A%(C,T)) +X$(A%(C,T +1))
660 NEXT B
670 T = T +1: NEXT L
680 GOSUB 150
690 NEXT I:P1$ = "":P2$ = "":P3$ = "":P4$ = "": PRINT : PRINT D$"PR#0": VTAB 3: CALL -958: PRINT MM$: PRINT : PRINT
700 VTAB 6: HTAB 1: CALL -958: PRINT "F)ORM FEED, L)INEFEED, R)ERUN, Q)UIT >";: GET A$: PRINT A$: FOR I = 1 TO 100: NEXT : REM 10, 9, & 6 SPACES
710 IF A$ < >"F" AND A$ < >"L" AND A$ < >"R" AND A$ < >"Q" THEN HTAB 1: VTAB 6: CALL -958: GOTO 700
720 IF A$ = "F" THEN PRINT D$"PR#1": PRINT CHR$(12): PRINT D$"PR#0": GOTO 700
730 IF A$ = "L" THEN PRINT D$"PR#1": PRINT : PRINT D$"PR#0": GOTO 700
740 IF A$ = "R" THEN 120
750 TEXT : HOME : END
760 REM CHARACTER SET
770 DATA " ", 10,8, 1,0,0, -1, -1, -1, -1, -1, -1, -1
780 DATA !, 16,6, 1,14,3, 2,4,1,6,9,2, 3,3,2,15, -3, -2, -1
790 DATA "", 14,8, 1,20,4, 1,16,8, -1, 1,0,0, -4, -1, -2, -1
800 DATA #,21,15, 2,8,3,5,3, -1, -1, 1,4,19, -4, -4, -1, -1, -1, -4, -4, -4, -1, -1, -1
810 DATA $, 37,13, 2,4,3,6,9, 2,4,3,5,11, -2, 3,4,3,5,3,5,3, 1,3, 21, -5, -4, -5, -5, -4, 2,4,11,5,3, -11, 2,5,9,6,2
820 DATA %, 42,10, 2,3,3,13,3, 2,5,3,11,3, 2,7,3,9,3, 1,9,3, 1,11,3, 1,13,3, 1,15,3, 2,5,3,9,3, 2,5,3,11,3, 2,5,3,13,3
830 DATA &,116,19, 1,6,2, 1,4,6, 3,4,2,2,3,6,2, 3,3,2,4,2,4,6, 4,3,2,5,2,1,4,2,3, 3,3,2,5,5,6,2, 3,3,2,6,1,10,1, 3,3,2,5,3,9,2, 4,3,2,4,2,1,1,9,2, 4,3,2,3,2,3,1,9,1, 4,4,2,2,2,3,2,8,1, 4,4,2,1,2,5,2,7,1, 3,5,4,6,2,5,2
840 DATA 2,6,2,9,6, 2,5,3,11,3, 1,5,4, 2,4,2,2,2, 2,4,2,3,1
850 DATA ', 7,3, 1,20,4, 1,16,8, -1
860 DATA (,12,6, 1,3,21, -1, -1, 2,3,3,15,3, -4, -4
870 DATA ), 12,6, 2,3,3,15,3, -1, -1, 1,3,21, -4, -4
880 DATA *, 57,19, 1,12,3, 3,6,1,5,3,5,1, 3,6,2,4,3,4,2, 3,6,3,3,3,3,3, 3,7,3,2,3,2,3, 3,8,3,1,3,1,3, 1,9,9, 1,10,7, 1,4,19, -9, -9, -8, -7, -6, -5, -4, -3, -2, -1
890 DATA +, 17,13, 1,12, 3, -1, -1, -1, -1, 1,7,13, -6, -6, -1, -1, -1, -1, -1
900 DATA ",", 14,4, 1,3,3, 2,1,1,1,3, 1,1,5, 1,2,4
910 DATA -, 13,11, 1,12,3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
920 DATA ., 6,4, 1,3,3, -1, -1, -1
930 DATA /, 30,10, 1,3,3, 1,5,3, 1,7,3, 1,9,3, 1,11,3, 1,13,3, 1,15,3, 1,17,3, 1,19,3, 1,21,3
940 DATA 0, 22,14, 1,4,19, 1,3,21, -2, 2,3,3,15,3, -4, -4, -4, -4, -4, -4, -4, -2, -2, -1
950 DATA 1, 39,13, 2,3,3,11,1, 2,3,3,11,2, 2,3,3,11,3, 2,3,3,12,3, 2,3,3,13,3, 1,3,20, 1,3,21, -7, 1,3,3, -9, -9, -9, -9
960 DATA 2, 79,13, 2,3,4,12,1, 2,3,5,11,2, 2,3,6,10,3, 3,3,3,1,3,10,3, 3,3,3,2,3,10,3, 3,3,3,3,3,10,2, 3,3,3,4,3,10,1, 3,3,3,5,3,9,1, 3,3,3,6,3,7,2, 3,3,3,7,3,6,2, 2,3,3,8,9, 2,3,3,9,7, 2,3,3,10,5
970 DATA 3, 86,13, 2,7,1,11,1, 2,6,2,11,2, 2,5,3,11,3, 2,4,3,13,3, 3,3,3,7,1,7,3, 3,3,2,7,3,7,2, 3,3,1,7,5,7,1, 3,3,1,6,7,6,1, 4,3,2,4,3,3,3,4,2, 4,3,3,2,3,5,3,2,3, 2,4,6,7,6, 2,5,4,9,4, 2,6,2,11,2, 2,7,2,11,2
980 DATA 4, 43,13, 1,12,3, 1,12,4, 1,12,5, 1,12,6, 2,12,3,1,3, 2,12,3,2,3, 2,12,3,3,3, 2,12,3,4,3, 2,12,3,5,3, 1,3,21, -10, -10, -1
990 DATA 5, 67,13, 2,7,1,5,11, 2,6,2,5,11, 2,5,3,5,11, 3,4,3,6,2,6,3, 3,3,3,7,2,6,3, 3,3,2,8,2,6,3, 3,3,1,9,2,6,3, -7, -6, 3,3,4,5,3,6,3, 2,4,10,7,3, 2,5,8,8,3, 2,7,5,9,3
1000 DATA 6, 64,14, 1,10,2, 1,8,6, 1,8,9, 2,5,5,2,7, 2,4,4,6,6, 2,3,5,7,7, 3,3,3,9,1,2,6, 3,3,1,11,1,4,4, 3,3,3,8,2,6,2, 2,3,5,5,2, 2,4,6,2,3, 1,6,8, 1,8,5, 1,10,2
1010 DATA 7, 52,12, 2,3,2,16,3, 2,3,4,14,3, 2,3,6,12,3, 2,5,6,10,3, 2,7,6,8,3, 2,9,6,6,3, 2,11,6,4,3, 2,13,6,2,3, 1,15,9, 1,17,7, 1,19,5, 1,21,3
1020 DATA 8, 55,15, 2,7,3,7,3, 2,6,5,5,5, 2,5,7,3,7, 4,4,3,2,4,1,3,3,3, 4,4,2,4,3,1,2,5,2, 3,3,2,6,4,7,2, 3,3,1,9,1,9,1, -7, -7, -6, -5, -4, -3, -2, -1
1030 DATA 9, 64,14, 1,15,2, 1,14,5, 1,13,8, 2,12,3,2,6, 2,12,2,5,5, 3,3,2,6,2,8,3, 3,3,4,4,1,11,1, 3,3,6,2,1,9,3, 2,5,7,8,4, 2,7,6,6,4, 2,8,7,2,4, 1,10,9, 1,13,5, 1,15,2
1040 DATA ":", 8,4, 2,8,3,5,3, -1, -1, -1
1050 DATA ;, 22,4, 2,3,3,5,3, 3,1,1,1,3,5,3, 2,1,5,5,3, 2,2,4,5,3
1060 DATA <, 49,11, 1,13,1, 1,12,3, 1,11,5, 2,10,3,1,3, 2,9,3,3,3, 2,8,3,5,3, 2,7,3,7,3, 2,6,3,9,3, 2,5,3,11,3, 2,4,3,13,3, 2,3,3,15,3
1070 DATA =, 19,15, 2,8,3,5,3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
1080 DATA >, 49,11, 2,3,3,15,3, 2,4,3,13,3, 2,5,3,11,3, 2,6,3,9,3, 2,7,3,7,3, 2,8,3,5,3, 2,9,3,3,3, 2,10,3,1,3, 1,11,5, 1,12,3, 1,13,1
1090 DATA ?, 81,15, 1,20,1, 1,19,3, 2,11,2,6,4, 2,10,4,7,3, 2,10,4,8,3, 3,9,2,2,2,8,2, 4,4,3,2,1,4,1,9,1, 4,4,3,2,2,3,2,8,1, 4,4,3,3,1,4,1,8,1, 3,11,1,3,2,6,2, 2,16,3,3,2, 2,16,4,1,3, 1,17,6, 1,19,3, 1,20,1
1100 DATA @,123,19, 1,12,4, 1,10,8, 1,9,10, 2,8,4,4,4, 2,7,3,8,3, 2,7,2,10,3, 3,6,2,8,2,2,2, 4,6,1,7,2,1,2,2,2, 4,5,2,6,3,2,2,2,2, 4,5,1,7,2,3,2,2,2, 4,4,2,6,4,2,2,3,1, 4,4,1,7,1,2,5,2,2
1110 DATA 4,4,1,7,2,2,4,2,2, 4,4,2,7,1,3,2,2,2, 3,5,1,7,2,6,1, 3,5,2,7,3,3,2, 2,6,2,6,7, 2,6,3,6,6, 2,7,3,7,3
1120 DATA A, 30,12, 1,3,16, 1,3,17, 1,3,18, 2,12,3,4,3, 2,12,3,5,3, 2,12,3,6,3, -6, -5, -4, -3, -2, -1
1130 DATA B, 45,13, 1,3,21, -1, -1, 3,3,3,7,2,6,3, -4, -4, -4, -4, 3,3,3,6,4,5,3, 3,3,4,4,6,4,3, 2,4,9,2,8, 2,5,7,4,6, 2,7,4,6,4
1140 DATA C, 34,14, 1,4,19, 1,3,21, -2,2,3,3,15,3, -4, -4, -4, -4, -4, -4, -4, 2,3,5,11,5, 2,4,4,11,4, 2,5,3,11,3
1150 DATA D, 56,16, 1,3,21, -1, -1, 2,3,3,15,3, -4, 2,4,2,15,2, 2,4,3,13,3, 2,5,2,13,2, -8, 2,6,2,11,2, 2,6,3,9,3, 2,7,3,7,3, 2,8,3,5,3, 1,9,9, 1,10,7, 1,12,3
1160 DATA E, 24,12, 1,3,21, -1, -1, 3,3,3,6,3,6,3, -4, -4, -4, -4, 2,3,3,15,3, -9, -9, -9
1170 DATA F, 20,12, 1,3,21, -1, -1, 2,12,3,6,3, -4, -4, -4, -4, 1,21,3, -9, -9, -9
1180 DATA G, 46,14, 1,4,19, 1,3,21, -2, 2,3,3,15,3, -4, -4, -4, -4, 3,3,3,2,5,8,3, 3,3,3,3,3,9,3, -10, 2,3,9,7,5, 2,4,8,7,4, 2,5,6,8,3
1190 DATA H, 17,13, 1,3,21, -1, -1, 1,12,3, -4, -4, -4, -4, -4, -4, -1, -1, -1
1200 DATA I, 17,11, 2,3,3,15,3, -1, -1, -1, 1,3,21, -5, -5, -1, -1, -1, -1
1210 DATA J, 44,14, 2,8,2,11,3, 2,6,3,12,3, 2,5,4,12,3, 2,4,4,13,3, 2,3,3,15,3, 2,3,2,16,3, -6, 1,3,21, -8, 1,4,20, 1,21,3, -11, -11, -11
1220 DATA K, 61,15, 1,3,21, -1, -1, 1,12,3, 1,11,5, 2,10,3,1,3, 2,9,3,3,3, 2,8,3,5,3, 2,7,3,7,3, 2,6,3,9,3, 2,5,3,11,3, 2,4,3,13,3, 2,3,3,15,3, 2,3,2,17,2, 2,3,1,19,1
1230 DATA L, 15,11, 1,3,21, -1, -1, 1,3,3, -4, -4, -4, -4, -4, -4, -4
1240 DATA M, 35,19, 1,3,21, -1, -1, 1,19,4, 1,17,4, 1,15,4, 1,13,4, 1,11,4, 1,10,3, 1,9,2, -9, -8, -7, -6, -5, -4, -1, -1, -1
1250 DATA N, 29,13, 1,3,21, -1, -1, 1,17,6, 1,15,6, 1,13,6, 1,11,6, 1,9,6, 1,7,6, 1,5,6, -1, -1, -1
1260 DATA O, 22,14, 1,4,19, 1,3,21, -2, 2,3,3,15,3, -4, -4, -4, -4, -4, -4, -4, -2, -2, -1
1270 DATA P, 23,13, 1,3,21, -1, -1, 2,12,3,6,3, -4, -4, -4, -4, -4, -4, 1,12,12, -11, 1,13,10
1280 DATA Q, 52,14, 1,4,19, 1,3,21, -2, 2,3,3,15,3, -4, 3,3,3,2,1,12,3, 3,3,3,1,2,12,3, 2,3,6,12,3, 2,3,5,13,3, 2,3,4,14,3, -4, 1,2,22, -12, 2,2,1,1,19
1290 DATA R, 49,13, 1,3,21, -1, -1, 2,12,3,6,3, -4, -4, 2,11,4,6,3, 2,9,6,6,3, 2,7,8,6,3, 3,5,6,1,3,6,3, 2,3,6,3,12, 2,3,4,5,12, 2,3,2,8,10
1300 DATA S, 35,13, 2,3,3,7,10, 2,3,3,6,12, -2, 3,3,3,6,3,6,3, -4, -4, -4, -4, -4, -4, 2,3,12,6,3, -11, 2,4,10,7,2
1310 DATA T, 17,13, 1,21,3, -1, -1, -1, -1, 1,3,21, -6, -6, -1, -1, -1, -1, -1
1320 DATA U, 20,14, 1,4,20, 1,3,21, -2, 1,3,3, -4, -4, -4, -4, -4, -4, -4, -2, -2, -1
1330 DATA V, 31,15, 1,21,3, 1,17,7, 1,15,9, 1,12,9, 1,9,9, 1,6,9, 1,4,8, 1,3,6, -7, -6, -5, -4, -3, -2, -1
1340 DATA W, 35,19, 1,3,21, -1, -1, 1,4,4, 1,6,4, 1,8,4, 1,10,4, 1,12,4, 1,14,3, 1,16,2, -9, -8, -7, -6, -5, -4, -3, -2, -1
1350 DATA X, 37,13, 2,3,2,17,2, 2,3,4,13,4, 2,3,6,9,6, 2,5,6,5,6, 2,7,6,1,6, 1,9,9, 1,11,5, -6, -5, -4, -3, -2, -1
1360 DATA Y, 31,15, 1,22,2, 1,20,4, 1,18,6, 1,16,6, 1,14,6, 1,12,5, 1,3,12, 1,3,10, -7, -6, -5, -4, -3, -2, -1
1370 DATA Z, 107,17, 2,3,4,14,3, 2,3,5,13,3, 2,3,6,12,3, 3,3,3,1,3,11,3, 3,3,3,2,3,10,3, 3,3,3,3,3,9,3, 3,3,3,4,3,8,3, 3,3,3,5,3,7,3, 3,3,3,6,3,6,3, 3,3,3,7,3,5,3, 3,3,3,8,3,4,3, 3,3,3,9,3,3,3, 3,3,3,10,3,2,3, 3,3,3,11,3,1,3
1380 DATA 2,3,3,12,6, 2,3,3,13,5, 2,3,3,14,4