home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / articles / GB2Liners.txt < prev    next >
Text File  |  2006-10-19  |  7KB  |  170 lines

  1. Dear TI'ers,
  2.  
  3. 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.
  4.  
  5. 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.
  6.  
  7. (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.
  8.  
  9.  
  10.  
  11. Closing Routine for all GB/2Liners:
  12.  
  13. 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
  14. 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
  15.  
  16.  
  17.  
  18. This routine will place a message in the center of the screen:
  19.  
  20. 100 CALL CLEAR :: DEF C=INT(40-(LEN(MSG$)/2)):: INPUT "ENTER A MESSAGE-":MSG$ :: !"AUTO-CENTERING ROUTINE" (C)1989 G.W.BERNASEK
  21. 110 OPEN #1:"PIO.LM="&STR$(C):: PRINT #1:MSG$ :: CLOSE #1 :: RUN "DSK1.FINI"
  22.  
  23.  
  24.  
  25. This routine will set left margins at any desired distance:
  26.  
  27. 100 CALL CLEAR :: INPUT "ENTER A LEFT MARGIN NUMBER-":C :: !"A VARIABLE LEFT MARGIN SETTER" (C)1989 G.W.BERNASEK
  28. 110 OPEN #1:"PIO.LM="&STR$(C):: PRINT #1:C :: CLOSE # :: RUN "DSK1.FINI"
  29.  
  30.  
  31.  
  32. This routine calls Lotto numbers:
  33.  
  34. 100 CALL CLEAR :: INPUT "ENTER:0-SCREEN or 1-PRINTER ":P :: CALL CLEAR :: 
  35. DIM N(45) :: OPEN #1:"PIO" :: PRINT #P:"TI-LOTTO": : : :: J=1 :: RANDOMIZE :1 !"MICROLOTTO" (C)1989 G.W.BERNASEK
  36. 110 D=INT(RND#44)+1 :: IF D=N(D)THEN 110 ELSE N(D)=D :: IF J<7 THEN 
  37. PRINT #P:N(D );" ";:: J=J+1 :: GOTO 110 ELSE PRINT : : :: CLOSE #1 :: RUN "DSK1.FINI"
  38.  
  39.  
  40.  
  41.  
  42.  
  43. This routine will sort twenty five randomly drawn numbers:
  44.  
  45. 100 CALL CLEAR :: DIM I(25):: RANDOMIZE :: PRINT "AS DRAWN:": : :: FOR J=1 TO 25 :: N=INT(RND#25)+1 :: PRINT N;" ";:: I(N)=I(N)+N :: NEXT J :: !"MINISORT" 
  46. (C)1989 G.W.BERNASEK
  47. 110 PRINT : :"SORTED:": : :: FOR J=1 TO 25 :: FOR K=1 TO I(J)/J :: PRINT J;" ";:
  48. : NEXT K :: NEXT J :: RUN "DSK1.FINI"
  49.  
  50.  
  51.  
  52.  
  53. This routine will set Epson compatible printer commands: 
  54.  
  55. 100 CALL CLEAR  :: P$=CHR$(27)&CHR$(64):: DISPLAY AT(:,1):"ACCEPT OR CHANGE CONTROLS:" :: DISPLAY AT(5,1):P$ :: !"PRINTERSET" (C)1989 G.W.BERNASEK
  56. 110 ACCEPT AT(5,1)SIZE(-28):P$ :: OPEN #1:"PIO" :: PRINT #1:P$ :: CLO$E #1 :: 
  57. RUN "DSK1.FINI"
  58.  
  59.  
  60.  
  61.  
  62. This routine will reset the operational speed of complicated X-basic programs:
  63.  
  64. 100 ON ERROR 110 :: OPEN #1: "CS7" :: !"RATEMAINT" (C)1989 G.W.BERNASEK
  65. 110 RUN "DSK1.FINI"
  66.  
  67.  
  68.  
  69.  
  70. This routine rounds up randomly drawn numbers from 8 to zero decimal places:
  71.  
  72. 100 CALL CLEAR :: RANDOMIZE :: N=RND#10 :: PRINT N,"( AS DRAWN )" :: 
  73. FOR D=8 TO 0 STEP -1 :: R=INT(N*10^D+5)/10^D :: PRINT R,"(";D;"PLACES )" :: 
  74. NEXT D :: PRINT "ANOTHER ONE?Y/N" :: !"ROUNDING" (C)1989 G.W.BERNASEK
  75. 110 CALL KEY(0,K,S):: IF S=0 THEN 110 ELSE IF K=78 THEN RUN "DSK1.FINI" ELSE 100
  76.  
  77.  
  78.  
  79.  
  80. A very handy DV80 file text reading routine:
  81.  
  82. 100 CALL CLEAR :: INPUT "PUT DV8O DISK IN DRIVE AND  ENTER <DSK1.FILENAME>:
  83. ":F$ :: INPUT "TO:<0>-SCREEN or <1>-PRINTER":P :: PRINT "HOLD DOWN ANY KEY TO 
  84. PRINT.": : : :: OPEN #2:F$,INPUT
  85. 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 :: 
  86. !"TEXTREAD1" (C) 1989 G.W. BERNASEK
  87.  
  88.  
  89. Same text reading routine, but uses two disk drives:
  90.  
  91. 100    CALL CLEAR :: INPUT "PUT DV8O DISK IN DRIVE#2 ANDENTER <DSK2.FILENAME>:
  92. ":F$ :: INPUT ('TO:<0>-SCREEN or <1>-PRINTER":P :: PRINT "HOLD DOWN ANY KEY TO 
  93. PRINT.": : : :: OPEN #2:F$,INPUT
  94. 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
  95.  
  96.  
  97.  
  98.  
  99. This routine runs any typed message across the bottom of the screen:
  100.  
  101. 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 
  102. G.W.BERNASEK
  103. 110 FOR J=28 TO 1 STEP -1 :: DISPLAY AT(24,J):SEG$(T$,1,29-J):: NEXT J :: FOR I=
  104. 1 TO LEN(T$)+1  :: DISPLAY AT(24,1):SEG$(T$,I,28):: NEXT I :: LINPUT #2:T$ :: 
  105. IF EOF(2)THEN CLOSE #2 :: END :: ELSE 110
  106.  
  107.  
  108.  
  109.  
  110.  
  111. This is the same routine, but uses two disk drives:
  112.  
  113. 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 
  114. G.W.BERNASEK
  115. 110 FOR J=2B TO 1 STEP -1 :: DISPLAY AT(24,J):SEG$(T$,1,29-J):: NEXT J :: 
  116. 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
  117.  
  118.  
  119.  
  120. This routine will dump screen characters on to a printer:
  121.  
  122. 100 OPEN #1:"PIO" :: FOR R=1 TO 22 :: FOR C=: TO :0 :: CALL GCHAR(R,C,X):: 
  123. !"TINYDUMP" (C)1989 G.W.BERNASEK
  124. 110 X$=X$&CHR$(X):: NEXT C  :: PRINT #1:X$  :: X$=""  :: NEXT R :: CLOSE #1  :: RUN "DSK1.FINI"
  125.  
  126.  
  127.  
  128. This routine is a basic line editor (Good for typing quick notes.):
  129.  
  130. 100 CALL CLEAR :: PRINT "1. PUT DATA DISK IN DRIVE.  2. EDIT OR ACCEPT EACH LINE
  131. .3.    ""E"" ADDED TO FILE NAME." :: INPUT "[DSK1.NAME]?":F$ :: OPEN #2:F$,INPUT :: OPEN #1: F$&"E",OUTPUT, VARIABLE
  132. 110 LINPUT #2:T$ :: IF EOF(2)THEN CLOSE #1 :: CLOSE #2 :: END :: ELSE DISPLAY 
  133. AT(23,1):T$  :: ACCEPT AT(23,1)BEEP SIZE(-28):T$ :: PRINT #1:T$ :: PRINT :: 
  134. GOTO 110 :: !"TINYEDIT1" (C)1989 G.W.BERNASEK
  135.  
  136.  
  137.  
  138. Same as above, but uses two disk drives:
  139.  
  140. 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
  141. 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 :: 
  142. GOTO 110 :: !"TINYEDIT2" (C)1989 G.W.BERNASEK
  143.  
  144.  
  145.  
  146. This routine will create a full disk of DV80 files:
  147.  
  148. 100 CALL CLEAR :: PRINT "1. PUT DATA DISK IN DRIVE.  2. TYPE AND ENTER EACH LINE
  149. .:. ENTER ""E"" ALONE TO EXIT.": :   :: INPUT "[DSK1.NAME]?":F$ :: !"TINYFILER1" (C)1989 G.W.BERNASEK
  150. 110 ACCEPT AT(23,1)BEEP SIZE(28):D$ :: IF (D$="E")+(D$="e")THEN END ELSE OPEN #1
  151. :F$,APPEND,VARIABLE :: PRINT #1:D$ :: CLOSE #1 :: PRINT :: GOTO 110
  152.  
  153.  
  154.  
  155.  
  156. Same routine as above, but uses two disk drives:
  157.  
  158. 100 CALL CLEAR :: PRINT "1. PUT DATA DISK IN DRIVE#2.2. TYPE AND ENTER EACH LINE
  159. .:. ENTER ""E"" ALONE TO EXIT.": : :: INPUT "[DSK2.NAME]?":F$ :: !"TINYFILER2" 
  160. (C)1989 G.W.BERNASEK
  161. 110 ACCEPT AT(23,1)BEEP SIZE(28):D$ :: IF (D$="E")+(D$="e")THEN RUN "DSK1.FINI"
  162. ELSE OPEN #1:F$,APPEND,VARIABLE :: PRINT #1:D$ :: CLOSE #1 :: PRINT :: GOTO 110
  163.  
  164.  
  165. Enjoy!
  166.  
  167. Glenn Bernasek
  168. GBBasics@aol.com
  169.  
  170.