home *** CD-ROM | disk | FTP | other *** search
/ Softdisk G-S 94 / SGDS 94.2mg / SDGS.94 / SDC94 / C / STRINGS.DEMO (.txt) < prev    next >
Encoding:
Applesoft BASIC Source Code  |  1989-06-18  |  4.8 KB  |  229 lines  |  [FC] Applesoft BASIC Program (0x0801)

  1. 0  ROT= 0: SPEED= 255: REM <CTRL-0x0d>(C)1988
  2. 100  PRINT  CHR$(21): IF  PEEK(176) >64  THEN  PRINT "TOO BIG. HGR2 WILL KILL LAST LINES.": STOP 
  3. 110  HGR2 : CALL 2304: POKE 48688, PEEK(0): POKE 48689, PEEK(1): LOMEM: 24576
  4. 130  CALL 2260: REM GSMONO
  5. 140  POKE 104,13: GOTO 1
  6. 150  CALL 2281: REM GSCOLR
  7. 160  PRINT  CHR$(4)"BYE"d"BYE"d SPEED= <CTRL-0x08> DEL h`8 <CTRL-0x1f><UNKNOWN TOKEN> GOSUB <CTRL-0x02> HGR2 <CTRL-0x01>` IF ^ TAB(  IF ) TAB( <CTRL-0x09>  PLOT ) TAB( `8 <CTRL-0x1f><UNKNOWN TOKEN> GOSUB <CTRL-0x02> HGR2 <CTRL-0x01>` IF _ TAB(  IF ) TAB( ) SIN PLOT ) TAB( `"
  8. 36286  <<CTRL-0x09> IF 1 GET  PLOT  SGN<CTRL-0x09> SPEED= 3 DEL 
  9. 389  SPEED= 
  10. 20653  TAB(  IF R TAB(  IF W TAB(  ONERR  ASC -@ = <CTRL-0x04> IF U TAB( ` IF T TAB(  SPEED=   DEL  ASC`) PLOT  PLOT <CTRL-0x09> J<UNKNOWN TOKEN> ONERR <UNKNOWN TOKEN>H ONERR  STR$) END  DEL <UNKNOWN TOKEN> IF  PLOT <CTRL-0x09> -  HGR2 u ONERR %  TO <UNKNOWN TOKEN> DEL & ONERR )8 RIGHT$<CTRL-0x04><CTRL-0x18>e ASC DEL '<CTRL-0x18> ONERR  e$e& DEL & SPEED= 
  11. 3593  PLOT <CTRL-0x09>. HLIN <CTRL-0x09><CTRL-0x0e> PLOT <CTRL-0x09>. HLIN <CTRL-0x09><CTRL-0x0e> PLOT <CTRL-0x09>. HLIN <CTRL-0x09> ONERR <UNKNOWN TOKEN>)<CTRL-0x0f>i<CTRL-0x09>m HLIN <CTRL-0x09> PLOT  HLIN <CTRL-0x09> VTAB 
  12. 2237 <CTRL-0x0a>H ONERR 2 -? = <CTRL-0x04>hIHh PLOT <UNKNOWN TOKEN><CTRL-0x09> LOMEM: <UNKNOWN TOKEN> TAB( <CTRL-0x03> HGR2 <CTRL-0x07> COLOR= 
  13. 64333 <CTRL-0x09> COLOR= 
  14. 9873 <CTRL-0x18> SPEED= <CTRL-0x04>e' DEL ' LEFT$ TAN<CTRL-0x08> =  > ?<UNKNOWN TOKEN> -<CTRL-0x0c><UNKNOWN TOKEN><CTRL-0x0f> -<CTRL-0x14><UNKNOWN TOKEN>"h DEL <UNKNOWN TOKEN> ?<UNKNOWN TOKEN><CTRL-0x09> END L<UNKNOWN TOKEN><UNKNOWN TOKEN> X<UNKNOWN TOKEN>8 ONERR # VAL" STORE  RESUME ! J<UNKNOWN TOKEN> GR  = <UNKNOWN TOKEN> X<UNKNOWN TOKEN>L +<CTRL-0x09> SPEED= 
  15. 8837  SPEED= ( DEL ! SPEED= <CTRL-0x18> DEL #L +<CTRL-0x09>
  16. 3084 <CTRL-0x0c>
  17. 13107 3<CTRL-0x12>?<CTRL-0x12><CTRL-0x12>?<CTRL-0x12>
  18. 7683 0<CTRL-0x1f><CTRL-0x0c>
  19. 3096 <CTRL-0x06>33
  20. 7683 <CTRL-0x03>><CTRL-0x0c>
  21. 12 
  22. 1542 <CTRL-0x06><CTRL-0x0c><CTRL-0x18>
  23. 6168 <CTRL-0x18><CTRL-0x0c><CTRL-0x06>
  24. 16140 <CTRL-0x0c><CTRL-0x1e>
  25. 16140 ?<CTRL-0x0c><CTRL-0x0c>
  26. 12 
  27. 62 <CTRL-0x1c><CTRL-0x1c><CTRL-0x1c>
  28. 3096 <CTRL-0x06><CTRL-0x03><CTRL-0x03>
  29. 13107 33<CTRL-0x0c>
  30. 3084 <CTRL-0x0c><CTRL-0x0c><CTRL-0x1e>
  31. 7216 <CTRL-0x06><CTRL-0x03>?
  32. 7216 03<CTRL-0x1e>
  33. 13107 ?00
  34. 12319 03<CTRL-0x1e>
  35. 7939 33<CTRL-0x1e>
  36. 3096 <CTRL-0x0c><CTRL-0x0c><CTRL-0x0c>
  37. 7731 33<CTRL-0x1e>
  38. 15923 03<CTRL-0x1e><CTRL-0x0c><CTRL-0x0c>
  39. 7168 <CTRL-0x18><CTRL-0x0c><CTRL-0x18><CTRL-0x0c><CTRL-0x06><CTRL-0x03><CTRL-0x06><CTRL-0x0c><CTRL-0x18>
  40. 30 <CTRL-0x1e><CTRL-0x1e>
  41. 6156 0<CTRL-0x18><CTRL-0x0c><CTRL-0x06>
  42. 7216 <CTRL-0x0c>
  43. 13086 ;;<CTRL-0x03>3<CTRL-0x1e>
  44. 16179 333
  45. 7987 33<CTRL-0x1f>
  46. 771 <CTRL-0x03>3<CTRL-0x1e>
  47. 13107 33<CTRL-0x1f>
  48. 3843 <CTRL-0x03><CTRL-0x03>?
  49. 3843 <CTRL-0x03><CTRL-0x03><CTRL-0x03>
  50. 15107 33<CTRL-0x1e>
  51. 16179 333
  52. 3084 <CTRL-0x0c><CTRL-0x0c><CTRL-0x1e>
  53. 12336 03<CTRL-0x1e>
  54. 3871 <CTRL-0x1f>33
  55. 771 <CTRL-0x03><CTRL-0x03>?
  56. 13119 333
  57. 13107 333
  58. 13107 33<CTRL-0x1e>
  59. 7987 <CTRL-0x03><CTRL-0x03><CTRL-0x03>
  60. 13107 3?<CTRL-0x1e>p<CTRL-0x1f>33<CTRL-0x1f><CTRL-0x1f>33
  61. 7683 00<CTRL-0x1f>
  62. 3084 <CTRL-0x0c><CTRL-0x0c><CTRL-0x0c>
  63. 13107 33<CTRL-0x1e>
  64. 13107 3<CTRL-0x1e><CTRL-0x0c>
  65. 13107 ??3
  66. 3102 <CTRL-0x1e>33
  67. 7731 <CTRL-0x0c><CTRL-0x0c><CTRL-0x0c>
  68. 3096 <CTRL-0x06><CTRL-0x03>?
  69. 1542 <CTRL-0x06><CTRL-0x06><CTRL-0x1e>
  70. 3078 <CTRL-0x18>00
  71. 6168 <CTRL-0x18><CTRL-0x18><CTRL-0x1e>
  72. 51 
  73. 1550 <CTRL-0x0c>
  74. 13118 >
  75. 13087 33<CTRL-0x1f><CTRL-0x1e>3<CTRL-0x03>3<CTRL-0x1e>
  76. 13118 33><CTRL-0x1e>3?<CTRL-0x03>>
  77. 7942 <CTRL-0x06><CTRL-0x06><CTRL-0x06>>33>0<CTRL-0x1e><CTRL-0x03><CTRL-0x03><CTRL-0x1f>3333
  78. 3086 <CTRL-0x0c><CTRL-0x0c><CTRL-0x1e>
  79. 6172 <CTRL-0x18><CTRL-0x18><CTRL-0x18><CTRL-0x0e><CTRL-0x03><CTRL-0x03>33<CTRL-0x0f>33
  80. 3084 <CTRL-0x0c><CTRL-0x0c><CTRL-0x1e>3??33<CTRL-0x1f>3333<CTRL-0x1e>333<CTRL-0x1e><CTRL-0x1f>33<CTRL-0x1f><CTRL-0x03><CTRL-0x03>
  81. 13107 >00
  82. 819 <CTRL-0x03><CTRL-0x03>><CTRL-0x03><CTRL-0x1e>0<CTRL-0x1f>
  83. 1567 <CTRL-0x06><CTRL-0x06><CTRL-0x1c>3333>333<CTRL-0x1e><CTRL-0x0c>33??33<CTRL-0x1e><CTRL-0x0c><CTRL-0x1e>3333>0<CTRL-0x1e>
  84. 3096 <CTRL-0x06>?
  85. 1548 <CTRL-0x0c><CTRL-0x0c><CTRL-0x18>
  86. 3084 <CTRL-0x0c><CTRL-0x0c><CTRL-0x0c>
  87. 6156 <CTRL-0x0c><CTRL-0x0c><CTRL-0x06>
  88. 16191 ???
  89. 13 
  90. 13360 ,8: POKE 48688,240: POKE 48689,253: RUN 
  91. 1  RESTORE : REM   LEAVE THIS HERE IF YOU USE DATA     
  92. 2  REM   TO QUIT:POKE104,8:GOTO150        
  93. 100  PRINT  CHR$(21)
  94. 110  HIMEM: 32768 -1024
  95. 112  ONERR  GOTO 50200
  96. 120  PRINT  CHR$(4)"bload instring,a32768"
  97. 130  PRINT  CHR$(4)"bload print.on,a"32768 +512
  98. 140 GA$ = "Four score and seven years ago, our     fathers brought forth upon this         continent a new nation conceived in     liberty and dedicated to the propositionthat all men are created equal."
  99. 150 LL$ =  CHR$(12):TT$ =  CHR$(20)
  100. 160  INVERSE : PRINT LL$: POKE 33,36: POKE 32,2: POKE 34,2: POKE 35,22: NORMAL : PRINT LL$
  101. 170  GOSUB 63500
  102. 240  GOSUB 60000
  103. 241  PRINT LL$
  104. 242  PRINT : PRINT "    First we will demonstrate the 
  105. 243  PRINT : PRINT "    enormous advantage of using
  106. 244  PRINT : PRINT "    INSTRING to search through
  107. 245  PRINT : PRINT "    strings. Then we will show
  108. 246  PRINT : PRINT "    how much faster the machine-
  109. 247  PRINT : PRINT "    language PRINT.ON is than a
  110. 248  PRINT : PRINT "    BASIC PRINT USING routine.
  111. 249  GOSUB 60000
  112. 250  GOSUB 10000: REM  instring demo
  113. 260  GOSUB 20000: REM  using demo
  114. 270  PRINT TT$LL$
  115. 280  PRINT : PRINT "  That's all!  Press:
  116. 290  PRINT : PRINT "     [ESC] to quit the demo."
  117. 300  PRINT : PRINT "      [I]  to see INSTRING again."
  118. 310  PRINT : PRINT "   or [P]  to see PRINT.ON again."
  119. 320  GOSUB 60000
  120. 330  IF K$ =  CHR$(27)  THEN  POKE 104,8: GOTO 150
  121. 340  IF K$ >"Z"  THEN K$ =  CHR$( ASC(K$) -32)
  122. 350  IF K$ = "I"  THEN  GOSUB 10000: GOTO 270
  123. 370  IF K$ = "P"  THEN  GOSUB 20000: GOTO 270
  124. 380  PRINT  CHR$(7);: GOTO 270
  125. 9999  STOP 
  126. 10000  PRINT TT$LL$
  127. 10010  VTAB 1: HTAB 1: PRINT GA$
  128. 10020  PRINT : PRINT "First find all the vowels using BASIC."
  129. 10030  GOSUB 60000
  130. 10040 L$ = "AEIOU"
  131. 10050  FOR L = 1 TO 5
  132. 10060 T$ =  MID$ (L$,L,1)
  133. 10070  VTAB 1: HTAB 1
  134. 10080 X = 1
  135. 10090 T1$ =  MID$ (GA$,X,1): IF T1$ > = "a"  THEN T1$ =  CHR$( ASC(T1$) -32)
  136. 10100  IF T1$ = T$  THEN  VTAB 1: HTAB X: PRINT T$;
  137. 10110 X = X +1: IF X < LEN(GA$)  THEN 10090
  138. 10120  NEXT L
  139. 10130  VTAB 12: HTAB 1: PRINT GA$
  140. 10140  PRINT : PRINT "Then with INSTRING."
  141. 10150  GOSUB 60000
  142. 10160 L$ = "AEIOU"
  143. 10170  FOR L = 1 TO 5
  144. 10180 T$ =  MID$ (L$,L,1)
  145. 10190  VTAB 12: HTAB 1
  146. 10200 X = 0
  147. 10210  CALL 32768, GET T$ ON GA$ AT X,X
  148. 10220  IF   NOT X  THEN 10250
  149. 10230  VTAB 12: HTAB X: PRINT T$;
  150. 10240  IF X  THEN X = X +1: GOTO 10210
  151. 10250  NEXT L
  152. 10260  GOSUB 60000
  153. 10270  RETURN 
  154. 20000  PRINT TT$LL$;
  155. 20010  FOR X = 1 TO 10:X(X) =  RND(1) *99999: IF X(X) <.01  THEN X(X) = 0
  156. 20020  NEXT 
  157. 20030  FOR X = 3 TO 6::X(X) =  RND(1) *999: IF X(X) <.01  THEN X(X) = 0
  158. 20040  NEXT 
  159. 20050 X(7) =  RND(1) *2: IF X(X) <.01  THEN X(X) = 0
  160. 20060 X(8) =  RND(1): IF X(X) <.01  THEN X(X) = 0
  161. 20070  PRINT "A column of numbers, unformatted."
  162. 20080  PRINT 
  163. 20090  FOR X = 1 TO 10: PRINT X(X): NEXT 
  164. 20100  GOSUB 60000
  165. 20110  PRINT TT$: HOME : PRINT  SPC( 39): HOME 
  166. 20120  PRINT "The same column, formatted with BASIC."
  167. 20130  PRINT 
  168. 20140  FOR X = 1 TO 10
  169. 20150 NB = X(X):ND = 9:DP = 3:CM = 0: GOSUB 50000
  170. 20160  HTAB 13
  171. 20170  PRINT NB$
  172. 20180  NEXT 
  173. 20190  GOSUB 60000
  174. 20200  PRINT TT$: HOME : PRINT  SPC( 39): HOME 
  175. 20210  PRINT "And finally, formatted with PRINT.ON."
  176. 20220  PRINT 
  177. 20230  FOR X = 1 TO 10
  178. 20240  HTAB 26
  179. 20250  CALL 32768 +512, PRINT X(X) ON "     0.000"
  180. 20260  PRINT : NEXT 
  181. 20261  VTAB 14: PRINT "Notice that PRINT.ON truncates
  182. 20262  PRINT "rather than rounding.
  183. 20263  PRINT 
  184. 20270  GOSUB 60000
  185. 20280  RETURN 
  186. 50000  REM  ND = # digits, dp=# dec places, cm=commas (y=1):nb=number passed,nb$=returned
  187. 50010  REM ========================
  188. 50020  REM   USING SUBROUTINE
  189. 50030 SP$ = "        ":ZS$ = "00000000":AS$ = "********":Z = 0:W = 1
  190. 50040 NB$ =  STR$( INT((NB +(5/10 ^(DP +W))) *10 ^DP))
  191. 50050  IF  LEFT$(NB$,W) = "-"  THEN NB$ =  RIGHT$(NB$, LEN(NB$) -W)
  192. 50060  IF  LEN(NB$) >ND  THEN NB$ =  LEFT$(AS$,ND)
  193. 50070 NN = DP +W - LEN(NB$): IF NN >Z  THEN NB$ =  LEFT$(ZS$,NN) +NB$
  194. 50080 NN = ND - LEN(NB$): IF NN >Z  THEN NB$ =  LEFT$(SP$,NN) +NB$
  195. 50090  IF DP >Z  THEN NB$ =  LEFT$(NB$,ND -DP) +"." + RIGHT$(NB$,DP)
  196. 50100  IF CM = Z GOTO 50150
  197. 50110 NN = ND: IF DP < >Z  THEN NN = ND -DP
  198. 50120 NN = NN -3: IF NN <W GOTO 50150
  199. 50130 SN$ = ",": IF  MID$ (NB$,NN,W) = " "  THEN SN$ = " "
  200. 50140 NB$ =  LEFT$(NB$,NN) +SN$ + RIGHT$(NB$, LEN(NB$) -NN): GOTO 50120
  201. 50150 SN$ = " ": IF NB <Z  THEN SN$ = "-"
  202. 50160 NB$ = NB$ +SN$: RETURN 
  203. 50170  REM =======================
  204. 50200  CALL  -3288: REM  error handler - J
  205. 50203  INVERSE : PRINT LL$: POKE 33,36: POKE 32,2: POKE 34,2: POKE 35,22: NORMAL : PRINT LL$
  206. 50205  PRINT : PRINT "         That was strange,"
  207. 50210  PRINT : PRINT "      an error just occured."
  208. 50220  PRINT : PRINT 
  209. 50230  PRINT : PRINT "         Let's start over."
  210. 50240  GOSUB 60000: GOTO 160
  211. 60000  VTAB 21: HTAB 11: PRINT " Press a key.";: GOSUB 61000: SPEED= 255: HTAB 1: PRINT  SPC( 39): RETURN 
  212. 61000 C = 1
  213. 61010  IF  PEEK(49152) >128  THEN  GET K$: RETURN 
  214. 61020 XX$ = "<<<<<<<<<<==========>>>>>>>>>>=========="
  215. 61030  PRINT  MID$ (XX$,C,1) CHR$(8);
  216. 61040 C = C +1
  217. 61050  IF C > LEN(XX$)  THEN C = 1
  218. 61060  GOTO 61010
  219. 63500  REM <CTRL-0x0a>(c)<CTRL-0x0a>
  220. 63800  PRINT : PRINT "      INSTRING and PRINT.ON Demo"
  221. 63810  PRINT : PRINT "            by Jim Weiler"
  222. 63820  PRINT : PRINT "  Copyright (c) 1989 Softdisk, Inc."
  223. 63830  PRINT : PRINT "         All rights reserved"
  224. 63840  PRINT : PRINT "      Published on Softdisk 94"
  225. 63850  PRINT : PRINT "    Subscriptions 1-800-831-2694"
  226. 63860  PRINT : PRINT "  Changing this notice is illegal."
  227. 63870  RETURN