100 REM ------------------------------------------------------------ 110 REM BETAMES.BAS 120 REM SIMPLE MESSAGE SOFTWARE FOR BETABRITE DISPLAY 130 REM ------------------------------------------------------------- 140 TEMP1$="~1Special!, ~2On sale today and tomorrow only, " 150 TEMP2$="~5Widgets for only, ~1*** 9.99 ***, ~3What a cool deal!" 200 KEY OFF:FOR A=1 TO 10:KEY A,"":NEXT 210 CLS 220 PRINT "BetaBrite display message entry version 10/18/01 Industrologic, Inc." 230 PRINT 240 PRINT "F1 = COM1" 250 PRINT "F2 = COM2" 260 PRINT "ESC = Exit program" 270 B$=INKEY$:IF B$="" THEN 270 280 IF B$=CHR$(0)+CHR$(59) THEN OPEN "COM1: 2400,E,7,1,CS,DS,CD" AS 1:GOTO 500 290 IF B$=CHR$(0)+CHR$(60) THEN OPEN "COM2: 2400,E,7,1,CS,DS,CD" AS 1:GOTO 500 300 IF B$=CHR$(27) THEN COLOR 7,0:CLS:END 310 GOTO 270 490 REM ----- 500 CLS 510 PRINT "BetaBrite display message entry":PRINT 520 PRINT "Enter text to display" 530 PRINT "Use up and down arrow to select line 1 or 2" 540 PRINT "ESC = exit program":PRINT 550 PRINT "Use the following character pairs to change colors:" 560 PRINT "~1=red ~2=green ~3=amber ~4=orange ~5=yellow ~6=rainbow ~7=mixed colors" 570 LOCATE 10,1:PRINT "1: ";TEMP1$:LOCATE 11,1:PRINT "2: ";TEMP2$ 580 LOCATE 13,1:PRINT "Resetting display..."; 590 GOSUB 2000:REM RESET DISPLAY 600 T=TIMER 605 IF TIMER0 THEN MID$(TEXT$,I,2)=CHR$(28)+"1" 820 I=INSTR(TEXT$,"~2"):IF I<>0 THEN MID$(TEXT$,I,2)=CHR$(28)+"2" 830 I=INSTR(TEXT$,"~3"):IF I<>0 THEN MID$(TEXT$,I,2)=CHR$(28)+"3" 840 I=INSTR(TEXT$,"~4"):IF I<>0 THEN MID$(TEXT$,I,2)=CHR$(28)+"7" 850 I=INSTR(TEXT$,"~5"):IF I<>0 THEN MID$(TEXT$,I,2)=CHR$(28)+"8" 860 I=INSTR(TEXT$,"~6"):IF I<>0 THEN MID$(TEXT$,I,2)=CHR$(28)+"9":REM OR A 870 I=INSTR(TEXT$,"~7"):IF I<>0 THEN MID$(TEXT$,I,2)=CHR$(28)+"B" 880 NEXT X 890 LOCATE 13,1:PRINT "Sending message... "; 895 IF LEN(TEXT$)>13 THEN MODE$="a" ELSE MODE$="b" 900 GOSUB 1000:REM DISPLAY MESSAGE 910 T=TIMER 920 IF TIMER126 THEN GOSUB 10400:GOTO 10050 10110 REM ----- good character 10115 L=EDCOL-COL:IF INS THEN 10155 10120 REM ----- add character if at end of string 10125 IF EDCOL=COL+LEN(TEMP$) THEN TEMP$=TEMP$+IN$:EDCOL=EDCOL+1:GOTO 10010 10130 REM ----- add character in middle if not in insert mode 10135 TEMP$=LEFT$(TEMP$,L)+IN$+RIGHT$(TEMP$,LEN(TEMP$)-1-L):EDCOL=EDCOL+1 10140 IF EDCOL=COL+LNG THEN GOSUB 10400 :REM beep if typing over last char. 10145 GOTO 10010 10150 REM ----- in insert mode, check for full field 10155 IF LEN(TEMP$)=LNG THEN GOSUB 10400:GOTO 10010 :REM full field 10160 TEMP$=LEFT$(TEMP$,L)+IN$+RIGHT$(TEMP$,LEN(TEMP$)-L) :REM not full 10165 EDCOL=EDCOL+1:GOTO 10010 10170 REM ----- BACKSPACE ----- 10175 REM ----- error if at leftmost column 10180 IF EDCOL=COL THEN GOSUB 10400:GOTO 10010 10185 REM ----- skip moving cursor left if the field is full 10190 IF LEN(TEMP$)=LNG AND EDCOL=COL+LNG-1 THEN 10215 10195 REM ----- normal backspace (in middle of field) 10200 L=EDCOL-1-COL:TEMP$=LEFT$(TEMP$,L)+RIGHT$(TEMP$,LEN(TEMP$)-1-L) 10205 EDCOL=EDCOL-1:GOTO 10010 10210 REM ----- backspace if at rightmost column 10215 TEMP$=LEFT$(TEMP$,LEN(TEMP$)-1):GOTO 10010 10220 REM ----- LEFT ARROW ----- 10225 INS=0:IF EDCOL>COL THEN EDCOL=EDCOL-1:GOTO 10010 10230 GOSUB 10400:GOTO 10010 :REM error if left col 10235 REM ----- RIGHT ARROW ----- 10240 INS=0:IF EDCOLCOL+LNG THEN EDCOL=COL+LNG:GOTO 10025 10290 REM ----- INSERT ----- 10295 IF INS THEN INS=0:GOTO 10010 ELSE INS=-1:GOTO 10010 10300 REM ----- DELETE ----- 10305 INS=0:L=EDCOL-COL 10310 IF EDCOL>=COL+LEN(TEMP$) THEN GOSUB 10400:GOTO 10010 10315 TEMP$=LEFT$(TEMP$,L)+RIGHT$(TEMP$,LEN(TEMP$)-L-1):GOTO 10010 10320 REM ----- COMMON EXIT ----- 10325 REM remove blanks at end 10330 IF RIGHT$(TEMP$,1)=CHR$(255) THEN TEMP$=LEFT$(TEMP$,LEN(TEMP$)-1):GOTO 10330 10335 REM change blanks in middle to spaces 10340 FOR AAAA%=1 TO LEN(TEMP$) 10345 IF MID$(TEMP$,AAAA%,1)=CHR$(255) THEN MID$(TEMP$,AAAA%,1)=" " 10350 NEXT AAAA% 10355 REM redisplay string 10360 LOCATE ROW,COL,0:COLOR 7,0 10365 PRINT TEMP$+SPACE$(LNG-LEN(TEMP$)); 10370 RETURN 10375 REM 10395 REM ----- BEEP IF ERROR ----- 10400 BEEP:RETURN 10405 REM