User Tools

Site Tools


plato:source:plaopl:efrdmp

EFRDMP

Table Of Contents

  • [00017] EFRDMP - DUMP EXTENDED ESM FLAG REGISTERS.
  • [00022] DUMP EXTENDED ESM FLAG REGISTERS.
  • [00091] EXTENDED FLAG REGISTER DUMP
  • [00124] CMM - CHECK MEMORY MODE
  • [00153] EFR - EVALUATE FLAG REGISTER
  • [00212] GPM - GET PARAMETERS
  • [00305] PER - PRINT EXTENDED REGISTERS

Source Code

EFRDMP.txt
  1. EFRDMP
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK IDENT 00 000 81/07/12 02.13
  4.  
  5. IDENT EFRDMP,111B,EFRDMP
  6.  
  7. ABS
  8. SST
  9. SYSCOM B1
  10.  
  11. ENTRY EFRDMP
  12. ENTRY RFL=
  13.  
  14. *COMMENT EFRDMP - DUMP EXTENDED ESM FLAG REGISTERS.
  15. COMMENT COPYRIGHT CONTROL DATA CORP. 1981.
  16.  
  17. TITLE EFRDMP - DUMP EXTENDED ESM FLAG REGISTERS.
  18.  
  19. * /--- BLOCK DOCUMENT 00 000 81/07/12 02.44
  20.  
  21. EFRDMP SPACE 4,10
  22. *** EFRDMP - DUMP EXTENDED ESM FLAG REGISTERS.
  23. * M. S. VOLLMER 81/07/13.
  24. SPACE 4,10
  25. *** EFRDMP PROVIDES A LABELED DUMP OF THE EXTENDED
  26. * ESM FLAG REGISTERS USED BY MULTI-EXECUTOR/MULTI-
  27. * FORMATTER PLATO SYSTEMS.
  28. SPACE 4,10
  29. *** CONTROL CARD CALL.
  30. *
  31. * EITHER ZERO OR TWO ARGUMENTS MAY BE PRESENT.
  32. *
  33. * IF NO ARGUMENTS ARE PRESENT, THE BASE FLAG
  34. * REGISTER NUMBER (*EFRB* IN THE PLATO CONFIG FILE)
  35. * AND THE NUMBER OF PLATO STATIONS (*NUMSTAT* IN
  36. * PLATO) ARE ASSUMBED TO BE IN KCL R2 AND R3,
  37. * RESPECTIVELY.
  38. *
  39. * IF TWO ARGUMENTS ARE PRESENT, THE FIRST SPECIFIES
  40. * THE BASE FLAG REGISTER NUMBER AND THE SECOND THE
  41. * NUMBER OF PLATO STATIONS. THE ARGUMENTS ARE
  42. * ALWAYS POSITIONAL, NOT KEYWORD-ORIENTED.
  43. *
  44. * EXAMPLES --
  45. *
  46. * EFRDMP. USE KCL R2 AS BASE AND R3 AS
  47. * NUMBER OF PLATO STATIONS.
  48. * EFRDMP(100B,640) START WITH REGISTER 100B. USE
  49. * 640 AS THE NUMBER OF PLATO
  50. * STATIONS.
  51. SPACE 4,10
  52. *** DAYFILE MESSAGES.
  53. *
  54. * * ARGUMENT ERROR.* - AN INCORRECT NUMBER OF
  55. * ARGUMENTS WERE SPECIFIED ON THE CONTROL CARD, OR
  56. * AN ARGUMENT COULD NOT BE CONVERTED TO A BINARY
  57. * INTEGER BY *DXB*, OR THE NUMBER OF PLATO STATIONS
  58. * IS NOT DIVISIBLE BY 32, OR ONE OF THE PARAMETERS
  59. * IS NEGATIVE OR INCONSISTENT. THE PROGRAM IS
  60. * ABORTED.
  61. *
  62. * * BAD FLAG REGISTER NUMBER.* - THE PROGRAM
  63. * ATTEMPTED TO DUMP A REGISTER NOT IN THE RANGE
  64. * 0 .LE. REGISTER .LE. 16383. THE PROGRAM IS
  65. * ABORTED.
  66. *
  67. * * MACHINE NOT IN ESM MODE.* - THE MACHINE HAS NO
  68. * EXTENDED MEMORY, HAS ECS, OR HAS ESM IN ECS MODE.
  69. * EXECUTION OF EFRDMP ENDS NORMALLY WITHOUT DUMPING
  70. * ANY EXTENDED FLAG REGISTERS.
  71. *
  72. * * NO MATCH FOR REGISTER.* - AN ABORT WAS RETURNED
  73. * FOR ALL POSSIBLE CONTENTS OF AN EXTENDED ESM FLAG
  74. * REGISTER. THIS COULD BE DUE TO HARDWARE ERROR OR
  75. * BECAUSE ANOTHER PROGRAM WAS CHANGING THE CONTENTS
  76. * OF THE REGISTER AT THE SAME TIME. THE CONTENTS OF
  77. * OF THE REGISTER WILL BE SHOWN AS *ERROR.* IN THE
  78. * OUTPUT.
  79.  
  80. **** COMMON DECKS (NOS MACROS)
  81.  
  82. *CALL COMCMAC
  83. *CALL COMCCMD
  84.  
  85. ****
  86.  
  87. ORG 111B
  88.  
  89. * /--- BLOCK EFRDMP 00 000 81/07/12 03.55
  90. EFRDMP SPACE 4,21
  91. ** EFRDMP - EXTENDED FLAG REGISTER DUMP
  92. *
  93. * DUMP EXTENDED ESM FLAG REGISTERS USED BY PLATO
  94. * AND BY FRAMAT/FORMAT IF A MACHINE IS IN ESM
  95. * MODE AND IS CONFIGURED FOR MULTIPLE EXECUTORS
  96. * AND/OR FOR MULTIPLE FORMATTERS.
  97. *
  98. * ENTRY BASE REGISTER AND NUMBER OF PLATO STATIONS
  99. * PASSED AS CONTROL CARD ARGUMENTS OR IN
  100. * KCL R2 AND R3.
  101. *
  102. * EXIT PLATO/FORMAT FLAG REGISTERS DUMPED.
  103. * PROGRAM TERMINATED NORMALLY.
  104. *
  105. * USES A - NONE.
  106. * B - 1.
  107. * X - 6.
  108. *
  109. * CALLS CMM, GPM, PER, SYS=.
  110. *
  111. * MACROS ENDRUN.
  112.  
  113.  
  114. EFRDMP SB1 1 (B1) = 1
  115.  
  116. RJ CMM CHECK MEMORY MODE
  117. RJ GPM GET PARAMETERS
  118. RJ PER PRINT EXTENDED REGISTERS
  119.  
  120. ENDRUN
  121.  
  122. * /--- BLOCK CMM 00 000 81/07/12 02.35
  123. CMM SPACE 4,15
  124. ** CMM - CHECK MEMORY MODE
  125. *
  126. * SEE IF MACHINE IS IN ESM MODE.
  127. *
  128. * ENTRY NONE.
  129. *
  130. * EXIT PROGRAM ENDED IF IN ECS MODE.
  131. *
  132. * USES A - 1.
  133. * B - NONE.
  134. * X - 1, 2.
  135. *
  136. * CALLS CVL=, MSG=, SYS=.
  137. *
  138. * MACROS ENDRUN, GETMC, MESSAGE.
  139.  
  140. CMM PS
  141. GETMC CMMA
  142. SA1 CMMA
  143. LX1 59-ESMM TEST FOR ESM MODE
  144. NG X1,CMM IF IN ESM MODE
  145. MESSAGE CMMB,0,R
  146. ENDRUN
  147.  
  148. CMMA BSS 1
  149. CMMB DIS ,* MACHINE NOT IN ESM MODE.*
  150.  
  151. * /--- BLOCK EFR 00 000 81/07/13 13.35
  152. EFR SPACE 4,18
  153. ** EFR - EVALUATE FLAG REGISTER
  154. *
  155. * RETURN THE CONTENTS OF AN EXTENDED FLAG REGISTER
  156. *
  157. * ENTRY (X1) = RELATIVE REGISTER NUMBER.
  158. * (BASE) = EXTENDED FLAG REGISTER BASE.
  159. *
  160. * EXIT (X6) = RIGHT-JUSTFIED ALPHA REGISTER VALUE.
  161. * (X6) = 6LERROR. IF NO MATCH.
  162. * PROGRAM ABORTED IF REGISTER .GT. 16383.
  163. *
  164. * USES A - 0, 1, 2.
  165. * B - 2, 7.
  166. * X - 0, 1, 2, 3, 6.
  167. *
  168. * CALLS COD, MSG=, SYS=.
  169. *
  170. * MACROS ABORT, MESSAGE.
  171.  
  172.  
  173. EFR PS
  174. SA2 BASE (X2) = BASE REGISTER NUMBER
  175. IX2 X1+X2 (X2) = ABSOLUTE REGISTER NUMBER
  176. SX2 X2 LIMIT TO 18 BITS
  177. NG X2,EFR3 ERROR IF .LT. 0
  178. SX1 X2-EFRMAX-1 CHECK IF .GT. 16383
  179. PL X1,EFR3 IF REGISTER NUMBER TOO LARGE
  180. LX2 4 POSITION REGISTER IN BITS 4-17
  181. SX3 ESEES
  182. LX3 GFRSC (X3) = EQUALITY/STATUS FUNCTION
  183. BX2 X2+X3 (X2) = REGISTER AND FUNCTION
  184. SA1 EFRA-1 PRESET ADDRESS OF TABLE
  185. SA0 EFRB (A0) = SOMETHING REASONABLE
  186.  
  187. EFR1 SA1 A1+B1 (X1) = NEXT PATTERN
  188. BX0 X1+X2 (X0) = ASSEMBLED FLAG FUNCTION
  189. + RE 1
  190. - EQ EFR2 IF REJECT TRY NEXT PATTERN
  191. SB7 0 DEFAULT TO OCTAL BASE
  192. RJ COD CONVERT RESULT TO DISPLAY CODE
  193. EQ EFR
  194.  
  195. EFR2 NZ X1,EFR1 IF NOT END OF TABLE
  196. MESSAGE EFRC,0,R ISSUE ERROR MESSAGE TO DAYFILE
  197. SA1 EFRD
  198. BX6 X1 (X6) = 6LERROR.
  199. EQ EFR
  200.  
  201. EFR3 MESSAGE EFRE,0,R SEND ERROR MESSAGE TO DAYFILE
  202. ABORT DIE
  203.  
  204. EFRA CON 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
  205. EFRB BSS 1
  206. EFRC DIS ,* NO MATCH FOR REGISTER.*
  207. EFRD DATA 6LERROR.
  208. EFRE DIS ,* BAD FLAG REGISTER NUMBER.*
  209.  
  210. * /--- BLOCK GPM 00 000 81/07/13 00.54
  211. GPM SPACE 4,20
  212. ** GPM - GET PARAMETERS
  213. *
  214. * DETERMINE (1) BASE REGISTER AT WHICH TO START
  215. * DUMPING THE EXTENDED FLAG REGISTERS AND (2) THE
  216. * NUMBER OF PLATO STATIONS.
  217. *
  218. * ENTRY VALUES PASSED VIA CONTROL CARD ARGUMENTS OR
  219. * KCL R2 AND R3.
  220. *
  221. * EXIT (BASE) = NUMBER OF BASE REGISTER.
  222. * (NUMSTAT) = NUMBER OF PLATO STATIONS.
  223. * PROGRAM ABORTED IF ARGUMENT ERROR.
  224. *
  225. * USES A - 1, 2, 5, 6, 7.
  226. * B - 7.
  227. * X - 1, 2, 5, 6, 7.
  228. *
  229. * CALLS CPM=, DXB, MSG=, SYS=.
  230. *
  231. * MACROS ABORT, GETJCI, MESSAGE.
  232.  
  233.  
  234. GPM PS
  235. SA1 ACTR (X1) = 42/PROGRAM, 18/ARGUMENTS
  236. SX1 X1 (X1) = NUMBER OF ARGUMENTS
  237. ZR X1,GPM1 IF VALUES IN KCL R2 AND R3
  238. SX1 X1-2 CHECK FOR 2 ARGUMENTS
  239. ZR X1,GPM2 IF ARGUMENTS PRESENT
  240. EQ GPM4 IF BAD NUMBER OF ARGUMENTS
  241.  
  242. * IF NO ARGUMENTS WERE PRESENT, GET THE BASE
  243. * REGISTER NUMBER FROM KCL R2 AND THE NUMBER OF
  244. * PLATO STATIONS FROM KCL R3.
  245.  
  246. GPM1 GETJCI GPMA GET JOB CONTROL INFORMATION
  247. SA1 GPMA+1 (X1) = 6/EF,18/R3,18/R2,18/R1
  248. AX1 18
  249. SX6 X1 (X6) = BASE REGISTER
  250. AX1 18
  251. SX7 X1 (X7) = NUMBER OF PLATO STATIONS
  252. SA6 BASE
  253. SA7 NUMSTAT
  254. EQ GPM3
  255.  
  256. * IF ARGUMENTS ARE PRESENT, USE THEM AS THE BASE
  257. * REGISTER NUMBER AND THE NUMBER OF PLATO STATIONS.
  258.  
  259. GPM2 SA5 ARGR (X5) = 1ST ARGUMENT
  260. SB7 B1+ DEFAULT TO DECIMAL BASE
  261. RJ DXB CONVERT TO BINARY
  262. NZ X4,GPM4 IF BAD ARGUMENT
  263. SA6 BASE SAVE BASE REGISTER NUMBER
  264. SA5 ARGR+B1 (X5) = 2ND ARGUMENT
  265. SB7 B1+ DEFAULT TO OCTAL BASE
  266. RJ DXB CONVERT TO BINARY
  267. NZ X4,GPM4 IF BAD ARGUMENT
  268. SA6 NUMSTAT SAVE NUMBER OF PLATO STATIONS
  269. * /--- BLOCK GPM 00 000 81/07/13 02.52
  270.  
  271. * CHECK FOR CORRECTNESS AND CONSISTENCY OF THE
  272. * ARGUMENTS.
  273.  
  274. GPM3 SA1 BASE (X1) = BASE FLAG REGISTER
  275. SA2 NUMSTAT (X2) = NUMBER OF PLATO STATIONS
  276. NG X1,GPM4 ERROR IF NEGATIVE BASE
  277. NG X2,GPM4 ERROR IF NEGATIVE STATIONS
  278. ZR X2,GPM4 ERROR IF ZERO STATIONS
  279. MX6 -5
  280. BX6 -X6*X2 ZERO IF DIVISIBLE BY 32
  281. NZ X6,GPM4 ERROR IF MOD(NUMSTAT,32) .NE. 0
  282. SX6 X2
  283. AX6 5 (X6) = NUMBER OF SITES
  284. SX6 X6-MXSITES-1
  285. PL X6,GPM4 IF TOO MANY SITES
  286. SX6 I.NUM+FI.NUM-1
  287. IX6 X1+X6
  288. IX6 X2+X6 (X6) = LAST REGISTER USED
  289. SX1 EFRMAX (X1) = MAX. REAL FLAG REGISTER
  290. IX1 X1-X6
  291. PL X1,GPM EXIT IF REGISTERS IN RANGE
  292.  
  293. * IF THE NUMBER OF ARGUMENTS WAS INCORRECT OR IF
  294. * THE ARGUMENTS WERE OTHERWISE INCORRECT OR INCON-
  295. * SISTENT, ISSUE AN ERROR MESSAGE AND ABORT.
  296.  
  297. GPM4 MESSAGE GPMB,0,R ISSUE ERROR MESSAGE
  298. ABORT LUNCH BREAK
  299.  
  300. GPMA BSS 2 JOB CONTROL INFORMATION
  301. GPMB DIS ,* ARGUMENT ERROR.*
  302.  
  303. * /--- BLOCK PER 00 000 81/07/13 02.00
  304. PER SPACE 4,16
  305. ** PER - PRINT EXTENDED REGISTERS
  306. *
  307. * PRINT THE EXTENDED FLAG REGISTERS USED BY PLATO
  308. * AND BY FRAMAT/FORMAT.
  309. *
  310. * ENTRY (BASE) = BASE REGISTER NUMBER.
  311. *
  312. * EXIT FLAG REGISTERS PRINTED.
  313. *
  314. * USES A - 1, 2, 6.
  315. * B - 2, 6.
  316. * X - 1, 2, 6, 7.
  317. *
  318. * CALLS CDD, CIO=, COD, EFR, WTC=.
  319. *
  320. * MACROS CLOSE, OPEN, WRITEC, WRITER.
  321.  
  322.  
  323. PER PS
  324.  
  325. * OPEN PRINT FILE AND WRITE HEADER.
  326.  
  327. OPEN OUTPUT,WRITENR,R OPEN OUTPUT FILE
  328. WRITEC OUTPUT,PERA PRINT HEADER
  329. SA1 BASE (X1) = BASE FLAG REGISTER
  330. RJ COD CONVERT TO OCTAL DISPLAY CODE
  331. SA6 PERB+2
  332. WRITEC OUTPUT,PERB PRINT BASE REGISTER NUMBER
  333. WRITEC OUTPUT,PERC SKIP A LINE
  334.  
  335. * PRINT PROCESS INTERLOCKS.
  336.  
  337. PER1 SA1 PERD (X1) = INDEX INTO *EFRTAB*
  338. SA2 X1+EFRTAB (X2) = NEXT TABLE ENTRY
  339. NG X2,PER3 IF END OF TABLE
  340. SX6 X1+B1 UPDATE INDEX
  341. SA6 A1
  342. ZR X2,PER2 IF SHOULD SKIP A LINE
  343. MX3 -18
  344. BX1 -X3*X2 (X1) = RELATIVE REGISTER NUMBER
  345. BX3 X3*X2 (X3) = ALPHA DESCRIPTION
  346. SA2 PERE (X2) = 3R =
  347. BX6 X3+X2
  348. SA6 PERF+1 STORE ALPHA DESCRIPTION IN LINE
  349. RJ EFR EVALUATE FLAG REGISTER
  350. SA6 PERF+2
  351. WRITEC OUTPUT,PERF WRITE LABEL AND REGISTER VALUE
  352. EQ PER1
  353.  
  354. PER2 WRITEC OUTPUT,PERC SKIP A LINE
  355. EQ PER1
  356.  
  357. * /--- BLOCK PER 00 000 81/07/13 02.40
  358.  
  359. * PRINT STATION INTERLOCKS.
  360.  
  361. PER3 WRITEC OUTPUT,PERG WRITE PAGE HEADER
  362. WRITEC OUTPUT,PERC SKIP A LINE
  363. SA1 BASE (X1) = BASE FLAG REGISTER
  364. SX6 X1+I.NUM+FI.NUM ADJUST FOR STATION INTLOKS
  365. SA6 A1
  366.  
  367. PER4 SA1 PERI (X1) = LAST STATION NUMBER
  368. SX6 X1+1 (X6) = NEXT STATION NUMBER
  369. SA2 NUMSTAT (X2) = NUMBER OF STATIONS
  370. IX2 X6-X2
  371. PL X2,PER5 IF ALL STATIONS FINISHED
  372. SA6 A1 SAVE CURRENT STATION NUMBER
  373. SX1 X6+
  374. AX1 5 (X1) = SITE NUMBER
  375. RJ CDD CONVERT TO DECIMAL
  376. MX4 -12
  377. BX6 -X4*X6 SAVE BOTTOM TWO DIGITS
  378. LX6 48 (X6) = LEFT-JUSTIFIED SITE NO.
  379. SA6 PERJ
  380. SA1 PERI (X1) = BINARY STATION NUMBER
  381. MX6 -5
  382. BX1 -X6*X1 (X6) = STATION PORTION
  383. RJ CDD CONVERT TO DECIMAL
  384. MX4 -12
  385. BX6 -X4*X6 SAVE TWO DIGITS OF STATION NO.
  386. SX4 1R-
  387. LX6 30 POSITION STATION NUMBER
  388. LX4 42 POSITION HYPHEN
  389. SA1 PERJ (X1) = LEFT-JUSTIFIED SITE NO.
  390. BX6 X6+X1
  391. BX6 X6+X4 (X6) = SITE-STATION
  392. SA1 PERK (X1) = 5R =
  393. BX6 X1+X6
  394. SA6 PERF+1
  395. SA1 PERI (X1) = BINARY STATION NUMBER
  396. RJ EFR EVALUATE FLAG REGISTER
  397. SA6 PERF+2
  398. WRITEC OUTPUT,PERF
  399. EQ PER4 PROCESS NEXT STATION
  400.  
  401. PER5 WRITEC OUTPUT,PERL PAGE EJECT
  402. WRITER OUTPUT,RECALL
  403. CLOSE OUTPUT,NR,RECALL
  404. EQ PER
  405.  
  406. PERA DIS ,*1EXTENDED FLAG REGISTER DUMP.*
  407. PERB DATA 20H0 BASE REGISTER =
  408. BSS 1
  409. DATA 1LB
  410. PERC DATA 1L FOR BLANK LINES
  411. PERD DATA 0 INDEX INTO *EFRTAB*
  412. PERE DATA 3R =
  413. PERF DATA 10H
  414. BSS 1 ALPHA DESCRIPTION
  415. BSS 1 OCTAL CONTENTS OF REGISTER
  416. DATA 1LB
  417. PERG DIS ,*1STATION INTERLOCKS.*
  418. PERI DATA -1 BINARY STATION NUMBER
  419. PERJ BSS 1 ALPHA STATION NUMBER (XX-YY)
  420. PERK DATA 5R =
  421. PERL DATA 1L1 PAGE EJECT
  422.  
  423. * /--- BLOCK END 00 000 81/07/13 02.52
  424.  
  425. **** COMMON DECKS (NOS)
  426.  
  427. QUAL$ EQU 0
  428.  
  429. LIST -X
  430.  
  431. *CALL COMCSYS
  432. *CALL COMCCPM
  433. *CALL COMCCVL
  434. *CALL COMCDXB
  435. *CALL COMCCOD
  436. *CALL COMCCDD
  437. *CALL COMCWTC
  438. *CALL COMCWTW
  439. *CALL COMCCIO
  440.  
  441. LIST *
  442.  
  443. ****
  444. **** COMMON DECKS (PLATO)
  445.  
  446.  
  447. *CALL SYSCON
  448. *CALL EXTEXT
  449. *CALL PLASRWX
  450.  
  451.  
  452. ****
  453.  
  454. LIST D
  455.  
  456. EFRTAB BSS 0
  457. INTTAB$ HERE INSERT INTERLOCK TABLE
  458.  
  459. LIST *
  460.  
  461. BASE BSS 1 EXTENDED REGISTER BASE
  462. NUMSTAT BSS 1 NUMBER OF PLATO STATIONS
  463.  
  464. EFRMAX EQU 16383 MAXIMUM FLAG REGISTER NUMBER
  465.  
  466. CIOLTH EQU 401B
  467. OUTPUT FILEB CIOBUF,CIOLTH,FET=14B
  468. CIOBUF BSS CIOLTH
  469.  
  470. RFL= EQU *+1
  471.  
  472. END
plato/source/plaopl/efrdmp.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator