home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG051.ARK / FLT2.FLB < prev    next >
Text File  |  1984-04-29  |  11KB  |  626 lines

  1. BEGIN STAGE2.
  2. VAL B = 1 + 0.
  3. READ NEXT B.
  4. VAL W = 4 + 0.
  5. WRITE NEXT W.
  6. VAL B = 1 + 0.
  7. READ NEXT B.
  8. VAL W = 4 + 0.
  9. WRITE NEXT W.
  10. VAL B = 1 + 0.
  11. READ NEXT B.
  12. VAL W = 4 + 0.
  13. WRITE NEXT W.
  14. VAL B = 1 + 0.
  15. READ NEXT B.
  16. VAL W = 4 + 0.
  17. WRITE NEXT W.
  18. VAL B = 1 + 0.
  19. READ NEXT B.
  20. VAL W = 3 + 0.
  21. WRITE NEXT W.
  22. VAL B = 1 + 0.
  23. READ NEXT B.
  24. VAL W = 4 + 0.
  25. WRITE NEXT W.
  26. VAL W = 4 + 0.
  27. MESSAGE CONV TO W.           PRINT THE CONVERSION ERROR MESSAGE.
  28. VAL B = 1 + 0.
  29. READ NEXT B.
  30. VAL W = 4 + 0.
  31. WRITE NEXT W.
  32. VAL W = 4 + 0.
  33. MESSAGE EXPR TO W.           PRINT THE EXPRESSION ERROR MESSAGE.
  34. VAL B = 1 + 0.
  35. READ NEXT B.
  36. VAL W = 4 + 0.
  37. WRITE NEXT W.
  38. VAL W = 4 + 0.
  39. MESSAGE FULL TO W.           PRINT THE SPACE OVERFLOW MESSAGE.
  40. VAL B = 1 + 0.
  41. READ NEXT B.
  42. VAL W = 4 + 0.
  43. WRITE NEXT W.
  44. FLG X = 3.                   TEST TO ENSURE THAT A MESSAGE DOES NOT
  45. VAL X = 4 + 0.               CORRUPT THE REGISTER WHICH SPECIFIES THE
  46. PTR X = 2 + 0.               CHANNEL, AND THAT IT RETURNS THE PROPER FLG
  47. MESSAGE IOCH TO X.           PRINT THE I/O ERROR MESSAGE
  48. VAL B = 1 + 0.
  49. READ NEXT B.
  50. TO 65 IF VAL X = 4.
  51. VAL W = 4 + 0.
  52. WRITE NEXT W.
  53. LOC 65.
  54. TO 70 BY D.
  55. VAL B = 1 + 0.
  56. READ NEXT B.
  57. FLG C = 2.
  58. FLG D = C.                             FLG * = *
  59. TO 01 IF FLG C NE 2.
  60. TO 01 IF FLG D NE 2.
  61. TO 01 IF FLG D NE C.
  62. TO 02.
  63. LOC 01.
  64. VAL W = 4 + 0.
  65. WRITE NEXT W.
  66. LOC 02.
  67. VAL B = 1 + 0.
  68. READ NEXT B.
  69. FLG X = 0.
  70. VAL X = PTR 3.
  71. PTR X = VAL 0.
  72. VAL X = X + 4.                         VAL X = X + *
  73. TO 03 IF VAL X NE 7.
  74. TO 03 IF PTR X NE 0.
  75. TO 03 IF FLG X NE 0.
  76. TO 04.
  77. LOC 03.
  78. VAL W = 4 + 0.
  79. WRITE NEXT W.
  80. LOC 04.
  81. VAL B = 1 + 0.
  82. READ NEXT B.
  83. FLG X = 0.
  84. VAL X = PTR 3.
  85. PTR X = VAL 0.
  86. VAL X = 2 + X.                         VAL X = * + X
  87. TO 05 IF VAL X NE 5.
  88. TO 05 IF PTR X NE 0.
  89. TO 05 IF FLG X NE 0.
  90. TO 06.
  91. LOC 05.
  92. VAL W = 4 + 0.
  93. WRITE NEXT W.
  94. LOC 06.
  95. VAL B = 1 + 0.
  96. READ NEXT B.
  97. FLG X = 0.
  98. PTR X = VAL 0.
  99. VAL X = PTR 3.
  100. VAL X = X - 2.                         VAL X = X - *
  101. TO 07 IF VAL X NE 1.
  102. TO 07 IF PTR X NE 0.
  103. TO 07 IF FLG X NE 0.
  104. TO 08.
  105. LOC 07.
  106. VAL W = 4 + 0.
  107. WRITE NEXT W.
  108. LOC 08.
  109. VAL B = 1 + 0.
  110. READ NEXT B.
  111. FLG X = 0.
  112. PTR X = VAL 0.
  113. VAL X = PTR 3.
  114. VAL X = 7 - X.                         VAL X = * - X
  115. TO 09 IF VAL X NE 4.
  116. TO 09 IF FLG X NE 0.
  117. TO 09 IF PTR X NE 0.
  118. TO 10.
  119. LOC 09.
  120. VAL W = 4 + 0.
  121. WRITE NEXT W.
  122. LOC 10.
  123. VAL B = 1 + 0.
  124. READ NEXT B.
  125. FLG X = 0.
  126. VAL X = PTR 0.
  127. PTR Y = VAL 6.
  128. PTR X = VAL 4.
  129. PTR X = X + 2.                         PTR X = X + *
  130. TO 11 IF PTR X NE Y.
  131. TO 11 IF VAL X NE 0.
  132. TO 11 IF FLG X NE 0.
  133. TO 12.
  134. LOC 11.
  135. VAL W = 4 + 0.
  136. WRITE NEXT W.
  137. LOC 12.
  138. VAL B = 1 + 0.
  139. READ NEXT B.
  140. FLG X = 0.
  141. VAL X = PTR 0.
  142. PTR X = VAL 3.
  143. PTR X = 3 + X.                         PTR X = * + X
  144. TO 13 IF PTR X NE Y.
  145. TO 13 IF VAL X NE 0.
  146. TO 13 IF FLG X NE 0.
  147. TO 14.
  148. LOC 13.
  149. VAL W = 4 + 0.
  150. WRITE NEXT W.
  151. LOC 14.
  152. VAL B = 1 + 0.
  153. READ NEXT B.
  154. FLG X = 0.
  155. VAL X = PTR 0.
  156. PTR X = VAL 5.
  157. PTR X = X - 3.                         PTR X = X - *
  158. TO 15 IF PTR X NE 2.
  159. TO 15 IF VAL X NE 0.
  160. TO 15 IF FLG X NE 0.
  161. TO 16.
  162. LOC 15.
  163. VAL W = 4 + 0.
  164. WRITE NEXT W.
  165. LOC 16.
  166. VAL B = 1 + 0.
  167. READ NEXT B.
  168. FLG X = 0.
  169. VAL X = PTR 0.
  170. PTR X = VAL 2.
  171. PTR X = 3 - X.                         PTR X = * - X
  172. TO 17 IF PTR X NE 1.
  173. TO 17 IF VAL X NE 0.
  174. TO 17 IF FLG X NE 0.
  175. TO 18.
  176. LOC 17.
  177. VAL W = 4 + 0.
  178. WRITE NEXT W.
  179. LOC 18.
  180. VAL B = 1 + 0.
  181. READ NEXT B.
  182. FLG X = 0.
  183. VAL X = PTR 0.
  184. PTR X = VAL 2.
  185. PTR X = X * 3.                         PTR X = X * *
  186. TO 19 IF PTR X NE Y.
  187. TO 19 IF VAL X NE 0.
  188. TO 19 IF FLG X NE 0.
  189. TO 20.
  190. LOC 19.
  191. VAL W = 4 + 0.
  192. WRITE NEXT W.
  193. LOC 20.
  194. VAL B = 1 + 0.
  195. READ NEXT B.
  196. FLG X = 0.
  197. VAL X = PTR 0.
  198. PTR X = VAL 3.
  199. PTR X = 2 * X.                         PTR X = * * X
  200. TO 21 IF PTR X NE Y.
  201. TO 21 IF VAL X NE 0.
  202. TO 21 IF FLG X NE 0.
  203. TO 22.
  204. LOC 21.
  205. VAL W = 4 + 0.
  206. WRITE NEXT W.
  207. LOC 22.
  208. VAL B = 1 + 0.
  209. READ NEXT B.
  210. FLG X = 0.
  211. VAL X = PTR 0.
  212. PTR X = 0 + Y.
  213. PTR X = X / 2.                         PTR X = X / *
  214. TO 23 IF PTR X NE 3.
  215. TO 23 IF VAL X NE 0.
  216. TO 23 IF FLG X NE 0.
  217. TO 24.
  218. LOC 23.
  219. VAL W = 4 + 0.
  220. WRITE NEXT W.
  221. LOC 24.
  222. VAL B = 1 + 0.
  223. READ NEXT B.
  224. FLG X = 0.
  225. VAL X = PTR 0.
  226. PTR X = VAL 2.
  227. PTR X = Y / X.                         PTR X = * / X
  228. TO 25 IF PTR X NE 3.
  229. TO 25 IF VAL X NE 0.
  230. TO 25 IF FLG X NE 0.
  231. TO 26.
  232. LOC 25.
  233. VAL W = 4 + 0.
  234. WRITE NEXT W.
  235. LOC 26.
  236. VAL B = 1 + 0.
  237. READ NEXT B.
  238. FLG X = 0.
  239. VAL X = PTR 2.
  240. PTR X = VAL 0.
  241. VAL X = X + X.                         VAL X = X + X
  242. TO 27 IF FLG X NE 0.
  243. TO 27 IF PTR X NE 0.
  244. TO 27 IF VAL X NE 4.
  245. TO 28.
  246. LOC 27.
  247. VAL W = 4 + 0.
  248. WRITE NEXT W.
  249. LOC 28.
  250. VAL B = 1 + 0.
  251. READ NEXT B.
  252. FLG X = 0.
  253. VAL X = PTR 2.
  254. PTR X = VAL 0.
  255. VAL X = X - X.                         VAL X = X - X
  256. TO 29 IF FLG X NE 0.
  257. TO 29 IF PTR X NE 0.
  258. TO 29 IF VAL X NE 0.
  259. TO 30.
  260. LOC 29.
  261. VAL W = 4 + 0.
  262. WRITE NEXT W.
  263. LOC 30.
  264. VAL B = 1 + 0.
  265. READ NEXT B.
  266. FLG X = 0.
  267. PTR X = VAL 1.
  268. VAL X = PTR 0.
  269. PTR X = X + X.                         PTR X = X + X
  270. TO 31 IF FLG X NE 0.
  271. TO 31 IF VAL X NE 0.
  272. TO 31 IF PTR X NE 2.
  273. TO 32.
  274. LOC 31.
  275. VAL W = 4 + 0.
  276. WRITE NEXT W.
  277. LOC 32.
  278. VAL B = 1 + 0.
  279. READ NEXT B.
  280. FLG X = 0.
  281. VAL X = PTR 0.
  282. PTR X = VAL 4.
  283. PTR X = X - X.                         PTR X = X - X
  284. TO 33 IF FLG X NE 0.
  285. TO 33 IF VAL X NE 0.
  286. TO 33 IF PTR X NE 0.
  287. TO 34.
  288. LOC 33.
  289. VAL W = 4 + 0.
  290. WRITE NEXT W.
  291. LOC 34.
  292. VAL B = 1 + 0.
  293. READ NEXT B.
  294. FLG X = 0.
  295. VAL X = PTR 0.
  296. PTR Y = VAL 4.
  297. PTR X = VAL 2.
  298. PTR X = X * X.                         PTR X = X * X
  299. TO 35 IF FLG X NE 0.
  300. TO 35 IF VAL X NE 0.
  301. TO 35 IF PTR X NE Y.
  302. TO 36.
  303. LOC 35.
  304. VAL W = 4 + 0.
  305. WRITE NEXT W.
  306. LOC 36.
  307. VAL B = 1 + 0.
  308. READ NEXT B.
  309. FLG X = 0.
  310. VAL X = PTR 0.
  311. PTR X = VAL 3.
  312. PTR X = X / X.                         PTR X = X / X
  313. TO 37 IF FLG X NE 0.
  314. TO 37 IF VAL X NE 0.
  315. TO 37 IF PTR X NE 1.
  316. TO 38.
  317. LOC 37.
  318. VAL W = 4 + 0.
  319. WRITE NEXT W.
  320. LOC 38.
  321. VAL B = 1 + 0.
  322. READ NEXT B.
  323. VAL W = 4 + 0.
  324. WRITE NEXT W.
  325. VAL B = 1 + 0.
  326. READ NEXT B.
  327. FLG X = 0.
  328. PTR X = 0 + 0.
  329. VAL X = CHAR.
  330. TO 58 IF FLG X NE 0.
  331. TO 58 IF PTR X NE 0.
  332. TO 59.
  333. LOC 58.
  334. VAL W = 4 + 0.
  335. WRITE NEXT W.
  336. LOC 59.
  337. VAL B = 1 + 0.
  338. READ NEXT B.
  339. VAL W = 4 + 0.
  340. WRITE NEXT W.
  341. VAL A = 0 - 1.
  342. CHAR = VAL A.
  343. VAL W = 4 + 0.
  344. WRITE NEXT W.
  345. VAL B = 1 + 0.
  346. READ NEXT B.
  347. FLG X = 3.
  348. VAL X = 4 + 0.
  349. PTR X = 2 + 0.
  350. WRITE NEXT X.
  351. VAL B = 1 + 0.
  352. READ NEXT B.
  353. TO 60 IF VAL X = 4.
  354. VAL W = 4 + 0.
  355. WRITE NEXT W.
  356. LOC 60.
  357. TO 70 BY D.                  CHECK FOR SIDE EFFECTS OF WRITE.
  358. FLG X = 3.
  359. VAL X = 1 + 0.
  360. PTR X = 2 + 0.
  361. READ NEXT X.
  362. TO 61 IF VAL X = 1.
  363. VAL W = 4 + 0.
  364. WRITE NEXT W.
  365. LOC 61.
  366. TO 70 BY D.
  367. FLG X = 3.
  368. VAL X = 2 + 0.
  369. PTR X = 2 + 0.
  370. REWIND X.
  371. VAL B = 1 + 0.
  372. READ NEXT B.
  373. TO 62 IF VAL X = 2.
  374. VAL W = 4 + 0.
  375. WRITE NEXT W.
  376. LOC 62.
  377. TO 70 BY D.
  378. VAL B = 1 + 0.
  379. READ NEXT B.
  380. VAL X = CHAR.
  381. VAL X = CHAR.
  382. VAL Z = 2 + 0.
  383. WRITE NEXT Z.
  384. VAL B = 1 + 0.
  385. READ NEXT B.
  386. VAL Z = 2 + 0.
  387. WRITE NEXT Z.
  388. VAL B = 1 + 0.
  389. READ NEXT B.
  390. VAL Z = 2 + 0.
  391. REWIND Z.
  392. VAL Z = 2 + 0.
  393. READ NEXT Z.
  394. VAL Z = CHAR.
  395. VAL Z = CHAR.
  396. VAL W = 4 + 0.
  397. WRITE NEXT W.
  398. VAL B = 1 + 0.
  399. READ NEXT B.
  400. TO 63 IF VAL X = Z.
  401. VAL W = 4 + 0.
  402. WRITE NEXT W.
  403. LOC 63.
  404. VAL Z = 2 + 0.
  405. READ NEXT Z.
  406. VAL W = 4 + 0.
  407. WRITE NEXT W.
  408. FLG Z = 0.
  409. VAL Z = 2 + 0.
  410. READ NEXT Z.
  411. VAL B = 1 + 0.
  412. READ NEXT B.
  413. TO 64 IF FLG Z = 1.
  414. VAL W = 4 + 0.
  415. WRITE NEXT W.
  416. LOC 64.
  417. VAL B = 1 + 0.
  418. READ NEXT B.
  419. VAL W = 3 + 0.
  420. WRITE NEXT W.
  421. VAL B = 1 + 0.
  422. READ NEXT B.
  423. VAL W = 3 + 0.
  424. WRITE NEXT W.
  425. VAL B = 1 + 0.
  426. READ NEXT B.
  427. VAL W = 4 + 0.
  428. WRITE NEXT W.
  429. VAL B = 1 + 0.
  430. READ NEXT B.
  431. TO 39 IF PTR 8 GE 9.
  432. TO 40.
  433. LOC 39.
  434. VAL W = 4 + 0.
  435. WRITE NEXT W.
  436. STOP.
  437. LOC 40.
  438. VAL B = 1 + 0.
  439. READ NEXT B.
  440. PTR C = 0 + 8.
  441. FLG D = 0.
  442. VAL D = PTR 0.
  443. PTR D = VAL 0.
  444. LOC 41.
  445. STO C = D.                                  STO ZEROS
  446. PTR C = C + 7.
  447. TO 41 IF PTR C LT 9.
  448. STO C = D.
  449. FLG D = 3.
  450. PTR C = 0 + 8.
  451. LOC 42.
  452. GET E = C.
  453. TO 43 IF FLG E NE 0.                        CHECK STO-GET FLG
  454. STO C = D.
  455. GET E = C.
  456. TO 43 IF FLG E NE 3.
  457. PTR C = C + 7.
  458. TO 42 IF PTR C LT 9.
  459. GET E = C.
  460. TO 43 IF FLG E NE 0.
  461. STO C = D.
  462. GET E = C.
  463. TO 43 IF FLG E NE 3.
  464. TO 44.
  465. LOC 43.
  466. VAL W = 4 + 0.
  467. WRITE NEXT W.
  468. LOC 44.
  469. VAL B = 1 + 0.
  470. READ NEXT B.
  471. VAL D = 0 - 1.
  472. VAL F = 0 - 1.
  473. PTR C = 0 + 8.
  474. LOC 45.
  475. GET E = C.
  476. TO 46 IF VAL E NE 0.                        CHECK STO-GET VAL
  477. STO C = D.
  478. GET E = C.
  479. TO 46 IF VAL E NE F.
  480. PTR C = C + 7.
  481. TO 45 IF PTR C LT 9.
  482. GET E = C.
  483. TO 46 IF VAL E NE 0.
  484. STO C = D.
  485. GET E = C.
  486. TO 46 IF VAL E NE F.
  487. TO 47.
  488. LOC 46.
  489. VAL W = 4 + 0.
  490. WRITE NEXT W.
  491. LOC 47.
  492. VAL B = 1 + 0.
  493. READ NEXT B.
  494. PTR D = 0 - 1.
  495. PTR F = 0 - 1.
  496. PTR C = 0 + 8.
  497. LOC 48.
  498. GET E = C.
  499. TO 49 IF PTR E NE 0.                        CHECK STO-GET PTR
  500. STO C = D.
  501. GET E = C.
  502. TO 49 IF PTR E NE F.
  503. PTR C = C + 7.
  504. TO 48 IF PTR C LT 9.
  505. GET E = C.
  506. TO 49 IF PTR E NE 0.
  507. STO C = D.
  508. GET E = C.
  509. TO 49 IF PTR E NE F.
  510. TO 50.
  511. LOC 49.
  512. VAL W = 4 + 0.
  513. WRITE NEXT W.
  514. LOC 50.
  515. VAL B = 1 + 0.
  516. READ NEXT B.
  517. VAL W = 4 + 0.
  518. WRITE NEXT W.
  519. VAL B = 1 + 0.
  520. READ NEXT B.
  521. VAL W = 4 + 0.
  522. WRITE NEXT W.
  523. LOC 51.
  524. VAL X = CHAR.
  525. PTR D = D + 1.
  526. TO 51 IF VAL X NE F.
  527. VAL B = 1 + 0.
  528. READ NEXT B.
  529. VAL A = CHAR.
  530. VAL B = CHAR.
  531. VAL C = CHAR.
  532. VAL D = CHAR.
  533. VAL E = CHAR.
  534. VAL H = CHAR.
  535. PTR X = VAL 5.
  536. PTR X = X + X.
  537. PTR Y = X * X.
  538. PTR A = D / Y.
  539. PTR B = D / X.
  540. PTR C = B * X.
  541. PTR C = D - C.
  542. PTR E = A * X.
  543. PTR B = B - E.
  544. VAL E = PTR A.
  545. VAL E = E + H.
  546. VAL F = PTR B.
  547. VAL F = F + H.
  548. VAL G = PTR C.
  549. VAL G = G + H.
  550. CHAR = VAL A.
  551. CHAR = VAL B.
  552. CHAR = VAL C.
  553. CHAR = VAL D.
  554. CHAR = VAL E.
  555. CHAR = VAL F.
  556. CHAR = VAL G.
  557. VAL W = 4 + 0.
  558. WRITE NEXT W.
  559. VAL B = 1 + 0.
  560. READ NEXT B.
  561. VAL W = 4 + 0.
  562. WRITE NEXT W.
  563. FLG C = 2.
  564. CHAR = VAL C.
  565. VAL B = 1 + 0.
  566. READ NEXT B.
  567. TO 52 IF FLG C = 0.
  568. VAL W = 4 + 0.
  569. WRITE NEXT W.
  570. LOC 52.
  571. VAL B = 1 + 0.
  572. READ NEXT B.
  573. FLG A = 0.
  574. VAL A = 0 - 1.
  575. CHAR = VAL A.
  576. TO 53 IF FLG A = 1.
  577. VAL W = 4 + 0.
  578. WRITE NEXT W.
  579. STOP.
  580. LOC 53.
  581. CHAR = VAL C.
  582. TO 53 IF FLG C = 0.
  583. VAL W = 4 + 0.
  584. WRITE NEXT W.
  585. VAL B = 1 + 0.
  586. READ NEXT B.
  587. VAL W = 4 + 0.
  588. WRITE NEXT W.
  589. STOP.
  590. LOC 70.                      ROUTINE FOR CHECKING I/O OPERATIONS.
  591. VAL B = 1 + 0.               READ POINTER ALTERED MESSAGE.
  592. READ NEXT B.
  593. TO 71 IF PTR X = 2.
  594. VAL W = 4 + 0.               POINTER HAS BEEN ALTERED.
  595. WRITE NEXT W.
  596. LOC 71.                      CHECK FLAG VALUE RETURNED.
  597. VAL X = 4 + 0.               NUMBER OF CARDS TO BE READ.
  598. TO 73 IF FLG X = 0.          CORRECT VALUE.
  599. VAL B = 1 + 0.               ENDFILE MESSAGE.
  600. READ NEXT B.
  601. VAL X = X - 1.
  602. TO 72 IF FLG X = 1.
  603. VAL B = 1 + 0.               ILLEGAL OP MESSAGE.
  604. READ NEXT B.
  605. VAL X = X - 1.
  606. TO 72 IF FLG X = 2.
  607. VAL B = 1 + 0.               FLAG UNCHANGED MESSAGE.
  608. READ NEXT B.
  609. VAL X = X - 1.
  610. TO 72 IF FLG X = 3.
  611. VAL B = 1 + 0.               RUBBISH IN FLAG.
  612. READ NEXT B.
  613. VAL X = X - 1.
  614. LOC 72.                      ERROR MESSAGE OUTPUT.
  615. VAL W = 4 + 0.
  616. WRITE NEXT W.
  617. LOC 73.                      DISCARD FURTHER MESSAGES.
  618. TO 74 IF VAL X = 0.
  619. VAL B = 1 + 0.
  620. READ NEXT B.
  621. VAL X = X - 1.
  622. TO 73.
  623. LOC 74.
  624. RETURN BY D.
  625. END PROGRAM.
  626.