home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / steel34.zip / SS.BAS < prev    next >
BASIC Source File  |  1980-01-01  |  29KB  |  1,053 lines

  1. 3 DEFDBL X
  2. 4 DEFINT A-W,Y-Z
  3. 5 PRINT FRE(0)
  4. 10 DIM K$(80)
  5. 40 DIM XPRT(50),LBL$(50)
  6. 45 DIM L$(20,20)
  7. 50 DIM X(500),SCR(500),LIN(500),COL(500),CT(500),TF(500),CF(500),XCST(500),DS(500)
  8. 60 PRINT FRE(0)
  9. 70 CH = 29
  10. 75 PRINT FRE(0)
  11. 90 CKT = 1
  12. 95 LKT = 1
  13. 98 SN = 1
  14. 100 GOSUB 50000
  15. 200 GOTO 40000
  16. 500 REM ******* CLS
  17. 510 CLS 
  18. 520 RETURN
  19. 600 REM ** LOCATE COLUMN = 1
  20. 610 TB = 1
  21. 650 LOCATE LI,TB
  22. 660 RETURN
  23. 4000 REM INPUT A NUMBER
  24. 4100 FOR T = 1 TO MAXN
  25. 4110 IF SCR(T) = SN AND LIN(T) = LKT THEN 4200
  26. 4120 NEXT T
  27. 4122 GOSUB 9000
  28. 4125 N = 0
  29. 4126 PRINT "                 THERE IS NO NUMBER IN THIS SPOT   TRY AGAIN"
  30. 4127 PRINT "You may put a number here using option 3 or move the * to where a number exists"
  31. 4128 PRINT "                         PRESS ANY KEY TO CONTINUE "
  32. 4129 IF INKEY$ = "" THEN 4129
  33. 4130 RETURN
  34. 4200 IF CKT < (COL(T) - 5) OR CKT > (COL(T) + 5) OR CT(T) = 30 THEN 4120
  35. 4210 N = T
  36. 4220 RETURN
  37. 5000 REM - FIND TARGET FIELD
  38. 5005 CFFLG = 5
  39. 5010 GOSUB 9000
  40. 5020 PRINT "MOVE THE CURSOR TO THE TARGET FIELD THEN PRESS RETURN "
  41. 5060 MFLG = 5
  42. 5070 GOSUB 60000
  43. 5075 IF CSFLG = 5 THEN 30000
  44. 5080 MFLG = 1
  45. 5085 GOSUB 4000
  46. 5090 IF N = 0 THEN 5000
  47. 5100 TF(NH) = N
  48. 5110 TFH = N
  49. 5190 CFFLG = 1
  50. 5200 RETURN
  51. 5500 REM        
  52. 5505 CFFLG2= 5
  53. 5510 GOSUB 9000
  54. 5520 PRINT "MOVE THE CURSOR TO ANOTHER FIELD YOU WANT TO ADD THEN PRESS RETURN"
  55. 5560 MFLG = 5
  56. 5570 GOSUB 60000
  57. 5575 IF CSFLG = 5 THEN 30000
  58. 5580 MFLG = 1
  59. 5585 GOSUB 4000
  60. 5590 IF N = 0 THEN 5500
  61. 5600 TF(N) = TFH
  62. 5610 CT(N) = 1
  63. 5690 CFFLG2= 1
  64. 5700 RETURN
  65. 6000 REM - FIND SECONDARY CALCULATIN FIELD
  66. 6005 SFLG = 5
  67. 6010 GOSUB 9000
  68. 6020 PRINT "MOVE THE CURSOR TO THE SECONDARY CALCULATION FIELD THEN PRESS RETURN"
  69. 6060 MFLG = 5
  70. 6070 GOSUB 60000
  71. 6075 IF CSFLG = 5 THEN 30000
  72. 6080 MFLG = 1
  73. 6085 GOSUB 4000
  74. 6090 IF N = 0 THEN 6000
  75. 6100 CF(NH) = N
  76. 6110 CF(N) = NH
  77. 6120 TF(N) = TF(NH)
  78. 6130 CT(N) = CT(NH)
  79. 6190 SFLG = 1
  80. 6200 RETURN
  81. 6600 REM - FIND SECONDARY CALCULATIN FIELD
  82. 6605 SFLG = 5
  83. 7000 REM -  GET CONSTANT FOR CALCULATION
  84. 7100 GOSUB 9000
  85. 7110 PRINT "ENTER THE CONSTANT "
  86. 7120 GOSUB 60180
  87. 7130 XCST(NH) = DT#
  88. 7140 RETURN
  89. 8000 REM ***** FILE NAME ACCEPLABLE TEST ************
  90. 8010 TEST = 1
  91. 8100 FOR Q = 1 TO LEN(A$)
  92. 8110 K$(Q) = MID$(A$,Q,1)
  93. 8120 C = ASC(K$(Q))
  94. 8130 IF C < 48 OR C > 122 THEN TEST = 4
  95. 8140 IF Q = 1 AND ( C < 65 OR C > 122 ) THEN TEST = 4
  96. 8150 NEXT Q
  97. 8190 RETURN
  98. 9000 REM CLEAR BOTTOM LINES
  99. 9010 LI = 21
  100. 9015 GOSUB 600
  101. 9020 PRINT "                                                                               ";
  102. 9025 PRINT "                                                                               ";
  103. 9030 PRINT "                                                                               ";
  104. 9040 PRINT "                                                                               ";
  105. 9042 GOSUB 600
  106. 9050 RETURN
  107. 20000 REM INPUT A NUMBER
  108. 20100 GOSUB 9000
  109. 20110 REM FIND NUMBER
  110. 20120 GOSUB 4000
  111. 20130 IF N = 0 THEN RETURN 
  112. 20140 NH= N
  113. 20200 LKT = LIN(T)
  114. 20210 CKT = COL(T)
  115. 20810 GOSUB 60180
  116. 20815 T = NH
  117. 20820 IF DS(T) = 2 THEN GOSUB 49020
  118. 20822 T2= LEN(A$)
  119. 20823 T$ = "__________"
  120. 20824 B$ = MID$(T$,T2)
  121. 20826 A$ = B$ + A$
  122. 20828 XC = DT# - X(T)
  123. 20830 X(T) = DT#
  124. 20835 GOSUB 21130
  125. 20838 T = NH 
  126. 20840 IF CT(T) > 0 THEN GOTO 27000
  127. 20850 RETURN
  128. 21000 REM input overlay line
  129. 21010 GOSUB 9000
  130. 21020 PRINT "ENTER THE STRING "
  131. 21100 MAX = 77
  132. 21120 GOSUB 62030
  133. 21130 GOSUB 21200
  134. 21140 LI = LKT
  135. 21150 GOSUB 600
  136. 21155 PRINT L$(SN,LKT)
  137. 21160 LI = LKT
  138. 21170 TB = CKT
  139. 21180 GOSUB 650
  140. 21185 PRINT "*"
  141. 21190 RETURN
  142. 21200 IF L$(SN,LKT) = "" THEN L$(SN,LKT) = "                                                                             "
  143. 21205 L$ = L$(SN,LKT)
  144. 21210 B$ = MID$(L$,1,CKT)
  145. 21220 T = LEN(A$)
  146. 21230 T = CKT + T+1
  147. 21240 C$ = MID$(L$,T)
  148. 21250 L$ = B$ + A$ + C$
  149. 21255 L$(SN,LKT) = LEFT$(L$,78)
  150. 21260 RETURN
  151. 22000 REM ENTER A NEW NUMBER SUBROUTINE
  152. 22010 GOSUB 9000
  153. 22020 PRINT " HOW DO YOU WANT THIS NUMBER DISPLAYED "
  154. 22030 PRINT " 1 - Standard   2 - Dollar and cents format 0 - None"
  155. 22040 GOSUB 60000
  156. 22050 IF DT# < 0 OR DT# > 2 THEN 22000
  157. 22055 IF DT# = 0 THEN RETURN
  158. 22060 IF DT# = 2 THEN 22500
  159. 22110 MAXN = MAXN + 1
  160. 22120 SCR(MAXN) = SN
  161. 22130 LIN(MAXN) = LKT
  162. 22140 COL(MAXN) = CKT
  163. 22150 A$ = "__________0"
  164. 22200 GOSUB 21130
  165. 22210 GOSUB 9000
  166. 22220 PRINT "DO YOU WANT PLACE A NEW NUMBER RIGHT BELOW THIS ONE"
  167. 22230 PRINT "  1 - YES  2 - NO"
  168. 22240 GOSUB 60000
  169. 22250 IF DT# < 1 OR DT# > 2 THEN 22210
  170. 22260 IF DT# = 2 THEN RETURN
  171. 22270 LKT = LKT + 1
  172. 22275 GOSUB 22400
  173. 22280 GOTO 22110
  174. 22300 RETURN
  175. 22400 REM ERASE *
  176. 22410 LI = LKT - 1
  177. 22420 TB = CKT
  178. 22430 GOSUB 650
  179. 22440 PRINT " ";
  180. 22450 RETURN
  181. 22500 REM ENTER A NEW NUMBER SUBROUTINE
  182. 22600 GOSUB 9000
  183. 22610 MAXN = MAXN + 1
  184. 22615 DS(MAXN) = 2
  185. 22620 SCR(MAXN) = SN
  186. 22630 LIN(MAXN) = LKT
  187. 22640 COL(MAXN) = CKT
  188. 22650 A$ = "$_________0"
  189. 22700 GOSUB 21130
  190. 22710 GOSUB 9000
  191. 22720 PRINT "DO YOU WANT PLACE A NEW NUMBER RIGHT BELOW THIS ONE"
  192. 22730 PRINT "  1 - YES  2 - NO"
  193. 22740 GOSUB 60000
  194. 22750 IF DT# < 1 OR DT# > 2 THEN 22710
  195. 22760 IF DT# = 2 THEN RETURN
  196. 22770 LKT = LKT + 1
  197. 22775 GOSUB 22400
  198. 22780 GOTO 22610
  199. 22800 RETURN
  200. 23000 REM DEFINE CALCULATION
  201. 23100 GOSUB 9000
  202. 23150 GOSUB 4000
  203. 23200 REM DEFINE CALCULATION
  204. 23210 IF N = 0 THEN RETURN
  205. 23215 NH = N
  206. 23220 PRINT "1.ADD   2.SUB   3.MULT   4.DIVIDE BY   5.DIVIDE INTO   6.MAX   7.MIN   8.ADD K"
  207. 23230 PRINT "9.MULT K    10.N-K   11.K-N   12.N/K   13.K/N    14. to 20. Custom subroutines"
  208. 23240 PRINT "21.ABS  22.ATN  23.COS  24.EXP  25.LOG 26.SIN 27.SQR 28.SQ  29.TAN   30.DELETE"
  209. 23250 PRINT "        Enter the type of calculation you want then press return. 0 for none";
  210. 23260 LI = 24
  211. 23270 GOSUB 600
  212. 23300 GOSUB 60000
  213. 23305 IF DT# = 0 THEN 31000
  214. 23310 CT(N) = DT#
  215. 23320 ON DT# GOSUB 24000,24100,24200,24300,24400,24500,24600,24700,24800,24900,25000,25100,25200,25300,25400,25500,25600,25700,25800,25900,24100,24100,24100,24100,24100,24100,24100,24100,24100,52000
  216. 23340 RETURN
  217. 24000 REM - ADD ROUTINE
  218. 24010 GOSUB 5000 
  219. 24020 GOSUB 9000
  220. 24030 PRINT " DO YOU WANT TO ADD ANY MORE NUMBERS TO THIS TARGET FIELD "
  221. 24035 PRINT "   1 - YES  2 - NO "
  222. 24040 GOSUB 60000
  223. 24050 IF DT# = 2 THEN RETURN
  224. 24060 GOSUB 5500
  225. 24090 GOTO 24020
  226. 24100 REM - SUBTRACT
  227. 24110 GOSUB 5000
  228. 24120 RETURN
  229. 24200 REM MULTIPLY
  230. 24210 GOSUB 5000
  231. 24220 GOSUB 6000
  232. 24230 RETURN
  233. 24300 REM DIVIDE BY ANOTHER NUMBER
  234. 24310 GOSUB 5000
  235. 24320 GOSUB 6000
  236. 24325 CT(N) = 5
  237. 24330 RETURN
  238. 24400 REM DIVIDE INTO ANOTHER NUMBER
  239. 24410 GOSUB 5000
  240. 24420 GOSUB 6000
  241. 24425 CT(N) = 4
  242. 24430 RETURN
  243. 24500 REM MAXIMUM
  244. 24510 GOSUB 5000
  245. 24520 X(N) = -1E+07
  246. 24590 RETURN
  247. 24600 REM MIN
  248. 24610 GOSUB 5000
  249. 24620 X(N) = 999999999#
  250. 24690 RETURN
  251. 24700 REM ADD TO A CONSTANT
  252. 24710 GOSUB 5000
  253. 24720 GOSUB 7000
  254. 24790 RETURN
  255. 24800 REM MULTIPY BY A CONSTANT
  256. 24810 GOSUB 5000
  257. 24820 GOSUB 7000
  258. 24890 RETURN
  259. 24900 REM SUBTACT FROM A CONSTANT
  260. 24910 GOSUB 5000
  261. 24920 GOSUB 7000
  262. 24990 RETURN
  263. 25000 REM SUBTACT A CONSTANT FROM
  264. 25010 GOSUB 5000
  265. 25020 GOSUB 7000
  266. 25090 RETURN
  267. 25100 REM DIVIDE BY A CONSTANT
  268. 25110 GOSUB 5000
  269. 25120 GOSUB 7000
  270. 25190 RETURN
  271. 25200 REM DIVIDE INTO A CONSTANT
  272. 25210 GOSUB 5000
  273. 25220 GOSUB 7000
  274. 25300 REM CUSTOM 13
  275. 25390 RETURN
  276. 25400 REM CUSTOM 14
  277. 25490 RETURN
  278. 25500 REM CUSTOM 15
  279. 25590 RETURN
  280. 25600 REM CUSTOM 16
  281. 25690 RETURN
  282. 25700 REM CUSTOM 17
  283. 25790 RETURN
  284. 25800 REM CUSTOM 18
  285. 25890 RETURN
  286. 25900 REM CUSTOM 19
  287. 25990 RETURN
  288. 26000 REM ABS
  289. 26010 X = ABS(X)
  290. 26030 RETURN
  291. 26100 REM ATN
  292. 26110 X = ATN(X)
  293. 26130 RETURN
  294. 26200 REM COS
  295. 26210 X = COS(X)
  296. 26230 RETURN
  297. 26300 REM EXP
  298. 26310 X = EXP(X)
  299. 26330 RETURN
  300. 26400 REM LOG 
  301. 26410 X = LOG(X)
  302. 26430 RETURN
  303. 26500 REM SIN  
  304. 26510 X = SIN(X)
  305. 26530 RETURN
  306. 26600 REM SQR
  307. 26610 X = SQR(X)
  308. 26630 RETURN
  309. 26700 REM SQUARED  
  310. 26710 X = X * X 
  311. 26730 RETURN
  312. 26800 REM TAN  
  313. 26810 X = TAN(X)
  314. 26830 RETURN
  315. 26900 REM 
  316. 26910 X = X(T2) + XC 
  317. 26930 RETURN
  318. 27000 REM PERFORM CALCULATIONS
  319. 27050 T2 = TF(T)
  320. 27060 XK = XCST(T)
  321. 27070 S = CF(T)
  322. 27075 XS = X(S)
  323. 27080 X = X(T)
  324. 27100 ON CT(T) GOSUB 28000,28100,28200,28300,28400,28500,28600,28700,28800,28900,29000,29100,29200,29300,29400,29500,29600,29700,29800,29900,26000,26100,26200,26300,26400,26500,26600,26700,26800,26900
  325. 27105 XC = X - X(T2)
  326. 27110 X(T2) = X 
  327. 27120 T$ = STR$(X)
  328. 27130 T3 = LEN(T$)
  329. 27140 T1$ = "__________"
  330. 27150 B$ = MID$(T1$,T3)
  331. 27160 A$ = B$ + T$
  332. 27162 IF T3 > 11 THEN A$ = LEFT$(A$,11)
  333. 27165 A$ = RIGHT$(A$,11)
  334. 27167 DT# = X
  335. 27168 IF DS(T2) = 2 THEN GOSUB 49020
  336. 27170 L = LIN(T2)
  337. 27180 C = COL(T2)
  338. 27190 S = SCR(T2)
  339. 27200 IF L$(S,L) = "" THEN L$(S,L) = "                                                                             "
  340. 27205 L$ = L$(S,L)
  341. 27210 B$ = MID$(L$,1,C)
  342. 27220 T = LEN(A$)
  343. 27230 T = C + T+1
  344. 27240 C$ = MID$(L$,T)
  345. 27250 L$(S,L) = B$ + A$ + C$
  346. 27260 IF S = SN THEN GOSUB 27800
  347. 27300 IF CT(T2) = 0 THEN RETURN 
  348. 27310 T = T2
  349. 27320 GOTO 27000
  350. 27800 REM PRINT CALCULATED LINE ON SCREEN
  351. 27810 LI = L
  352. 27820 GOSUB 600
  353. 27830 PRINT L$(SN,L)
  354. 27840 LI = LKT
  355. 27850 TB = CKT
  356. 27855 GOSUB 650
  357. 27860 RETURN
  358. 28000 REM ADD TO A FIELD
  359. 28010 X = X(T2) + XC
  360. 28030 RETURN
  361. 28100 REM SUBTRACT 
  362. 28110 X = X(T2) - XC 
  363. 28130 RETURN
  364. 28200 REM MULT 
  365. 28210 X = X(T)*XS
  366. 28230 RETURN
  367. 28300 REM DIVIDE BYFIELD
  368. 28305 IF XS = 0 THEN X = 0
  369. 28306 IF XS = 0 THEN RETURN
  370. 28310 X = X(T)/XS  
  371. 28330 RETURN
  372. 28400 REM DIVIDE INTO 
  373. 28405 IF X(T) = 0 THEN X = 0
  374. 28406 IF X(T) = 0 THEN RETURN
  375. 28410 X = XS/X(T) 
  376. 28430 RETURN
  377. 28500 REM MAX 
  378. 28510 IF X(T) > X(T2) THEN X = X(T) ELSE X =X(T2)
  379. 28530 RETURN
  380. 28600 REM MIN 
  381. 28610 IF X(T) < X(T2) THEN X = X(T) ELSE X = X(T2)
  382. 28630 RETURN
  383. 28700 REM ADD CONSTANT  
  384. 28710 X = X(T) + XK 
  385. 28730 RETURN
  386. 28800 REM MULTIPLY CONSTANT
  387. 28810 X = X(T)* XK
  388. 28830 RETURN
  389. 28900 REM SUBTRACT CONSTANT
  390. 28910 X = X(T)-XK
  391. 28930 RETURN
  392. 29000 REM SUBTRACT FROM CONSTANT
  393. 29010 X = XK - X(T)
  394. 29030 RETURN
  395. 29100 REM DIVIDE BY A CONSTANT
  396. 29110 X = X(T)/XK
  397. 29130 RETURN
  398. 29200 REM DIVIDE INTO A CONSTANT
  399. 29205 IF X(T) = 0 THEN X = 0
  400. 29206 IF X(T) = 0 THEN RETURN
  401. 29210 X = XK/X(T)
  402. 29230 RETURN
  403. 29300 REM CUSTOM 14 
  404. 29330 RETURN
  405. 29400 REM CUSTOM 15
  406. 29430 RETURN
  407. 29500 REM CUSTOM 16
  408. 29530 RETURN
  409. 29600 REM CUSTOM 17
  410. 29630 RETURN
  411. 29700 REM CUSTOM 18
  412. 29730 RETURN
  413. 29800 REM CUSTOM 19
  414. 29830 RETURN
  415. 29900 REM CUSTOM 20
  416. 29930 RETURN
  417. 30000 REM START SPREAD SHEET
  418. 30010 GOSUB 500
  419. 30020 CSFLG = 0
  420. 30100 REM 
  421. 30200 FOR T = 1 TO 20 
  422. 30210 PRINT L$(SN,T)
  423. 30220 NEXT T
  424. 30300 LI = 1
  425. 30310 GOSUB 600
  426. 30320 PRINT "*"
  427. 30330 LKT = 1
  428. 30340 CKT = 1
  429. 31000 REM ***  MENU
  430. 31010 IF CFFLG = 5 THEN 5000
  431. 31015 IF CFFLG2= 5 THEN 5500
  432. 31030 IF SFLG = 5 THEN 6000
  433. 31050 LI = 21
  434. 31060 GOSUB 600
  435. 31070 PRINT "***    ENTER THE OPTION NUMBER THEN PRESS RETURN ***             ON SCREEN ";SN
  436. 31080 PRINT "0-EXIT  1-INPUT NUMBER  2-INPUT OVERLAY LINE 3-NEW NUMBER 4-DEFINE CALCULATION "  
  437. 31090 PRINT "5-CLEAR      6-SAVE      7-BARCHART     8-PRINT SCREEN     9-PRINT DESCRIPTION "
  438. 31300 LI = 25
  439. 31310 GOSUB 600
  440. 31320 PRINT "MOVE THE * USING A,Q,S,D,F,G,E,R,X,C              CHANGE SCREENS USING I,J,K,M";
  441. 31330 LI = 24
  442. 31340 GOSUB 600
  443. 31490 MFLG = 5
  444. 31500 GOSUB 60000
  445. 31501 IF CSFLG = 5 THEN 30000
  446. 31502 IF DT# < 0 OR DT# >9 THEN 31000
  447. 31505 MFLG = 1
  448. 31506 IF CSFLG = 5 THEN 30000
  449. 31507 IF DT# = 0 THEN 51200
  450. 31508 OPT = DT#
  451. 31510 ON DT# GOSUB 20000,21000,22000,23000,37000,41000,46000,45000,44000
  452. 31800 IF OPT = 7 THEN 30000
  453. 31900 GOTO 31000
  454. 32000 REM*** MOVE CURSER AROUND 
  455. 34000 REM TEST FOR MOVE CURSER
  456. 34010 CFLG = 0
  457. 34100 IF C = 65 OR C = 97 THEN CFLG = 1
  458. 34110 IF C = 83 OR C = 115 THEN CFLG = 2
  459. 34120 IF C = 68 OR C = 100 THEN CFLG = 3
  460. 34130 IF C = 70 OR C = 102 THEN CFLG = 4
  461. 34140 IF C = 69 OR C = 101 THEN CFLG = 5
  462. 34150 IF C = 88 OR C = 120 THEN CFLG = 6
  463. 34152 IF C = 82 OR C = 114 THEN CFLG = 7
  464. 34154 IF C = 67 OR C = 99 THEN CFLG = 8
  465. 34156 IF C = 71 OR C = 103 THEN CFLG = 9
  466. 34158 IF C = 81 OR C = 113 THEN CFLG = 10
  467. 34160 IF C = 73 OR C = 105 THEN CFLG = 11
  468. 34163 IF C = 74 OR C = 106 THEN CFLG = 12
  469. 34165 IF C = 75 OR C = 107 THEN CFLG = 13
  470. 34175 IF C = 77 OR C = 109 THEN CFLG = 14
  471. 34180 IF CFLG > 10 THEN 36000
  472. 34200 IF CFLG = 0 THEN RETURN
  473. 34300 REM OVERPRINT OLD LINE
  474. 34310 TB = CKT
  475. 34320 LI = LKT
  476. 34400 GOSUB 650
  477. 34410 L$ = L$(SN,LKT)
  478. 34420 A$ =  MID$(L$,CKT,1)
  479. 34430 IF A$ = "" THEN PRINT " " ELSE PRINT A$
  480. 34500 ON CFLG GOSUB 35000,35100,35200,35300,35400,35500,35450,35550,35350,35050
  481. 34510 TB = CKT
  482. 34520 LI = LKT
  483. 34530 GOSUB 650
  484. 34540 PRINT "*"
  485. 34550 LI = 24
  486. 34560 TB = 2
  487. 34570 GOSUB 650
  488. 34580 RETURN
  489. 35000 REM MOVE FIVE LEFT
  490. 35010 CKT = CKT - 5
  491. 35020 IF CKT < 1 THEN CKT = 1
  492. 35040 RETURN
  493. 35050 REM MOVE 20 LEFT  
  494. 35060 CKT = CKT - 20
  495. 35070 IF CKT < 1 THEN CKT = 1
  496. 35080 RETURN
  497. 35100 REM ** LEFT ONE SPACE
  498. 35110 CKT = CKT - 1
  499. 35120 IF CKT < 1 THEN CKT = 1
  500. 35130 RETURN
  501. 35200 REM ** RIGHT ONE SPACE
  502. 35210 CKT = CKT + 1
  503. 35220 IF CKT > 75 THEN CKT = 75
  504. 35230 RETURN
  505. 35300 CKT = CKT + 5
  506. 35310 IF CKT > 75 THEN CKT = 75
  507. 35320 RETURN
  508. 35350 CKT = CKT + 20
  509. 35360 IF CKT > 75 THEN CKT = 75
  510. 35370 RETURN
  511. 35400 REM ** UP ONE LINE
  512. 35410 LKT = LKT - 1
  513. 35420 IF LKT < 1 THEN LKT = 1
  514. 35430 RETURN
  515. 35450 REM ** UP FOUR LINE
  516. 35460 LKT = LKT - 4
  517. 35470 IF LKT < 1 THEN LKT = 1
  518. 35480 RETURN
  519. 35500 REM ** DOWN ONE LINE
  520. 35510 LKT = LKT + 1
  521. 35520 IF LKT > 20 THEN LKT = 20
  522. 35530 RETURN
  523. 35550 REM ** DOWN FOUR LINE
  524. 35560 LKT = LKT + 4
  525. 35570 IF LKT > 20 THEN LKT = 20
  526. 35580 RETURN
  527. 35600 REM SCREEN UP
  528. 35610 SN = SN - 4
  529. 35620 IF SN < 1 THEN SN = 1
  530. 35630 RETURN
  531. 35700 REM SCREEN LEFT
  532. 35710 SN = SN - 1 
  533. 35720 IF SN < 1 THEN SN = 1
  534. 35730 RETURN
  535. 35800 REM SCREEN RIGHT
  536. 35810 SN = SN + 1
  537. 35820 IF SN > 20 THEN SN = 20
  538. 35830 RETURN
  539. 35900 REM SCREEN DOWN
  540. 35910 SN = SN + 4
  541. 35920 IF SN > 20 THEN SN = 20
  542. 35930 RETURN
  543. 36000 REM CHANGE SCREENS
  544. 36100 GOSUB 500
  545. 36110 CFLG = CFLG - 10
  546. 36120 ON CFLG GOSUB 35600,35700,35800,35900
  547. 36125 CSFLG = 5
  548. 36130 RETURN    
  549. 37000 REM RECALCULATE
  550. 37010 GOSUB 9000
  551. 37020 PRINT "       The Clear option will set all the numeric values to zero "
  552. 37030 PRINT "         YOU WILL LOSE THE VALUES UNLESS YOU HAVE SAVED THEM"
  553. 37040 PRINT "               DO YOU WANT TO CLEAR THE VALUES (Y/N) "
  554. 37050 A$ = INKEY$
  555. 37055 IF A$ = "" THEN 37050
  556. 37060 IF A$ = "Y" OR A$ = "y" THEN 37100 ELSE RETURN
  557. 37100 FOR T2= 1 TO MAXN
  558. 37105 IF CT(T2) = 30 THEN 37300
  559. 37110 X(T2) = 0
  560. 37120 A$= "__________0"
  561. 37130 IF DS(T2) = 2 THEN A$ = "$_______.00"
  562. 37170 L = LIN(T2)
  563. 37180 C = COL(T2)
  564. 37190 S = SCR(T2)
  565. 37200 IF L$(S,L) = "" THEN L$(S,L) = "                                                                             " 
  566. 37205 L$ = L$(S,L)
  567. 37210 B$ = MID$(L$,1,C)
  568. 37220 T = LEN(A$)
  569. 37230 T = C + T+1
  570. 37240 C$ = MID$(L$,T)
  571. 37250 L$(S,L) = B$ + A$ + C$
  572. 37260 IF S = SN THEN GOSUB 27800
  573. 37300 NEXT T2
  574. 37310 RETURN
  575. 40000 REM 
  576. 40080 PRINT "These are the files on your defalut disk drive :"
  577. 40100 PRINT ""
  578. 40120 FILES 
  579. 40140 PRINT "If you want to continue with an old spreadsheet enter the name "
  580. 40160 PRINT "If you want to start a new spreadsheet just press return "
  581. 40270 MAX = 8
  582. 40280 GOSUB 62030
  583. 40282 IF A$ = "" THEN 30000
  584. 40290 NM$ = A$
  585. 40300 GOTO 43000
  586. 41000 REM *** START NEW SPREADSHEET
  587. 41100 GOSUB 9000
  588. 41130 PRINT "******  ENTER THE NAME THAT YOU WANT TO SAVE THIS SPREADSHEET UNDER   *******"
  589. 41140 PRINT "             must be eight characters or less, no spaces "
  590. 41160 PRINT "If you do not want to save the spreadheet at this time then just press return"
  591. 41200 MAX = 8
  592. 41210 GOSUB 62030
  593. 41215 IF A$ = "" THEN RETURN
  594. 41220 GOSUB 8000
  595. 41230 IF TEST = 4 THEN 41000
  596. 41240 NM$ = A$
  597. 42000 REM WRITE SPREADSHEET
  598. 42010 GOSUB 9000
  599. 42020 PRINT " SAVEING YOUR SPREADSHEET ON DISK, PLEASE WAIT"
  600. 42100 OPEN "O",#1,NM$
  601. 42110 WRITE #1,MAXN
  602. 42120 FOR T = 1 TO MAXN
  603. 42130 WRITE #1,X(T),SCR(T),LIN(T),COL(T),CT(T),TF(T),CF(T),XCST(T),DS(T)
  604. 42140 NEXT T
  605. 42200 FOR T = 1 TO 20
  606. 42210 FOR T2 = 1 TO 20
  607. 42220 WRITE #1,L$(T,T2)
  608. 42230 NEXT T2
  609. 42240 NEXT T
  610. 42245 CLOSE
  611. 42250 RETURN 
  612. 43000 REM READ SPREADSHEET
  613. 43040 PRINT ""
  614. 43050 PRINT "READING INFORMATION PLEASE WAIT"
  615. 43100 OPEN "I",#1,NM$
  616. 43110 INPUT #1,MAXN
  617. 43120 FOR T = 1 TO MAXN
  618. 43130 INPUT #1,X(T),SCR(T),LIN(T),COL(T),CT(T),TF(T),CF(T),XCST(T),DS(T)
  619. 43140 NEXT T
  620. 43200 FOR T = 1 TO 20
  621. 43210 FOR T2 = 1 TO 20
  622. 43220 INPUT #1,L$(T,T2)
  623. 43230 NEXT T2
  624. 43240 NEXT T
  625. 43245 CLOSE 
  626. 43250 GOTO 30000
  627. 44000 REM PRINT SPREADSHEET
  628. 44010 GOSUB 9000
  629. 44020 PRINT "      Print the spreadsheet description on paper subroutine "
  630. 44030 PRINT "                 Make sure your printer is on "
  631. 44040 PRINT "                 DO YOU WANT THIS OPTION (Y/N) "
  632. 44050 A$ = INKEY$
  633. 44055 IF A$ = "" THEN 44050
  634. 44060 IF A$ = "Y" OR A$ = "y" THEN 44100 ELSE RETURN
  635. 44100 LPRINT "SPREADSHEET NAME ";NM$
  636. 44110 LPRINT "X(T) SCR(T) LIN(T) COL(T) CT(T) TF(T) CF(T) XCST(T);DS(T)"
  637. 44120 FOR T = 1 TO MAXN
  638. 44130 LPRINT X(T);SCR(T);LIN(T);COL(T);CT(T);TF(T);CF(T);XCST(T);DS(T)
  639. 44140 NEXT T
  640. 44200 FOR T = 1 TO 20
  641. 44210 FOR T2 = 1 TO 20
  642. 44215 IF L$(T,T2) = "" THEN 44230
  643. 44218 LPRINT "SCREEN ";T;" LINE ";T2
  644. 44220 LPRINT L$(T,T2)
  645. 44230 NEXT T2
  646. 44240 NEXT T
  647. 44250 RETURN 
  648. 45000 REM PRINT SCREEN ON PAPER
  649. 45010 GOSUB 9000
  650. 45020 PRINT "                      PRINT SCREEN ROUTINE "
  651. 45030 PRINT "                 Make sure your printer is no "
  652. 45040 PRINT "             DO YOU WANT TO PRINT THIS SCREEN (Y/N) "
  653. 45050 A$ = INKEY$
  654. 45055 IF A$ = "" THEN 45050
  655. 45060 IF A$ = "Y" OR A$ = "y" THEN 45070 ELSE RETURN
  656. 45070 GOSUB 9000
  657. 45075 PRINT "   DO YOU WANT TO PRINT THE SCREENS TO THE RIGHT ALSO "
  658. 45077 PRINT "       1 - NO print only this screen  2 - Yes "
  659. 45080 GOSUB 60000
  660. 45085 IF DT# = 2 THEN 45200
  661. 45100 FOR T = 1 TO 20
  662. 45110 LPRINT L$(SN,T)
  663. 45120 NEXT T
  664. 45130 RETURN 
  665. 45200 REM PRINT SECOND SCREEN OVER
  666. 45210 GOSUB 9000
  667. 45230 PRINT "   How many columns of the spreadsheet do you want printed? "
  668. 45235 PRINT "Do not exceed the number of colums that your printer can print"
  669. 45240 GOSUB 60060
  670. 45250 MAXL = DT#
  671. 45255 WIDTH 255
  672. 45260 FOR T = 1 TO 20
  673. 45265 L$ = L$(SN,T)
  674. 45270 T2 = SN+1
  675. 45271 L2$ = L$(T2,T)
  676. 45272 T3 = SN + 2
  677. 45273 IF L2$ = "" THEN L2$ = "                                                                           "
  678. 45275 IF L$ = "" THEN L$ = "                                                                             "
  679. 45280 L$ = L$ + L2$ +L$(T3,T)
  680. 45290 L$ = LEFT$(L$,MAXL)
  681. 45300 LPRINT L$
  682. 45400 NEXT T
  683. 45500 RETURN 
  684. 46000 REM BAR CHART
  685. 46010 GOSUB 9000
  686. 46020 PRINT "                       BAR CHART SUBROUTINE  "
  687. 46030 PRINT "                  MAKE SURE YOUR PRINTER IS ON "
  688. 46040 PRINT "             DO YOU WANT TO PRINT A BAR CHART (Y/N) "
  689. 46050 A$ = INKEY$
  690. 46055 IF A$ = "" THEN 46050
  691. 46060 IF A$ = "Y" OR A$ = "y" THEN 46070 ELSE RETURN
  692. 46070 XMAX = 0
  693. 46080 NCT = 0
  694. 46100 REM INPUT NUMBERS FOR CHART
  695. 46105 MFLG = 5
  696. 46110 NCT = NCT + 1
  697. 46120 GOSUB 9000
  698. 46130 PRINT "         MOVE THE * TO THE ";NCT;" th NUMBER FOR THE BAR CHART"
  699. 46135 PRINT "                         THEN PRESS RETURN "
  700. 46140 GOSUB 60000
  701. 46150 GOSUB 4000
  702. 46160 IF N = 0 THEN 46120
  703. 46165 IF X(N) > XMAX THEN XMAX = X(N)
  704. 46170 XPRT(NCT)=X(N)
  705. 46200 GOSUB 9000
  706. 46210 PRINT "   MOVE THE CURSER TO THE START OF THE LABEL FOR THIS NUMBER"
  707. 46215 PRINT "                    THEN PRESS RETURN "
  708. 46220 GOSUB 60000
  709. 46230 T1 = CKT 
  710. 46300 GOSUB 9000
  711. 46310 PRINT "   MOVE THE CURSER TO THE END OF THE LABEL FOR THIS NUMBER"
  712. 46315 PRINT "                    THEN PRESS RETURN "
  713. 46320 GOSUB 60000
  714. 46330 T2 = CKT
  715. 46400 T3 = T2 - T1
  716. 46410 L$ = L$(SN,LKT)
  717. 46420 LBL$(NCT) = MID$(L$,T1,T3)
  718. 46500 GOSUB 9000
  719. 46510 PRINT "     DO YOU WANT ANOTHER NUMBER FOR THIS BAR CHART "
  720. 46520 PRINT "         1 - YES,  ANOTHER NUMBER "
  721. 46525 PRINT "         2 - NO, I HAVE ENTERED ALL THE NUMBERS "
  722. 46530 GOSUB 60000
  723. 46540 IF DT# = 1 THEN 46100
  724. 47000 REM PRINT BAR CHART
  725. 47100 GOSUB 500
  726. 47200 FOR T = 1 TO NCT
  727. 47210 PRINT LBL$(T),XPRT(T)
  728. 47220 T1#= XPRT(T)/XMAX
  729. 47225 T1#= T1#*75 
  730. 47230 T2 = INT(T1#)
  731. 47240 FOR T3 = 1 TO T2
  732. 47250 PRINT "*";
  733. 47260 NEXT T3
  734. 47265 PRINT ""
  735. 47270 NEXT T
  736. 47300 PRINT " PRESS ANY KEY TO CONTINUE "
  737. 47310 IF INKEY$ = "" THEN 47310
  738. 47400 PRINT " DO YOU WANT TO PRINT THIS ON PAPER "
  739. 47410 PRINT "  1- YES PRINT 2-NO"
  740. 47420 GOSUB 60000
  741. 47430 IF DT# = 2 THEN RETURN
  742. 48000 REM PRINT BAR CHART
  743. 48200 FOR T = 1 TO NCT
  744. 48210 LPRINT LBL$(T),XPRT(T)
  745. 48220 T1#= XPRT(T)/XMAX
  746. 48225 T1#= T1#*75 
  747. 48230 T2 = INT(T1#)
  748. 48240 FOR T3 = 1 TO T2
  749. 48250 LPRINT "*";
  750. 48260 NEXT T3
  751. 48265 LPRINT ""
  752. 48270 NEXT T
  753. 48300 RETURN 
  754. 49000 REM PUT DOLLAR SIGNS IN
  755. 49010 GOSUB 4000
  756. 49020 XA = DT#
  757. 49100 XA = XA * 100 + .01
  758. 49110 XA = INT(XA)
  759. 49120 T$ = STR$(XA)
  760. 49130 T$ = "__________" + T$
  761. 49140 T$ = RIGHT$(T$,8)
  762. 49150 A$ = MID$(T$,1,3)
  763. 49160 B$ = MID$(T$,4,3)
  764. 49170 C$ = MID$(T$,7,2)
  765. 49180 A$ = "$"+A$+","+B$+"."+C$
  766. 49190 IF XA < 100000! THEN A$ = "$"+"____"+B$+"."+C$
  767. 49800 RETURN
  768. 50000 REM **********  INTRO
  769. 50010 GOSUB 500
  770. 50100 PRINT "                  S P R E A D S H E E T      1.0   "
  771. 50105 PRINT ""
  772. 50110 PRINT "         Copyright 1984 by Potomac Pacific Engineering Inc."
  773. 50120 PRINT ""
  774. 50130 PRINT "This program is licensed FREE to all users with some restrictions"
  775. 50165 PRINT "        See the manual for more information on the license."
  776. 50167 PRINT ""
  777. 50970 RETURN
  778. 51000 REM ***** EXIT TO SYSTEM
  779. 51100 GOSUB 500
  780. 51110 CLOSE
  781. 51120 PRINT " -BYE, Have a nice day"
  782. 51130 END
  783. 51200 REM ** WARNING
  784. 51210 GOSUB 9000
  785. 51220 PRINT "       IF YOU HAVE NOT SAVED YOUR DATA YOU WILL LOSE IT  "
  786. 51230 PRINT "            DO YOU WANT TO EXIT THE PROGRAM (Y/N)"
  787. 51235 A$ = INKEY$
  788. 51240 IF A$ = "" THEN 51235
  789. 51260 IF A$ = "Y" OR A$ = "y" THEN 51000
  790. 51270 GOTO 31000
  791. 52000 REM DELETE NUMBER
  792. 52100 A$ = "           "
  793. 52110 GOSUB 21130
  794. 52120 RETURN
  795. 60000 REM *******  INTEGER LESS THEN 100 CHECK  ********
  796. 60010 MAX = 2
  797. 60020 ACT$ = "1234567890=<>^"
  798. 60030 IF NE = 0 THEN ACT$ = "1234567890"
  799. 60040 PRINT ">__<";
  800. 60050 GOTO 60240
  801. 60060 REM *******  INTEGER *******                        
  802. 60070 MAX = 8
  803. 60080 ACT$ = "1234567890-+,=<>^"
  804. 60090 IF NE = 0 THEN ACT$ = "1234567890-+,"
  805. 60100 PRINT ">________<";
  806. 60110 GOTO 60240
  807. 60120 REM *******  SINGLE PRECISION  *******                        
  808. 60130 MAX = 10
  809. 60140 ACT$ = "1234567890-+,.%$=<>^"
  810. 60150 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  811. 60160 PRINT ">__________<";
  812. 60170 GOTO 60240
  813. 60180 REM *******  DOUBLE PRECISION  *******                        
  814. 60190 MAX = 20
  815. 60200 ACT$ = "1234567890-+,.%$=<>^"
  816. 60210 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  817. 60220 PRINT ">____________________<";
  818. 60230 GOTO 60240
  819. 60240 REM ********** NUMBER CHECK **********
  820. 60250 A$ = ""
  821. 60260 K$(20) = " "
  822. 60270 KTMAX = 0
  823. 60280 FOR T9 = 1 TO MAX
  824. 60290 K$(T9) = " "
  825. 60300 NEXT T9
  826. 60310 DIG$ = "1234567890."
  827. 60320 DOTFLG = 0
  828. 60330 T2 = MAX + 1
  829. 60340 FOR T6 = 1 TO T2
  830. 60350 PRINT CHR$(CH);
  831. 60360 NEXT T6
  832. 60370 IF INKEY$ = "" GOTO 60380 ELSE GOTO 60370
  833. 60380 KT = 0
  834. 60390 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  835. 60400 KT = KT + 1
  836. 60410 REM     
  837. 60420 W$ = INKEY$
  838. 60430 IF W$ = "" GOTO 60420
  839. 60440 C = ASC(W$)
  840. 60442 IF MFLG < 5 THEN 60450
  841. 60444 GOSUB 34000
  842. 60446 IF CSFLG = 5 THEN RETURN
  843. 60450 IF C = 0 THEN GOSUB 61900
  844. 60460 IF C = 13 GOTO 60580
  845. 60470 IF C = 17 OR C = 8 GOTO 61150
  846. 60480 IF C = 19 GOTO 60670
  847. 60490 IF C = 4 GOTO 60720
  848. 60500 IF C = 6 GOTO 60780
  849. 60510 IF C = 1 GOTO 60960
  850. 60520 IF KT > MAX GOTO 60410
  851. 60530 IF INSTR(ACT$,W$) = 0 GOTO 61230
  852. 60540 K$(KT) = W$
  853. 60550 PRINT K$(KT);
  854. 60560 IF KT > KTMAX THEN KTMAX = KT
  855. 60570 GOTO 60400
  856. 60580 REM **********  RETURN  **********
  857. 60590 FOR T9 = 1 TO KTMAX
  858. 60600 A$ = A$ + K$(T9)
  859. 60610 NEXT T9
  860. 60620 IF KTMAX = 0 THEN PRINT "1";
  861. 60630 IF KTMAX = 0 THEN DT# = 1
  862. 60635 IF KTMAX = 0 THEN A$ = "1"
  863. 60640 IF KTMAX = 0 THEN RETURN
  864. 60660 GOTO 61260
  865. 60670 REM ********* MOVE CURSE BACK ********
  866. 60680 IF KT = 1 GOTO 60410
  867. 60690 KT = KT - 1
  868. 60700 PRINT CHR$(CH);
  869. 60710 GOTO 60410
  870. 60720 REM ********* MOVE CURSER FORWARD *********
  871. 60730 IF KT >= MAX GOTO 60410
  872. 60740 IF KT > (KTMAX + 1) GOTO 60410
  873. 60750 PRINT K$(KT);
  874. 60760 KT = KT + 1
  875. 60770 GOTO 60410
  876. 60780 REM ********** INSERT ***********
  877. 60790 IF KT > KTMAX GOTO 60410
  878. 60800 X9 = MAX
  879. 60810 WHILE X9 > KT
  880. 60820 X9 = X9 - 1
  881. 60830 K$(X9 + 1) = K$(X9)
  882. 60840 WEND 
  883. 60850 K$(KT) = " "
  884. 60860 KTMAX = KTMAX + 1
  885. 60870 IF KTMAX > MAX THEN KTMAX = MAX
  886. 60880 FOR T9 = KT TO KTMAX
  887. 60890 PRINT K$(T9);
  888. 60900 NEXT T9
  889. 60910 T6 = (KTMAX - KT) + 1
  890. 60920 FOR T7 = 1 TO T6
  891. 60930 PRINT CHR$(CH);
  892. 60940 NEXT T7
  893. 60950 GOTO 60410
  894. 60960 REM ********** DELETE ***********
  895. 60970 IF KT > KTMAX GOTO 60410
  896. 60980 IF KTMAX = 1 GOTO 60410
  897. 60990 K$(MAX + 1) = ""
  898. 61000 X9 = KT 
  899. 61010 WHILE X9 <= MAX
  900. 61020 K$(X9) = K$(X9 + 1)
  901. 61030 X9 = X9 + 1
  902. 61040 WEND 
  903. 61050 KTMAX = KTMAX - 1
  904. 61060 FOR T9 = KT TO KTMAX
  905. 61070 PRINT K$(T9);
  906. 61080 NEXT T9
  907. 61090 PRINT "_";
  908. 61100 T7 = (KTMAX - KT) + 2
  909. 61110 FOR T8 = 1 TO T7
  910. 61120 PRINT CHR$(CH);
  911. 61130 NEXT T8
  912. 61140 GOTO 60410
  913. 61150 REM ********* BACKSPACE ********
  914. 61160 IF KT = 1 GOTO 60410
  915. 61170 KT = KT - 1
  916. 61180 PRINT CHR$(CH);
  917. 61190 K$(KT) = " " 
  918. 61200 PRINT "_";
  919. 61210 PRINT CHR$(CH);
  920. 61220 GOTO 60410
  921. 61230 REM *******  INPUT NOT ACCEPTABLE  ********
  922. 61235 IF MFLG = 5 THEN 61250
  923. 61240 PRINT CHR$(7);
  924. 61250 GOTO 60420
  925. 61260 REM ********* CLEAR STRINGS ********
  926. 61270 MAX = LEN(A$)
  927. 61280 D2$ = ""
  928. 61290 D1$ = ""
  929. 61300 DFLG = 0
  930. 61310 FOR Q93 = 1 TO MAX
  931. 61320 R$ = MID$(A$,Q93,1)
  932. 61330 IF INSTR(DIG$,R$) = 0 GOTO 61400
  933. 61340 IF R$ = "." OR DFLG = 1 GOTO 61380
  934. 61350 IF DFLG = 1 GOTO 61380
  935. 61360 D2$ = D2$ + R$
  936. 61370 GOTO 61400
  937. 61380 D1$ = D1$ + R$
  938. 61390 DFLG = 1
  939. 61400 NEXT Q93
  940. 61410 DA# = VAL(D2$)
  941. 61420 D1# = VAL(D1$)
  942. 61430 DT# = DA# + D1#
  943. 61440 IF K$(1) = "-" THEN DT# =  -DT#   
  944. 61450 RETURN
  945. 61900 REM ****** CHECK FOR ASC0
  946. 61910 S4$ = INKEY$
  947. 61920 C2 =  ASC(S4$)
  948. 61930 IF C2 = 83 THEN C = 1
  949. 61940 IF C2 = 82 THEN C = 6
  950. 61950 IF C2 = 75 THEN C = 19
  951. 61960 IF C2 = 77 THEN C = 4 
  952. 61970 RETURN
  953. 62000 REM **********  ALPHANUMERIC CHECK  **************
  954. 62010 REM   MAX = FL(A,Q)
  955. 62020 GOTO 62040
  956. 62030 REM ********  MAX SET IN PROGRAM  ********
  957. 62040 A$ = ""
  958. 62050 PRINT ">"; 
  959. 62060 FOR N9 = 1 TO MAX
  960. 62070 K$(N9) = ""
  961. 62080 PRINT "_";
  962. 62090 NEXT N9
  963. 62100 PRINT "<";
  964. 62110 T2 = MAX + 1
  965. 62120 FOR T4 = 1 TO T2
  966. 62130 PRINT CHR$(CH);
  967. 62140 NEXT T4
  968. 62150 KT = 0
  969. 62160 KTMAX = 1
  970. 62170 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  971. 62180 KT = KT + 1
  972. 62190 PRINT TAB(KT+1)"";
  973. 62200 K$ = INKEY$
  974. 62210 IF K$ = "" GOTO 62200
  975. 62220 C = ASC(K$)
  976. 62230 IF C = 0 THEN GOSUB 61900
  977. 62240 IF C = 13 GOTO 62350
  978. 62250 IF C = 17 OR C = 8 GOTO 62920
  979. 62260 IF C = 19 GOTO 62450
  980. 62270 IF C = 4  GOTO 62500
  981. 62280 IF C = 6 GOTO 62560
  982. 62290 IF C = 1 GOTO 62730
  983. 62300 IF KT > MAX GOTO 62190
  984. 62310 K$(KT) = K$
  985. 62320 PRINT K$(KT);
  986. 62330 IF KT > KTMAX THEN KTMAX = KT
  987. 62340 GOTO 62180
  988. 62350 REM **********  RETURN  **********
  989. 62360 FOR T9 = 1 TO MAX
  990. 62370 A$ = A$ + K$(T9)
  991. 62420 NEXT T9
  992. 62440 RETURN  
  993. 62450 REM ********* MOVE CURSE BACK ********
  994. 62460 IF KT = 1 GOTO 62190
  995. 62470 KT = KT - 1
  996. 62480 PRINT CHR$(CH);
  997. 62490 GOTO 62190
  998. 62500 REM ********* MOVE CURSER FORWARD *********
  999. 62510 IF KT >= MAX GOTO 62190
  1000. 62520 IF KT >  KTMAX  GOTO 62190
  1001. 62530 PRINT K$(KT);
  1002. 62540 KT = KT + 1
  1003. 62550 GOTO 62190
  1004. 62560 REM ********** INSERT ***********
  1005. 62570 X9 = MAX
  1006. 62580 WHILE X9 > KT
  1007. 62590 X9 = X9 - 1
  1008. 62600 K$(X9 + 1) = K$(X9)
  1009. 62610 WEND 
  1010. 62620 K$(KT) = " "
  1011. 62630 KTMAX = KTMAX + 1
  1012. 62640 IF KTMAX > MAX THEN KTMAX = MAX
  1013. 62650 FOR T9 = KT TO KTMAX
  1014. 62660 PRINT K$(T9);
  1015. 62670 NEXT T9
  1016. 62680 T6 = (KTMAX - KT) +1
  1017. 62690 FOR T7 = 1 TO T6
  1018. 62700 PRINT CHR$(CH);
  1019. 62710 NEXT T7
  1020. 62720 GOTO 62190
  1021. 62730 REM ********** DELETE ***********
  1022. 62740 IF KT > KTMAX GOTO 62200
  1023. 62750 IF KTMAX = 1 GOTO 62190
  1024. 62760 K$(MAX + 1) = ""
  1025. 62770 X9 = KT 
  1026. 62780 WHILE X9 <= KTMAX
  1027. 62790 K$(X9) = K$(X9 + 1)
  1028. 62800 X9 = X9 + 1
  1029. 62810 WEND 
  1030. 62820 KTMAX = KTMAX - 1
  1031. 62830 FOR T9 = KT TO KTMAX
  1032. 62840 PRINT K$(T9);
  1033. 62850 NEXT T9
  1034. 62860 PRINT "_";
  1035. 62870 T7 = (KTMAX - KT) + 2
  1036. 62880 FOR T6 = 1 TO T7
  1037. 62890 PRINT CHR$(CH);
  1038. 62900 NEXT T6
  1039. 62910 GOTO 62190
  1040. 62920 REM ********* BACKSPACE ********
  1041. 62930 IF KT = 1 GOTO 62190
  1042. 62940 K$(KT) = " "
  1043. 62950 KT = KT - 1
  1044. 62960 K$(KT) = " "
  1045. 62970 PRINT CHR$(CH);
  1046. 62980 PRINT "_";
  1047. 62990 PRINT CHR$(CH);
  1048. 63000 GOTO 62190
  1049.  " "
  1050. 62950 KT = KT - 1
  1051. 62960 K$(KT) = " "
  1052. 62970 PRINT CHR$(CH);
  1053. 62980 PRINT "_";