Table of Contents

EMDMP

Table Of Contents

  • [00005] EMDMP - CONTROL POINT EM DUMP (PLATO).
  • [00041] MAIN LOOP
  • [00108] ECSERR – REPORT EM ERRORS
  • [00183] COMMON DECKS / FETS / ETC.
  • [00202] PRESET

Source Code

EMDMP.txt
  1. EMDMP
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK INTRO 00 000 82/09/30 08.35
  4. IDENT EMDMP,111B,EMDMP
  5. TITLE EMDMP - CONTROL POINT EM DUMP (PLATO).
  6. *
  7. *
  8. *
  9. * DUMPS EXTENDED MEMORY LOCATIONS INTO FILE
  10. * NAMED IN FIRST ARGUMENT. FILE IS WRITTEN AS A
  11. * SERIES OF 1000B (512) WORD RECORDS AND IS ENDED
  12. * WITH AN END-OF-FILE. THE CALLING JOB MUST
  13. * ALREADY HAVE AN EM FIELD LENGTH SET, EMDMP DOES
  14. * NOT REQUEST ANY EM OF ITS OWN.
  15. *
  16. * THE FIRST RECORD OF EVERY DUMP IS A HEADER RECORD
  17. * CONTAINING THE NAME OF THE JOB WHICH DID THE DUMP
  18. * AND THE DATE AND TIME OF THE DUMP.
  19. *
  20. *
  21. *
  22. * EMDMP(FILE,FFFF,LLLL)
  23. *
  24. * FILE = FILE NAME TO RECEIVE DUMP (ASSUMES *EMFILE*)
  25. * FFFF = FIRST WORD TO DUMP/1000B (IN OCTAL)
  26. * LLLL = LAST WORD OF TO DUMP/1000B (IN OCTAL)
  27. *
  28. *
  29. *
  30. *
  31. * COMMENT COPYRIGHT CONTROL DATA CORP. 1982.
  32. *COMMENT EMDMP - CONTROL POINT EM DUMP (PLATO).
  33. *
  34. ABS
  35. SST
  36. SYSCOM B1
  37. *CALL COMCMAC
  38. *
  39. BUFL EQU 1001B CIO BUFFER LENGTH
  40. * /--- BLOCK MAIN 00 000 82/09/30 08.40
  41. TITLE MAIN LOOP
  42. ORG 111B
  43. *
  44. EMDMP RJ PRS
  45. SA1 ECSL CHECK FOR NOTHING TO DO
  46. ZR X1,ECDONE
  47. NG X1,ECDONE
  48. OPEN EMFILE,WRITE,R
  49. RECALL EMFILE
  50. REWIND EMFILE,R
  51. RECALL EMFILE
  52. *
  53. * WRITE HEADER RECORD
  54. *
  55. GETJN BUFF SET JOB NAME IN HEADER
  56. DATE BUFF+1 SET DATE IN HEADER
  57. CLOCK BUFF+2 SET TIME IN HEADER
  58. SX6 BUFF+3 SET IN POINTER
  59. SA6 EMFILE+2
  60. SX6 BUFF SET OUT POINTER
  61. SA6 A6+B1
  62. WRITER EMFILE,R WRITE HEADER
  63. RECALL EMFILE
  64. *
  65. * SET ERROR EXIT ADDRESS TO ALLOW ORDERLY EXIT
  66. *
  67. EREXIT ECDONE
  68. *
  69. * SET UP FOR EM DUMP
  70. *
  71. SA0 BUFF CM ADDRESS
  72. SA1 ECSF SET BEGINNING EM ADDRESS
  73. LX1 9
  74. BX0 X1
  75. *
  76. ECLOOP BX1 X0 ISSUE MESSAGE
  77. RJ COD
  78. SA6 MSG+1
  79. MESSAGE MSG,1,R
  80. RE BUFL-1 READ WORDS INTO BUFFER
  81. - RJ ECSERR
  82. SX6 BUFF+BUFL-1 RESET CIO POINTERS FOR TRANSFR
  83. SA6 EMFILE+2
  84. SX6 BUFF
  85. SA6 A6+B1
  86. WRITER EMFILE,R TRANSFER DATA
  87. RECALL EMFILE
  88. SX1 BUFL-1 INCREMENT EM ADDRESS
  89. IX0 X0+X1
  90. SA2 ECSL DECREMENT LENGTH TO READ
  91. AX1 9
  92. IX6 X2-X1
  93. ZR X6,ECDONE IF ALL DUMPED
  94. NG X6,ECDONE IF ALL DUMPED
  95. SA6 A2
  96. EQ ECLOOP
  97. *
  98. ECDONE BSS 0
  99. WRITEF EMFILE,R TACK ON AN EOF
  100. RECALL EMFILE
  101. ENDRUN QUIT
  102. *
  103. *
  104. MSG CON 10LDUMPING -
  105. BSS 1
  106. CON 0
  107. * /--- BLOCK ECSERR 00 000 82/09/30 08.41
  108. TITLE ECSERR -- REPORT EM ERRORS
  109. **
  110. * ECSERR - REPORT EM ERRORS
  111. *
  112. * ON ENTRY - X0 = ADDRESS OF EM READ
  113. *
  114. * ISSUES ERROR MESSAGE
  115. *
  116. *
  117. ECSERR EQ *+400000B
  118. BX1 X0 CONVERT ADDRESS TO DISPLAY CODE
  119. RJ COD
  120. SA6 ADDR
  121. MESSAGE ERR,0,R
  122. SX1 BUFL-1 DUMMY UP A RECORD
  123. AX1 1 DIVIDE BY TWO
  124. SB2 X1
  125. SA1 DUMMY
  126. SA2 A1+B1
  127. BX6 X1
  128. BX7 X2
  129. SA6 BUFF
  130. SA7 A6+B1
  131. *
  132. ECSERR1 SB2 B2-B1
  133. ZR B2,ECSERR IF DONE
  134. NG B2,ECSERR IF OVER-DONE
  135. SA6 A6+2
  136. SA7 A6+B1
  137. EQ ECSERR1
  138. *
  139. *
  140. ERR DIS 2,(EMDMP) ECS ERROR -
  141. ADDR BSS 1
  142. CON 0
  143. *
  144. DUMMY DIS ,/*** ECS ERROR ***/
  145. *
  146. * /--- BLOCK COD 00 000 82/09/30 08.41
  147. COD TITLE CONVERSION ROUTINES
  148. **
  149. * COD - CONSTANT TO OCTAL DISPLAY CODE CONVERSION
  150. *
  151. * CONVERT 10 OCTAL DIGITS TO DISPLAY CODE WITHOUT
  152. * LEADING ZERO SUPPRESSION
  153. *
  154. * MODIFICATION OF KRONOS COMMON DECK COMCCOD
  155. *
  156. * ENTRY X1=NUMBER TO CONVERT
  157. *
  158. * EXIT X6=DPC CONVERSION
  159. *
  160. * USES - A - NONE
  161. * X - 1,2,3,4,6
  162. * B - 3
  163. *
  164. * CALLS NONE
  165. *
  166. *
  167. COD EQ *+400000B
  168. SB3 10 CONVERT 10 DIGITS
  169. MX2 -3 DIGIT MASK
  170. MX6 0
  171. SX3 1R0 CONVERSION CONSTANT
  172. *
  173. COD1 BX4 -X2*X1 GET DIGIT
  174. IX4 X4+X3 CONVERT
  175. LX4 -6
  176. LX6 -6
  177. BX6 X6+X4 INSERT CHAR
  178. SB3 B3-B1
  179. EQ B3,B0,COD JUMP IF 10 DIGITS
  180. AX1 3 GO TO NEXT DIGIT
  181. EQ COD1 LOOP TILL 10 DIGITS
  182. * /--- BLOCK MISC 00 000 82/09/30 08.43
  183. TITLE COMMON DECKS / FETS / ETC.
  184. *CALL COMCCPM
  185. *CALL COMCCIO
  186. *CALL COMCSYS
  187. SPACE 4
  188. ECSF BSS 1 FIRST WORD TO DUMP/1000B
  189. ECSL BSS 1 ECS DUMP LENGTH/1000B
  190. *
  191. *
  192. * FET AND BUFFER
  193. *
  194. EMFILE FILEB BUFF,BUFL
  195. *
  196. *
  197. BUFF EQU *
  198. *
  199. *
  200. RFL= EQU BUFF+BUFL+2
  201. * /--- BLOCK PRS 00 000 82/09/30 08.47
  202. TITLE PRESET
  203. *
  204. * INITIALIZATIONS GO INTO CIO BUFFER
  205. *
  206. PRS EQ *+400000B
  207. SB1 1
  208. *
  209. * SET OUTPUT FILE NAME
  210. *
  211. SA1 ARGR SET FILE NAME
  212. MX6 42
  213. BX6 X6*X1
  214. ZR X6,INIT1 IF NONE, USE *EMFILE*
  215. SX7 B1
  216. BX6 X6+X7
  217. SA6 EMFILE
  218. *
  219. * CONVERT EM FWA TO OCTAL
  220. *
  221. INIT1 MX0 -6
  222. MX6 0 CLEAR NUMBER BUILDING
  223. SA1 ARGR+1 LOAD EM FWA
  224. ZR X1,W10
  225. BX2 -X0*X1 CHECK FOR LEGAL ARGUMENT
  226. NZ X2,W10
  227. RJ ATOO
  228. *
  229. W10 SA6 ECSF
  230. *
  231. * CONVERT EM LWA TO OCTAL
  232. *
  233. MX0 -6
  234. MX6 0 CLEAR NUMBER BUILDING
  235. SA1 ARGR+2 LOAD EM LWA
  236. ZR X1,W100
  237. BX2 -X0*X1 CHECK FOR LEGAL ARGUMENT
  238. NZ X2,W100
  239. RJ ATOO
  240. *
  241. W100 SA1 ECSF CHANGE TO EM LENGTH TO DUMP
  242. IX6 X6-X1
  243. SA6 ECSL
  244. EQ PRS
  245. *
  246. *
  247. *
  248. ATOO EQ *
  249. LX1 6 POSITION NEXT CHARACTER
  250. BX2 -X0*X1
  251. ZR X2,ATOO EXIT IF END
  252. SX2 X2-1R0 CONVERT TO OCTAL
  253. LX6 3
  254. IX6 X2+X6 ADD TO NUMBER BUILDING
  255. EQ ATOO+1
  256. SPACE 3
  257. END