The following GB/2Liners are the result of a personal challenge to write as much coding as possible in just two lines of Extended Basic, and have a fully functioning utility.
All you have to do is type in these routines EXACTLY as they are printed. Please be aware that there is a special key stroke that will allow you to type code beyond the normal four screen line limit. However I am sorry to admit that I am unable to recall what it is at this time. After all, these routines were written some time ago.
(The original listed programs were scanned as text, and then edited with Microsoft's Word. I may have missed a few scanning errors, but I tried to minimize this problem.) Please contact me if you have any questions.
Closing Routine for all GB/2Liners:
100 CALL SCREEN(8):: FOR I=1 TO 12 :: CALL COLOR(I,2,1):: NEXT I :: PRINT : : :"WHICH ONE?": : :"1. LOAD MENU": :"2. QUIT" :: ON ERROR 110 :: CLOSE #2 :: !"FINI"(C)1989 G.W.BERNASEK
110 CALL KEY(0,K,S):: IF S=0 THEN 110 ELSE IF K=49 THEN RUN "DSK1.LOAD" ELSE IF K<>50 THEN 110 ELSE CALL CLEAR :: END
This routine will place a message in the center of the screen:
FOR D=8 TO 0 STEP -1 :: R=INT(N*10^D+5)/10^D :: PRINT R,"(";D;"PLACES )" ::
NEXT D :: PRINT "ANOTHER ONE?Y/N" :: !"ROUNDING" (C)1989 G.W.BERNASEK
110 CALL KEY(0,K,S):: IF S=0 THEN 110 ELSE IF K=78 THEN RUN "DSK1.FINI" ELSE 100
A very handy DV80 file text reading routine:
100 CALL CLEAR :: INPUT "PUT DV8O DISK IN DRIVE AND ENTER <DSK1.FILENAME>:
":F$ :: INPUT "TO:<0>-SCREEN or <1>-PRINTER":P :: PRINT "HOLD DOWN ANY KEY TO
PRINT.": : : :: OPEN #2:F$,INPUT
110 CALL KEY(0,K,S):: IF 6=0 THEN 110 ELSE IF EOF(2)THEN CLOSE #2:: END :: ELSE OPEN #1:"PIO" :: LINPUT #2:T$ :: PRINT #P:T$ :: CLOSE #1 :: GOTO 110 ::
!"TEXTREAD1" (C) 1989 G.W. BERNASEK
Same text reading routine, but uses two disk drives:
100 CALL CLEAR :: INPUT "PUT DV8O DISK IN DRIVE#2 ANDENTER <DSK2.FILENAME>:
":F$ :: INPUT ('TO:<0>-SCREEN or <1>-PRINTER":P :: PRINT "HOLD DOWN ANY KEY TO
PRINT.": : : :: OPEN #2:F$,INPUT
110 CALL KEY(0,K,S):: IF S=0 THEN 110 ELSE IF EOF(2)THEN RUN "DSKl.FINI" ELSE OPEN #1:"PIO" :: LINPUT #2:T$ :: PRINT #P:T$ :: CLOSE #1 :: GOTO 110 :: !"TEXTREAD2" (C)1989 G.W.BERNASEK
This routine runs any typed message across the bottom of the screen:
100 CALL CLEAR :: INPUT "PUT DATA DISK IN DRIVE ENTER <DSK1.FILENAME>:":F$ :: OPEN #2:F$,INPUT :: LINPUT #2:T$ :: CALL CLEAR :: !"TINYCRAWL1" (C)1989
G.W.BERNASEK
110 FOR J=28 TO 1 STEP -1 :: DISPLAY AT(24,J):SEG$(T$,1,29-J):: NEXT J :: FOR I=
1 TO LEN(T$)+1 :: DISPLAY AT(24,1):SEG$(T$,I,28):: NEXT I :: LINPUT #2:T$ ::
IF EOF(2)THEN CLOSE #2 :: END :: ELSE 110
This is the same routine, but uses two disk drives:
100 CALL CLEAR :: INPUT "PUT DATA DISK IN DRIVE#2 ENTER <DSK2.FILENAME>:":F$ :: OPEN #2:F$,INPUT :: LINPUT #2:T$ :: CALL CLEAR :: !"TINYCRAWL2" (C)1989
G.W.BERNASEK
110 FOR J=2B TO 1 STEP -1 :: DISPLAY AT(24,J):SEG$(T$,1,29-J):: NEXT J ::
FOR I=1 TO LEN(T$)+1 :: DISPLAY AT(24,1):SEG$(T$,I,28):: NEXT I :: LINPUT #2:T$ :: IF EOF(2)THEN RUN "DSK1.FINI" ELSE 110
This routine will dump screen characters on to a printer:
100 OPEN #1:"PIO" :: FOR R=1 TO 22 :: FOR C=: TO :0 :: CALL GCHAR(R,C,X)::
!"TINYDUMP" (C)1989 G.W.BERNASEK
110 X$=X$&CHR$(X):: NEXT C :: PRINT #1:X$ :: X$="" :: NEXT R :: CLOSE #1 :: RUN "DSK1.FINI"
This routine is a basic line editor (Good for typing quick notes.):
100 CALL CLEAR :: PRINT "1. PUT DATA DISK IN DRIVE. 2. EDIT OR ACCEPT EACH LINE
.3. ""E"" ADDED TO FILE NAME." :: INPUT "[DSK1.NAME]?":F$ :: OPEN #2:F$,INPUT :: OPEN #1: F$&"E",OUTPUT, VARIABLE
110 LINPUT #2:T$ :: IF EOF(2)THEN CLOSE #1 :: CLOSE #2 :: END :: ELSE DISPLAY
100 CALL CLEAR :: PRINT "1. PUT DATA DISK IN DRIVE#2.2. EDIT OR ACCEPT EACH LINE.3. ""E"" ADDED TO FILE NAME." :: INPUT "[DSK2.NAME]?":F$ :: OPEN 2:F$,INPUT :: OPEN #1: F$&"E",OUTPUT, VARIABLE
110 LINPUT #2:T$ :: IF EOF(2)THEN CLOSE #1 :: RUN "DSKI.FINI" :: ELSE DISPLAY AT (23,1):T$ :: ACCEPT AT(23,1)BEEP SIZE(-28):T$ :: PRINT #1:T$ :: PRINT ::
GOTO 110 :: !"TINYEDIT2" (C)1989 G.W.BERNASEK
This routine will create a full disk of DV80 files:
100 CALL CLEAR :: PRINT "1. PUT DATA DISK IN DRIVE. 2. TYPE AND ENTER EACH LINE
.:. ENTER ""E"" ALONE TO EXIT.": : :: INPUT "[DSK1.NAME]?":F$ :: !"TINYFILER1" (C)1989 G.W.BERNASEK
110 ACCEPT AT(23,1)BEEP SIZE(28):D$ :: IF (D$="E")+(D$="e")THEN END ELSE OPEN #1