home *** CD-ROM | disk | FTP | other *** search
/ Commodore Disk User Volume 3 #2 / Commodore_Disk_User_Vol.3_2_1989_-.d64 / quikword (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  14KB  |  543 lines

  1. 10 goto 20
  2. 20 l=l+1
  3. 50 if l=1 then load "top.exe",8,1
  4. 60 poke 2049+6,54
  5. 100 rem -------------------------------
  6. 101 rem quikword basic environment
  7. 102 rem expandable word processor.
  8. 103 rem (c) 1989 argus specialist
  9. 104 rem publications including ram
  10. 105 rem basic interpreter & new
  11. 106 rem extension keywords.
  12. 107 rem -------------------------------
  13. 110 poke 650,255 : poke 1,54
  14. 120 poke 50592,234 : rem correct line.input# routine
  15. 125 poke 50477,3 : rem corr to line
  16. 130 (NULL) 51,24573 : (NULL) 55,24573 : poke 24574,141
  17. 140 (NULL) 785,51084 : rem usr jmp
  18. 145 :
  19. 150 rem -------------------------------
  20. 160 rem define text pointers
  21. 170 rem -------------------------------
  22. 180 ts = 24575 : te = 40959
  23. 190 sptr = 51073 : eof = 51075 : ins = 51077 : hme = 51079 : csr = 51081
  24. 192 bs = ts : be = ts
  25. 194 c$ = "" : c = 0 : n = 0 : in$ = ""
  26. 196 h(0)=ts : is = te : ss = 15
  27. 197 dev = 8 : f$ = ""
  28. 198 :
  29. 200 rem -------------------------------
  30. 210 rem define cda strings
  31. 220 rem -------------------------------
  32. 230 c0$="[158][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  33. 240 c1$="[158]command                                 "
  34. 250 c2$="[158]                                        "
  35. 260 c3$="[158]csr       eof       ins       hme       "
  36. 270 c4$="can't, "
  37. 280 c5$="no block" : c6$="stack full"
  38. 282 c7$="save as " : c8$="dump screen as "
  39. 283 cf$="[158]l/a/s/d/e/v/c/n/o?"
  40. 284 cb$="[158]s/e/c/m/d/f?"
  41. 285 ct$="[158]t/w/c/s/e/f/r/n/p/l?"
  42. 290 poke 51108,134 : rem usr1 matches [f2]
  43. 295 :
  44. 300 rem -------------------------------
  45. 310 rem initialise buffer & screen
  46. 320 rem -------------------------------
  47. 330 if (NULL)(eof)=0 then:(NULL) ts,(te-ts),141
  48. 340 (NULL) 53280,2313 : (NULL) 55296,120,7 : (NULL) (55296+120),880,1
  49. 350 (NULL) csr,0
  50. 360 (NULL) sptr,ts : (NULL) 251,ts : (NULL) 253,ts : (NULL) ins,0 : (NULL) hme,0
  51. 370 if peek(51083)=0 then file$="intro" : gosub 2750 : gosub 700
  52. 380 :
  53. 400 rem *******************************
  54. 410 rem main sys command module
  55. 420 rem *******************************
  56. 430 cc$="[158]f/s/h/u/d/r/i/b?"
  57. 440 print chr$(14);
  58. 450 print ""; c2$; c3$; c0$; : (NULL) 0,23 : print file$;
  59. 460 :
  60. 470 sys 51253
  61. 480 c = usr(x)
  62. 490 :
  63. 500 if c = 133 then 610
  64. 510 if c = 3 then end
  65. 520 if c = 148 then gosub 3700
  66. 525 if c = 20 then gosub 3800
  67. 530 if c = 19 then gosub 3900
  68. 540 if c = 134 then gosub 5600
  69. 590 :
  70. 600 goto 470
  71. 610 print ""; c1$; : (NULL) 0,8 : print cc$;
  72. 620 gosub 900
  73. 630 for n=1 to len(cc$)
  74. 640 if c$=mid$(cc$,n,1) then 660
  75. 650 next n
  76. 655 gosub 6950
  77. 660 on n gosub 0,2600,0,3400,0,4000,0,3500,0,3600,0,700,0,4100,0,4300
  78. 670 goto 450
  79. 680 :
  80. 700 rem *******************************
  81. 710 rem reformat from ts to eof
  82. 720 rem *******************************
  83. 730 (NULL) 53,ts : (NULL) 251,ts+(NULL)(eof)
  84. 740 sys 50986 : n = ts+(NULL)(eof) : (NULL) n+1, is-n-1, 141 : return
  85. 750 :
  86. 800 rem *******************************
  87. 810 rem dummy subroutine
  88. 820 rem for undefined 'on' statements
  89. 830 rem *******************************
  90. 840 return
  91. 850 :
  92. 900 rem *******************************
  93. 910 rem get key character, any purpose
  94. 920 rem *******************************
  95. 930 get c$ : if c$="" then 930
  96. 940 c = asc(c$) : return
  97. 950 :
  98. 1000 rem ******************************
  99. 1010 rem get & display disk directory
  100. 1020 rem            module
  101. 1030 rem ******************************
  102. 1040 print"[147][158]";:poke785,93:poke786,207:rem set-up usr jump
  103. 1050 open 15,dev,15,"":print#15,"i"
  104. 1055 open3,dev,0,"$*=s"
  105. 1060 get#3,x$ : get#3,x$ : a=1
  106. 1070 poke781,3:sys53125:print
  107. 1075 print"---------------------------------------"
  108. 1080 gosub 2000 : gosub 2200
  109. 1085 if k$<>"x" then 1090
  110. 1086 (NULL)
  111. 1087 goto 1120
  112. 1090 ifk$<>"m" then 1120
  113. 1100 print"";:gosub 2540
  114. 1110 print"[147][158]";file$ : goto 1075
  115. 1120 close 3:(NULL).input#15,err$
  116. 1122 print#15,"u9":close 15
  117. 1125 if k$<>"x" then gosub 2500
  118. 1130 return
  119. 1140 :
  120. 2000 rem ******************************
  121. 2010 rem get in directory names
  122. 2020 rem ******************************
  123. 2030 poke781,3:rem x reg. = chnl no.
  124. 2040 sys53125 : rem call getdir
  125. 2050 if a=0 then a=1:print:goto 2070
  126. 2060 a=0:printtab(20)"";
  127. 2070 if st<>0 then 2100 : rem eof
  128. 2080 getk$:if k$="s" then 2100
  129. 2085 t=t+a:ift>=22thent=0:return
  130. 2090 goto 2040 : rem do next line
  131. 2100 return
  132. 2110 :
  133. 2200 rem ******************************
  134. 2210 rem do highlights
  135. 2220 rem ******************************
  136. 2230 sk=1104:sc=sk:tv=0:tb=0:k$=""
  137. 2240 sys65484 : rem reset default i/o
  138. 2250 gosub 2400: rem call invert
  139. 2260 ifx=32andtv>0thentv=0:goto2330
  140. 2270 getk$:ifk$=""then2270
  141. 2275 if k$="x" then return
  142. 2280 if(k$=""ork$="[157]")andtb=0thentb=20:goto2330
  143. 2290 if(k$=""ork$="[157]")andtb=20thentb=0
  144. 2300 ifk$=""thentv=tv+40:iftv>880thentv=0
  145. 2310 ifk$="[145]"thentv=tv-40:iftv<0thentv=880
  146. 2320 ifk$=chr$(13)ork$="m" then return
  147. 2330 gosub 2400:sc=sk+tv+tb:goto2250
  148. 2340 :
  149. 2400 rem ******************************
  150. 2410 rem inverse filename
  151. 2420 rem ******************************
  152. 2430 x=usr(sc) : return
  153. 2440 :
  154. 2500 rem ******************************
  155. 2510 rem extract filename into file$
  156. 2520 rem ******************************
  157. 2530 poke783,0:poke782,tb:poke781,(tv/40)+2:sys65520:rem plot to screen
  158. 2540 poke631,13:poke198,1:open2,0:input#2,file$:close2
  159. 2550 forn=16to1step-1:ifmid$(fi$,n,1)=" "then:nextn
  160. 2560 file$=left$(file$,n)
  161. 2580 return
  162. 2590 :
  163. 2600 rem ******************************
  164. 2610 rem disk file handling module
  165. 2620 rem ******************************
  166. 2635 (NULL) 0,0 : print c2$;
  167. 2640 (NULL) 0,0 : print "[158]file "; cf$;
  168. 2650 gosub 900
  169. 2660 for n = 1 to len(cf$)
  170. 2670 if c$=mid$(cf$,n,1) then 2690
  171. 2680 next n
  172. 2685 gosub 6950
  173. 2690 on n gosub 0,2700,0,2800,0,2900,0,5400,0,5300,0,3300,0,3100,0,3200,0,6900
  174. 2693 (NULL) 785,51084 : rem usr jmp
  175. 2695 (NULL) 55296,120,7 : (NULL) (55296+120),880,1 : gosub 700 : return
  176. 2696 :
  177. 2700 rem ******************************
  178. 2710 rem load text file
  179. 2720 rem ******************************
  180. 2740 gosub 1000
  181. 2750 (NULL) 253,ts : poke 51083,0
  182. 2760 open 2,dev,2, file$ : sys 51638,2
  183. 2770 close 2 : (NULL) sptr,ts : (NULL) eof,((NULL)(253)-ts)-1 : (NULL) 253,ts
  184. 2780 return
  185. 2790 :
  186. 2800 rem ******************************
  187. 2810 rem append text file
  188. 2820 rem ******************************
  189. 2830 c$=file$
  190. 2840 gosub 1000
  191. 2850 (NULL) 253,(ts+(NULL)(eof)) : poke 51083,0
  192. 2860 open 2,dev,2, file$ : sys 51638,2
  193. 2865 file$=c$
  194. 2870 goto 2770
  195. 2880 :
  196. 2900 rem ******************************
  197. 2910 rem save text file as seq
  198. 2920 rem ******************************
  199. 2923 (NULL) 0,0 : print c2$;
  200. 2925 (NULL) 1,0 : print c2$;
  201. 2930 (NULL) 0,0 : print c7$;
  202. 2940 if len(file$) > 0 then 2960
  203. 2945 (NULL).input files$
  204. 2950 gosub 2550 : goto 2970 : rem use last part of "extract" to "crunch" file$
  205. 2960 print file$;
  206. 2970 open 15,dev,15
  207. 2975 c$ = file$+",w,s"
  208. 2977 open 2,dev,2, c$ : poke 51083,1
  209. 2980 (NULL).input#15,err$ : if val(err$)=63 then gosub 3000
  210. 2985 n = (NULL)(253) : (NULL) 253,ts : (NULL) 251,(ts+(NULL)(eof))
  211. 2990 sys 51638,2 : close 2 : close 15 : (NULL) 253,n : return
  212. 2995 :
  213. 3000 rem ******************************
  214. 3010 rem auto delete existing file
  215. 3020 rem ******************************
  216. 3030 err$ = "s0:"+file$
  217. 3040 close 2 : print#15,err$ : (NULL).input#15,err$
  218. 3050 open 2,dev,2, c$ : return
  219. 3060 :
  220. 3100 rem ******************************
  221. 3110 rem clear text and reset as new
  222. 3120 rem ******************************
  223. 3130 (NULL) 0,0 : print c2$;
  224. 3140 (NULL) 0,0 : print "clear text & reset (y/n) ?"; : gosub 6950
  225. 3150 gosub 900 : if c$<>"y" then return
  226. 3180 (NULL) eof,0 : run
  227. 3190 :
  228. 3200 rem ******************************
  229. 3210 rem create disk file name
  230. 3220 rem ******************************
  231. 3230 (NULL) 0,0 : print c2$; c2$;
  232. 3240 (NULL) 0,0 : print "[158]name "; file$; : (NULL) 0,5 : (NULL).input files$
  233. 3250 gosub 2550 : return
  234. 3260 :
  235. 3300 rem ******************************
  236. 3310 rem view file and preserve file$
  237. 3320 rem ******************************
  238. 3330 c$ = file$ : gosub 1000 : file$ = c$ : return
  239. 3340 :
  240. 3400 rem ******************************
  241. 3410 rem ask scroll value
  242. 3420 rem ******************************
  243. 3430 (NULL) 0,0 : print c2$;
  244. 3440 (NULL) 0,0 : print "[158]scroll"; ss
  245. 3450 (NULL) 0,7 : (NULL).input in$
  246. 3460 ss = val(in$)
  247. 3470 if ss <=0 then ss = 15
  248. 3480 return
  249. 3490 :
  250. 3500 rem ******************************
  251. 3510 rem scroll screen up by scl
  252. 3520 rem ******************************
  253. 3530 (NULL) 253,(NULL)(sptr)
  254. 3540 for n = 1 to ss
  255. 3550 sys 51437 : if (NULL)(253)<=ts then 3590
  256. 3560 next n
  257. 3570 sys 51437 : sys 51408
  258. 3580 (NULL) sptr,(NULL)(253) : return
  259. 3590 (NULL) sptr,ts : (NULL) 253,ts : return
  260. 3600 rem ******************************
  261. 3610 rem scroll screen down by scl
  262. 3620 rem ******************************
  263. 3630 (NULL) 253,(NULL)(sptr)
  264. 3640 for n = 1 to ss
  265. 3650 sys 51408 : if (NULL)(253)>=(ts+(NULL)(eof)) then 3670
  266. 3660 next n
  267. 3670 (NULL) sptr,(NULL)(253) : return
  268. 3680 :
  269. 3700 rem ******************************
  270. 3710 rem insert single character
  271. 3720 rem ******************************
  272. 3725 n = (NULL)(253) : nl = (NULL)(eof)-(NULL)(csr)
  273. 3730 (NULL) n, n-1, nl
  274. 3740 poke n, 32 : (NULL) eof,(NULL)(eof)+1 : return
  275. 3750 :
  276. 3800 rem ******************************
  277. 3810 rem delete single character
  278. 3820 rem ******************************
  279. 3830 n = (NULL)(253) : nl = (NULL)(eof)-(NULL)(csr)
  280. 3835 if n<=ts then return
  281. 3840 (NULL) n-1, n, nl+2
  282. 3850 (NULL) eof,(NULL)(eof)-1
  283. 3860 (NULL) 253,(NULL)(253)-1 : return
  284. 3870 :
  285. 3900 rem ******************************
  286. 3910 rem pull home stack & perform hme
  287. 3920 rem ******************************
  288. 3930 n = (NULL)(hme) : (NULL) sptr,h(n) : (NULL) 253,h(n)
  289. 3940 n = n - 1 : if n<0 then n = 0
  290. 3950 (NULL) hme,n : return
  291. 3960 :
  292. 4000 rem ******************************
  293. 4010 rem push home stack with scn. addr
  294. 4020 rem ******************************
  295. 4030 n = (NULL)(hme) : n=n+1 : if n<=10 then 4050
  296. 4035 gosub 6950
  297. 4040 (NULL) 0,0 : print c2$; : (NULL) 0,0 : print c4$; c6$; : gosub 900 : return
  298. 4050 (NULL) hme,n : h(n)=(NULL)(sptr) : return
  299. 4060 :
  300. 4100 rem ******************************
  301. 4110 rem toggle insert mode -
  302. 4120 rem move text from cursor to eof
  303. 4130 rem ******************************
  304. 4140 if (NULL)(ins) > 0 then 4190
  305. 4150 n = (NULL)(253) : il = (ts+(NULL)(eof)) - n : is = te - il
  306. 4160 (NULL) is, n-1, il : (NULL) n, is-n, 141
  307. 4170 (NULL) eof, n-ts : (NULL) ins, 1 : return
  308. 4180 rem ------------------------------
  309. 4190 n = ts+(NULL)(eof) : (NULL) n, is+1, il : (NULL) eof, (NULL)(eof)+il
  310. 4200 (NULL) ins, 0 : is = te : gosub 700 : return
  311. 4210 :
  312. 4300 rem ******************************
  313. 4310 rem block command module
  314. 4320 rem ******************************
  315. 4330 cx$="[158]s/e/c/m/d/f?"
  316. 4340 (NULL) 0,0 : print c2$; : (NULL) 0,0 : print "block "; cb$;
  317. 4350 gosub 900
  318. 4360 for n = 1 to len(cb$)
  319. 4370 if c$ = mid$(cb$,n,1) then 4390
  320. 4380 next n
  321. 4385 gosub 6950
  322. 4390 on n gosub 0,4500,0,4600,0,4900,0,5000,0,4800,0,5200
  323. 4400 return
  324. 4410 :
  325. 4500 rem ******************************
  326. 4510 rem define block start
  327. 4520 rem ******************************
  328. 4530 bs = (NULL)(253) : return
  329. 4540 :
  330. 4600 rem ******************************
  331. 4610 rem define block end
  332. 4620 rem ******************************
  333. 4630 be = (NULL)(253) : return
  334. 4640 :
  335. 4700 rem ******************************
  336. 4710 rem check block defined ok
  337. 4715 rem abort operation if not
  338. 4720 rem ******************************
  339. 4730 if (bs>=ts and be<=te) and bs < be then return
  340. 4735 gosub 6950
  341. 4740 (NULL) 0,0 : print c2$; : (NULL) 0,0 : print c4$; c5$; : gosub 900
  342. 4750 (NULL)
  343. 4760 return
  344. 4770 :
  345. 4800 rem ******************************
  346. 4810 rem delete defined block
  347. 4820 rem ******************************
  348. 4823 gosub 4700
  349. 4825 n = ts+(NULL)(eof) : l = be-bs
  350. 4830 (NULL) bs, be, n-be
  351. 4840 (NULL) n-l, l, 141
  352. 4850 (NULL) eof, ((NULL)(eof)-l)
  353. 4860 bs = ts : be = ts
  354. 4865 if (NULL)(csr)>(NULL)(eof) then:(NULL) 253, ts+(NULL)(eof)
  355. 4867 return
  356. 4870 :
  357. 4900 rem ******************************
  358. 4910 rem copy defined block
  359. 4920 rem ******************************
  360. 4930 gosub 4700
  361. 4940 n = ts+(NULL)(eof) : l = be-bs
  362. 4950 c = (NULL)(253)
  363. 4960 (NULL) is-l, bs-1, l
  364. 4970 (NULL) (c+l)-1, c-1, n-c
  365. 4975 (NULL) c, (is+1)-l, l
  366. 4980 (NULL) eof, (NULL)(eof)+l
  367. 4990 return
  368. 4995 :
  369. 5000 rem ******************************
  370. 5010 rem move defined block
  371. 5020 rem ******************************
  372. 5030 gosub 4700
  373. 5040 n = ts+(NULL)(eof) : l = be-bs
  374. 5050 c = (NULL)(253)
  375. 5060 (NULL) is-l, bs-1, l
  376. 5070 if c>=be then:(NULL) bs, be, c-be
  377. 5080 if c<=bs then:(NULL)(c+l)-1,c-1,bs-c
  378. 5090 if c>=be then:(NULL) c-l,(is+1)-l,l
  379. 5095 if c<=bs then:(NULL) c, (is+1)-l, l
  380. 5100 bs = ts : be = ts
  381. 5110 return
  382. 5120 :
  383. 5200 rem ******************************
  384. 5210 rem file or save defined block
  385. 5220 rem ******************************
  386. 5230 gosub 4700
  387. 5240 ts = bs : x = (NULL)(eof)
  388. 5250 b$ = file$ : file$ = ""
  389. 5260 (NULL) eof, be-bs-1
  390. 5270 gosub 2900
  391. 5280 ts = 24575 : (NULL) eof, x
  392. 5290 bs = ts : be = ts : file$ = b$
  393. 5292 return
  394. 5295 :
  395. 5300 rem ******************************
  396. 5310 rem erase disk file module
  397. 5320 rem ******************************
  398. 5330 c$ = file$ : gosub 1000
  399. 5340 open 15,dev,15
  400. 5350 x$ = "s0:"+files$
  401. 5360 print#15, x$
  402. 5370 (NULL).input#15, err$
  403. 5380 close 15 : file$ = c$ : return
  404. 5390 :
  405. 5400 rem ******************************
  406. 5410 rem dump screen to disk as prg
  407. 5420 rem ******************************
  408. 5430 (NULL) 0,0 : print c2$; c2$;
  409. 5440 (NULL) 0,0 : print c8$;
  410. 5450 c$ = file$ : (NULL).input file$
  411. 5460 gosub 2550
  412. 5470 open 15,8,15 : x$ = "s0:"+file$
  413. 5480 (NULL) file$, 8, 2, 1144, 2024 : (NULL).input#15, err$
  414. 5490 if val(err$) = 63 then print#15, x$ : goto 5480
  415. 5500 close 15 : file$ = c$ : return
  416. 5510 :
  417. 5600 rem ******************************
  418. 5610 rem text command module
  419. 5620 rem ******************************
  420. 5630 (NULL) 0,0 : print c2$; : (NULL) 0,0 : print "text "; ct$;
  421. 5640 gosub 900
  422. 5650 for n = 1 to len(ct$)
  423. 5660 if c$ = mid$(ct$,n,1) then 5680
  424. 5670 next n
  425. 5675 gosub 6950
  426. 5680 if n=20 then gosub 6800 : goto 5690
  427. 5685 on n gosub 0,5800,0,5900,0,6000,0,6400,0,6100,0,6200,0,6500,0,6600,0,6700
  428. 5690 (NULL)
  429. 5700 goto 450
  430. 5710 :
  431. 5800 rem ******************************
  432. 5810 rem transpose two characters
  433. 5820 rem ******************************
  434. 5830 n = (NULL)(253) : c = peek(n)
  435. 5840 poke n, peek(n+1) : poke n+1,c
  436. 5850 return
  437. 5860 :
  438. 5900 rem ******************************
  439. 5910 rem delete word from cursor on
  440. 5920 rem ******************************
  441. 5930 bs = (NULL)(253) : n = bs
  442. 5940 c = peek(n)
  443. 5950 if c=32 or c=13 or c=141 then 5970
  444. 5960 n=n+1 : goto 5940
  445. 5970 be=n+1 : gosub 4825 : return
  446. 5980 :
  447. 6000 rem ******************************
  448. 6010 rem change case of single char.
  449. 6020 rem ******************************
  450. 6030 n = (NULL)(253) : c = peek(n)
  451. 6040 if c>=193 and c<=218 then 6060
  452. 6045 if c>=65 and c<=90 then 6070
  453. 6050 (NULL) 253,(NULL)(253)+1 : return
  454. 6060 c=c-128 : poke n,c : goto 6050
  455. 6070 c=c+128 : poke n,c : goto 6050
  456. 6080 :
  457. 6100 rem ******************************
  458. 6110 rem perform go to end of file
  459. 6120 rem ******************************
  460. 6130 n = ts+(NULL)(eof)
  461. 6140 (NULL) 253,n
  462. 6150 for x = 1 to 21 : sys 51437
  463. 6155 if (NULL)(253)<=ts then:(NULL) 253,ts : goto 6160
  464. 6156 next x
  465. 6160 sys 51408 : (NULL) sptr,(NULL)(253) : (NULL) 253,n : return
  466. 6170 :
  467. 6200 rem ******************************
  468. 6210 rem find or search control module
  469. 6220 rem ******************************
  470. 6230 (NULL) 0,0 : print "                                        ";
  471. 6235 print "                                        ";
  472. 6240 (NULL) 0,0 : print "find "; match$;
  473. 6250 (NULL) 0,5 : (NULL).input match$
  474. 6251 for n=75 to 1 step-1
  475. 6252 if mid$(ma$,n,1)=" " then:next n
  476. 6253 ma$=left$(ma$,n)
  477. 6254 x=(NULL)((NULL)(ma$)+1)
  478. 6255 for n=0 to peek((NULL)(ma$))
  479. 6256 if peek(x+n)>90 then poke x+n,peek(x+n)+96
  480. 6257 next n
  481. 6260 poke (NULL)(f$),len(ma$)
  482. 6270 for n = (NULL)(253) to (ts+(NULL)(eof))-1
  483. 6280 (NULL)((NULL)(f$)+1), n
  484. 6282 if f$ = ma$ then 6330
  485. 6285 get c$ : if c$="x" then 6340
  486. 6290 next n
  487. 6295 goto 6340
  488. 6330 poke 212,0
  489. 6340 goto 6140
  490. 6350 :
  491. 6400 rem ******************************
  492. 6410 rem go to start of text file
  493. 6415 rem ******************************
  494. 6420 (NULL)253,ts : (NULL) sptr,ts : return
  495. 6430 :
  496. 6500 rem ******************************
  497. 6510 rem reset match$ for find to ""
  498. 6520 rem ******************************
  499. 6530 match$ = "" : return
  500. 6540 :
  501. 6600 rem ******************************
  502. 6610 rem go to next word
  503. 6620 rem ******************************
  504. 6630 n = (NULL)(253)
  505. 6640 c = peek(n) : n=n+1
  506. 6650 if c=32 then:(NULL) 253,n : return
  507. 6660 goto 6640
  508. 6670 :
  509. 6700 rem ******************************
  510. 6710 rem go to previous word
  511. 6720 rem ******************************
  512. 6730 n = (NULL)(253)
  513. 6740 c = peek(n) : n=n-1
  514. 6750 if c=32 then 6770
  515. 6760 goto 6740
  516. 6770 c = peek(n) : n=n-1
  517. 6780 if c=32 then:(NULL) 253,n+2 : return
  518. 6790 goto 6770
  519. 6795 :
  520. 6800 rem ******************************
  521. 6810 rem delete line module
  522. 6820 rem ******************************
  523. 6830 n = (NULL)(253) : bs = n
  524. 6840 if peek(n) = 141 or peek(n) = 13 then 6860
  525. 6850 n = n+1 : goto 6840
  526. 6860 n = n+1 : be = n : gosub 4825 : return
  527. 6870 :
  528. 6900 rem ******************************
  529. 6910 rem change to other disk drive
  530. 6920 rem ******************************
  531. 6930 if dev = 8 then dev = 9 : return
  532. 6940 dev = 8 : return
  533. 6945 :
  534. 6950 rem ******************************
  535. 6951 rem sound bleep module
  536. 6952 rem ******************************
  537. 6953 poke 54296,15 : poke 54277,15
  538. 6954 poke 54276,17 : poke 54273,63 : poke 54272,75
  539. 6955 for t = 0 to 70 : next t
  540. 6956 poke 54276,0 : poke 54273,0 : poke 54272,0
  541. 6957 return
  542. 6958 :
  543.