Appears on
Library tape of the Indiana Sinclair Timex User’s Group.
Source Code
1 BORDER 0: POKE 23624,6: LET t=255: CLEAR (256*t-769): GO SUB 70: FOR i=0 TO 79: READ h: POKE (i+256*torg),h: NEXT i: POKE 23296,0: REM MACHINE CODE LOADER 2 POKE 23658,8: POKE 23609,50: CLS : PRINT INK 2;AT 8,5;" S E L E C T T Y P E "''': PRINT TAB 5;"MAGNABANNER ......... M";''TAB 5;"PROGRAMMED BANNER ... P": INPUT "SELECT M / P :";i$: IF i$="P" THEN GO TO 10 3 GO SUB 95: GO SUB 17: INPUT "MESSAGE ";Z$: LET s=LEN Z$: FOR x=1 TO s: LET p$="\':": LET g$="\:.": LET a$=z$(x): GO SUB 19: LPRINT y$: IF x=s THEN GO TO 2: IF INKEY$<>"" THEN STOP 5 NEXT x: GO TO 2: REM LINES 3-5 PRINT PROGRAMMED TITLE BANNER 6 GO TO 2: BEEP 1,-10: PAUSE 100: FOR k=65 TO 68: FOR a=1 TO 16: GO SUB 125: LET a$=STR$ a: POKE 23692,0: GO SUB 60: IF INKEY$<>"" THEN GO TO 9: REM LINES 6-9 ARE THE DEMO 7 IF a>12 THEN LET c=0: LET c$="" 8 LET c=0: LET e=0: GO SUB 115: GO SUB 17: GO SUB 19: LPRINT a: PRINT a: PAUSE 200: NEXT a: NEXT k 9 IF INKEY$="" THEN GO TO 6: REM LINES 10-17 ARE THE MAIN PROGRAM 10 POKE 23607,60: INPUT "SIZE? (1-16) ";a 11 INPUT "ENTER TYPE THAT YOU WANT (BOLD,MODERN,ITALICS,REGULAR) ";z$: LET z$=z$+"1" 12 INPUT "ENTER YOUR MESSAGE ";a$ 13 INPUT "DO YOU WANT YOUR MESSAGE IN THE CENTER OF THE PAPER,IN THE TOP OF THE PAPER OR THE BOTTOM OF THE PAPER? ";c$ 14 INPUT "ENTER PRINT CHARACTER ";p$: INPUT "ENTER BACKGROUND CHARACTER ";G$ 15 IF a$="" OR g$="" OR p$="" OR a<1 OR a>16 OR (c$<>"c" AND c$<>"C" AND c$<>"t" AND C$<>"T" AND c$<>"b" AND c$<>"B") OR (z$<>"B1" AND z$<>"b1" AND z$<>"M1" AND z$<>"m1" AND z$<>"I1" AND z$<>"i1" AND z$<>"R1" AND z$<>"r1") THEN GO TO 5: REM CHECK FOR INPUT ERRORS 16 GO SUB 17: GO SUB 19: GO TO 10 17 LET z=VAL z$: GO SUB z: CLS : POKE 23692,0: LET v2=INT ((a/4)+(1 AND a<>4 AND a<>8 AND a<>12 AND a<>16)): IF (c$<>"b" AND c$<>"B") AND a<13 THEN LET e=32-(v2*8): IF (c$="c" OR c$="C") AND a<13 THEN LET e=e-(e/2) 18 RETURN 19 LET c$="": FOR d=1 TO e: LET c$=c$+" ": NEXT d: LET h$=g$(1): LET q$=p$(1): FOR v=1 TO v2-1: LET g$=g$+h$: LET p$=p$+q$: NEXT v 20 FOR j=1 TO LEN a$: REM LINES 19-45 ARE THE MAGNIFY SUB 21 LET co=PEEK 23693: POKE 23693,INT (co/8)*8: PRINT AT 21,0;a$(j): LET x$="": POKE 23693,co 23 REM x$="THE VARIABLE CHARACTER IS STORED IN 30 FOR c=0 TO 7: FOR r=0 TO 7 35 IF POINT (c,r)=1 THEN LET x$=x$+p$: GO TO 45 40 LET x$=x$+g$ 45 NEXT r: NEXT c: PRINT AT 0,0; 47 REM PRINT SUB 50 LET n2=v2*4+1: LET s=v2*8: LET g2=v2*64: LET g3=s-1: REM SETS VARIABLES FOR PRINTING 55 FOR g=1 TO g2 STEP s: FOR n=1 TO n2-a: LPRINT c$;x$(g TO g+g3): PRINT c$;x$(g TO g+g3): NEXT n: NEXT g: NEXT j: RETURN 57 REM RANDOM BACKGROUND & PRINT CHARACTERS FOR THE DEMO 60 RANDOMIZE 0: LET c=INT (RND*3): GO SUB 100: LET g=INT (RND*26): LET g$=CHR$ (g+32): LET p$=CHR$ (g+64): RETURN 63 REM EXTRA TYPE STYLE SUBS (FROM AUGUST ISSUE RAMTOP MODIFIED) 65 POKE 23607,60: RETURN 66 LET typ=2: POKE 23618,68: POKE 23619,0: POKE 23620,2 67 LET typ=1: POKE 23618,68: POKE 23619,0: POKE 23620,2 68 LET typ=0: RANDOMIZE USR (torg*256+2-typ): POKE 23607,torg-4: RETURN 70 LET torg=255: LET r=65: LET r1=r: LET b=66: LET b1=b: LET m=67: LET m1=m: LET i=68: LET i1=i: REM VARIABLES FOR TYPE STYLELINE NUMBERS 75 RETURN 80 DATA 0,0,121,203,39,203,39,50,21,255,33,0,61,17,0,torg-3 90 DATA 1,0,3,126,24,48,203,63,24,44,230,112,24,37,121,230,7,203,39,50,40,255,126,24,30,24,28,24,16,24,14,24,14,24,20,24,18,24,2,200,63,203,63,24,10,203,39,203,39,24,4,183,203,39,182,18,35,19,11,120,177,32,196,201 93 REM MACHINE CODE FOR EXTRA TYPE STYLES 95 LET c$="": LET e=0: LET z$="b1": LET j$="\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':\':": LET y$="\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.\:.": LET a=15: RETURN : REM INITIALIZE PRORAMMED BANNER VARIABLES 97 REM C$=WHETHER TO PRINT ON THE BOTTOM,THE TOP OR THE CENTER OF THE PAPER 100 LET C$=("b" AND c=0)+("c" AND c=1)+("t" AND c=2) 105 RETURN : REM SET C$ FOR THE DEMO 110 REM k=WHETHER TO HAVE BOLD,MODERN,ITALICS OR REGULAR PRINT FOR THE DEMO 115 LET z$=("r1" AND k=65)+("b1" AND k=66)+("m1" AND k=67)+("i1" AND k=68) 120 RETURN : REM SET K FOR THE DEMO 125 GO SUB b1: PRINT #1;AT 0,14;"DEMO": GO SUB r1: RETURN 9998 SAVE "MAGNABANER" LINE 1: REM VERIFY ""