CDC Community

๐Ÿ”น Historical Conservation ๐Ÿ”น

User Tools

Site Tools


plato.source:plaopl:dd60

Table of Contents

DD60

Table Of Contents

  • [00923] DISPLAY DRIVER FOR X.CONSOLE
  • [00951] DISPLA - DISPLAY DATA
  • [00987] DIRECT CELL ASSIGNMENTS
  • [01028] MAIN LOOP
  • [01516] CHECK AND PROCESS ERROR FLAG

Source Code

DD60.txt
  1. DD60
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK IDENT 00 000 86/04/15 10.50
  4. IDENT CONSOLE,111B,CONSOLE
  5. ABS
  6. CONSOLE TTL PLATO TERMINAL EMULATOR FOR THE DD60
  7. CONSOLE SPACE 4
  8. ENTRY CONSOLE
  9. SYSCOM B1
  10. SST
  11. ORG 111B
  12.  
  13. DCPU EQU 72B CPU PRIORITY (SAME AS CONDEN)
  14. XTEXT TITLE GET SYSTEM TEXTS
  15. LIST F
  16.  
  17. *CALL COMSSSD
  18. *CALL AIDTEXT
  19. *CALL PLAP501
  20. *CALL SYSCON
  21. *CALL PLASRWX
  22. *CALL PARAMC
  23. *CALL PCFTEXT
  24. *CALL PLASMRC
  25. *CALL COMCMAC
  26. *CALL COMCDCM
  27. *CALL COMSPRD
  28. LIST F,X
  29. *CALL DTEXT
  30. LIST *
  31. * /--- BLOCK BUFFERS 00 000 84/12/10 12.47
  32. BUFFERS TITLE CHARACTER AND POINT BUFFERS
  33. *** THE LOCATIONS AND LENGTHS ARE DEFINED IN DTEXT
  34. *
  35.  
  36. ORG 111B
  37. KBUF BSSZ 1 KEYSET BUFFER
  38. LBUF BSSZ LBUFLNG FROM THE FORLDIS OVERLAY
  39. * /--- BLOCK HBUF 00 000 84/12/10 12.49
  40. HBUF TITLE SPECIAL PLATO CHARACTER DEFINITIONS
  41. *** HBUF - HARDWARE CHARACTER MEMORY
  42. *
  43. * THE FOLLOWING DATA CODES WILL PLOT
  44. * THE PLATO SPECIAL CHARACTERS.
  45. * THE CODES ARE IN A PREDETERMINED
  46. * ORDER (SEE *CTAB*)
  47.  
  48.  
  49. LIST F,X
  50. *CALL DCHARS
  51. BASE O
  52. LIST *
  53. HBUF BSS 0
  54.  
  55. LOC 0
  56.  
  57. NN SET 0
  58.  
  59. MACREF PKEY$
  60. MACRO PKEY,NAME
  61. MACREF PKEY
  62. NAME EQU NN/8D
  63. NN SET NN+8D
  64. ENDM
  65.  
  66.  
  67. COLN PKEY
  68.  
  69. DATA 0
  70. DATA 0
  71. DATA 0
  72. DATA 420
  73. DATA 0
  74. DATA 0
  75. DATA 0
  76. DATA 0
  77. DOLR PKEY
  78. DATA 3100
  79. DATA 4440
  80. DATA 4440
  81. DATA 17760
  82. DATA 4440
  83. DATA 4440
  84. DATA 2300
  85. DATA 0
  86. DIV PKEY
  87. DATA 0
  88. DATA 200
  89. DATA 200
  90. DATA 1240
  91. DATA 200
  92. DATA 200
  93. DATA 0
  94. DATA 0
  95. LBKT PKEY
  96. DATA 0
  97. DATA 0
  98. DATA 0
  99. DATA 0
  100. DATA 17770
  101. DATA 10010
  102. DATA 10010
  103. DATA 0
  104. RBKT PKEY
  105. DATA 0
  106. DATA 10010
  107. DATA 10010
  108. DATA 17770
  109. DATA 0
  110. DATA 0
  111. DATA 0
  112. DATA 0
  113. PCT PKEY
  114. DATA 6060
  115. DATA 11100
  116. DATA 6200
  117. DATA 400
  118. DATA 1140
  119. DATA 2220
  120. DATA 4140
  121. DATA 0
  122. TIMS PKEY
  123. DATA 1000
  124. DATA 1020
  125. DATA 440
  126. DATA 300
  127. * /--- BLOCK HBUF 00 000 76/10/16 15.23
  128. DATA 300
  129. DATA 460
  130. DATA 1020
  131. DATA 0
  132. ASSN PKEY
  133. DATA 200
  134. DATA 500
  135. DATA 1040
  136. DATA 3560
  137. DATA 500
  138. DATA 500
  139. DATA 500
  140. DATA 0
  141. TICK PKEY
  142. DATA 0
  143. DATA 0
  144. DATA 2000
  145. DATA 34000
  146. DATA 0
  147. DATA 0
  148. DATA 0
  149. DATA 0
  150. QUOT PKEY
  151. DATA 0
  152. DATA 2000
  153. DATA 36000
  154. DATA 0
  155. DATA 2000
  156. DATA 34000
  157. DATA 0
  158. DATA 0
  159. EXCL PKEY
  160. DATA 0
  161. DATA 0
  162. DATA 0
  163. DATA 17560
  164. DATA 0
  165. DATA 0
  166. DATA 0
  167. DATA 0
  168. SEMI PKEY
  169. DATA 0
  170. DATA 0
  171. DATA 4
  172. DATA 470
  173. DATA 0
  174. DATA 0
  175. DATA 0
  176. DATA 0
  177. LCRT PKEY
  178. DATA 0
  179. DATA 200
  180. DATA 500
  181. DATA 1040
  182. DATA 2020
  183. DATA 0
  184. DATA 0
  185. DATA 0
  186. RCRT PKEY
  187. DATA 0
  188. DATA 0
  189. DATA 2020
  190. DATA 1040
  191. DATA 500
  192. DATA 200
  193. DATA 0
  194. DATA 0
  195. UNDL PKEY
  196. DATA 4
  197. DATA 4
  198. DATA 4
  199. DATA 4
  200. DATA 4
  201. DATA 4
  202. DATA 4
  203. DATA 0
  204. QSMK PKEY
  205. DATA 0
  206. DATA 6000
  207. DATA 10000
  208. DATA 10320
  209. DATA 10400
  210. DATA 7000
  211. DATA 0
  212. DATA 00
  213. ARRW PKEY
  214. DATA 16034
  215. DATA 11044
  216. DATA 4510
  217. DATA 2220
  218. DATA 1040
  219. DATA 500
  220. DATA 200
  221. DATA 0
  222. NUMB PKEY
  223. DATA 1100
  224. DATA 1100
  225. DATA 7760
  226. DATA 1100
  227. DATA 1100
  228. DATA 7760
  229. DATA 1100
  230. DATA 1100
  231. TLDE PKEY
  232. DATA 4000
  233. DATA 10000
  234. DATA 10000
  235. DATA 4000
  236. DATA 2000
  237. DATA 2000
  238. DATA 4000
  239. DATA 0
  240. DOTS PKEY
  241. DATA 0
  242. * /--- BLOCK HBUF 00 000 76/10/16 15.30
  243. DATA 0
  244. DATA 10000
  245. DATA 0
  246. DATA 0
  247. DATA 10000
  248. DATA 0
  249. DATA 0
  250. HAT PKEY
  251. DATA 0
  252. DATA 10000
  253. DATA 20000
  254. DATA 40000
  255. DATA 20000
  256. DATA 10000
  257. DATA 0
  258. DATA 0
  259. LSLT PKEY
  260. DATA 0
  261. DATA 4000
  262. DATA 4000
  263. DATA 10000
  264. DATA 10000
  265. DATA 10000
  266. DATA 20000
  267. DATA 0
  268. RSLT PKEY
  269. DATA 0
  270. DATA 20000
  271. DATA 10000
  272. DATA 10000
  273. DATA 10000
  274. DATA 4000
  275. DATA 4000
  276. DATA 0
  277. UARW PKEY
  278. DATA 0
  279. DATA 400
  280. DATA 1000
  281. DATA 3760
  282. DATA 1000
  283. DATA 400
  284. DATA 0
  285. DATA 0
  286. RARW PKEY
  287. DATA 200
  288. DATA 200
  289. DATA 200
  290. DATA 200
  291. DATA 1240
  292. DATA 700
  293. DATA 200
  294. DATA 0
  295. DARW PKEY
  296. DATA 0
  297. DATA 100
  298. DATA 40
  299. DATA 3760
  300. DATA 40
  301. DATA 100
  302. DATA 0
  303. DATA 0
  304. LARW PKEY
  305. DATA 200
  306. DATA 700
  307. DATA 1240
  308. DATA 200
  309. DATA 200
  310. DATA 200
  311. DATA 200
  312. DATA 0
  313. APRX PKEY
  314. DATA 100
  315. DATA 200
  316. DATA 200
  317. DATA 100
  318. DATA 40
  319. DATA 40
  320. DATA 100
  321. DATA 0
  322. SGMA PKEY
  323. DATA 10010
  324. DATA 16070
  325. DATA 11110
  326. DATA 10610
  327. DATA 10010
  328. DATA 10010
  329. DATA 10010
  330. DATA 0
  331. DLTA PKEY
  332. DATA 60
  333. DATA 320
  334. DATA 1420
  335. DATA 6020
  336. DATA 1420
  337. DATA 320
  338. DATA 60
  339. DATA 0
  340. LSCL PKEY
  341. DATA 300
  342. DATA 140
  343. DATA 20
  344. DATA 20
  345. DATA 20
  346. DATA 140
  347. DATA 300
  348. * /--- BLOCK HBUF 00 000 76/10/16 15.32
  349. DATA 0
  350. USCL PKEY
  351. DATA 1400
  352. DATA 3000
  353. DATA 4000
  354. DATA 4000
  355. DATA 4000
  356. DATA 3000
  357. DATA 1400
  358. DATA 0
  359. LPAR PKEY
  360. DATA 400
  361. DATA 17360
  362. DATA 20010
  363. DATA 20010
  364. DATA 0
  365. DATA 0
  366. DATA 0
  367. DATA 0
  368. RPAR PKEY
  369. DATA 0
  370. DATA 0
  371. DATA 0
  372. DATA 20010
  373. DATA 20010
  374. DATA 17360
  375. DATA 400
  376. DATA 0
  377. AND PKEY
  378. DATA 0
  379. DATA 60
  380. DATA 1510
  381. DATA 2210
  382. DATA 2310
  383. DATA 1450
  384. DATA 20
  385. DATA 10
  386. NTEQ PKEY
  387. DATA 40
  388. DATA 1300
  389. DATA 1200
  390. DATA 1600
  391. DATA 1200
  392. DATA 3200
  393. DATA 5200
  394. DATA 0
  395. LINE PKEY
  396. DATA 0
  397. DATA 0
  398. DATA 0
  399. DATA 37774
  400. DATA 0
  401. DATA 0
  402. DATA 0
  403. DATA 0
  404. DEG PKEY
  405. DATA 0
  406. DATA 03000
  407. DATA 4400
  408. DATA 10200
  409. DATA 10200
  410. DATA 4400
  411. DATA 3000
  412. DATA 0
  413. DEFN PKEY
  414. DATA 1240
  415. DATA 1240
  416. DATA 1240
  417. DATA 1240
  418. DATA 1240
  419. DATA 1240
  420. DATA 1240
  421. DATA 0
  422. ALPH PKEY
  423. DATA 600
  424. DATA 1100
  425. DATA 2040
  426. DATA 2040
  427. DATA 1100
  428. DATA 700
  429. DATA 1040
  430. DATA 0
  431. BETA PKEY
  432. DATA 0
  433. DATA 7770
  434. DATA 10420
  435. DATA 10420
  436. DATA 10420
  437. DATA 7340
  438. DATA 0
  439. DATA 0
  440. SSGM PKEY
  441. DATA 0
  442. DATA 0
  443. DATA 1540
  444. DATA 2220
  445. DATA 4220
  446. DATA 140
  447. DATA 0
  448. DATA 0
  449. LMDA PKEY
  450. DATA 0
  451. DATA 20
  452. DATA 6040
  453. DATA 1500
  454. DATA 200
  455. DATA 140
  456. DATA 20
  457. * /--- BLOCK HBUF 00 000 76/10/16 15.35
  458. DATA 0
  459. MU PKEY
  460. DATA 10
  461. DATA 1760
  462. DATA 10
  463. DATA 10
  464. DATA 10
  465. DATA 1760
  466. DATA 10
  467. DATA 0
  468. PI PKEY
  469. DATA 1000
  470. DATA 1000
  471. DATA 1760
  472. DATA 1000
  473. DATA 1760
  474. DATA 1000
  475. DATA 1000
  476. DATA 0
  477. RHO PKEY
  478. DATA 0
  479. DATA 700
  480. DATA 1104
  481. DATA 1100
  482. DATA 1100
  483. DATA 600
  484. DATA 0
  485. DATA 0
  486. SDLT PKEY
  487. DATA 0
  488. DATA 140
  489. DATA 220
  490. DATA 220
  491. DATA 340
  492. DATA 200
  493. DATA 200
  494. DATA 100
  495. OMGA PKEY
  496. DATA 740
  497. DATA 1020
  498. DATA 20
  499. DATA 160
  500. DATA 20
  501. DATA 1020
  502. DATA 740
  503. DATA 0
  504. LTEQ PKEY
  505. DATA 0
  506. DATA 210
  507. DATA 510
  508. DATA 1050
  509. DATA 10
  510. DATA 10
  511. DATA 0
  512. DATA 0
  513. GTEQ PKEY
  514. DATA 0
  515. DATA 0
  516. DATA 10
  517. DATA 10
  518. DATA 1050
  519. DATA 510
  520. DATA 210
  521. DATA 0
  522. THTA PKEY
  523. DATA 0
  524. DATA 1740
  525. DATA 2220
  526. DATA 2220
  527. DATA 2220
  528. DATA 2220
  529. DATA 1740
  530. DATA 0
  531. EACH PKEY
  532. DATA 740
  533. DATA 1020
  534. DATA 2310
  535. DATA 2450
  536. DATA 2750
  537. DATA 1040
  538. DATA 700
  539. DATA 0
  540. BKSL PKEY
  541. DATA 2000
  542. DATA 1000
  543. DATA 400
  544. DATA 200
  545. DATA 100
  546. DATA 40
  547. DATA 20
  548. DATA 0
  549.  
  550. LOC *O
  551.  
  552. BASE D
  553.  
  554. LIST *
  555. * /--- BLOCK GOPLT 00 000 76/10/09 19.38
  556. GOPDD SPACE 4
  557. * FIRST TIME FLAG
  558.  
  559. GOPDD DATA 1 PDD STARTS WHEN GOPDD = 0
  560.  
  561. PDDSTAT DATA 2 PDD STATUS WORD
  562. CONTYPE DATA -1 -1=NOT READY, 0=CC545, 1=CDC721
  563. SCOPY BSSZ MDISMAX DISPLAY SCREEN COPY
  564. PDDBUF BSSZ MDISMAX+64D PDD COMMAND BUFFER
  565.  
  566. SWK1 DATA 0,0,0 SYSTEM WORK WORDS
  567. SWK2 EQU SWK1+1
  568.  
  569. KB2A DATA 0,0 KEY BUFFER
  570. * /--- BLOCK ECS 00 000 76/10/09 19.00
  571. ECS TITLE BUFFER OF ECS POINTER WORDS
  572. *** ECS POINTERS. SET UP AT INITIALIZATION.
  573.  
  574.  
  575. ECSPNT BSS 0
  576. ECSADD BSSZ 1 POINTER TO KEY BUFFERS
  577. LDISADD BSSZ 1 POINTER TO L DISPLAY BUFFER
  578.  
  579. BSSZ NDSPLOC-*+ECSPNT PAD AREA
  580. * /--- BLOCK MAIN LOOP 00 000 79/05/28 07.06
  581. MNL TITLE SCREEN DISPLAY FORMATS
  582. *
  583. *
  584. * THERE ARE THREE CM BUFFERS ASSOCIATED WITH
  585. * THE CONSOLE DISPLAY.
  586. *
  587. * *LBUF* - CURRENT FORMATTED DISPLAY
  588. * FORMAT-
  589. * WORD 1 - 36/0
  590. * 12/X-COORDINATE
  591. * 12/Y-COORDINATE
  592. * WORDS 2-8 - 6 BIT DISPLAY CODES
  593. *
  594. * *SCOPY* - CURRENT SCREEN DISPLAY
  595. * FORMAT-
  596. * WORD 1 - 36/0
  597. * 12/X-COORDINATE
  598. * 12/Y-COORDINATE
  599. * WORDS 2-8 - 6 BIT DISPLAY CODES
  600. *
  601. * *PDDBUF* - COMMAND BUFFER TO PP/PDD
  602. * FORMAT-
  603. * WORD 1 - 36/0
  604. * 12/X-COORDINATE
  605. * 12/Y-COORDINATE
  606. * WORDS 2-8 - 6 BIT DISPLAY CODES
  607. * OR
  608. * WORD 1 - 24/0
  609. * 12/X-COORDINATE
  610. * 12/Y-COORDINATE
  611. * 12/ERASE TO EOL CODE(FEELF)
  612. *
  613. * CDC721 SYSTEM CONSOLE -
  614. * WORD BY WORD COMPARISON OF *LBUF* IS MADE
  615. * WITH *SCOPY*.
  616. * CHANGED WORDS ARE UPDATED IN *SCOPY*.
  617. * ONLY CHANGED LINES ARE WRITTEN TO *PDDBUF*.
  618. * CHANGED LINES ARE WRITTEN TO *PDDBUF* AS AN
  619. * ERASE TO END-OF-LINE FUNCTION(EELF) FOLLOWED
  620. * BY THE CONTENTS OF THE LINE IN *LBUF*.
  621. * BLANK LINES ARE NOT WRITTEN TO *PDDBUF*.
  622. *
  623. * CC545 CONSOLE -
  624. * CONTENTS OF THE FORMATTER SCREEN BUFFER IS
  625. * WRITTEN TO *LBUF*.
  626. * PP/PDD READS *LBUF*.
  627.  
  628. *
  629. * DEFINES FOR CM DISPLAY BUFFERS
  630. *
  631. MLP TITLE MAIN EXECUTION LOOP
  632. *** MAIN EXECUTION LOOP
  633. * CHECK FOR KEYS AND BUFFER CHANGES
  634. *
  635. USE MAIN
  636.  
  637.  
  638. MLP RJ KBI CHECK FOR KEY INPUTS
  639. SA1 PDDBUF CHECK FOR PP/PDD READY
  640. ZR X1,MLP0
  641. RECALL
  642. EQ MLP LOOP
  643. MLP0 SA1 LDISADD GET DISPLAY ADDRESS
  644. BX0 X1
  645. SA0 SWK1 READ BUFFER COUNTER
  646. RE 3 AND BUFFER LENGTHS
  647. - RJ ECSPRTY
  648. SA1 A0
  649. SA2 BUFCNT
  650. IX2 X1-X2 LOOK FOR CHANGE
  651. NZ X2,MLP1 IF NEW BUFFER
  652.  
  653. RECALL
  654.  
  655. SX6 2
  656. SA6 PDDSTAT
  657.  
  658. EQ MLP GO LOOK AGAIN
  659.  
  660. * PROCESS NEW BUFFER
  661.  
  662. MLP1 BX6 X1 RESET LOCAL BUFFER COUNTER
  663. SA6 A2 BUFCNT
  664. SX1 8 SET ECS ADDRESS TO REAL BUFFER
  665. SA2 SWK1+1 GET BUFFER LENGTH
  666. IX0 X0+X1
  667. * /--- BLOCK MAIN LOOP 00 000 79/05/28 07.06
  668. SB2 X2
  669. BX6 X2 SET BUFFER LENGTH FOR PDD
  670. SA6 LBUF
  671. SA0 A6+B1
  672. RE B2
  673. - RJ ECSPRTY
  674.  
  675. SA1 CONTYPE
  676. ZR X1,MLP2 IF CC545 CONSOLE
  677.  
  678. * INITIALIZATIONS FOR READING THE DISPLAY BUFFER
  679.  
  680. SA1 LBUF
  681. SB3 X1+LBUF B3=END OF *LBUF*
  682. SA3 LBUF FWA OF *LBUF*
  683. SA4 SCOPY FWA OF *SCOPY*
  684. SB4 WPL CM WORDS PER LINE
  685. SB6 PDDBUF COMMAND BUFFER FOR PP/PDD
  686.  
  687. * INITIALIZATIONS FOR LINE BY LINE COMPARISON
  688.  
  689. CB10 SB7 A3+WPL CHECK FOR END OF BUFFER
  690. SX0 B3-B7
  691. NG X0,CB200 EXIT
  692. SB5 B0 INITIALIZE FLAG FOR BLANK LINE
  693. SX5 B0 INITIALIZE NON-ZERO LINE
  694. SA3 A3+B1 CAUSE SKIP ON X/Y COORDINATES
  695. SA4 A4+B1 CAUSE SKIP ON X/Y COORDINATES
  696. SB2 B1 SKIPPED ONE WORD
  697. *
  698. CB20 SB2 B2+B1 INCREMENT WORDS/LINE READ
  699. SX0 B4-B2 CHECK FOR END OF DISPLAY LINE
  700. NG X0,CB60 TRANSFER LINE TO *PDDBUF*
  701. SA3 A3+B1 PTR INTO *LBUF*
  702. ZR X3,CB30 CHECK FOR NON-ZERO WORD
  703. SB5 -B1 FLAG NON-ZERO LINE
  704. CB30 SA4 A4+B1 PTR INTO *SCOPY*
  705. BX4 X3-X4 CHECK FOR A CHANGE
  706. ZR X4,CB20 LOOP IF NO CHANGE
  707. SX5 -B1 THIS LINE CHANGED
  708. BX6 X3 UPDATE *SCOPY* FROM *LBUF*
  709. SA6 A4
  710. EQ CB20 LOOP
  711. *
  712. CB60 ZR X5,CB10 NO CHANGE ON THIS LINE. LOOP.
  713. SA1 CONTYPE CHECK CONSOLE TYPE
  714. ZR X1,CB100 545 CONSOLE
  715.  
  716. * LOAD ERASE TO END OF LINE FUNCTION TO *PDDBUF*
  717.  
  718. SB7 A3-B4 GET X/Y FOR THIS LINE
  719. SA1 B7+B1
  720. BX6 X1
  721. LX6 12
  722. SX0 FEELF
  723. BX6 X6+X0
  724. SB6 B6+B1 B6=PTR INTO *PDDBUF*
  725. SA6 B6 STORE IT
  726. ZR B5,CB10 DONE IF LINE IS BLANK
  727.  
  728. * TRANSFER THIS LINE TO *PDDBUFF*.
  729.  
  730. CB100 SB7 A3-B4
  731. SB7 B7+B1
  732.  
  733. CB110 SA1 B7
  734. BX6 X1
  735. SB6 B6+B1 POSITION IN *PDDBUF*
  736. SA6 B6
  737. SX0 A3 TEST FOR END OF LINE
  738. SB7 B7+B1
  739. SX5 B7
  740. IX0 X0-X5
  741. PL X0,CB110 TRANSFER NEXT WORD
  742. EQ CB10 GET NEXT LINE
  743.  
  744. CB200 SX6 B6-PDDBUF STORE LENGTH OF *PDDBUF*
  745. SA6 PDDBUF
  746.  
  747. MLP2 MX6 0
  748. SA6 GOPDD LET PDD GO
  749. * /--- BLOCK MAIN LOOP 00 000 79/05/28 07.06
  750. SA1 MLP3
  751. BX6 X1
  752. SA6 MLP2 PLANT JUMP
  753. MLP3 EQ MLP LOOP
  754.  
  755. BUFCNT DATA -1 FORCE FIRST BUFFER READ
  756. * /--- BLOCK KBI 00 000 76/10/16 18.28
  757. KBI TITLE KEYBOARD INPUT
  758. *** KBI - KEYBOARD INPUT
  759. *
  760. * PLUGS THE ENTERED KEY INTO PLATO
  761. * KEY BUFFER IN ECS.
  762.  
  763.  
  764. KBI SUBR
  765.  
  766. SA2 KBUF GET POSSIBLE KEY
  767. PL X2,KBI --- EXIT
  768.  
  769. MX3 1
  770. BX2 -X3*X2 CLEAR UPPER BIT SET BY *PDD*
  771. SA0 KB2A
  772. SA4 ECSADD
  773. SX0 X4+LSTUD*2
  774. + RE 2
  775. - RJ ECSPRTY
  776. SA3 A0
  777. SA4 A0+B1
  778. MX5 -12
  779. BX6 -X5*X3 PPU WORD COUNT
  780. BX0 -X5*X4 CP WORD COUNT
  781. SX5 B1
  782. IX6 X6+X5 INCREMENT PP WORD COUNT
  783. * /--- BLOCK KBI 00 000 76/10/16 18.28
  784. SB6 X6 SAVE BYTE COUNT
  785. SX5 3
  786. BX6 X6*X5 MOD 4 BYTE COUNT
  787. LX6 2 *4
  788. SB7 X6
  789. SB7 B7+B7
  790. SB7 B7+X6 *12
  791. SB7 B7+12
  792. MX5 -12
  793. LX3 X3,B7 PUT APPROPRIATE BYTE IN LOWER BITS
  794. BX3 X5*X3 CLEAR LOWER BITS
  795. BX3 X3+X2 MERGE IN CHARACTER
  796. SB7 B7-60
  797. AX6 X3,B7 RETURN KEYWORD TO ORIGINAL POSITION
  798. SX4 B6
  799. SX3 7777B
  800. BX4 X3*X4 TAKE 12 BIT SUM
  801. BX6 X6*X5
  802. IX6 X6+X4 RESTORE BYTE COUNT
  803. SA6 A0
  804. SA4 ECSADD
  805. SX0 X4+LSTUD*2
  806. + WE 1
  807. - RJ ECSPRTY
  808. SX7 2 CLEAR KEY AND STATUS
  809. SA7 KBUF
  810. SA7 PDDSTAT
  811. EQ KBIX RETURN
  812. * /--- BLOCK DSYS 00 000 80/01/24 09.36
  813. COMCSYS TITLE SYSTEM COMUNICATIONS
  814. *** COMUNICATED WITH SYSTEM AND MASTOR
  815. *
  816. *
  817.  
  818.  
  819. *CALL COMCSYS
  820. * /--- BLOCK ECSPRTY 00 000 80/09/02 23.16
  821. ECSPRTY TITLE ECSPRTY - ECS ERROR ACTION
  822. *** ECS ERROR ACTION
  823. *
  824. * ISSUE MESSAGE AND ABORT
  825.  
  826. ECSPRTY SUBR
  827. MESSAGE ECSMSG,0,R
  828. ABORT
  829.  
  830. ECSMSG DIS ,* ++++ ECS ERROR ++++*
  831. * /--- BLOCK SETCM 00 000 76/10/09 17.18
  832. SETCM TITLE SET RUNNING CM MEMORY
  833. *** SET UP RUNNING CM MEMORY..
  834. *
  835. *
  836.  
  837. SETCM SX6 CMEND+1+77B ROUND UP
  838. AX6 6
  839. LX6 30+6
  840. SA6 SWK1 SET UP REQUEST
  841. MEMORY CM,SWK1,RECALL
  842. * RECALL SWK1
  843. EQ MLP EXIT TO MAIN LOOP
  844.  
  845. CMEND BSS 0
  846. * /--- BLOCK CONSOLE 00 000 80/01/18 04.30
  847. CONSOLE TITLE INITIALIZATIONS
  848. *** SET PRIORITIES AND AFFILIATE WITH PLATO
  849. *
  850. *
  851. CONSOLE SB1 1 SET UNIVERSAL CONSTANT FOR B1=1
  852. *
  853. *
  854. * SET QUEUE PRIORITIES
  855. *
  856. *
  857. SX1 DCPU CPU PRIORITY
  858. .NOSV2 IFGE OSLEV,562D NOS V2
  859. SX2 IRSI PREVENT ROLLOUT
  860. .NOSV2 ELSE NOS V1
  861. SX2 LSSS-1 EQUAL TO MASTOR
  862. .NOSV2 ENDIF
  863. LX2 30
  864. BX6 X1+X2
  865. SA6 SWK1+1
  866. MASTOR SWK1,MS.PRI
  867. *
  868. *
  869. * AFFILIATE WITH PLATO
  870. *
  871. *
  872. SRDY1 BSS 0
  873. SA1 =4L"LGC.PLAT" PLATO LOGIC IDENTIFIER
  874. BX6 X1
  875. SA6 SWK1+1
  876. MASTOR SWK1,MS.AFF
  877. MX0 -11
  878. SA1 SWK1 CHEKC REPLY CODE
  879. AX1 12
  880. BX1 -X0*X1 MASK OFF ERROR CODE
  881. ZR X1,SRDY3 IF SUCCESSFUL
  882. RECALL
  883. EQ SRDY1 TO TRY AGAIN
  884. *
  885. *
  886. * NOW READ IN ECS PARAMETERS
  887. *
  888. *
  889. SRDY2 RECALL
  890.  
  891. SRDY3 SA0 SWK1 READ EM LOW CORE POINTER
  892. SX0 DSPINTP
  893. RE 1 ONE WORD POINTER
  894. - RJ ECSPRTY
  895. SA1 A0 GET POINTER
  896. PL X1,SRDY2
  897. MX2 1 STRIP OK BIT
  898. BX0 -X2*X1
  899. SA0 ECSPNT
  900. RE NDSPLOC NUMBER OF POINTER WORDS
  901. - RJ ECSPRTY
  902. *
  903. *
  904. * BRING UP DISPLAY DRIVER
  905. *
  906. *
  907. MX6 0
  908. SA6 SWK1 CLEAR STATUS BIT
  909. SYSTEM PDD,,PDDSTAT
  910. RECALL PDDSTAT WAIT FOR PDD
  911. *
  912. SRDY9 SA1 CONTYPE WAIT TIL PDD SETS CONSOLE TYPE
  913. NG X1,SRDY9
  914. *
  915. EQ SETCM GO SET CM MEMORY REQUIREMENTS
  916.  
  917. END CONSOLE
  918. * /--- BLOCK PLT 00 000 82/11/02 10.52
  919. IDENT PDD,PDD
  920. PERIPH
  921. SST RDS
  922. COMMENT DISPLAY DRIVER FOR CONSOLE
  923. TITLE DISPLAY DRIVER FOR X.CONSOLE
  924.  
  925. LIST F
  926. SPACE 4
  927. * GET SYSTEM PPU MACROS
  928.  
  929. *CALL COMPMAC
  930.  
  931. BASE MIXED
  932. LIST X
  933.  
  934. *CALL COMDMAC
  935.  
  936. LIST *
  937. BASE *
  938.  
  939. *CALL COMSPIM
  940. *CALL COMSSSJ
  941. *CALL COMSCPS
  942. *CALL AIDTEXT
  943. *CALL SYSCON
  944. *CALL PCFTEXT
  945. *CALL DTEXT
  946.  
  947. BASE MIXED
  948.  
  949. .NOSV1 IFLT OSLEV,562D NOS V1
  950. SPACE 4
  951. ** DISPLA - DISPLAY DATA
  952. *
  953. *
  954. * DISPLA X,X,(TEXT)
  955. * ENTRY *X* = X-COORDINATE
  956. * *Y* = Y-COORDINATE
  957. * *TEXT* = DISPALY TEXT
  958. * IF COORDINATES NOT PRESENT DISPLAY AT PRESENT
  959. * SCREEN POSITION
  960.  
  961. DISPLA MACRO X,Y,T
  962. LOCAL I,J,K
  963. QUAL
  964. K MICRO 1,,$T$
  965. .1 MICCNT K
  966. I SET .1+1
  967. I SET I/2
  968. LDN K
  969. OAM J,CH
  970. QUAL *
  971. DIS RMT
  972. QUAL
  973. J BSS 0
  974. IFNE X,,2
  975. CON X
  976. I SET I+1
  977. IFNE Y,,2
  978. CON Y
  979. I SET I+1
  980. DATA H$"K"$
  981. K EQU I
  982. QUAL *
  983. DIS RMT
  984. ENDM
  985. .NOSV1 ENDIF
  986. * /--- BLOCK PLT 00 000 82/11/02 10.53
  987. TITLE DIRECT CELL ASSIGNMENTS
  988. *
  989. *
  990. MACRO DRC,NAME,ARG
  991. NAME EQU DRC$
  992. CON NAME
  993. QUAL
  994. IFC EQ,*ARG**
  995. DRC$ SET DRC$+1
  996. ELSE 1
  997. DRC$ SET ARG+DRC$
  998. QUAL *
  999. ENDM
  1000.  
  1001. *** DIRECT LOCATION ASSIGNMENTS
  1002.  
  1003. DRC$ SET LA
  1004.  
  1005. ORG PPFW
  1006.  
  1007.  
  1008. UC DRC UPPER CASE CHARACTER FLAG
  1009. SL DRC SHIFT LEVEL FOR KBI PROCESSING
  1010. LC DRC LAST KEY PRESSED
  1011. FN DRC 5 CM KEY BUFFER WORD
  1012. XC DRC USED BY *COMDDIS* / *COMDSYS*
  1013. YC DRC USED BY *COMDDIS* / *COMDSYS*
  1014. .NOS23 IFLT OSLEV,617D
  1015. NC DRC USED BY *COMDSYS*
  1016. .NOS23 ELSE
  1017. CT DRC CONSOLE TYPE (0=CC545, 1=721)
  1018. .NOS23 ENDIF
  1019. BF DRC PLATO BUFFER CONTROL (1/SEC)
  1020. SPACE 3
  1021. ERRPL DRC$-IR TOO MANY DIRECT CELLS USED
  1022. SPACE 4
  1023. *** ASSEMBLY CONSTANTS
  1024.  
  1025. CH EQU CHDS DISPLAY CHANNEL
  1026. NAME MICRO 1,, PDD USED BY *COMDDSP*
  1027. SPACE 4
  1028. TITLE MAIN LOOP
  1029.  
  1030. * /--- BLOCK PLT LOOP 00 000 84/08/01 07.50
  1031. SPACE 4
  1032. ORG PPFW
  1033.  
  1034. PDD LJM PRS PRESET
  1035.  
  1036. * MAIN LOOP
  1037.  
  1038. MNL LDD CT GET CONSOLE TYPE
  1039. ZJN MNL0 IF CC545 CONSOLE
  1040. LJM MNL7210 IF CDC721 CONSOLE
  1041. MNL0 FJM *,CH IF DATA NOT TAKEN, WAIT
  1042. DCN CH+40
  1043. CFNC SLSF SELECT LEFT SCREEN, SMALL CHARS
  1044. LDC LBUF
  1045. RJM DLN DISPLAY CHARACTER BUFFER
  1046. FJM *,CH IF DATA NOT TAKEN, WAIT
  1047. DCN CH+40
  1048. RJM KBI KEYBOARD INPUT
  1049. RJM DRS DISPLAY RIGHT SCREEN
  1050. MNL1 DCN CH+40
  1051. RJM CEF CHECK ERROR FLAG
  1052. AOD BF
  1053. SBN 10D FOR 1/5 SEC
  1054. PJN MNL3 IF TIME FOR NEW PLATO BUFFER
  1055. LJM MNL LOOP
  1056.  
  1057. MNL3 STD BF
  1058. LDD RA
  1059. SHN 6
  1060. ADC PDDSTAT SET RECALL BIT
  1061. CWM FCW,ON FILE COMPLETE BIT
  1062. MONITOR RCLM
  1063. LJM MNL LOOP
  1064. MNL721 TITLE MAIN LOOP FOR CDC721 CONSOLE
  1065.  
  1066. *
  1067. *** MNL721 - MAIN LOOP FOR CDC721 CONSOLE
  1068. *
  1069. * RIGHT SCREEN IS DISPLAYED ON ENTRY AND
  1070. * ONLY UPDATED IN *KBI*.
  1071. * LEFT SCREEN IS UPDATED WHENEVER *PDDBUF*
  1072. * IS NON-ZERO.
  1073. *
  1074.  
  1075. MNL7210 DCN CH+40
  1076. CFNC SLSF SELECT LEFT SCREEN/SMALL CHARS
  1077. CFNC CHSF CLEAR HIDDEN SCREEN
  1078. RJM DRS DISPLAY RIGHT SCREEN
  1079. CFNC THVF TRANSFER HIDDEN TO VISIBLE
  1080. FJM *,CH
  1081. DCN CH+40
  1082.  
  1083. MNL721 LDD RA
  1084. SHN 6
  1085. ADC PDDSTAT SET RECALL BIT
  1086. CWM FCW,ON FILE COMPLETE BIT
  1087. MONITOR RCLM
  1088.  
  1089. MNL7215 RJM CEF CHECK ERROR FLAG
  1090. RJM KBI KEYBOARD INPUT
  1091. LDD RA CHECK FOR DATA TO READ
  1092. SHN 6
  1093. ADC PDDBUF CM BUFFER WORD COUNT
  1094. CRD CM
  1095. LDD CM+4 (CM+4)=0 IF NOTHING TO DO
  1096. ZJN MNL7215 LOOP
  1097. STD BF WORD COUNT OF *PDDBUF*
  1098. DCN CH+40
  1099. CFNC SLSF SELECT LEFT SCREEN, SMALL CHARS
  1100. LDC PDDBUF SET ADDRESS OF *PDDBUF*
  1101. RJM DLS DISPLAY LEFT SCREEN
  1102. CFNC THVF TRANSFER HIDDEN TO VISIBLE
  1103.  
  1104. LDN ZERL READY FOR ANOTHER BUFFER
  1105. CRD CM
  1106. LDD RA
  1107. SHN 6
  1108. ADC PDDBUF
  1109. CWD CM
  1110. LJM MNL721 LOOP
  1111. * /--- BLOCK DLN 00 000 76/12/15 16.23
  1112. DLN TITLE DISPLAY LINE BUFFER
  1113. *** DLN - DISPLAY LINE BUFFER
  1114. *
  1115. * ENTRY - (A) = CENTRAL ADDRESS OF BUFFER
  1116. * AND WITH SCOPE MODE SET (CHAR OR POINT)
  1117.  
  1118.  
  1119. DLN SUBR
  1120. STM DLNA
  1121. ADN 1
  1122. STM DLNB
  1123. LDD RA
  1124. SHN 6
  1125. ADC ** FWA BUFFER
  1126. DLNA EQU *-1
  1127. CRD CM CHECK BUFFER WORD COUNT
  1128. LDD CM+4
  1129. ZJN DLNX IF NO BUFFER
  1130. STD T1
  1131. LDC 100 CENTRAL WORD COUNT FOR CRM
  1132. STD T2
  1133. LDN 0 STARTING ADDRESS IN BUFFER
  1134. STD T3
  1135.  
  1136. DLN1 LDD RA
  1137. SHN 6
  1138. ADD T3
  1139. ADC ** + 1 STARTING ADDRESS OF BUFFER
  1140. DLNB EQU *-1
  1141. CRM CBUF,T2
  1142. LDC 100
  1143. RAD T3 INCREMENT BUFFER ADDRESS
  1144. LDD T1
  1145. ADC -100 CHECK BUFFER EMPTY YET
  1146. MJN DLN2 IF LAST OF BUFFER
  1147. STD T1
  1148. LDC 500 WORD COUNT FOR OAM
  1149. UJN DLN3
  1150.  
  1151. DLN2 LDN 0
  1152. STD T2 FLAG END OF BUFFER
  1153. LDD T1
  1154. SHN 2 4*CENTRAL COUNT
  1155. ADD T1 5*CENTRAL COUNT=PP COUNT
  1156. NJN DLN3 IF NOT ZERO WORD COUNT
  1157. LJM DLNX EXIT IF ZERO
  1158.  
  1159. DLN3 OAM CBUF,CH OUTPUT DATA
  1160. LDD T2
  1161. NJN DLN1 IF MORE IN BUFFER
  1162. LJM DLNX
  1163. CHS TITLE CLEAR HIDDEN SCREEN
  1164. *
  1165. *** CHS - CLEAR HIDDEN SCREEN.
  1166. *
  1167. * ENTRY - RIGHT OR LEFT SCREEN ALREADY SELECTED.
  1168. *
  1169. * EXIT - CHANNEL 10 IS ACTIVE.
  1170. *
  1171. * CALLS - NONE.
  1172. *
  1173. * MACRO - CFNC
  1174.  
  1175. CHS SUBR
  1176. ACN CH+40
  1177. LDC LOWERY INITALIZE Y COORDINATE
  1178. STM CHSXY+1
  1179. CHS1 LDN 2 SEND X/Y COORDINATES
  1180. OAM CHSXY,CH
  1181. CFNC EELF ERASE TO EOL
  1182. LDN YINC INCREMENT Y COORDINATE
  1183. RAM CHSXY+1
  1184. SBM UPPERY CHECK FOR MORE LINES TO CLEAR
  1185. MJP CHS1
  1186. UJN CHSX EXIT
  1187.  
  1188. CHSXY DATA 6000B 721 X COORDINATE/LEFTMOST
  1189. BSSZ 1 721 Y COORDINATE
  1190. LOWERY EQU 7214B 721 Y COORDINATE/BOTTOM
  1191. UPPERY DATA 7764B 721 UPPERMOST Y COORDINATE
  1192. DLS TITLE DISPLAY CDC721 LEFT SCREEN
  1193.  
  1194. *** DLS - DISPLAY LEFT SCREEN
  1195. *
  1196. * ENTRY - ( A ) = CENTRAL ADDRESS OF BUFFER
  1197. * LEFT OR RIGHT SCREEN HAS BEEN SELECTED.
  1198. *
  1199. * CALLS - NONE
  1200. *
  1201. * /--- BLOCK DLN 00 000 76/12/15 16.23
  1202. * MACROS- NONE
  1203.  
  1204. DLS SUBR
  1205. ACN CH+40
  1206. ADN 1 SKIP PAST WORD COUNT
  1207. STM DLSA FWA OF THE BUFFER
  1208. LDN 0
  1209. STD T2
  1210. DLS10 LDD BF TOTAL WORDS LEFT IN THE BUFFER
  1211. ZJN DLSX
  1212. MJN DLSX I'7M A COWARD
  1213. STD T1 WORDS TO READ
  1214. ADC -100
  1215. MJN DLS50 LESS THAN 100 WORDS TO READ
  1216. LDC 100
  1217. STD T1 READ 100 WORDS
  1218.  
  1219. * READ FROM THE BUFFER
  1220.  
  1221. DLS50 LDD RA
  1222. SHN 6
  1223. ADD T2
  1224. ADC **
  1225. DLSA EQU *-1
  1226. CRM CBUF,T1
  1227. LDD T1 INCREMENT STARTING CM ADDRESS
  1228. RAD T2 FOR THE NEXT READ
  1229. LDD BF DECREMENT WD COUNT IN CM BUFFER
  1230. SBD T1
  1231. STD BF
  1232.  
  1233. * OUTPUT FROM *CBUF*
  1234.  
  1235. LDC CBUF-1
  1236. STD T3
  1237. LDD T1
  1238. SHN 2 4*CM WORDS
  1239. ADD T1 5*CM WORDS=PP WORDS
  1240. STD T1 T1=PP WORDS READ
  1241. DLS100 FJM *,CH
  1242. SOD T1 T1=WORDS LEFT TO READ
  1243. PJN DLS110
  1244. LJM DLS10 LOOP
  1245.  
  1246. * CHECK FOR ERASE TO END OF LINE FUNCTION.
  1247. * OUTPUT *EELF* IF ONE IS FOUND.
  1248.  
  1249. DLS110 AOD T3 INCREMENT POINTER INTO *CBUF*
  1250. LDI T3 GET NEXT BYTE FROM *CBUF*
  1251. LMC FEELF CHECK FOR CLEAR SCREEN FUNCTION
  1252. NJN DLS150
  1253. LDD T3 CHECK PREVIOUS BYTE FOR
  1254. SBN 1 Y-COORDINATE
  1255. STD T4
  1256. LDI T4
  1257. LPC 7000B
  1258. ADC -7000B
  1259. NJN DLS150
  1260. CFNC THVF TRANSFER HIDDEN TO VISIBLE 1ST
  1261. DCN CH+40
  1262. CFNC EELF ISSUE ERASE TO EOL FUNCTION
  1263. LJM DLS100 LOOP
  1264.  
  1265. DLS150 LDD T3
  1266. STM DLSB
  1267. LDN 1
  1268. OAM **,CH
  1269. DLSB EQU *-1
  1270. LJM DLS100 LOOP
  1271. * /--- BLOCK KBI 00 000 84/08/01 07.53
  1272. KBI TITLE KEYBOARD ENTRY ROUTINE
  1273. *** KBI - KEYBOARD INPUT
  1274. *
  1275.  
  1276.  
  1277. KBI1 LMD LC
  1278.  
  1279. KBI2 STD LC SET LAST CHARACTER
  1280.  
  1281. KBI SUBR
  1282. LDN ZERL CLEAR KEY BUFFER WORD
  1283. CRD FN
  1284. DCN CH+40
  1285. CFNC SKIF SELECT KEYBOARD INPUT
  1286. IAN CH
  1287. DCN CH+40
  1288. ZJN KBI2 IF NO CHARACTER
  1289. LMD LC
  1290. ZJN KBI1 IF SAME AS LAST KEY
  1291. LMD LC
  1292. STD LC SET LAST KEY
  1293. ADD SL 0 IF SHIFT LEV 0, 63 IF LEVEL 1
  1294. STD FN+4
  1295. LDM CHRT,FN+4 READ PLATO EQUIVALENT OF CHARACTER
  1296. LMD UC TOGLE BY 40 IF UPPER CASE CHAR
  1297. SHN 1 FOR PARITY BIT
  1298. STD FN+4 PLATO KEY CODE
  1299. SHN 5
  1300. PJN *+3
  1301. LJM PRB PROCESS RIGHT BLANK
  1302. SHN 1
  1303. PJN *+3
  1304. LJM PLB PROCESS LEFT BLANK
  1305. SHN 1
  1306. PJN *+3
  1307. LJM PSYS PROCESS SYSTEM (SWITCH TO DSD)
  1308. SHN 2 ONE UNUSED BIT
  1309. PJN *+3
  1310. LJM KBIX PROCESS NOP
  1311. * /--- BLOCK KBI 00 000 84/08/01 07.54
  1312. KBI3 BSS 0
  1313. LDC 4000
  1314. STD FN
  1315. LDD RA
  1316. SHN 6
  1317. ADC KBUF KEYBOARD BUFFER ADDRESS IN CM
  1318. CWD FN WRITE CHARACTER
  1319. ADC PDDSTAT-KBUF RECALL CP WORD ADDRESS
  1320. CWM FCW,ON FILE COMPLETE BIT
  1321. MONITOR RCLM
  1322. LDC 200
  1323. STD LC CLEAR KEY
  1324. LDC 50D*50D 50D*20 MILLISECONDS
  1325. STD BF FORCE CONSOLE TO RESPONED
  1326.  
  1327. * UPDATE RIGHT SCREEN FOR CDC721 IF FUNCTION
  1328. * OR UPPER CASE IS SELECTED.
  1329.  
  1330. LDD CT GET CONSOLE TYPE
  1331. ZJN KBI4 IF CC545
  1332. LDD SL CHECK FOR FUNCTION SELECTED
  1333. ADD UC OR UPPER CASE SELECTED
  1334. ZJN KBI4 NEITHER SELECTED
  1335. LDN 0
  1336. STD UC CLEAR UPPER CASE
  1337. STD SL CLEAR FUNCTION SETTING
  1338. LJM CH721 UPDATE RIGHT SCREEN FOR 721
  1339. KBI4 LDN 0
  1340. STD UC
  1341. STD SL
  1342. LJM KBIX DONT UPDATE RIGHT DISPLAY
  1343.  
  1344. PRB LDN 63
  1345. STD SL SET TO FUNCTIONS
  1346. LJM CH721 UPDATE RIGHT SCREEN FOR 721
  1347.  
  1348. PLB LDN 40
  1349. LMD UC FLIP CASES
  1350. STD UC
  1351. ZJN PLB1
  1352. LJM CH721 UPDATE RIGHT SCREEN FOR 721
  1353. PLB1 STD SL
  1354. LJM CH721 UPDATE RIGHT SCREEN FOR 721
  1355.  
  1356. PSYS LDD UC
  1357. ZJN PSYS1 IF IN LOWER CASE
  1358. DCN CH+40 DROP DISPLAY
  1359. RJM DDS
  1360. LJM DPP DROP PPU, CONTROL PT. AND EXIT
  1361.  
  1362. PSYS1 DCN CH+40
  1363. RJM HDC HOLD DISPLAY
  1364. LDD CT GET CONSOLE TYPE
  1365. ZJN PSYS2 IF CC545 CONSOLE
  1366. DCN CH+40
  1367. CFNC SLSF SELECT LEFT SCREEN
  1368. RJM CHS CLEAR HIDDEN SCREEN
  1369. LDD RA
  1370. SHN 6
  1371. ADC LBUF
  1372. CRD CM
  1373. LDD CM+4
  1374. STD BF
  1375. LDC LBUF REPLOT THE SCREEN
  1376. RJM DLS
  1377. CFNC THVF TRANSFER HIDDEN TO VISIBLE
  1378. PSYS2 LDN 1R* PRESET TO *
  1379. STD LC
  1380. LDN 0
  1381. STD UC
  1382. STD SL
  1383. CH721 LDD CT CHECK FOR 721 CONSOLE
  1384. ZJN CH7219 IF CC545 CONSOLE
  1385. DCN CH+40
  1386. CFNC SRSF SELECT RIGHT SCREEN,SMALL CHARS
  1387. RJM CHS CLEAR HIDDEN SCREEN
  1388. RJM DRS DISPLAY RIGHT SCREEN
  1389. FJM *,CH WAIT
  1390. CFNC THVF TRANSFER HIDDEN TO VISIBLE
  1391. FJM *,CH
  1392. * /--- BLOCK KBI 00 000 84/08/01 07.54
  1393. DCN CH+40 DISCONNECT CHANNEL
  1394. CH7219 LJM KBIX EXIT
  1395.  
  1396. FCW VFD 60/1 STATUS BIT
  1397. * /--- BLOCK DRS 00 000 84/08/01 08.00
  1398. DRS TITLE DISPLAY RIGHT SCREEN
  1399. *** DRS - DISPLAY RIGHT SCREEN
  1400. *
  1401.  
  1402.  
  1403. DRS SUBR
  1404.  
  1405. DCN CH+40
  1406. CFNC SRSF SELECT RIGHT SCREEN,SMALL CHARS
  1407. LDD CT GET CONSOLE TYPE
  1408. NJP DRS10
  1409.  
  1410. DISPLA 6000,7670,( 0 1 2 3 4 5 6 7 8
  1411. , 9 LB = RB)
  1412. DISPLA 6024,7620,( Q W E R T Y U I
  1413. ,O P + -)
  1414. DISPLA 6000,7550,( ERAS A S D F G H J
  1415. ,K L * /)
  1416. DISPLA 6024,7500,( NEXT Z X C V B N M
  1417. ,, . (
  1418. DISPLA ,,( )
  1419. DISPLA ,,)
  1420.  
  1421. LDD SL
  1422. NJN DRS1 IF FUNCTION
  1423.  
  1424. DISPLA 6000,7704,(LCRT RCRT LBKT RBKT DOLR PCT UNDL TICK)
  1425. DISPLA 6610,7704,( FCTN SHFT)
  1426.  
  1427. UJN DRS2 TRY FOR SHIFT
  1428.  
  1429. DRS1 BSS 0
  1430.  
  1431. DISPLA 6430,7704,( SUP SUB TERM TAB COPY SHFT)
  1432. DISPLA 6644,7634,(MICRO BOX)
  1433. DISPLA 6050,7564,( ASGN DIV HELP
  1434. , EDIT LAB)
  1435. DISPLA 6144,7514,(ESCAPE)
  1436. DISPLA 6334,7514,( BACK MUL SCLN DATA STOP)
  1437.  
  1438. DRS2 LDD UC
  1439. ZJN DRS3
  1440.  
  1441. DISPLA 6730,7704,( SHFT)
  1442. DISPLA 6730,7704,( SHFT)
  1443.  
  1444. DRS3 LJM DRSX EXIT
  1445. * /--- BLOCK DRS 00 000 84/08/22 11.24
  1446.  
  1447. .NOS23 IFGE OSLEV,617D
  1448.  
  1449. DRS10 LDD SL
  1450. NJN DRS20 IF FUNCTION
  1451. DISPLA 6230,7702,( )
  1452. UJN DRS30
  1453. DRS20 DISPLA 6230,7702,(FUNCTION KEYBOARD EQUIVALENTS),HF
  1454.  
  1455. DRS30 LDD UC
  1456. NJN DRS40
  1457. DISPLA 6000,7714,(NORMAL KEYBOARD EQUIVALENTS),HF
  1458. DISPLA 6400,7714,(SHIFTED KEYBOARD EQUIVALENTS)
  1459. UJN DRS50
  1460. DRS40 DISPLA 6000,7714,(NORMAL KEYBOARD EQUIVALENTS)
  1461. DISPLA 6400,7714,(SHIFTED KEYBOARD EQUIVALENTS),HF
  1462.  
  1463. DRS50 LDD SL
  1464. NJP DRS200 IF FUNCTION
  1465.  
  1466.  
  1467. DISPLA 6000,7656,( SHIFT = FORWARD TAB)
  1468. DISPLA 6000,7632,( FUNCTION = BACKWARD TAB)
  1469. DISPLA 6000,7606,( ERASE = BACK ARROW)
  1470. DISPLA 6000,7562,( NEXT = NEXT / RETURN)
  1471. DISPLA 6000,7512,( + = + / DOWN)
  1472. DISPLA 6000,7466,( - = - / UP)
  1473. DISPLA 6000,7442,( ( = ( / FWD
  1474. DISPLA 6000,7416,( ))
  1475. DISPLA ,,( = ))
  1476. DISPLA ,,( / BKW )
  1477. DISPLA 6000,7362,( * = * / SQUARE)
  1478. *
  1479. DISPLA 6400,7656,( LESS THAN = 0)
  1480. DISPLA 6400,7632,( GREATER THAN = 1)
  1481. DISPLA 6400,7606,( LEFT BRACKET = 2)
  1482. DISPLA 6400,7562,( RIGHT BRACKET = 3)
  1483. DISPLA 6400,7536,( DOLLAR SIGN = 4)
  1484. DISPLA 6400,7512,( PERCENT SIGN = 5)
  1485. DISPLA 6400,7466,( UNDERLINE = 6)
  1486. DISPLA 6400,7442,( SINGLE QUOTE = 7)
  1487.  
  1488. LJM DRSX
  1489.  
  1490. DRS200 DISPLA 6000,7656,( ASSIGNMENT = A)
  1491. DISPLA 6000,7632,( BACK = B)
  1492. DISPLA 6000,7606,( COPY = FORWARD TAB)
  1493. DISPLA 6000,7562,( DATA = FWD)
  1494. DISPLA 6000,7536,( DIVIDE = D)
  1495. DISPLA 6000,7512,( EDIT = * / SQUARE)
  1496. DISPLA 6000,7466,( HELP = H)
  1497. DISPLA 6000,7442,( LAB = /)
  1498. DISPLA 6000,7416,( MICRO = + / DOWN)
  1499. *
  1500. DISPLA 6416,7656,( MULTIPLY = M)
  1501. DISPLA 6416,7632,( SEMICOLON = ,)
  1502. DISPLA 6416,7606,( SQUARE = UP)
  1503. DISPLA 6416,7562,( STOP = ))
  1504. DISPLA 6416,7536,( SUBSCRIPT = 8)
  1505. DISPLA 6416,7512,( SUPERSCRIPT = 7)
  1506. DISPLA 6416,7466,( TAB = BACKWARD TAB)
  1507. DISPLA 6416,7442,( TERM = 9)
  1508. *
  1509. DISPLA 6240,7372,( DROP DISPLAY = X)
  1510. DISPLA 6240,7360,( HOLD DISPLAY = BACKWARD TAB-X)
  1511.  
  1512. LJM DRSX
  1513.  
  1514. .NOS23 ENDIF
  1515. * /--- BLOCK CEF 00 000 84/08/01 08.00
  1516. TITLE CHECK AND PROCESS ERROR FLAG
  1517. *** CEF - CHECK ERROR FLAG
  1518. *
  1519.  
  1520.  
  1521. CEF SUBR
  1522.  
  1523. PAUSE
  1524. LDD CM+1 CHECK ERROR FLAG
  1525. ZJN CEFX IF OK
  1526. DCN CH+40
  1527. RJM DDS DROP DISPALY
  1528.  
  1529. DPP MONITOR DCPM DROP CONTORL POINT
  1530.  
  1531. DPP1 MONITOR DPPM DROP PPU
  1532.  
  1533. LJM PPR IDLE
  1534. * /--- BLOCK KEY EQUS 00 000 76/12/17 22.00
  1535. DD60 TITLE PLATO KEY EQUIVALENCES
  1536. *** TABLE OF PLATO EQUIVALENCES OF DD60 KEYS
  1537. *
  1538.  
  1539.  
  1540. CHRT BSS 0
  1541. DATA 0 NO ENTRY FOR ZERO
  1542. DATA 101 A
  1543. DATA 102 B
  1544. DATA 103 C
  1545. DATA 104 D
  1546. DATA 105 E
  1547. DATA 106 F
  1548. DATA 107 G
  1549. DATA 110 H
  1550. DATA 111 I
  1551. DATA 112 J
  1552. DATA 113 K
  1553. DATA 114 L
  1554. DATA 115 M
  1555. DATA 116 N
  1556. DATA 117 O
  1557. DATA 120 P
  1558. DATA 121 Q
  1559. DATA 122 R
  1560. DATA 123 S
  1561. DATA 124 T
  1562. DATA 125 U
  1563. DATA 126 V
  1564. DATA 127 W
  1565. DATA 130 X
  1566. DATA 131 Y
  1567. DATA 132 Z
  1568. DATA 000 0
  1569. DATA 001 1
  1570. DATA 002 2
  1571. DATA 003 3
  1572. DATA 004 4
  1573. DATA 005 5
  1574. DATA 006 6
  1575. DATA 007 7
  1576. DATA 010 8
  1577. DATA 011 9
  1578. DATA 016 +
  1579. DATA 017 -
  1580. DATA 050 *
  1581. DATA 135 /
  1582. DATA 051 (
  1583. DATA 173 )
  1584. DATA 4000 L-BLANK = FCTN
  1585. DATA 133 =
  1586. DATA 2000 R-BLANK = SHIFT
  1587. DATA 137 ,
  1588. DATA 136 .
  1589. DATA 026 CR = NEXT
  1590. DATA 023 BKSP = ERASE
  1591. DATA 100 SPACE
  1592. * /--- BLOCK SHIFT 1 00 000 84/08/01 08.03
  1593. SHIFT1 TITLE PLATO FUNCTION EQUIVALENCES
  1594. ** SHIFT LEVEL 1 EQUIVALENCES
  1595.  
  1596. DATA 0 NO ENTRY FOR ZERO
  1597. DATA 015 A = ASSIGN
  1598. DATA 030 B = BACK
  1599. DATA 200 C = NOP
  1600. DATA 013 D = DIVIDE
  1601. DATA 200 E = NOP
  1602. DATA 200 F = NOP
  1603. DATA 200 G = NOP
  1604. DATA 025 H = HELP
  1605. DATA 200 I = NOP
  1606. DATA 200 J = NOP
  1607. DATA 200 K = NOP
  1608. DATA 200 L = NOP
  1609. DATA 012 M = MULTIPLY
  1610. DATA 200 N = NOP
  1611. DATA 200 O = NOP
  1612. DATA 200 P = NOP
  1613. DATA 200 Q = NOP
  1614. DATA 200 R = NOP
  1615. DATA 200 S = NOP
  1616. DATA 200 T = NOP
  1617. DATA 200 U = NOP
  1618. DATA 200 V = NOP
  1619. DATA 200 W = NOP
  1620. DATA 1000 X = ESCAPE
  1621. DATA 200 Y = NOP
  1622. DATA 200 Z = NOP
  1623. DATA 200 0 = NOP
  1624. DATA 200 1 = NOP
  1625. DATA 200 2 = NOP
  1626. DATA 200 3 = NOP
  1627. DATA 200 4 = NOP
  1628. DATA 200 5 = NOP
  1629. DATA 200 6 = NOP
  1630. DATA 020 7 = SUP
  1631. DATA 021 8 = SUB
  1632. DATA 062 9 = TERM
  1633. DATA 024 + = MICRO
  1634. DATA 034 - = BOX
  1635. DATA 027 * = EDIT
  1636. DATA 035 / = LAB
  1637. DATA 031 ( = DATA
  1638. DATA 032 ) = STOP
  1639. DATA 014 L-BLANK = TAB
  1640. DATA 033 (=) = COPY
  1641. DATA 2000 R-BLANK = SHFT
  1642. DATA 134 , = ;
  1643. DATA 200 . = NOP
  1644. DATA 026 CR = NEXT
  1645. DATA 023 BKSP = ERASE
  1646. DATA 200 SPACE = NOP
  1647. * /--- BLOCK COM DECKS 00 000 84/08/01 08.12
  1648. SPACE 4
  1649. LIST X
  1650. *CALL COMDDSP
  1651. *CALL COMDDIS
  1652. *CALL COMDSYS
  1653. SPACE 4
  1654. .NOSV2 IFGE OSLEV,562D NOS V2
  1655. DIS HERE FOR *DISPLA* MACRO IN *COMDSYS*
  1656. .NOSV2 ENDIF
  1657.  
  1658. * /--- BLOCK INITIAL 00 000 84/08/01 08.12
  1659.  
  1660. * THE FOLLOWING SPACE IS USED FOR A CENTRAL
  1661. * BUFFER AFTER BEING EXECUTED
  1662.  
  1663.  
  1664. CBUF BSS 0
  1665.  
  1666. .NOS23 IFGE OSLEV,617D
  1667. DIMB DUMP INST MOD BUFFER
  1668. .NOS23 ENDIF
  1669.  
  1670. PRS PAUSE
  1671. LDD CM+1 GET ERROR FLAG
  1672. ZJN *+3 IF NO ERROR
  1673. LJM DPP
  1674.  
  1675. LDD CP
  1676. .NOSV2 IFGE OSLEV,562D NOS V2
  1677. ADN JOTW JOB ORIGIN TYPE WORD
  1678. CRD CM
  1679. LDD CM+3
  1680. .NOSV2 ELSE NOS V1
  1681. ADN JNMW
  1682. CRD CM
  1683. LDD CM+3
  1684. LPN 77
  1685. .NOSV2 ENDIF
  1686. LMN SYOT CHECK IF SYSTEM ORIGIN
  1687. ZJN PRS1 IF SYOT
  1688. LDN PPET SET ERROR FLAG
  1689. STD CM+1
  1690. MONITOR CEFM
  1691. LJM DPP1
  1692.  
  1693.  
  1694. PRS1 RJM RDS ASK FOR THE DISPLAY NICELY
  1695.  
  1696. LDN 0 RESET DISPLAY PAUSE
  1697. STD T1
  1698.  
  1699. PRS2 LDM PSSI,T1 PLANT NEW INSTRUCTIONS
  1700. STM PSS+1,T1
  1701. AOD T1
  1702. SBN ILTH
  1703. NJN PRS2
  1704.  
  1705. LDC 6000
  1706. STD XC SET INITIAL X
  1707. LDN 0
  1708. STD UC CLEAR UPPER SHIFT
  1709. STD SL AND SHIFT LEVEL
  1710. STD LC PRESET LAST CHARACTER TO ZERO
  1711. STD BF CLEAR PLATO BUFFER CONTROL
  1712.  
  1713. .NOS23 IFGE OSLEV,617D
  1714.  
  1715. * SET CONSOLE TYPE FLAG.
  1716.  
  1717. LDN DSEQ
  1718. SFA EST
  1719. ADK EQAE
  1720. CRD CM
  1721. LDD CM+2
  1722. STD CT
  1723. LDN ZERL
  1724. CRD CM
  1725. LDD CT SET CONSOLE TYPE
  1726. STD CM+4
  1727. LDD RA
  1728. SHN 6
  1729. ADC CONTYPE
  1730. CWD CM
  1731. LDD CT
  1732. ZJP MNL EXIT IF CC545
  1733. MDIN SRMT MODIFY CODE FOR 721 CONSOLE
  1734.  
  1735. .NOS23 ENDIF
  1736.  
  1737. LJM MNL MAIN LOOP
  1738.  
  1739. PSSI RJM CEF CHECK ERROR FLAG
  1740. LJM /COMDDSP/PSSX
  1741.  
  1742. ILTH EQU *-PSSI
  1743.  
  1744. BSS 500+CBUF-*
  1745. SBUF BSS 10*5
  1746. PBUF BSS 0
  1747. CBUFL1 EQU 200*2+4
  1748. CBCML EQU CBUFL1/5 CM WORD COUNT
  1749.  
  1750.  
  1751. END
plato.source/plaopl/dd60.txt ยท Last modified: 2021/02/06 16:22 by 127.0.0.1