10 'DISPLAY DOT MATRIX CHARACTERS FROM ROM PATTERNS 20 'SAMPLE INPUT ... 40,DON\JUAN 30 'PROGRAM CHANGES SCREEN WIDTH TO THE SPECIFIED 40 OR 80 CHARACTERS 40 'MESSAGE IS DISPLAYED IN LARGE CHARACTERS 50 'MAXIMUMS - 2 LINE DISPLAY 60 ' - WIDTH=40 4 CHARACTERS PER LINE 70 ' - WIDTH=80 8 CHARACTERS PER LINE 80 'THE BACKSLASH CHARACTER "\" STARTS THE SECOND LINE PRINT 90 DEFINT A-Z 100 SCREEN 0,0 110 DEF SEG=&HF000 120 BASEADR=&HFA6E 130 BYTESPERCHAR=8 140 KEY OFF 150 CLS 160 LOCATE 24,2 170 INPUT "ENTER WIDTH,MESSAGE";WID,MSG$ 180 CLS 190 IF (WID=40 OR WID=80) GOTO 200 ELSE PRINT "INVALID SCREENWIDTH...REENTER":CLS:GOTO 160 200 WIDTH WID 210 LOCATE 24,2 220 PRINT "WIDTH = ";WID;" MESSAGE = ";MSG$ 230 'X,Y = START LOCATION FOR CURRENT CHARACTER 240 X=2: Y=2 250 NUM=LEN(MSG$) 260 FOR I=1 TO NUM 270 CHAR$=MID$(MSG$,I,1) 280 IF CHAR$="\" THEN X=X+11:Y=3:GOTO 360 290 IF WID=40 AND Y>32 GOTO 360 300 IF WID=80 AND Y>73 GOTO 360 310 IF X>13 GOTO 360 320 CODE=ASC(CHAR$) 330 ADRESS=BASEADR+(CODE*BYTESPERCHAR) 340 GOSUB 380 350 Y=Y+9 360 NEXT I 370 GOTO 160 380 FOR ROW=1 TO 8 390 ROWVAL=PEEK(ADRESS+(ROW-1)) 400 FOR COL=1 TO 8 410 COLMASK=2^(7-(COL-1)) 420 IF (ROWVAL AND COLMASK) <> 0 THEN GOSUB 460 430 NEXT COL 440 NEXT ROW 450 RETURN 460 'LOCATE TO BIT POSITION AND DISPLAY GIANT PIXEL 470 X1=X+(ROW-1) 480 Y1=Y+(COL-1) 490 LOCATE X1,Y1 500 PRINT CHR$(CODE) 510 RETURN