100 REM ********************************************************************** 110 REM 120 REM FILENAME ROUTDEMG.BAS 130 REM WRITTEN BY GARY PEEK 140 REM LAST UPDATE 01/13/93 150 REM 160 REM DESCRIPTION DEMONSTRATES THE FUNCTIONS OF THE SUBROUTINES 170 REM THAT DISPLAY LARGE CHARACTERS AND DISPLAY BAR GRAPH. 180 REM ********************************************************************** 190 KEY OFF:FOR A=1 TO 10:KEY A,"":NEXT A 200 COLOR 7,0:CLS 210 DIM BIGMSG$(5):DIM BIG$(20) 220 REM ----- FORM LARGE CHARACTER MESSAGES ----- 230 IF BIGFLAG THEN 310 240 BIGMSG$(1)=" DISPLAY " 250 BIGMSG$(2)=" LARGE " 260 BIGMSG$(3)=" MESSAGES " 270 INITMSG=1 280 GOSUB 60000 290 BIGFLAG=-1 300 REM ----- DISPLAY LARGE CHARACTER MESSAGES ----- 310 CLS 320 ROW=6:COL=1:BIGMSG=1:GOSUB 61000 330 ROW=11:COL=1:BIGMSG=2:GOSUB 61000 340 ROW=16:COL=1:BIGMSG=3:GOSUB 61000 350 REM ----- 360 LOCATE 24,22 370 PRINT "ESCape to exit, any other key to continue"; 380 LOCATE ,,0 390 IN$=INKEY$:IF IN$="" THEN 390 400 IF IN$=CHR$(27) THEN COLOR 7,0:CLS:END 410 REM -------- BAR GRAPH -------- 420 LOCATE ,,0 430 DIM BARVALUE(25):DIM BARID$(25) 440 BV=10:ID=1 450 FOR B=1 TO 25 460 A=INT(RND*(2)):REM GIVE BARVALUE A RANDOM VALUE FOR THIS DEMO 470 IF A=0 THEN BV=BV-1 480 IF A=1 THEN BV=BV+2 490 BARVALUE(B)=BV 500 BARID$=RIGHT$(STR$(ID),LEN(STR$(ID))-1) 510 IF LEN(BARID$)<2 THEN BARID$="0"+BARID$:GOTO 510 520 BARID$(B)=BARID$ 530 ID=ID+1 540 NEXT B 550 NUMBARS=25:BARCOL=5:BARSPACE=2 560 BOX=1 570 VERTMSG$="VERTICAL SCALE MESSAGE" 580 HORIZMSG$="HORIZONTAL SCALE MESSAGE" 590 REFLINE=1 600 DIM REFLINE$(11) 610 REFLINE$(1)=" 0" 620 REFLINE$(2)=" 4" 630 REFLINE$(3)=" 8" 640 REFLINE$(4)="12" 650 REFLINE$(5)="16" 660 REFLINE$(6)="20" 670 REFLINE$(7)="24" 680 REFLINE$(8)="28" 690 REFLINE$(9)="32" 700 REFLINE$(10)="36" 710 REFLINE$(11)="40" 720 GOSUB 50000 730 REM ----- 740 ERASE BARVALUE:ERASE BARID$:ERASE REFLINE$ 750 REM ----- 760 LOCATE 4,22 770 PRINT "ESCape to exit, any other key to continue"; 780 LOCATE ,,0 790 IN$=INKEY$:IF IN$="" THEN 790 800 IF IN$=CHR$(27) THEN COLOR 7,0:CLS:END 810 GOTO 230 49795 REM ******************************************************************** 49800 REM --------------------- DISPLAY A BAR GRAPH -------------------------- 49805 REM 49810 REM This subroutine displays a bar graph of up to 78 bars representing 49815 REM values from 0 to 42. The position of the bar graph can be adjusted 49820 REM by selecting where the first bar begins and by the number of spaces 49825 REM (whose length depends on the spacing between bars). Horizontal 49830 REM reference lines can be added along with scale markings for the lines. 49835 REM A vertical scale message can be centered at the left of the graph 49840 REM and a horizontal scale message can be centered at the bottom of the 49845 REM graph area (which also determines the message's maximum length). 49850 REM 49855 REM Bar graphs that have at least one space between bars are drawn with 49860 REM the standard "TEXT" colors and those that have adjacent bars alter- 49865 REM nate between "TEXT" and "DATA" colors for easy viewing of the bars. 49870 REM 49875 REM 49880 REM 49885 REM enter with - BARVALUE(1) through BARVALUE(x), array of bar values 49890 REM value=0 to 42 (greater than 42 will be truncated) 49895 REM (array must be DIMinsioned before using this routine) 49900 REM NUMBARS=number of bars to display 49905 REM BARCOL=1 to 78, leftmost column where bars begin 49910 REM BARSPACE=number of spaces between bars 49915 REM optional - BARID$(1) through BARID$(x), array of identifiers 49920 REM (array must be DIMinsioned before using this routine) 49925 REM optional - VERTMSG$="vertical scale message", up to 23 characters 49930 REM optional - HORIZMSG$="horizontal scale message", length adjusted 49935 REM optional - REFLINE=0,1 0=no grid, 1=horizontal grid 49940 REM optional - REFLINE$(1) through REFLINE$(11), 49945 REM array of vertical scale messages used if REFLINE=1 49950 REM (array must be DIMinsioned before using this routine) 49955 REM optional- BOX=0,1,2,3 - type of box to draw around whole screen 49960 REM 0 = no box, 1 = 1 line, 2 = 2 line, 3 = solid 49965 REM optional - TEXTFORE,TEXTBACK,DATAFORE,DATABACK,FIELDFORE,FIELDBACK 49970 REM colors optionally specified for COLOR statements 49975 REM exit with - BOX=0, REFLINE=0 (to maintain as optional) 49980 REM 49985 REM 49990 REM 49995 REM 50000 IF TEXTFORE=0 AND TEXTBACK=0 THEN TEXTFORE=7 :REM 50000 50005 IF DATAFORE=0 AND DATABACK=0 THEN DATAFORE=15 50010 IF FIELDFORE=0 AND FIELDBACK=0 THEN FIELDBACK=7 50015 COLOR TEXTFORE,TEXTBACK 50020 CLS:LOCATE ,,0 50025 IF BOX=0 THEN 50075 50030 IF BOX=1 THEN TP=196:BT=196:MS=179:UL=218:LL=192:UR=191:LR=217 50035 IF BOX=2 THEN TP=205:BT=205:MS=186:UL=201:LL=200:UR=187:LR=188 50040 IF BOX=3 THEN TP=223:BT=220:MS=219:UL=219:LL=219:UR=219:LR=219 50045 ROW=1:LOCATE ROW,2:PRINT STRING$(78,CHR$(TP)); 50050 ROW=25:LOCATE ROW,2:PRINT STRING$(78,CHR$(BT)); 50055 COL=1:FOR ROW=2 TO 24:LOCATE ROW,COL:PRINT CHR$(MS);:NEXT 50060 COL=80:FOR ROW=2 TO 24:LOCATE ROW,COL:PRINT CHR$(MS);:NEXT 50065 LOCATE 1,1:PRINT CHR$(UL);:LOCATE 1,80:PRINT CHR$(UR); 50070 LOCATE 25,1:PRINT CHR$(LL);:LOCATE 25,80:PRINT CHR$(LR); 50075 BOX=0 50080 IF BARCOL=0 THEN BARCOL=3 50085 IF NUMBARS=0 THEN NUMBARS=1 50090 FIRSTCOL=BARCOL 50095 REM ----- FIND LAST COLUMN IN WHICH A BAR WILL BE DRAWN ----- 50100 LASTCOL=FIRSTCOL+(NUMBARS*(BARSPACE+1))-BARSPACE-1 50105 IF LASTCOL>78 THEN LASTCOL=LASTCOL-BARSPACE-1:GOTO 50105 50110 REM 50115 REM ----- D0 VERTICAL SCALE MESSAGES AND LINES IF SELECTED ----- 50120 IF REFLINE=0 THEN 50235 50125 REM ---------- PRINT MESSAGES ---------- 50130 FOR BARLOOP=1 TO 11 50135 LOCATE 23-(BARLOOP*2)+1,FIRSTCOL 50140 PRINT REFLINE$(BARLOOP); 50145 NEXT BARLOOP 50150 REM ----- FIND MAXIMUM LENGTH OF SCALE MESSAGES ----- 50155 MAXLEN=0 50160 FOR BARLOOP=1 TO 11 50165 L=LEN(REFLINE$(BARLOOP)) 50170 IF L>MAXLEN THEN MAXLEN=L 50175 NEXT BARLOOP 50180 REM ----- ADJUST COLUMNS FOR SCALE MESSAGES ----- 50185 FIRSTCOL=FIRSTCOL+MAXLEN+1:IF FIRSTCOL>78 THEN FIRSTCOL=78 50190 LASTCOL=LASTCOL+MAXLEN+1 50195 IF LASTCOL>78 THEN LASTCOL=LASTCOL-BARSPACE-1:GOTO 50195 50200 REM ---------- DRAW REFERENCE LINES ---------- 50205 COLOR DATAFORE,DATABACK 50210 FOR ROW=2 TO 22 50215 LOCATE ROW,FIRSTCOL 50220 PRINT STRING$(LASTCOL-FIRSTCOL+1,95):REM underscore 50225 NEXT ROW 50230 REM ---------- DRAW BARS ---------- 50235 BARCOL=FIRSTCOL 50240 FOR BARLOOP=1 TO NUMBARS 50245 BARVALUE=BARVALUE(BARLOOP) 50250 BARID$=BARID$(BARLOOP) 50255 IF BARSPACE<>0 THEN 50270 50260 IF BARLOOP MOD 2=1 THEN 50270 50265 BARFORE=DATAFORE:BARBACK=DATABACK:GOTO 50275 50270 BARFORE=TEXTFORE:BARBACK=DATABACK 50275 GOSUB 51000 :REM SUBROUTINE USED HERE 50280 BARCOL=BARCOL+BARSPACE+1 50285 IF BARCOL>78 THEN 50300 50290 NEXT BARLOOP 50295 REM ----- 50300 COLOR DATAFORE,DATABACK 50305 REM ----- PRINT VERTICAL SCALE MESSAGE ----- 50310 IF LEN(VERTMSG$)>23 THEN VERTMSG$=LEFT$(VERTMSG$,23) 50315 ROW=13-INT(LEN(VERTMSG$)/2) 50320 FOR BARLOOP=1 TO LEN(VERTMSG$) 50325 LOCATE ROW,3 50330 PRINT MID$(VERTMSG$,BARLOOP,1); 50335 ROW=ROW+1 50340 NEXT BARLOOP 50345 REM ----- PRINT HORIZONTAL SCALE MESSAGE ----- 50350 BARWIDTH=LASTCOL-FIRSTCOL+1 50355 IF LEN(HORIZMSG$)>BARWIDTH THEN HORIZMSG$=LEFT$(HORIZMSG$,BARWIDTH) 50360 COL=FIRSTCOL+INT(BARWIDTH/2)-INT(LEN(HORIZMSG$)/2)-1 50365 LOCATE 24,COL:PRINT HORIZMSG$; 50370 REM ----- 50375 COLOR TEXTFORE,TEXTBACK 50380 BOX=0:REFLINE=0 50385 RETURN 50390 REM 50925 REM ********************************************************************* 50930 REM ---------------- DRAW 1 BAR FOR USE IN A BAR GRAPH ------------------ 50935 REM 50940 REM This subroutine allows you to draw a single bar representing a 50945 REM value from 0 to 42. The base of the bar will start at the column 50950 REM of your choice and be draw upward from row 22. Row 23 will be 50955 REM where the ID is displayed, centered on the column. 50960 REM 50965 REM enter with - BARVALUE=0 to 42 (greater than 42 will be truncated) 50970 REM BARID$="bar ID", identification at bottom of bar 50975 REM BARCOL=column in which to draw bar 50980 REM optional - BARFORE,BARBACK 50985 REM colors optionally specified for COLOR statements 50990 REM 50995 REM 51000 IF BARFORE=0 AND BARBACK=0 THEN BARFORE=7 :REM 51000 51005 COLOR BARFORE,BARBACK 51010 COL=BARCOL-INT((LEN(BARID$)-.5)/2):IF COL<1 THEN COL=1 51015 LOCATE 23,COL:PRINT BARID$; 51020 ROW=22 51025 IF BARVALUE>42 THEN BARVALUE=42 51030 IF BARCOL>80 THEN 51060 51035 FOR A=1 TO (INT(BARVALUE/2)) 51040 LOCATE ROW,BARCOL:PRINT CHR$(219); 51045 ROW=ROW-1 51050 NEXT A 51055 IF (BARVALUE MOD 2)=1 THEN LOCATE ROW,BARCOL:PRINT CHR$(220); 51060 RETURN 51065 REM 59850 REM ******************************************************************** 59855 REM -------------------- CREATE LARGE CHARACTERS ----------------------- 59860 REM 59865 REM This routine is the first part of a 2 routine process that allows 59870 REM you create and then display messages with characters that are 4 59875 REM times the regular size. The screen can display up to 5 lines of 10 59880 REM characters each of this size. The process is divided into 2 routines 59885 REM so that messages with the large characters can be formed with the 59890 REM first routine during initialization of a program, when time is less 59895 REM of a concern, and then the messages can be displayed multiple times 59900 REM throughout the program without having to take the time to re-form 59905 REM the characters. If more than 5 large messages are needed and it is 59910 REM necessary to call this routine again, only those messages ( MSG$(1) 59915 REM to MSG$(5) ) that contain something will be formed and the others 59920 REM will be left alone. Since the process of forming large characters is 59925 REM time consuming, optional initialization messages can be displayed 59930 REM in the middle of the screen during the formation process. The screen 59935 REM is then restored after the formation process. 59940 REM 59945 REM enter with - BIGMSG$(1),BIGMSG$(2),BIGMSG$(3),BIGMSG$(4),BIGMSG$(5), 59950 REM array of messages to create, up to 10 characters each 59955 REM (Array must be DIMinsioned before calling this routine) 59960 REM optional - INITMSG=0,1 0=no messages, 1=messages 59965 REM exit with - BIG$(1) to BIG$(20) array filled with info needed to 59970 REM display large characters with the following routine. 59975 REM (Array must be DIMinsioned before calling this routine) 59980 REM BIGMSG$(1) to BIGMSG$(5) all ="" (NUL) to keep these 59985 REM messages optional if routine is used again. 59990 REM INITMSG=0 (to retain as optional for next time) 59995 REM 60000 IF TEXTFORE=0 AND TEXTBACK=0 THEN TEXTFORE=7 :REM 60000 60005 IF DATAFORE=0 AND DATABACK=0 THEN DATAFORE=15 60010 IF FIELDFORE=0 AND FIELDBACK=0 THEN FIELDBACK=7 60015 REM ----- SAVE SCREEN WHERE INIT MESSAGES ARE DISPLAYED ----- 60020 IF INITMSG=0 THEN 60070 60025 DIM BIGSSCHR(23):DIM BIGSSCOLOR(23,2) 60030 C=1:FOR COL=29 TO 51 60035 BIGSSCHR(C)=SCREEN(10,COL) 60040 A=SCREEN(10,COL,1):BIGSSCOLOR(C,1)=(A AND 15) 60045 IF (A AND 128)=128 THEN BIGSSCOLOR(C,1)=BIGSSCOLOR(C,1)+16 60050 BIGSSCOLOR(C,2)=(A AND 112)/16 60055 C=C+1:NEXT COL 60060 LOCATE 10,29,0:COLOR FIELDFORE,FIELDBACK:PRINT " INITIALIZING ... "; 60065 REM ------------------------------------------------------------------- 60070 RESTORE 60400 :REM POINT TO CHARACTER FONTS 60075 DIM FONT(96,8) 60080 FOR A=0 TO 95 60085 FOR B=0 TO 7 60090 READ F:FONT(A,B)=F 60095 NEXT B 60100 NEXT A 60105 REM ----- FORM CHARACTERS AND MESSAGES ----- 60110 FOR MSGLOOP=1 TO 5 60115 MSG$=BIGMSG$(MSGLOOP) 60120 IF MSG$="" THEN 60235 60125 REM --------------------------------------------- 60130 IF INITMSG=0 THEN 60150 60135 LOCATE 10,29,0:COLOR FIELDFORE,FIELDBACK 60140 PRINT " FORMING MESSAGE";STR$(MSGLOOP);" ..."; 60145 REM --------------------------------------------- 60150 IF LEN(MSG$)>10 THEN MSG$=LEFT$(MSG$,10) 60155 FOR CHARLOOP=1 TO LEN(MSG$) 60160 CHAR$=MID$(MSG$,CHARLOOP,1):CHARNUM=ASC(CHAR$)-32 60165 FOR BIGROW=0 TO 6 STEP 2 60170 MASK=128 :REM (for mask=128 to 1 step /2) 60175 F=FONT(CHARNUM,BIGROW) 60180 IF (F AND MASK)=MASK THEN UPPER=-1 ELSE UPPER=0 60185 F=FONT(CHARNUM,BIGROW+1) 60190 IF (F AND MASK)=MASK THEN LOWER=-1 ELSE LOWER=0 60195 IF UPPER AND LOWER THEN PIX=219:GOTO 60215 60200 IF UPPER AND NOT LOWER THEN PIX=223:GOTO 60215 60205 IF NOT UPPER AND LOWER THEN PIX=220:GOTO 60215 60210 IF NOT UPPER AND NOT LOWER THEN PIX=32 60215 B=(BIGROW/2)+1+((MSGLOOP-1)*4):BIG$(B)=BIG$(B)+CHR$(PIX) 60220 MASK=MASK/2:IF MASK<> .5 THEN 60175 :REM (next mask) (of 8) 60225 NEXT BIGROW :REM (of 4) 60230 NEXT CHARLOOP :REM (of up to 10) 60235 NEXT MSGLOOP :REM (of up to 5) 60240 BIGMSG$(1)="":BIGMSG$(2)="":BIGMSG$(3)="":BIGMSG$(4)="":BIGMSG$(5)="" 60245 ERASE FONT 60250 REM ----- RESTORE SCREEN ----- 60255 IF INITMSG=0 THEN 60285 60260 C=1:FOR COL=29 TO 51 60265 COLOR BIGSSCOLOR(C,1),BIGSSCOLOR(C,2) 60270 LOCATE 10,COL:PRINT CHR$(BIGSSCHR(C)); 60275 C=C+1:NEXT COL 60280 ERASE BIGSSCHR:ERASE BIGSSCOLOR 60285 RETURN 60290 REM 60295 REM 60300 REM 60365 REM ------------------------- CHARACTER FONTS -------------------------- 60370 REM 60375 REM These are the character fonts used by the large character routine. 60380 REM They start at 32 decimal or 20 hexidecimal which is a "space" and 60385 REM go to 127 decimal or 7F hexidecimal. They include the alphanumeric 60390 REM characters, punctuation, and some other characters. 60395 REM 60400 DATA &H00,&H00,&H00,&H00,&H00,&H00,&H00,&H0 60405 DATA &H30,&H78,&H78,&H30,&H30,&H00,&H30,&H0 60410 DATA &H6C,&H6C,&H6C,&H00,&H00,&H00,&H00,&H0 60415 DATA &H6C,&H6C,&HFE,&H6C,&HFE,&H6C,&H6C,&H0 60420 DATA &H30,&H7C,&HC0,&H78,&H0C,&HF8,&H30,&H0 60425 DATA &H00,&HC6,&HCC,&H18,&H30,&H66,&HC6,&H0 60430 DATA &H38,&H6C,&H38,&H76,&HDC,&HCC,&H76,&H0 60435 DATA &H60,&H60,&HC0,&H00,&H00,&H00,&H00,&H0 60440 DATA &H18,&H30,&H60,&H60,&H60,&H30,&H18,&H0 60445 DATA &H60,&H30,&H18,&H18,&H18,&H30,&H60,&H0 60450 DATA &H00,&H66,&H3C,&HFF,&H3C,&H66,&H00,&H0 60455 DATA &H00,&H30,&H30,&HFC,&H30,&H30,&H00,&H0 60460 DATA &H00,&H00,&H00,&H00,&H00,&H30,&H30,&H60 60465 DATA &H00,&H00,&H00,&HFC,&H00,&H00,&H00,&H0 60470 DATA &H00,&H00,&H00,&H00,&H00,&H30,&H30,&H0 60475 DATA &H06,&H0C,&H18,&H30,&H60,&HC0,&H80,&H0 60480 DATA &H7C,&HC6,&HCE,&HDE,&HF6,&HE6,&H7C,&H0 60485 DATA &H30,&H70,&H30,&H30,&H30,&H30,&HFC,&H0 60490 DATA &H78,&HCC,&H0C,&H38,&H60,&HCC,&HFC,&H0 60495 DATA &H78,&HCC,&H0C,&H38,&H0C,&HCC,&H78,&H0 60500 DATA &H1C,&H3C,&H6C,&HCC,&HFE,&H0C,&H1E,&H0 60505 DATA &HFC,&HC0,&HF8,&H0C,&H0C,&HCC,&H78,&H0 60510 DATA &H38,&H60,&HC0,&HF8,&HCC,&HCC,&H78,&H0 60515 DATA &HFC,&HCC,&H0C,&H18,&H30,&H30,&H30,&H0 60520 DATA &H78,&HCC,&HCC,&H78,&HCC,&HCC,&H78,&H0 60525 DATA &H78,&HCC,&HCC,&H7C,&H0C,&H18,&H70,&H0 60530 DATA &H00,&H30,&H30,&H00,&H00,&H30,&H30,&H0 60535 DATA &H00,&H30,&H30,&H00,&H00,&H30,&H30,&H60 60540 DATA &H18,&H30,&H60,&HC0,&H60,&H30,&H18,&H0 60545 DATA &H00,&H00,&HFC,&H00,&H00,&HFC,&H00,&H0 60550 DATA &H60,&H30,&H18,&H0C,&H18,&H30,&H60,&H0 60555 DATA &H78,&HCC,&H0C,&H18,&H30,&H00,&H30,&H0 60560 DATA &H7C,&HC6,&HDE,&HDE,&HDE,&HC0,&H78,&H0 60565 DATA &H30,&H78,&HCC,&HCC,&HFC,&HCC,&HCC,&H0 60570 DATA &HFC,&H66,&H66,&H7C,&H66,&H66,&HFC,&H0 60575 DATA &H3C,&H66,&HC0,&HC0,&HC0,&H66,&H3C,&H0 60580 DATA &HF8,&H6C,&H66,&H66,&H66,&H6C,&HF8,&H0 60585 DATA &HFE,&H62,&H68,&H78,&H68,&H62,&HFE,&H0 60590 DATA &HFE,&H62,&H68,&H78,&H68,&H60,&HF0,&H0 60595 DATA &H3C,&H66,&HC0,&HC0,&HCE,&H66,&H3E,&H0 60600 DATA &HCC,&HCC,&HCC,&HFC,&HCC,&HCC,&HCC,&H0 60605 DATA &H78,&H30,&H30,&H30,&H30,&H30,&H78,&H0 60610 DATA &H1E,&H0C,&H0C,&H0C,&HCC,&HCC,&H78,&H0 60615 DATA &HE6,&H66,&H6C,&H78,&H6C,&H66,&HE6,&H0 60620 DATA &HF0,&H60,&H60,&H60,&H62,&H66,&HFE,&H0 60625 DATA &HC6,&HEE,&HFE,&HFE,&HD6,&HC6,&HC6,&H0 60630 DATA &HC6,&HE6,&HF6,&HDE,&HCE,&HC6,&HC6,&H0 60635 DATA &H38,&H6C,&HC6,&HC6,&HC6,&H6C,&H38,&H0 60640 DATA &HFC,&H66,&H66,&H7C,&H60,&H60,&HF0,&H0 60645 DATA &H78,&HCC,&HCC,&HCC,&HDC,&H78,&H1C,&H0 60650 DATA &HFC,&H66,&H66,&H7C,&H6C,&H66,&HE6,&H0 60655 DATA &H78,&HCC,&HE0,&H70,&H1C,&HCC,&H78,&H0 60660 DATA &HFC,&HB4,&H30,&H30,&H30,&H30,&H78,&H0 60665 DATA &HCC,&HCC,&HCC,&HCC,&HCC,&HCC,&HFC,&H0 60670 DATA &HCC,&HCC,&HCC,&HCC,&HCC,&H78,&H48,&H0 60675 DATA &HC6,&HC6,&HC6,&HD6,&HFE,&HEE,&HC6,&H0 60680 DATA &HC6,&HC6,&H6C,&H38,&H38,&H6C,&HC6,&H0 60685 DATA &HCC,&HCC,&HCC,&H78,&H30,&H30,&H78,&H0 60690 DATA &HFE,&HC6,&H8C,&H18,&H32,&H66,&HFE,&H0 60695 DATA &H78,&H60,&H60,&H60,&H60,&H60,&H78,&H0 60700 DATA &HC0,&H60,&H30,&H18,&H0C,&H06,&H02,&H0 60705 DATA &H78,&H18,&H18,&H18,&H18,&H18,&H78,&H0 60710 DATA &H10,&H38,&H6C,&HC6,&H00,&H00,&H00,&H0 60715 DATA &H00,&H00,&H00,&H00,&H00,&H00,&H00,&HFF 60720 DATA &H30,&H30,&H18,&H00,&H00,&H00,&H00,&H0 60725 DATA &H00,&H00,&H78,&H0C,&H7C,&HCC,&H76,&H0 60730 DATA &HE0,&H60,&H60,&H7C,&H66,&H66,&HDC,&H0 60735 DATA &H00,&H00,&H78,&HCC,&HC0,&HCC,&H78,&H0 60740 DATA &H1C,&H0C,&H0C,&H7C,&HCC,&HCC,&H76,&H0 60745 DATA &H00,&H00,&H78,&HCC,&HFC,&HC0,&H78,&H0 60750 DATA &H38,&H6C,&H60,&HF0,&H60,&H60,&HF0,&H0 60755 DATA &H00,&H00,&H76,&HCC,&HCC,&H7C,&HC,&HF8 60760 DATA &HE0,&H60,&H6C,&H76,&H66,&H66,&HE6,&H0 60765 DATA &H30,&H00,&H70,&H30,&H30,&H30,&H78,&H0 60770 DATA &H0C,&H00,&H0C,&H0C,&H0C,&HCC,&HCC,&H78 60775 DATA &HE0,&H60,&H66,&H6C,&H78,&H6C,&HE6,&H0 60780 DATA &H70,&H30,&H30,&H30,&H30,&H30,&H78,&H0 60785 DATA &H00,&H00,&HCC,&HFE,&HFE,&HD6,&HC6,&H0 60790 DATA &H00,&H00,&HF8,&HCC,&HCC,&HCC,&HCC,&H0 60795 DATA &H00,&H00,&H78,&HCC,&HCC,&HCC,&H78,&H0 60800 DATA &H00,&H00,&HDC,&H66,&H66,&H7C,&H60,&HF0 60805 DATA &H00,&H00,&H76,&HCC,&HCC,&H7C,&H0C,&H1E 60810 DATA &H00,&H00,&HDC,&H76,&H66,&H60,&HF0,&H0 60815 DATA &H00,&H00,&H7C,&HC0,&H78,&H0C,&HF8,&H0 60820 DATA &H10,&H30,&H7C,&H30,&H30,&H34,&H18,&H0 60825 DATA &H00,&H00,&HCC,&HCC,&HCC,&HCC,&H76,&H0 60830 DATA &H00,&H00,&HCC,&HCC,&HCC,&H78,&H30,&H0 60835 DATA &H00,&H00,&HC6,&HD6,&HFE,&HFE,&H6C,&H0 60840 DATA &H00,&H00,&HC6,&H6C,&H38,&H6C,&HC6,&H0 60845 DATA &H00,&H00,&HCC,&HCC,&HCC,&H7C,&H0C,&HF8 60850 DATA &H00,&H00,&HFC,&H98,&H30,&H64,&HFC,&H0 60855 DATA &H1C,&H30,&H30,&HE0,&H30,&H30,&H1C,&H0 60860 DATA &H18,&H18,&H18,&H00,&H18,&H18,&H18,&H0 60865 DATA &HE0,&H30,&H30,&H1C,&H30,&H30,&HE0,&H0 60870 DATA &H76,&HDC,&H00,&H00,&H00,&H00,&H00,&H0 60875 DATA &H00,&H10,&H38,&H6C,&HC6,&HC6,&HFE,&H0 60880 REM 60890 REM 60930 REM ******************************************************************** 60935 REM -------------- DISPLAY MESSAGES WITH LARGE CHARACTERS -------------- 60940 REM 60945 REM This routine is the second part of the 2 routine process that 60950 REM allows you create and then display messages with large characters. 60955 REM 60960 REM 60965 REM enter with - BIGMSG=1 to 5, which message to display 60970 REM ROW and COL=row and column at which to start displaying 60975 REM the upper left corner of the message 60980 REM optional - TEXTFORE,TEXTBACK,DATAFORE,DATABACK,FIELDFORE,FIELDBACK 60985 REM colors optionally specified for COLOR statements 60990 REM 60995 REM 61000 IF TEXTFORE=0 AND TEXTBACK=0 THEN TEXTFORE=7 :REM 61000 61005 IF DATAFORE=0 AND DATABACK=0 THEN DATAFORE=15 61010 IF FIELDFORE=0 AND FIELDBACK=0 THEN FIELDBACK=7 61015 LOCATE ROW,COL:PRINT BIG$((BIGMSG-1)*4+1); 61020 LOCATE ROW+1,COL:PRINT BIG$((BIGMSG-1)*4+2); 61025 LOCATE ROW+2,COL:PRINT BIG$((BIGMSG-1)*4+3); 61030 LOCATE ROW+3,COL:PRINT BIG$((BIGMSG-1)*4+4); 61035 RETURN 61040 REM