home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib24a.dsk / MAY.1985 / BANNER.BOSS.bas next >
BASIC Source File  |  2023-02-26  |  12KB  |  138 lines

  1. 10  REM **********************
  2. 20  REM *    BANNER.BOSS     *
  3. 30  REM * BY DAVID  SIGETICH *
  4. 40  REM * COPYRIGHT (C) 1985 *
  5. 50  REM * BY MICROSPARC, INC *
  6. 60  REM * CONCORD, MA  01742 *
  7. 70  REM **********************
  8. 80  TEXT : HOME : INVERSE : PRINT "             BANNER.BOSS               ": PRINT "** COPYRIGHT 1985, MICROSPARC, INC.  **": NORMAL : POKE 34,2
  9. 90  DIM C$(26),S$(22),X$(22),A%(58,123):EE$ =  CHR$(27):D$ =  CHR$(4):U$ = "  "
  10. 100  PRINT : PRINT  TAB( 8)"WHAT PRINTER DO YOU HAVE?": PRINT : PRINT  TAB( 14)"<E>PSON": PRINT  TAB( 14)"<P>ROWRITER/IMAGEWRITER"
  11. 110  VTAB 13: HTAB 14: CALL  -958: PRINT "< >";: CALL  -1008: CALL  -1008: GET PT$: PRINT PT$: IF PT$ < >"E"  AND PT$ < >"P"  THEN 110
  12. 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$ +"@"
  13. 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)
  14. 140  GOTO 260
  15. 150  REM     PRINT SUBROUTINE
  16. 160 INDENT = 24: IF SL$ = "L"  THEN INDENT = 6
  17. 170  FOR J = 1 TO A%(C,0): PRINT SIZE$; SPC( INDENT);U$;C$(J);LF$
  18. 180  NEXT J
  19. 190  IF U$ < >"  "  THEN 220
  20. 200  IF SL$ = "L"  THEN  PRINT : PRINT : PRINT : PRINT : RETURN 
  21. 210  FOR Z = 1 TO 4: PRINT LF$: NEXT : RETURN 
  22. 220  IF I =  LEN(MM$)  THEN  RETURN 
  23. 230  IF SL$ = "L"  THEN 250
  24. 240  FOR Z = 1 TO 3: PRINT SIZE$; SPC( INDENT);U$;LF$: NEXT : RETURN 
  25. 250  FOR Z = 1 TO 3: PRINT SIZE$; SPC( INDENT);U$: NEXT : RETURN 
  26. 260  REM    MAIN PROGRAM
  27. 270  HOME 
  28. 280  VTAB 3: PRINT "       PRESS CAPS LOCK KEY DOWN.": REM    DELETE THIS LINE IF YOU     DON'T HAVE AN APPLE //E
  29. 290 MM$ = "": VTAB 4: HTAB 1
  30. 300  PRINT "YOUR MESSAGE MAY BE 225 CHARACTERS LONG."
  31. 310  VTAB 6: HTAB 1: PRINT "YOUR MESSAGE: ": VTAB 12: PRINT "TYPE SIZE:        (";: INVERSE : PRINT "S";: NORMAL : PRINT "/L) >": PRINT "       SMALL/LARGE)"
  32. 320  VTAB 15: PRINT "UNDERLINE?        (Y/";: INVERSE : PRINT "N";: NORMAL : PRINT ") >": PRINT "---------": VTAB 18: PRINT "NORMAL/EMPHASIZED (";: INVERSE : PRINT "N";: NORMAL : PRINT "/E) >"
  33. 330  VTAB 20: INVERSE : HTAB 15: PRINT "OK?";: NORMAL : PRINT " (Y/";: INVERSE : PRINT "N";: NORMAL : PRINT ") >"
  34. 340  VTAB 24: HTAB 1: INVERSE : PRINT " CHARACTERS: A-Z 1-0 !" + CHR$(34) +"$()*:=-+;<,>.?/ ";: NORMAL 
  35. 350  REM    MESSAGE GETTER
  36. 360  VTAB 6: HTAB 15
  37. 370  GET A$: IF A$ =  CHR$(13)  AND MM$ < >""  THEN 440
  38. 380  IF A$ =  CHR$(8)  AND  LEN(MM$) =  >2  THEN MM$ =  LEFT$(MM$, LEN(MM$) -1): CALL  -1008: CALL  -868: GOTO 370
  39. 390  IF A$ =  CHR$(8)  AND  LEN(MM$) =  <1  THEN MM$ = "": HTAB 15: CALL  -868: GOTO 370
  40. 400  IF  ASC(A$) <32  THEN 370
  41. 410  IF  LEN(MM$) = 225  THEN  PRINT  CHR$(7);: GOTO 370
  42. 420 MM$ = MM$ +A$: PRINT A$;: GOTO 370
  43. 430  REM    ANSWER GETTER
  44. 440  VTAB 12: HTAB 26: GET SL$:SIZE$ = "": IF SL$ = "L"  THEN SIZE$ = P4$: PRINT SL$: IF PT$ = "E"  THEN P2$ = ""
  45. 450  IF SL$ < >"L"  THEN P1$ = "": VTAB 12: HTAB 26: PRINT "S"
  46. 460 U$ = "  ": VTAB 15: HTAB 26: GET A$: PRINT "N": IF A$ = "Y"  THEN  VTAB 15: HTAB 26: PRINT "Y":U$ = "@@"
  47. 470 FT$ = "": VTAB 18: HTAB 26: GET A$: PRINT "N": IF A$ = "E"  THEN  VTAB 18: HTAB 26: PRINT "E":FT$ = P3$
  48. 480  VTAB 20: HTAB 26: GET A$: PRINT A$: IF A$ < >"Y"  THEN  VTAB 6: CALL  -958:MM$ = "": GOTO 260
  49. 490  REM    MESSAGE PRINTER
  50. 500  IF S$(1) = " "  THEN 570
  51. 510  HOME : VTAB 12: PRINT "DEFINING CHARACTER SET...": PRINT : PRINT 
  52. 520  FOR N = 1 TO 22: FOR M = 1 TO N:S$(N) = S$(N) +" ":X$(N) = X$(N) +"@": NEXT : NEXT 
  53. 530  FOR N = 0 TO 58: READ Y$,M
  54. 540  IF N = 2  THEN  PRINT  CHR$(34);" ";: GOTO 560
  55. 550  PRINT Y$;" ";
  56. 560  FOR L = 0 TO M: READ A%(N,L): NEXT : NEXT 
  57. 570  HOME : VTAB 12: PRINT "PRINTING..."
  58. 580  PRINT D$"PR#1": PRINT P5$;
  59. 590  PRINT P1$;: PRINT P2$;: PRINT FT$;: PRINT 
  60. 600  FOR I = 1 TO  LEN(MM$)
  61. 610 C$ =  MID$ (MM$,I,1):C =  ASC(C$) -32: IF C >58  THEN 690
  62. 620 T = 0: FOR L = 1 TO A%(C,0):C$(L) = ""
  63. 630  IF A%(C,T +1) <0  THEN C$(L) = C$( -A%(C,T +1)): GOTO 670
  64. 640  FOR B = 1 TO A%(C,T +1):T = T +2
  65. 650 C$(L) = C$(L) +S$(A%(C,T)) +X$(A%(C,T +1))
  66. 660  NEXT B
  67. 670 T = T +1: NEXT L
  68. 680  GOSUB 150
  69. 690  NEXT I:P1$ = "":P2$ = "":P3$ = "":P4$ = "": PRINT : PRINT D$"PR#0": VTAB 3: CALL  -958: PRINT MM$: PRINT : PRINT 
  70. 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
  71. 710  IF A$ < >"F"  AND A$ < >"L"  AND A$ < >"R"  AND A$ < >"Q"  THEN  HTAB 1: VTAB 6: CALL  -958: GOTO 700
  72. 720  IF A$ = "F"  THEN  PRINT D$"PR#1": PRINT  CHR$(12): PRINT D$"PR#0": GOTO 700
  73. 730  IF A$ = "L"  THEN  PRINT D$"PR#1": PRINT : PRINT D$"PR#0": GOTO 700
  74. 740  IF A$ = "R"  THEN 120
  75. 750  TEXT : HOME : END 
  76. 760  REM    CHARACTER SET
  77. 770  DATA  " ", 10,8, 1,0,0, -1, -1, -1, -1, -1, -1, -1  
  78. 780  DATA  !, 16,6, 1,14,3, 2,4,1,6,9,2, 3,3,2,15, -3, -2, -1
  79. 790  DATA  "", 14,8, 1,20,4, 1,16,8, -1, 1,0,0, -4, -1, -2, -1 
  80. 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
  81. 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
  82. 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
  83. 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
  84. 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
  85. 850  DATA  ', 7,3, 1,20,4, 1,16,8, -1
  86. 860  DATA  (,12,6, 1,3,21, -1, -1, 2,3,3,15,3, -4, -4
  87. 870  DATA  ), 12,6, 2,3,3,15,3, -1, -1, 1,3,21, -4, -4
  88. 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
  89. 890  DATA  +, 17,13, 1,12, 3, -1, -1, -1, -1, 1,7,13, -6, -6, -1, -1, -1, -1, -1
  90. 900  DATA  ",", 14,4, 1,3,3, 2,1,1,1,3, 1,1,5, 1,2,4
  91. 910  DATA  -, 13,11, 1,12,3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
  92. 920  DATA  ., 6,4, 1,3,3, -1, -1, -1
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 1040  DATA  ":", 8,4, 2,8,3,5,3, -1, -1, -1
  105. 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
  106. 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  
  107. 1070  DATA  =, 19,15, 2,8,3,5,3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 
  108. 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
  109. 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  
  110. 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
  111. 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
  112. 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
  113. 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  
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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 
  119. 1190  DATA  H, 17,13, 1,3,21, -1, -1, 1,12,3, -4, -4, -4, -4, -4, -4, -1, -1, -1
  120. 1200  DATA  I, 17,11, 2,3,3,15,3, -1, -1, -1, 1,3,21, -5, -5, -1, -1, -1, -1
  121. 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
  122. 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
  123. 1230  DATA  L, 15,11, 1,3,21, -1, -1, 1,3,3, -4, -4, -4, -4, -4, -4, -4  
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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 
  131. 1310  DATA  T, 17,13, 1,21,3, -1, -1, -1, -1, 1,3,21,  -6, -6, -1, -1, -1, -1, -1
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 1380  DATA  2,3,3,12,6, 2,3,3,13,5, 2,3,3,14,4