User Tools

Site Tools


plato:source:plaopl:mas

Table of Contents

MAS

Table Of Contents

  • [00005] -MAS-
  • [00006] DEFINITIONS
  • [00068] EM MACROS
  • [00128] COMMENTS
  • [00184] -MAS- INITIALIZE CONTROL POINT PARAMS
  • [00315] -MAS- ACCEPT REQUEST FROM CALLING JOB
  • [00349] SEARCH FOR MASTOR(N) CONTROL POINT.
  • [00417] READ POINTERS FROM MASTOR(N) CM.
  • [00516] REFORMAT REQUEST FOR MASTOR.
  • [00562] READ POINTERS FROM MASTOR EM.
  • [00597] REQUEST A REQUEST AREA FROM MASTOR.
  • [00627] WAIT FOR MASTOR TO ASSIGN REQUEST AREA.
  • [00654] POST REQUEST THRU ASSIGNED REQ AREA.
  • [00709] PROCESS MASTOR-TO-MAS REQUEST.
  • [00753] -MAS- PROCESS RAX/FLX REQUEST
  • [00868] -MAS- PROCESS CPU/QUEUE PRIORITY REQ
  • [00933] -MAS- PROCESS IDENTIFY LOGIC REQUEST
  • [01013] PROCESS SET CLOCKS REQUEST
  • [01059] -MAS- END REQUEST - RETURN STATUS
  • [01345] ERROR EXIT ROUTINES
  • [01410] -MAS- DROP PPU
  • [01457] -PAUSE- CHECK FOR STORAGE MOVE
  • [01498] -MESSAG- OUTPUT B-DISPLAY MESSAGE
  • [01527] CEP - CONVERT RAX/FLX TO EXCHANGE PACKAGE VALUE
  • [01564] STORAGE DEFINITIONS
  • [01626] EM PROCS

Source Code

MAS.txt
  1. MAS
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK IDENT 00 000 76/03/02 14.47
  4. IDENT MAS,MAS
  5. TITLE -MAS-
  6. TITLE DEFINITIONS
  7. COMMENT MASTOR REQUEST PROCESSOR
  8. *
  9. *
  10. ************************************************************
  11. *
  12. *
  13. PERIPH
  14. SST
  15. *
  16. *
  17. LIST F
  18.  
  19.  
  20.  
  21. * QUAL UFP
  22. **CALL COMSUFP CYBERNET EQUIVALENCES
  23. * QUAL *
  24. *CALL COMSACC
  25. *CALL COMPMAC
  26. *CALL COMSEJT
  27. *CALL COMSPIM
  28. *CALL COMSSSD
  29. *CALL COMSSSJ
  30. QUAL CPS
  31. *CALL COMSCPS
  32. QUAL *
  33. *CALL PLAP501
  34. *CALL COMSPRD
  35. *CALL AIDTEXT
  36. *CALL PTEXT
  37. *CALL SYSCON
  38. *CALL PLASMPC
  39. *CALL PLASMRC
  40. *
  41. *
  42. D.T0 EQU 20B DIRECT CELL WORK VARIABLES
  43. D.T1 EQU 21B
  44. D.T2 EQU 22B
  45. D.T3 EQU 23B
  46. D.T4 EQU 24B
  47. *
  48. D.PPWD EQU 25B (2 WORDS) ADDRESS OF CPU / PPU
  49. * COMMUNICATION AREA
  50. D.CPN EQU 27B CONTROL POINT NUMBER
  51. *
  52. CN EQU 30B - 34B USED BY COMMON DECK *COMPUFT*
  53. EM EQU 35B ECS / ESM MODE
  54. RI EQU 36B - 37B RANDOM INDEX (FOR CRA)
  55. FN EQU 40B - 44B USED BY COMMON DECK *COMPUFT*
  56. SC EQU 45B SCRATCH CELL -- USED BY *CDV*
  57. D.COM EQU 46B COMSOURCE NOS FLAG (0 - NO)
  58. D.A170 EQU 47B 170/800 FLAG (NONZERO=170/800)
  59. D.RSAV EQU 60B - 61B SAVE (R) REGISTER
  60. D.RSV EQU 62B FWA+1 OF ROUTINE *RSVDDP*
  61. D.REL EQU 63B FWA+1 OF ROUTINE *RELDDP*
  62. D.RE EQU 64B FWA+1 OF ROUTINE *READECS*
  63. D.WE EQU 65B FWA+1 OF ROUTINE *WRITECS*
  64. EX EQU 66B EXTENDED ADDRESSING MODE (=1)
  65. *
  66. ************************************************************
  67. * /--- BLOCK EM MACROS 00 000 85/05/02 10.45
  68. TITLE EM MACROS
  69. ** EM TRANSFER MACROS
  70. *
  71. * THESE MACROS HANDLE THE SETUP FOR CALLS TO THE
  72. * READ AND WRITE ROUTINES IN COMMON DECK *EMPROCS*
  73. *
  74. * 1ST TAG = PPADDR = ADDRESS IN PP MEMORY.
  75. * 2ND TAG = EMADDR = FIRST BYTE OF TWO-BYTES CON-
  76. * TAINING EM ADDRESS RELATIVE
  77. * TO MASTOR(N)'7S RAX.
  78. * 3RD TAG = OFFSET = CONSTANT OFFSET ADDED TO SUM
  79. * OF (EMADDR) AND (MRAX)
  80. * 4TH TAG = LTH = LENGTH OF TRANSFER IN CM WORDS.
  81. *
  82. * THIS MACRO INTERFACES WITH THE ROUTINES FROM
  83. * *EMPROCS* D.RE/D.WE WHICH REQUIRE';
  84. * (D.T0) = PPU MEMORY ADDRESS
  85. * (D.T1) AND (D.T2) = EM ADDRESS (UPPER/LOWER)
  86. * (D.T2) = TRANSFER LENGTH IN PP BYTES
  87. *
  88. MACREF EMXFER$
  89. EMXFER MACRO RDWRT,PPADDR,EMADDR,OFFSET,LENGTH
  90. MACREF EMXFER
  91. .LTH SET LENGTH
  92. LDK PPADDR
  93. STD D.T0
  94. LDM MRAX+1
  95. .1 IFC NE,$EMADDR$$
  96. ADM EMADDR+1
  97. .1 ENDIF
  98. .2 IFC NE,$OFFSET$$
  99. ADK OFFSET
  100. .2 ENDIF
  101. STD D.T2
  102. SHN -12D
  103. ADM MRAX
  104. .3 IFC NE,$EMADDR$$
  105. ADM EMADDR
  106. .3 ENDIF
  107. STD D.T1
  108. LDK .LTH*5
  109. STD D.T3
  110. RJM 0,D._RDWRT
  111. NJP MASERR4
  112. ENDM
  113.  
  114. MACREF READEM$
  115. READEM MACRO PPADDR,EMADDR,OFFSET,XFERLTH
  116. MACREF READEM
  117. EMXFER RE,PPADDR,EMADDR,OFFSET,XFERLTH
  118. ENDM
  119.  
  120. MACREF WRITEM$
  121. WRITEM MACRO PPADDR,EMADDR,OFFSET,XFERLTH
  122. MACREF WRITEM
  123. EMXFER WE,PPADDR,EMADDR,OFFSET,XFERLTH
  124. ENDM
  125. *
  126. *
  127. * /--- BLOCK COMMENTS 00 000 82/10/18 10.47
  128. TITLE COMMENTS
  129. ************************************************************
  130. *
  131. *
  132. * PPU PROGRAM *MAS* PROVIDES THE COMMUNICATION LINK
  133. * BETWEEN CENTRAL PROCESSOR JOBS AND *MASTOR*
  134. * *MAS* ALSO PROCESSES PPU REQUESTS REQUIRED BY
  135. * *MASTOR* IN PROCESSING THE REQUEST GENERATED BY
  136. * A CENTRAL PROCESSOR JOB
  137. *
  138. * *** *** *** *** *** *** *** *** *** **
  139. *
  140. * INPUT REGISTER FORMAT
  141. *
  142. * 18/MAS, 6/CP, 11/, 1/NA, 24/RA
  143. *
  144. * NA - IF NON-ZERO DO NOT ABORT ON MASTOR
  145. * NOT ACTIVE. RETURN ERROR CODE
  146. *
  147. * RA - REQUEST ADDRESS
  148. *
  149. *
  150. *
  151. * JOB TO *MAS* REQUEST FORMAT -
  152. * 1ST WORD -
  153. * 1ST 12 BITS = REQUEST TYPE
  154. * NEXT 24 = UNUSED
  155. * NEXT 12 = *MAS* TO JOB REPLY FIELD
  156. * NEXT 11 = 0
  157. * NEXT 1 = COMPLETION BIT
  158. * 2ND - 7TH WORDS = REQUEST / REPLY PARAMETERS
  159. *
  160. *
  161. * ECS *MAS* / *MASTOR* REQUEST AREA FORMAT -
  162. * 1ST WORD - *MAS* TO *MASTOR* REQUEST AREA
  163. * 1ST 42 BITS = JOB NAME. 'FOR NOS 562 AND
  164. * LATER - 24 / JOB SEQUENCE NAME
  165. * 12 / EJT ORD, 6/UNUSED
  166. * NEXT 3 = ORIGIN MAIN-FRAME NUMBER
  167. * NEXT 3 = 0 (DESTINATION MAIN-FRAME)
  168. * NEXT 6 = *MASTOR* TO *MAS* REPLY FIELD
  169. * NEXT 6 = REQUEST TYPE CODE
  170. * 2ND WORD - *MASTOR* TO *MAS* REQUEST AREA
  171. * 1ST 12 BITS = *MAS* TO *MASTOR* REPLY FIELD
  172. * NEXT 36 = REQUEST PARAMETERS
  173. * NEXT 12 = REQUEST TYPE CODE
  174. * 3RD - 8TH WORDS = *MAS* TO *MASTOR* REQ PARAMS
  175. *
  176. * IF BIT 5 OF MASTOR REPLY STATUS IS SET,
  177. * JOB WILL BE ABORTED WITH *SYET* ERROR FLAG.
  178. *
  179. *
  180. ************************************************************
  181. *
  182. *
  183. * /--- BLOCK INITIAL 00 000 82/10/26 12.30
  184. TITLE -MAS- INITIALIZE CONTROL POINT PARAMS
  185. *
  186. *
  187. *
  188. ORG PPFW
  189. MAS BSS 0
  190.  
  191. * INITIALIZE TO SHOW EM ROUTINES HAVE NOT BEEN
  192. * LOADED YET.
  193.  
  194. LDN 0 (A) = EM ROUTINES NOT LOADED
  195. STD D.RE
  196.  
  197. *
  198. * VERIFY CALLER IS EITHER SYSTEM ORIGIN
  199. * OR PROGRAM HAS A *SSJ=* ENTRY POINT.
  200. *
  201. LDD CP (A) = CONTROL POINT AREA ADDR
  202. *
  203. .NOSV2 IFLT OSLEV,562D NOS V1
  204. ADN JNMW
  205. CRD CM
  206. LDD CM+3
  207. LPN 77B (A) = JOB ORIGIN TYPE
  208. .NOSV2 ELSE NOS V2
  209. ADN JOTW JOB ORIGIN TYPE WORD
  210. CRD CM
  211. LDD CM+3 (A) = JOB ORIGIN TYPE
  212. .NOSV2 ENDIF
  213. *
  214. STM JOBORG SAVE JOB ORIGIN TYPE
  215. LMN SYOT
  216. ZJN MAS2 IF JOB OF SYSTEM ORIGIN
  217. LDD CP CHECK FOR SYSTEM ORIGIN PRIV
  218. ADK AACW
  219. CRD CM
  220. LDD CM+4
  221. LPN 20B
  222. ZJN MAS1 IF NO SYOT PRIVLEDGES
  223. LDN SSTL CHECK IF IN DEBUG MODE
  224. CRD CM
  225. LDD CM+3
  226. LPN 1
  227. NJN MAS2 IF IN DEBUG MODE
  228. MAS1 LDD CP
  229. ADC SEPW
  230. CRD CM
  231. LDD CM
  232. SHN 17-2
  233. MJN MAS2 IF SSJ= PRESENT
  234. LJM MASERR1
  235. *
  236. * INITIALIZE MACHINE TYPE (C170, 170/800, ETC.)
  237. *
  238. MAS2 BSS 0
  239. .NOSV2 IFGE OSLEV,578D NOS V2
  240. LDC MABL READ MAINFRAME ATTRIBUTE BLOCK
  241. CRD CM
  242. LDD CM+1
  243. SHN -13B (A) = 0 IF 800 SERIES, ELSE 1
  244. LMN 1 (A) = 1 IF 800 SERIES, ELSE 0
  245. .NOSV2 ELSE NOS V1
  246. LDN CPUL READ MACHINE TYPE
  247. CRD CM
  248. LDD CM+3 (A) = *CPUL* PART OF WORD
  249. LPC 0400B MASK OFF 170/800 FLAG
  250. .NOSV2 ENDIF
  251. STD D.A170 (0=C170, NONZERO=170/800)
  252. *
  253. * INITIALIZE CONTROL POINT NUMBER
  254. *
  255. LDD CP
  256. SHN -7 SET CONTROL POINT NUMBER
  257. STD D.CPN
  258. *
  259. * SET UP ADDRESS OF JOB TO *MAS* REQUEST
  260. *
  261. LDD IR+3 FORM ADDRESS OF ARGUMENTS
  262. LPN 37B
  263. STD D.PPWD SAVE UPPER PART OF REL ADDRESS
  264. LDD IR+4
  265. STD D.PPWD+1 SAVE LOWER PART OF REL ADDRESS
  266. * /--- BLOCK INITIAL 00 000 87/02/17 11.32
  267. *
  268. * INITIALIZE FOR *SFA* MACRO
  269. *
  270. .NOSV2 IFGE OSLEV,562D IF NOS V2
  271. RJM IFP INITIALIZATION FOR SFA MACRO
  272. .NOSV2 ENDIF
  273. *
  274. *
  275. * FORM AND PLANT ADDRESS OF CPU STATUS WORD
  276. *
  277. LDD CP GET ADDRESS OF C.P. AREA
  278. ADN STSW FORM ADDRESS OF STATUS WORD
  279. PLANT CM,STATSW
  280. *
  281. * FORM AND PLANT ADDR OF CPU/PPU COMMUNICATION WORD
  282. *
  283. LDD D.PPWD UPPER PART OF RELATIVE ADDRESS
  284. SHN 12 POSITION UPPER PART OF ADDRESS
  285. ADD D.PPWD+1 ATTACH LOWER PART
  286. RJM ABS CONVERT TO ABSOLUTE
  287. ZJP MASERR1
  288. PLANT CM,PPUWD PLANT REFERENCES
  289. *
  290. * OBTAIN DDP PORT CHANNEL NUMBER
  291. *
  292. LDC 2RD1 DDP EQUIPMENT NAME
  293. RJM EQN
  294. PJN MAS30 IF DDP FOUND
  295. STM C=DDP1 SET DDP CHANNEL=-1 FOR NO DDP
  296. UJN MAS50 NO DDP
  297.  
  298. MAS30 BSS 0
  299. LDD CM LOAD DDP PORT CHANNEL NUMBER
  300. STM C=DDP1 SAVE DDP CHANNEL
  301. .NOS252 IFGE OSLEV,678D
  302. LDD CM+2
  303. STM C=DDP1+1
  304. .NOS252 ENDIF
  305.  
  306. *
  307. * INITIALIZE EM ACCESSING PROCEDURES
  308. *
  309.  
  310. MAS50 BSS 0
  311. * CALL EMPROC LOAD APPROPRIATE EM ROUTINES
  312. RJM EMPROC LOAD APPROPRIATE EM ROUTINES
  313.  
  314. * /--- BLOCK ACCEPT 00 000 86/02/07 11.40
  315. TITLE -MAS- ACCEPT REQUEST FROM CALLING JOB
  316. *
  317. *
  318. *
  319. * READ JOB TO *MAS* REQUEST FROM CM
  320. *
  321. LDK MS.MDIM SET UP LENGTH TO READ
  322. STD D.T0
  323. LOADCM PPUWD ADDRESS OF COMMUNICATION AREA
  324. CRM JREQ,D.T0 READ REQUEST FROM CM
  325.  
  326. * CHECK IF INTERNAL REQUEST
  327.  
  328. LDM JREQ
  329. NJP MAS99 IF A *MASTOR* REQUEST
  330. LDM JREQ+1 GET *MAS* SUB-FUNCTION CODE
  331. SBN REQL
  332. PJP MASERR1 IF INVALID REQUEST
  333. ADN REQL
  334. STD T1
  335. LDM REQT,T1
  336. STD T2
  337. LJM 0,T2 PROCESS REQUEST
  338.  
  339.  
  340. * INTERNAL REQUEST TABLE
  341.  
  342. REQT BSS 0
  343. CON MASERR1 0 = OBSOLETE
  344. CON MAS99 1 = RETURN *MFORD* CONFIG VALUE
  345. CON CDJ 2 = COUNT DEFERRED BATCH JOBS
  346. CON VUN 3 = VALIDATE USER NUMBER
  347. REQL EQU *-REQT
  348. * /--- BLOCK MAS SEARCH 00 000 73/06/01 14.21
  349. TITLE SEARCH FOR MASTOR(N) CONTROL POINT.
  350. *
  351. * SEARCH FOR MASTOR(N) CONTROL POINT
  352. *
  353. MAS99 LDN NCPL PTR TO WORD WITH NUM OF C.P.
  354. CRD CM
  355. .NOSV2 IFLT OSLEV,562D (NOS VERSION 1)
  356. LDD CM+3
  357. .NOSV2 ELSE (NOS VERSION 2)
  358. LDD CM+1
  359. .NOSV2 ENDIF
  360. SHN 7 *200B = CP AREA ADDR (MAX)
  361. STM MASCPA ALSO SERVES AS LOOP INDEX
  362. LDN 0 FOR ENTRY INTO SEARCH ROUTINE
  363. UJN MAS101 -- BEGIN SEARCH
  364.  
  365. * START OF SEARCH LOOP
  366.  
  367. MAS100 BSS 0 CHECK NEXT CONTROL POINT
  368. LDK -200B LTH OF CP AREA (FOR DECREMENT)
  369. MAS101 BSS 0 RECHECK SAME CONTROL POINT,
  370. * *** ENTER WITH (A) = 0 ***
  371. RAM MASCPA ADDR OF CONTROL POINT AREA
  372. ZJP MASERR2 -- NO MORE CP'7S, NO MASTOR(N)
  373. ADK JCIW PTR TO JOB CONTROL INFO
  374. CRD T2
  375. ADK TFSW-JCIW PTR TO EJT ORDINAL
  376. CRD CM
  377. LDD CM (A) = EJT ORDINAL
  378. SFA EJT RETURNS (A) = ADDR IN EJT
  379. ADK JSNE PLUS OFFSET TO JOB SEQ NAME
  380. CRD CM
  381. LDD CM+1 CHARS 3-4 OF JSN
  382. LPN 77B MASK FOR 4TH CHAR
  383. SBN 1R0 CHECK FOR NUMERIC
  384. MJP MAS100 -- NOT SPECIAL JSN
  385.  
  386. LDD CM+1 CHARS 3-4 OF JSN
  387. SCN 77B CLEAR 4TH CHAR
  388. SHN 6 MOVE 3RD CHAR TO UPPER 6 BITS
  389. LMD CM UNION CHARS 1-2 INTO LOWER 12
  390. LMC 3RSMA COMPARE WITH MASTOR(N) NAME
  391. NJP MAS100 -- NOT MASTOR(N)
  392.  
  393. LDD T2+2 SUBSYSTEM IDENTIFIER
  394. SBK PLSI PLATO SUBSYSTEM IDENTIFIER
  395. .NOS23 IFGE OSLEV,617D (NOS VERSION 2.3)
  396. NJP MAS100 -- NOT PART OF PLATO SUBSYSTEM
  397. .NOS23 ELSE (NOS VERSIONS 2.0 - 2.2)
  398. ZJN MAS110 -- YES, PART OF PLATO
  399. SBK 7754B-PLSI CHECK FOR SUBSYS ID OF PLATO
  400. * JOBS W/O RESIDENT PP'7S.
  401. NJP MAS100 -- NOT PART OF PLATO
  402. MAS110 BSS 0
  403. .NOS23 ENDIF
  404.  
  405. LDN CMCL PTR TO STORAGE MOVE CONTROL WD
  406. CRD CM
  407. LDM MASCPA CP AREA ADDR FOR CURRENT CP
  408. .NOS27 IFGE OSLEV,716D NOS 2.7.1
  409. SHN -7 /200B - CHANGE TO CP NUMBER
  410. .NOS27 ENDIF
  411. LMD CM CP AREA ADDR OF CP TO BE MOVED
  412. NJN MAS120 -- NOT BEING MOVED
  413. CALL PAUSE ELSE, WAIT A MOMENT THEN
  414. LDN 0 MAKE SURE (A) = 0, THEN
  415. UJP MAS101 -- RE-CHECK SAME CP
  416. * /--- BLOCK READ EM PT 00 000 86/02/07 11.34
  417. TITLE READ POINTERS FROM MASTOR(N) CM.
  418. *
  419. * MASTOR(N) LOCATED; READ EXTENDED MEMORY POINTERS.
  420. *
  421. MAS120 BSS 0
  422.  
  423. .NOSV2 IFGE OSLEV,562D (NOS VERSION 2)
  424. LDD D.A170
  425. ZJN MAS130 -- IF CME NOT PRESENT
  426. LDN 1 CME PRESENT, 800 SERIES
  427. MAS130 BSS 0 ENTER WITH (A) = 0 OR 1
  428. ADK FLSW OFFSET TO FIELD LENGTH WORDS
  429. ADM MASCPA PLUS CP AREA ADDR
  430. CRD CM READ APPROPRIATE WORD
  431. SRD D.RSAV SAVE *R* FROM CALLING CP
  432. LRD CM+1 LOAD *R* WITH (RA-NFL)/100B
  433. LDD CM+3 MASTOR(N) RA
  434.  
  435. .NOSV2 ELSE (NOS VERSION 1)
  436.  
  437. LDM MASCPA CP AREA ADDR
  438. .NOS552 IFGE OSLEV,552D (NOS VERSION 1.4/552)
  439. ADK FLSW
  440. .NOS552 ELSE (PRE-NOS VERSION 1.4/552)
  441. ADK STSW
  442. .NOS552 ENDIF
  443. CRD CM READ RA/FL INFORMATION
  444.  
  445. LDD D.A170
  446. NJN MAS130 -- IF AN 800 SERIES MAINFRAME
  447. LDD CM+3 12-BIT RA ON A NON-800
  448. UJN MAS140 -- ALL THAT'7S NEEDED
  449.  
  450. MAS130 BSS 0 800-SERIES MAINFRAME
  451. SRD D.RSAV SAVE CALLING CP'7S *R*
  452. LRD CM+2 SET *R* TO MASTOR(N)'7S RA
  453. LDD RA 4000B ON AN 800 SERIES
  454.  
  455. .NOSV2 ENDIF
  456. * /--- BLOCK READ EM PT 00 000 87/02/24 14.01
  457.  
  458. MAS140 BSS 0 ENTER WITH (A) = RA/100B
  459. SHN 6 *100B = MASTOR(N) RA
  460. ADK MS.CHKS PLUS OFFSET TO EM POINTERS
  461. CRM CHKS,TR READ 3 WORD BUFFER
  462. LRD D.RSAV RESTORE CALLING CP'7S *R*
  463.  
  464. LDM ECSP (A) = 3/MF ORDINAL, 9/--
  465. SHN -9
  466. STM MFN SAVE MAINFRAME ORDINAL
  467.  
  468. RJM VEP VERIFY EXTENDED MEMORY POINTERS
  469.  
  470. LDM ECSP
  471. LPN 1 0=ECS, 1=ESM MODE
  472. STD EM SAVE ECS/ESM MODE
  473.  
  474. .NOS252 IFGE OSLEV,678D
  475. MRQ150 LDK MEFL
  476. CRD CM
  477. LDD CM+2
  478. SHN -7 EXTENDED ADDRESSING BIT
  479. LPN 1
  480. STD EX
  481. .NOS252 ENDIF
  482.  
  483. *
  484. * READ AND FORMAT JOB NAME AND MAINFRAME NUMBER.
  485. *
  486. .NOSV2 IFLT OSLEV,562D NOS V1
  487. LDD CP LOAD ADDR OF CONTROL POINT AREA
  488. ADN JNMW BIAS TO JOB NAME
  489. CRM JOBNAM,ON
  490. LDM JOBNAM+3
  491. SCN 77B CLEAR OUT 8TH CHARACTER
  492. STM JOBNAM+3
  493. LDN 0 EXIT WITH (A) = 0
  494.  
  495. .NOSV2 ELSE (NOS VERSION 2)
  496.  
  497. LDD CP (A) = CONTROL POINT AREA ADDR
  498. ADK TFSW GET EJT ORDINAL
  499. CRD CM
  500. SFA EJT,CM (A) = ABS ADDR OF EJT ENTRY
  501. ADK JSNE ADD WORD OFFSET FOR JSN
  502. CRM JOBNAM,ON READ JOB SEQUENCE NAME
  503. LDD CM SAVE EJT ORDINAL WITH JSN
  504. STM JOBNAM+2
  505. LDN 0 CLEAR BYTE 3
  506. STM JOBNAM+3
  507.  
  508. .NOSV2 ENDIF
  509.  
  510. STM JOBNAM+4 CLEAR 4TH BYTE OF JOB NAME
  511. LDM MFN GET MAIN-FRAME NUMBER
  512. SHN 3
  513. RAM JOBNAM+3 ATTACH TO JOB NAME
  514. *
  515. * /--- BLOCK REFORMAT 00 000 86/02/07 11.45
  516. TITLE REFORMAT REQUEST FOR MASTOR.
  517. *
  518. * RE-FORMAT REQUEST FOR TRANSMISSION TO *MASTOR*
  519. *
  520. LDM JREQ
  521. ZJP MFORD IF INTERNAL REQUEST
  522.  
  523. LDN 3 INITIALIZE INDEX FOR JOB NAME
  524. STD D.T0 TRANSFER
  525. *
  526. MAS210 LDM JOBNAM,D.T0 TRANSFER JOB NAME TO 1ST CM
  527. STM MREQ,D.T0 WORD OF REQUEST
  528. SOD D.T0
  529. PJP MAS210
  530. LDM JOBORG CHECK IF JOB IS SYSTEM ORIGIN
  531. ADC -SYOT
  532. NJP MAS212
  533. LDN 4
  534. RAM MREQ+3 SET SYSTEM ORIGIN BIT
  535. *
  536. MAS212 LDD CP CHECK IF JOB HAS SSJ= EP
  537. ADC SEPW
  538. CRD CM
  539. LDD CM
  540. SHN 17-2
  541. PJN MAS214 IF NO SSJ= ENTRY POINT
  542. LDN 2 SET SSJ= BIT
  543. RAM MREQ+3
  544. MAS214 LDM JREQ LOAD REQUEST TYPE
  545. LPC 77B CLEAR REPLY BITS
  546. ZJP MASERR1
  547. STM MREQ+4
  548. LDC 5*MS.MDIM-5
  549. STD D.T0 INITIALIZE INDEX
  550. *
  551. MAS220 SOD D.T0 TRANSFER REQUEST PARAMETERS
  552. MJP MAS230
  553. LDM JREQ+5,D.T0 TRANSFER NEXT BYTE
  554. STM MREQ+10,D.T0
  555. UJP MAS220
  556. *
  557. MAS230 LDN 0
  558. STM MREQ+5 CLEAR *MASTOR* TO *MAS* REQUEST
  559. STM MREQ+9 AREA
  560. *
  561. * /--- BLOCK M PARAMS 00 000 78/01/30 12.58
  562. TITLE READ POINTERS FROM MASTOR EM.
  563. *
  564. * READ EM POINTERS FROM START OF MASTOR(N) EM.
  565. *
  566. RJM 0,D.RSV RESERVE DDP (IF USING ONE)
  567.  
  568. READEM MASTAB,,,3 READ FIRST 3 WORDS OF EM
  569.  
  570. *
  571. * COMPUTE PP REQUEST TABLE ENTRY FOR THIS PP';
  572. * M.REQA _ M.REQA + MF ORDINAL + PP ORDINAL*4.
  573. *
  574. ERRNZ MS.NMF-4 NEED TO ADJUST PP REQUEST TABLE
  575. *
  576. LDK PPCP PTR TO PP COMM AREAS
  577. CRD CM
  578. LDD IA PP COMM AREA FOR THIS PP
  579. SBD CM+4 MINUS FIRST PP COMM AREA
  580. * DIVIDED BY 8 = PP ORDINAL
  581. SHN -1 (A) = PP ORDINAL * 4
  582. ADM MFN PLUS MAINFRAME ORDINAL
  583. RAM M.REQA+1 PLUS PP REQ TABLE ADDR
  584. SHN -12D DROP LOWER BYTE OF ADDR
  585. RAM M.REQA PLUS UPPER BYTE OF ADDR
  586.  
  587. * CHECK FOR TABLE INITIALIZED BY MASTOR
  588.  
  589. LDN 2
  590. STD T1
  591. MAS320 LDM MASTAB,T1 READ FROM EM
  592. SBM MASNAM,T1 CONSTANT 6LMASTOR
  593. NJP MASERR2 -- ERROR, DOES NOT MATCH
  594. SOD T1 DECREMENT BYTE INDEX
  595. PJP MAS320 -- IF BYTES LEFT TO COMPARE
  596.  
  597. TITLE REQUEST A REQUEST AREA FROM MASTOR.
  598. *
  599. * REQUEST A REQUEST AREA FROM MASTOR
  600. *
  601. MAS350 BSS 0
  602. RJM 0,D.REL RELEASE DDP (IF USING ONE)
  603. CALL PAUSE TAKE A BREATH
  604. RJM 0,D.RSV RESERVE DDP (IF USING ONE)
  605. READEM PPREQ,M.REQA,,1
  606. LDM PPREQ READ UPPER BYTE OF WORD
  607. NJP MAS350 -- WAIT FOR PREV REQ TO END
  608. LDM PPREQ+3 LOAD UPPER BYTE OF ADDR
  609. ADM PPREQ+4 PLUS LOWER BYTE OF ADDR
  610. NJP MAS380 -- ALREADY AN AREA ASSIGNED
  611.  
  612. LDK 4000B SIGN BIT, ALONE, INDICATES
  613. * PP WANTS A REQUEST AREA
  614. STM PPREQ
  615. WRITEM PPREQ,M.REQA,,1 POST REQUEST TO MASTOR
  616.  
  617. * CLEAR LOW-ORDER BIT OF ',PPREQTAB', NAME TO
  618. * FLAG NEW REQUEST TO MASTOR. TO AVOID PROBLEMS
  619. * IN READING/WRITING THIS WORD FROM TWO PROCESSES,
  620. * MASTOR SETS THE BIT BEFORE SCANNING, MAS CLEARS
  621. * THE BIT AFTER POSTING THE REQUEST.
  622.  
  623. LDM MASTAB+9 READ LOWER BYTE OF TABLE NAME
  624. SCN 1 CLEAR 2**0 BIT = REQ PENDING
  625. STM MASTAB+9
  626. WRITEM MASTAB+5,,1,1 FLAG REQUEST PENDING
  627. TITLE WAIT FOR MASTOR TO ASSIGN REQUEST AREA.
  628. MAS360 BSS 0
  629. LDC 7777B INITIALIZE TIME-OUT COUNTER
  630. STM MTIM
  631.  
  632. MAS370 BSS 0
  633. RJM 0,D.REL RELEASE DDP (IF USING ONE)
  634. CALL PAUSE TAKE A BREATH
  635. * /--- BLOCK M PARAMS 00 000 78/01/30 12.58
  636. SOM MTIM DECREMENT/TEST DEADMAN TIMER
  637. MJP MASERR6 -- MASTOR SEEMS TO HAVE DIED
  638. RJM 0,D.RSV RESERVE DDP (IF USING ONE)
  639. READEM PPREQ,M.REQA,,1 RE-EXAMINE REQUEST WORD
  640. LDM PPREQ+3 LOAD UPPER BYTE OF ADDR
  641. ADM PPREQ+4 PLUS LOWER BYTE OF ADDR
  642. NJP MAS380 -- MASTOR HAS REPLIED
  643. LDM PPREQ CHECK REQUEST FLAG
  644. ZJP MASERR7 -- MASTOR REJECTED THE REQ.
  645.  
  646. READEM NCLOCK,,MS.CLK,1 READ RUNNING CLOCK
  647. LDM OCLOCK READ PREVIOUS VALUE OF CLOCK
  648. SBM NCLOCK+4 READ LATEST VALUE OF CLOCK
  649. ZJP MAS370 -- CLOCK HASN'7T TICKED
  650. LDM NCLOCK+4 READ LATEST VALUE AND
  651. STM OCLOCK STORE FOR NEXT PASS
  652. UJP MAS360 -- RESTART TIME-OUT COUNTER
  653.  
  654. TITLE POST REQUEST THRU ASSIGNED REQ AREA.
  655. *
  656. * POSTED IN 2 PARTS'; THE PPU TRANSFER TO EM IS
  657. * OFTEN INTERRUPTED BY THE CPU, CAUSING AN IN-
  658. * COMPLETE REQUEST TO BE PROCESSED. TO AVOID
  659. * THIS, WE WRITE THE FIRST WORD AFTER THE REST
  660. * OF THE REQUEST IS SAFELY STORED.)
  661. *
  662. MAS380 BSS 0 POST REQUEST TO MASTOR
  663. WRITEM MREQ+5,REQADD,1,MS.RDIM-1
  664. WRITEM MREQ,REQADD,,1 INITIATE REQUEST PROCESSING
  665.  
  666. * CLEAR LOW-ORDER BIT OF ',PPREQTAB', NAME TO
  667. * FLAG NEW REQUEST TO MASTOR. TO AVOID PROBLEMS
  668. * IN READING/WRITING THIS WORD FROM TWO PROCESSES,
  669. * MASTOR SETS THE BIT BEFORE SCANNING, MAS CLEARS
  670. * THE BIT AFTER POSTING THE REQUEST. (THE BIT
  671. * HAS BEEN CLEARED EARLIER IN THIS ROUTINE, JUST
  672. * WRITE IT TO EM).
  673.  
  674. WRITEM MASTAB+5,,1,1 FLAG REQUEST PENDING
  675.  
  676. *
  677. * WAIT FOR REPLY FROM MASTOR
  678. *
  679. MAS400 BSS 0
  680. LDC 7777B INITIALIZE TIME-OUT COUNTER
  681. STM MTIM
  682.  
  683. MAS420 BSS 0
  684. RJM 0,D.REL RELEASE DDP (IF USING ONE)
  685. CALL PAUSE TAKE A BREATH
  686. SOM MTIM DECREMENT/TEST DEADMAN TIMER
  687. MJP MASERR6 -- MASTOR SEEMS TO HAVE DIED
  688. RJM 0,D.RSV RESERVE DDP (IF USING ONE)
  689. READEM MREQ,REQADD,,MS.RDIM RE-EXAMINE REQUEST
  690. LDM MREQ+4
  691. ZJP MASERR7 -- MASTOR ZEROED THE REQUEST
  692. SHN -11D CHECK FOR COMPLETED REQUEST
  693. NJP MAS600
  694. LDM MMREQ+4 CHECK FOR REQUEST FROM MASTOR
  695. ZJN MAS440
  696. LDM MMREQ CHECK IF REQUEST FROM MASTOR
  697. ZJP MAS500 HAS ALREADY BEEN COMPLETED
  698.  
  699. MAS440 BSS 0
  700. READEM NCLOCK,,MS.CLK,1 READ RUNNING CLOCK
  701. LDM OCLOCK READ PREVIOUS VALUE OF CLOCK
  702. SBM NCLOCK+4 READ LATEST VALUE OF CLOCK
  703. ZJP MAS420 -- CLOCK HASN'7T TICKED
  704. * /--- BLOCK M PARAMS 00 000 78/01/30 12.58
  705. LDM NCLOCK+4 READ LATEST VALUE AND
  706. STM OCLOCK STORE FOR NEXT PASS
  707. UJP MAS400 -- RESTART TIME-OUT COUNTER
  708.  
  709. TITLE PROCESS MASTOR-TO-MAS REQUEST.
  710. *
  711. * PROCESS *MASTOR* TO *MAS* REQUEST
  712. *
  713. MAS500 BSS 0
  714. LDM MMREQ+4 MASTOR-TO-MAS REQUEST CODE
  715. STD T1 STORE FOR USE AS INDEX
  716. SBK MREQL CHECK FOR VALIDITY
  717. PJP MAS595 -- INVALID REQUEST CODE
  718. LDM MREQT,T1 PROCESSING ROUTINE FOR CODE
  719. STD T1 STORE FOR INDEXED JUMP
  720. LJM 0,T1
  721. *
  722. *
  723. MREQT CON MAS595 0 - ERROR
  724. CON MAS510 1 - SET RAX/FLX
  725. CON MAS520 2 - SET CPU/QUEUE PRIORITY
  726. CON MAS530 3 - IDENTIFY LOGIC
  727. CON MAS540 4 - SET MAINFRAME CLOCK
  728. MREQL EQU *-MREQT
  729.  
  730. *
  731. * RETURN REPLY CODE TO MASTOR TO SHOW COMPLETION
  732. *
  733. MAS590 LDC 4000B REQUEST COMPLETED OK
  734. UJN MMRET -- RESPOND TO MASTOR'7S REQ
  735. *
  736. MAS599 LDK ZERL
  737. CRD CM
  738. LDK PPET
  739. STD CM+1 SET ERROR FLAG = PP ABORT
  740. MONITOR CEFM CHANGE ERROR FLAG
  741. CALL DFM,(=10CMAS ABORT)
  742.  
  743. MAS595 LDC 4001B REPORT ERROR (FATAL OR NOT)
  744. * BACK TO MASTOR
  745.  
  746. MMRET BSS 0
  747. STM MMREQ ENTER WITH CODE IN (A)
  748. WRITEM MMREQ,REQADD,1,1
  749. UJP MAS400 -- WAIT FOR NEXT COMMAND
  750. *
  751. *
  752. * /--- BLOCK REQUEST 1 00 000 87/02/24 14.08
  753. TITLE -MAS- PROCESS RAX/FLX REQUEST
  754. *
  755. * PROCESS REQUEST TO SET RAX / FLX OF CALLING JOB
  756. *
  757. *
  758. * WAIT TO INSURE CALLING JOB IN RECALL
  759. *
  760. MAS510 LDC 2000D TWO THOUSANDS LOOPS
  761. STM II
  762. *
  763. MAS511 DELAY 1000D ONE MILLISECOND DELAY
  764. SOM II END TEST
  765. MJP MAS599
  766. LOADCM STATSW READ CONTROL POINT STATUS WORD
  767. CRD D.T0
  768. LDD D.T0+C.CPSTAT LOAD CPU STATUS
  769. *
  770. .NOSV2 IFLT OSLEV,562D NOS V1
  771. LPC 3000B MASK OFF AUTO-RECALL BIT
  772. ZJN MAS511 IF NOT IN AUTO-RECALL
  773. .NOSV2 ELSE NOS V2
  774. SHN -11B CHECK CPU STATUS
  775. LMN 6 6 = AUTO RECALL
  776. NJN MAS511 IF NOT IN AUTO-RECALL
  777. .NOSV2 ENDIF
  778. *
  779. * SET RAX AND FLX TO INDICATED VALUES
  780. *
  781. .NOS252 IFGE OSLEV,678D
  782. LDD EX
  783. NJN MAS513 IF EXTENDED ADDRESSING MODE
  784. .NOS252 ELSE
  785. LDD EM
  786. NJN MAS513 IF ESM MODE
  787. .NOS252 ENDIF
  788. LDM MRAX+1
  789. SHN 6
  790. ADM MRAX
  791. SHN 3
  792. UJN MAS514
  793.  
  794. MAS513 LDM MRAX
  795. MAS514 STD T1
  796. LDN 2 SET NUMBER OF WDS TO READ/WRITE
  797. STM D.T0
  798. LDD CP ADDRESS OF CONTROL POINT AREA
  799. ADN 4 BIAS TO RAX/FLX WORDS
  800. CRM BUFF,D.T0
  801. LDM MMREQ+3 CONVERT RAX
  802. ADD T1
  803. RJM CEP CONVERT TO EXCHANGE PACKAGE
  804. LDD T1
  805. STM BUFF SET UPPER RAX
  806. LDD T2
  807. STM BUFF+1 SET LOWER RAX
  808. LDM MMREQ+2 CONVERT FLX
  809. RJM CEP
  810. LDD T1
  811. STM BUFF+5 SET UPPER FLX
  812. LDD T2
  813. STM BUFF+6 SET LOWER FLX
  814. * /--- BLOCK REQUEST 1 00 000 87/02/24 14.02
  815. *
  816. * CONTROL POINTS ARE VALIDATED TO USE FLAG REGISTER
  817. * OPERATIONS IF THE HIGH-ORDER BIT OF *FLE* IS SET.
  818. * (*FLE* IS THE 'E'M FIELD LENGTH HARDWARE REGISTER.)
  819. * THIS BIT IS NOT INCLUDED IN 'E'M BOUNDS CHECKS, EVEN
  820. * IN THE 800 SERIES MACHINES, WHICH DO NOT HAVE A
  821. * FLAG REGISTER OR EXTERNAL EXTENDED MEMORY.
  822. *
  823. * UNFORTUNATELY, FOR REASONS UNKNOWN, THIS IS NOT
  824. * THE CASE FOR THE 'S3 (845/855). THE BIT IS IN-
  825. * CLUDED IN 'E'M BOUNDS CHECKS. THIS MEANS THAT FLAG-
  826. * VALIDATED CONTROL POINTS HAVE VIRTUALLY LIMITLESS
  827. * 'E'M FIELD LENGTHS. WHEN AN ACCESS EXCEEDS THE
  828. * PHYSICAL BOUNDS, HOWEVER, IT IS TREATED AS A ',PAGE
  829. * FAULT', ON THE 180 SIDE OF THE MICROCODE. THIS
  830. * RESULTS IN A ',HARDWARE MALFUNCTION',, WHICH HANGS
  831. * THE CONTROL POINT. SEE THE 'CYBER 800 'M'I'G'D'S FOR
  832. * MORE INFO.
  833. *
  834. * WE AVOID THE PROBLEM BY NOT SETTING THE BIT ON
  835. * 800 SERIES MAINFRAMES. WE CAN DO THIS BECAUSE
  836. * THEY HAVE NO FLAG REGISTER OPERATIONS ANYWAY.
  837. *
  838. LDD D.A170 CHECK FOR 800 SERIES MAINFRAME
  839. NJN MAS518 -- BRANCH IF 800 SERIES
  840. LDM MMREQ+1
  841. LPN 4 SET IF AUTHORIZED FOR FLAG OPS
  842. SHN 9 MOVE TO HIGH-ORDER BIT
  843. RAM BUFF+5 MERGE INTO UPPER HALF OF *FLE*
  844. MAS518 BSS 0
  845.  
  846. LDD CP ADDRESS OF CONTROL POINT AREA
  847. ADN 4 BIAS TO RAX/FLX WORDS
  848. CWM BUFF,D.T0 REWRITE EXCHANGE PACKAGE
  849. .NOS22 IFGE OSLEV,594D NOS 2.2
  850.  
  851. LDD CP SET PRESERVE FLX BIT IN JCIW
  852. ADK JCIW
  853. CRD CM READ WORD JCIW
  854. * /--- BLOCK REQUEST 1 00 000 84/03/08 20.53
  855. LDD CM+3 SET BIT 22
  856. LPC 5777B
  857. LMC 2000B
  858. STD CM+3
  859. LDD CP WRITE BACK TO JCIW
  860. ADK JCIW
  861. CWD CM
  862.  
  863. .NOS22 ENDIF
  864. UJP MAS590 EXIT
  865. *
  866. *
  867. * /--- BLOCK REQUEST 2 00 000 84/11/14 11.03
  868. TITLE -MAS- PROCESS CPU/QUEUE PRIORITY REQ
  869. *
  870. *
  871. *
  872. * PROCESS REQUEST TO SET CPU PRIORITY AND SUBSYSTEM
  873. * IDENTIFIER (QUEUE PRIORITY).
  874. *
  875. MAS520 LDN ZERL PRE-CLEAR ARGUMENT AREA
  876. CRD CM
  877. LDM MMREQ+3 LOAD REQUESTED CPU PRIORITY
  878. LPC 77B
  879.  
  880. .NOSV2 IFLT OSLEV,562D NOS V1
  881. STD CM+1
  882. ZJP MAS595 ERROR IF ZERO PRIORITY
  883. ADC -77B
  884. PJP MAS595 ERROR IF PRIORITY TOO HIGH
  885. MONITOR RPRM
  886. LDM MMREQ+2 LOAD REQUESTED QUEUE PRIORITY
  887. STD CM+1
  888. ZJP MAS595 ERROR IF ZERO PRIORITY
  889. ADC -LSSS
  890. PJP MAS595 ERROR IF PRIORITY TOO HIGH
  891. LDN 1 1 = SET QUEUE PRIORITY
  892. STD CM+2
  893. MONITOR RPRM
  894.  
  895. .NOSV2 ELSE NOS V2
  896. STD CM+4
  897. ZJP MAS595 IF ZERO PRIORITY
  898. LDN /CPS/CPRS SET CPU PRIORITY FUNCTION CODE
  899. STD CM+1
  900. MONITOR SJCM
  901. LDM MMREQ+2 LOAD REQUESTED SUBSYSTEM ID
  902. STD CM+4
  903. ZJP MAS595 IF ZERO PRIORITY
  904. * ADC -LSSI
  905. * PJP MAS595 IF PRIORITY TOO HIGH
  906. LDN /CPS/SSIS SET SUBSYSTEM ID FUNCTION CODE
  907. STD CM+1
  908. MONITOR SJCM
  909. .NOS27 IFGE OSLEV,716D NOS 2.7.1
  910.  
  911. * CLEAR THE SDM= ENTRY POINT. THIS IS NEEDED SO
  912. * PLATO SUBSYSTEM CONTROL POINT MESSAGES CAN BE
  913. * VIEWED IN LESSONS LIKE *CONSOLE*.
  914.  
  915. LDD CP GET ORIGINAL CONTENTS OF
  916. ADK SEPW SPECIAL ENTRY POINT WORD
  917. CRD CM
  918.  
  919. LDD CM PORTION WITH SDM= ENTRY POINT
  920. SCN 10B CLEAR SDM=
  921. STD CM
  922.  
  923. LDD CP WRITE NEW VALUE BACK TO SEPW
  924. ADK SEPW
  925. CWD CM
  926.  
  927. .NOS27 ENDIF
  928. .NOSV2 ENDIF
  929. UJP MAS590 EXIT
  930. *
  931. *
  932. * /--- BLOCK REQUEST 3 00 000 84/11/14 11.03
  933. TITLE -MAS- PROCESS IDENTIFY LOGIC REQUEST
  934. *
  935. *
  936. *
  937. * PROCESS IDENTIFY LOGIC REQUEST - SET FIRST FOUR
  938. * CHARACTERS OF JOB NAME TO SPECIFIED VALUE
  939. *
  940. MAS530 BSS 0
  941. LDC MMREQ+2 ADDR OF NEW JOB NAME
  942. CALL MAS535 CHECK LEGALITY OF NEW NAME
  943. LDC MMREQ+2 CHANGE JOB NAME
  944. RJM CJN
  945. * NEED FOLLOWING BECAUSE WE MAY HAVE PAUSED IN *CJN*
  946. LDD D.PPWD RE-PLANT ABSOLUTE ADDRESSES
  947. SHN 12
  948. ADD D.PPWD+1
  949. RJM ABS CONVERT TO ABSOLUTE
  950. PLANT CM,PPUWD
  951. LDD CP SET SSJ= TO USE ACCOUNT FILE
  952. ADC SEPW
  953. CRD D.T0
  954. LDD D.T0
  955. SCN 4 CLEAR BIT 50 (SSJ=) IF SET
  956. LMN 4 SET BIT 50 (SSJ= FLAG)
  957. STD D.T0
  958. LDD CP
  959. ADC SEPW
  960. CWD D.T0
  961. UJP MAS590
  962. *
  963. *
  964. * -MAS535-
  965. * CHECKS JOB NAME CHARACTERS LEGAL
  966. MAS535.1 BSS 0
  967. SBK (1R+-1R0) RANGE = NUMERIC
  968. MJN MAS535X -- EXIT IF NUMERIC
  969. SBK (1R -1R+) CHECK FOR SPACE
  970. ZJN MAS535X -- YES, EXIT OK
  971. TO595 UJP MAS595 -- ERROR IF NOT
  972. MAS535 SUBR
  973. STD T1 STORE ADDR OF JOB NAME
  974. LDI T1 LOAD FIRST TWO CHARS
  975. SHN -6 RETAIN ONLY FIRST CHAR
  976. SBK 1R0 RANGE = ALPHA
  977. PJP TO595 -- NO, ERROR
  978. LDI T1 RELOAD FIRST TWO CHARS
  979. LPN 77B RETAIN ONLY SECOND CHAR
  980. SBK 1R0 RANGE = ALPHA
  981. PJP TO595 -- NO, ERROR
  982. AOD T1 INCR ADDR TO NEXT 2 CHARS
  983. LDI T1 LOAD NEXT 2 CHARS
  984. SHN -6 RETAIN ONLY THIRD CHAR
  985. SBK 1R0 RANGE = ALPHA
  986. PJP TO595 -- NO, ERROR
  987. LDI T1 RELOAD CHARS 3-4
  988. LPN 77B RETAIN ONLY FOURTH CHAR
  989. SBK 1R0 RANGE = ALPHA INVALID
  990. .NOSV2 IFGE OSLEV,562D (NOS VERSION 2)
  991. PJP MAS535.1 -- OK IF NOT ALPHA
  992. UJP TO595 -- ELSE, ERROR
  993. .NOSV2 ELSE (NOS VERSION 1)
  994. UJP MAS535.1 -- ALPHAS ARE OK TOO
  995. .NOSV2 ENDIF
  996.  
  997.  
  998. *CALL PLAPCJN
  999. IRA$ SET 1 DEFINE INITIALIZATION
  1000. REL$ SET 1
  1001. BASE M
  1002. *CALL COMPCRA
  1003. BASE *
  1004. IFP$ EQU 1
  1005. EJT$ EQU 1 ASSEMBLE ROUTINE .CEA
  1006. *CALL COMPGFP
  1007. IFP HERE
  1008.  
  1009.  
  1010. *
  1011. *
  1012. * /--- BLOCK REQUEST 4 00 000 78/04/19 02.59
  1013. TITLE PROCESS SET CLOCKS REQUEST
  1014. *
  1015. * PROCESS REQUEST TO SET CLOCKS ON THIS MIAN-FRAME
  1016. * TO CLOCKS ON MAIN-FRAME = 0
  1017. *
  1018. MAS540 LDM MMREQ+5+5+2 GET YR/MONTH
  1019. STD T1
  1020. LPN 77B MASK MONTH
  1021. STD T2 AND SAVE
  1022. LDD T1
  1023. SHN -6 POSITION YEAR
  1024. LPN 3 CHECK FOR LEAP YEAR
  1025. NJN MAS542
  1026. AOM MNTHS+2 FIX FEBRUARY ENTRY
  1027. MAS542 LDN ZERL SET UP MTR FUNCTION
  1028. CRD CM
  1029. CRD D.T0 CLEAR FOR DAY LIMIT
  1030. AOM MNTHS,T2 GET LIMIT (= DAYS IN MONTH + 1)
  1031. STD D.T0
  1032. LDN 4
  1033. STD T3
  1034. LDD MA WRITE VALUES TO MESSAGE AREA
  1035. ADN 1
  1036. STD CM+2
  1037. CWM MMREQ+5,T3 WRITE CLOCKS
  1038. CWD D.T0 AND DAY LIMIT
  1039. LDN 2
  1040. STD CM+1 SET TIME/DATE
  1041. MONITOR DSRM
  1042. UJP MAS590
  1043. MNTHS EQU *-1
  1044. LOC 0
  1045. DATA 31
  1046. DATA 28
  1047. DATA 31
  1048. DATA 30
  1049. DATA 31
  1050. DATA 30
  1051. DATA 31
  1052. DATA 31
  1053. DATA 30
  1054. DATA 31
  1055. DATA 30
  1056. DATA 31
  1057. LOC *O
  1058. * /--- BLOCK END REQ 00 000 86/02/07 11.47
  1059. TITLE -MAS- END REQUEST - RETURN STATUS
  1060. *
  1061. *
  1062. *
  1063. * END OF REQUEST - RETURN STATUS TO CALLING JOB
  1064. *
  1065. MAS600 LDM MREQ+4 LOAD REPLY CODE
  1066. SHN -6
  1067. LPC 37B MASK OFF 5 BIT REPLY CODE
  1068. ADC 4000B SET UPPER BIT OF REPLY BYTE
  1069. STM JREQ+3
  1070. LDN 0
  1071. STM JREQ+4 INSURE COMPLETION BIT CLEAR
  1072. *
  1073. * WRITE REPLY STATUS TO CALLING JOB
  1074. *
  1075. LDN MS.MDIM-1
  1076. STD D.T0 SET NUMBER OF WORDS TO WRITE
  1077. LOADCM PPUWD COMPUTE CM ADDRESS
  1078. ADN 1
  1079. CWM MREQ+10,D.T0 WRITE REPLY PARAMETERS
  1080. LOADCM PPUWD
  1081. CWM JREQ,ON WRITE REPLY STATUS
  1082. LDM MREQ+4 CHECK FOR JOB ABORT RETURN
  1083. SHN -6
  1084. SBN 77B
  1085. ZJN MAS610 IF *MASTOR NOT ACTIVE* ERROR
  1086. ADN 77B
  1087. SHN 17-4
  1088. PJN MAS610 IF SYSTEM ABORT NOT SELECTED
  1089. LDN SYET
  1090. STD CM+1
  1091. MONITOR CEFM
  1092. MAS610 LJM DROP
  1093. * /--- BLOCK MFORD 00 000 86/02/07 11.47
  1094. MFORD TITLE -MAS- RETURN *MFORD*
  1095. *** MFORD - RETURN VALUE OF *MFORD* CONFIG PARAMETER
  1096. *
  1097. * ENTRY (MFN) = VALUE OF *MFORD* CONFIG SYMBOL.
  1098. *
  1099. * EXIT (MREQ+4) = REPLY CODE = 0 = ALL OK.
  1100. * (MREQ+9) = VALUE OF *MFORD* CONFIG SYMBOL.
  1101. *
  1102. * MACROS PLANT.
  1103. *
  1104. * CALLS ABS.
  1105. *
  1106.  
  1107. MFORD BSS 0
  1108. LDN ZERL (A) = LOCATION OF ZERO WORD
  1109. CRM MREQ+5,ON CLEAR RETURN WORD
  1110. LDM MFN (A) = MAINFRAME ORDINAL
  1111. STM MREQ+9
  1112. LDN 0 (A) = REQUEST COMPLETED OKAY
  1113. STM MREQ+4 SET REPLY CODE
  1114. UJP MAS600 EXIT
  1115. *
  1116. *
  1117. * /--- BLOCK CDJ 00 000 86/02/07 11.48
  1118. CDJ TITLE -MAS- CHECK DEFERRED BATCH JOBS.
  1119. *** CDJ - CHECK DEFERRED BATCH JOBS.
  1120. *
  1121. * ENTRY (JREQ - JREQ+4) = 12/0, 12/MA.CDJ, 36/0
  1122. * (JREQ+5 - JREQ+9) = 60/FAMILY NAME
  1123. * (JREQ+10 - JREQ+14) = 60/USER INDEX
  1124. * (JREQ+15 - JREQ+19) = 60/AHMT
  1125. *
  1126. * EXIT REPLY CODE = 0 = ALL OK
  1127. * = 1 = TOO MANY DEFERRED JOBS
  1128. *
  1129.  
  1130. .V2 IFGE OSLEV,562D
  1131. CDJ LDD MA (A) = MESSAGE BUFFER ADDRESS
  1132. CWM JREQ+5,ON (MB) = FAMILY NAME
  1133. SBN 1 RESET ADDR TO (MA)
  1134. CRD FN (FN - FN+4) = FAMILY NAME
  1135. RJM GFO GET FAMILY ORDINAL
  1136. ZJN CDJ1 --- IF FAMILY NAME FOUND
  1137. LDN 0 RETURN ERROR CONDITION
  1138. UJN CDJ2 --- SET ERROR FLAG AND LEAVE
  1139. .V2 ELSE
  1140. CDJ BSS 0
  1141. .V2 ENDIF
  1142.  
  1143. CDJ1 RJM CDV CHECK DEFERRED BATCH VALIDATION
  1144. CDJ2 ADN 1 OFFSET REPLY BY 1
  1145. SHN 6
  1146. STM MREQ+4 SET REPLY CODE
  1147. LDD D.PPWD RELATIVE ADDR UPPER
  1148. SHN 12
  1149. ADD D.PPWD+1 ADD LOWER
  1150. RJM ABS CONVERT TO ABSOLUTE
  1151. ZJP MASERR1 IF BAD ADDRESS
  1152. PLANT CM,PPUWD
  1153. LJM MAS600 EXIT
  1154. * /--- BLOCK CDV 00 000 86/02/07 11.49
  1155. CDV TITLE -MAS- CHECK DEFERRED BATCH VALIDATION.
  1156. *** CDV - CHECK DEFERRED BATCH VALIDATION.
  1157. *
  1158. * ENTRY (FN+4) = FAMILY ORDINAL
  1159. * (JREQ+10 - JREQ+14) = 42/, 18/UI
  1160. * (JREQ+15 - JREQ+19) = AHMT
  1161. *
  1162. * EXIT (A) = -1 VALIDATION IS OK
  1163. * = 0 IF LIMIT EXCEEDED
  1164. *
  1165. * USES T1 - T5, T6 - T6+4, CM - CM+4, SC.
  1166. *
  1167. * CALLS CDB, DBI, GBN.
  1168. *
  1169.  
  1170.  
  1171. CDVR LDN 0 DEFERRED BATCH LIMIT EXCEEDED.
  1172.  
  1173. CDV SUBR ENTRY/EXIT
  1174.  
  1175. * GET DEFERRED BATCH JOB LIMIT.
  1176.  
  1177. LDM JREQ+15+1 (A) = (5*AHMT+1)
  1178. RJM DBI PASS IT THE WHOLE 12 BITS
  1179. MJP CDV8 IF UNLIMITED
  1180. ZJN CDVX IF DEFERRED BATCH NOT ALLOWED
  1181. STD SC SAVE JOB COUNT
  1182. SOD SC DECREMENT JOB COUNT
  1183.  
  1184. .NOSV2 IFGE OSLEV,562D NOS V2
  1185. LDD FN+4 (A) = FAMILY ORDINAL
  1186. LPN 77B LIMIT TO 6 BITS
  1187. SHN 6
  1188. STD T2 (T2) = 6/FO, 6/0
  1189. LDM JREQ+13 (A) = UPPER HALF OF UI
  1190. LPN 37B
  1191. RAD T2 (T2) = 6/FO, 6/TOP OF UI
  1192. LDM JREQ+14 (A) = BOTTOM OF UI
  1193. STD T3 (T2 - T3) = 6/FO, 18/UI
  1194. RJM CDB (T4) = NO. DEFERRED BATCH JOBS
  1195. LDD T6 RESTORE (T3)
  1196. STD T3
  1197. LDD SC (A) = DEFERRED BATCH LIMIT
  1198. SBD T4 SUBTRACT NUMBER FOUND
  1199. PJN CDV8 IF LIMIT NOT REACHED
  1200. LJM CDVR LIMIT REACHED
  1201. .NOSV2 ELSE NOS V1
  1202. LDM JREQ+13 (A) = TOP OF UI
  1203. STD T1
  1204. LDM JREQ+14 (A) = BOTTOM OF UI
  1205. STD T2
  1206. RJM GBN GENERATE BANNER NAME
  1207.  
  1208. * SCAN CONTROL POINT AREA FOR JOBS WITH SAME HASH NAME.
  1209.  
  1210. LDN NCPL GET NUMBER OF CONTROL POINTS
  1211. CRD CM
  1212. AOD CM+3
  1213. STD T7
  1214. CDV4 SOD T7 COUNT JOBS IN CONTROL POINTS
  1215. * /--- BLOCK CDV 00 000 86/02/07 11.50
  1216. ZJN CDV5 IF END OF CONTROL POINTS
  1217. LDD T7
  1218. SHN 7
  1219. ADN JNMW READ JOB NAME
  1220. CRD CM
  1221. LDD CM+3
  1222. LPN 77B
  1223. STD T4
  1224. LDM TOT,T4
  1225. ZJN CDV4 IF NOT VALID ORIGIN TYPE
  1226. LDD CM
  1227. LMD T1
  1228. NJN CDV4 IF NOT THIS USER
  1229. LDD CM+1
  1230. LMD T2
  1231. NJN CDV4 IF NOT THIS USER
  1232. SOD SC DECREMENT JOB COUNT
  1233. PJN CDV4 IF LIMIT NOT REACHED
  1234. LJM CDVR ERROR
  1235.  
  1236. * SCAN FNT FOR JOBS WITH SAME HASH NAME.
  1237.  
  1238. CDV5 LDN FNTP NUMBER OF ENTRIES IN FNT
  1239. CRD T6
  1240. CDV6 LCN 2
  1241. RAD T7
  1242. CALL AQA ADD QFNT FWA IF INITIALIZED
  1243. CRD CM
  1244. LDD T7
  1245. LMD T6
  1246. ZJN CDV7 IF END OF FNT
  1247. LDD CM
  1248. ZJN CDV6 IF EMPTY ENTRY
  1249. LMD T1
  1250. NJN CDV6 IF NOT THIS USER
  1251. LDD CM+1
  1252. LMD T2
  1253. NJN CDV6 IF NOT THIS USER
  1254. LDD CM+4
  1255. ADC -QUFT*100
  1256. PJN CDV6 IF NOT QUEUED FILE
  1257. LDD CM+3
  1258. LPN 77B
  1259. STD T4
  1260. LDM TOT,T4
  1261. ZJN CDV6 IF NOT LEGAL ORIGIN TYPE
  1262. SOD SC DECREMENT JOB COUNT
  1263. PJN CDV6 IF LIMIT NOT REACHED
  1264. LJM CDVR ERROR
  1265.  
  1266. CDV7 BSS 0
  1267. LDD D.COM
  1268. ZJN CDV8 IF NOT A COMSOURCE NOS SYSTEM
  1269. LDN 0
  1270. CALL AQA ADD QFNT FWA IF INITIALIZED
  1271. NJN CDV8 IF QFNT ALREADY SEARCHED
  1272. CALL IQA INITIALIZE QFNT ADDRESSES
  1273. LDD CM+2 SET QFNT LENGTH
  1274. STD T7
  1275. LDN 0 SET RELATIVE FWA OF QFNT
  1276. STD T6
  1277. LJM CDV6
  1278. .NOSV2 ENDIF
  1279.  
  1280. CDV8 LCN 1 DEFERRED BATCH JOB COUNT IS OK
  1281. LJM CDVX
  1282. * /--- BLOCK TOT 00 000 82/10/26 12.40
  1283. SPACE 5,11
  1284. * TOT - TABLE OF ORIGIN TYPES.
  1285. .NOSV2 IFLT OSLEV,562D
  1286.  
  1287.  
  1288. TOT INDEX
  1289. INDEX SYOT,1
  1290. INDEX BCOT,1
  1291. INDEX EIOT,1
  1292. INDEX MXOT
  1293. .NOSV2 ENDIF
  1294. SPACE 4
  1295. * COMMON DECKS
  1296.  
  1297.  
  1298. DBI$ EQU 1
  1299. BASE M
  1300. *CALL COMPCDB
  1301. *CALL COMPCVI
  1302. *CALL COMPGBN
  1303. AQA$ EQU 1 ASSEMBLE ADD QFNT ADDRESS
  1304. QUAL$ SET 1 NO AUTO-QUALIFY FOR COMMON DECKS
  1305. *CALL COMPQFP
  1306. GFO$ EQU 1 ASSEMBLE GET FAMILY ORDINAL
  1307. DFF$ EQU 1 DO NOT ADD FAMILY IF NOT FOUND
  1308. *CALL COMPUFT UPDATE FAMILY ORDINAL TABLE
  1309. BASE *
  1310. * /--- BLOCK VUN 00 000 86/02/07 11.50
  1311. VUN TITLE VALIDATE USER NUMBER
  1312. *** VUN - VALIDATE USER NUMBER
  1313. *
  1314. * ENTRY (JREQ+5 - JREQ+9) = 42/USER 18/INDEX
  1315. *
  1316. * EXIT USER NUMBER/INDEX IS SET IN NEGATIVE FL
  1317. *
  1318. * CALLS NONE.
  1319. * MACROS NFA.
  1320. *
  1321.  
  1322. VUN LDD CP CHECK VAL= VALIDATION
  1323. ADC SEPW
  1324. CRD CM
  1325. LDD CM CHECK VAL=
  1326. SHN 17-1
  1327. MJN VUN1
  1328. LDD CM CHECK SSJ=
  1329. SHN 17-2
  1330. MJN VUN1
  1331. LJM MASERR1 NOT VAL= OR SSJ=
  1332. VUN1 NFA SSJN+UIDS SET VALIDATION WORD
  1333. CWM JREQ+5,ON
  1334.  
  1335. * SET UP *MREQ* TO RESTORE PARAMETERS IN
  1336. * THE CALLING JOB.
  1337.  
  1338. LDK MS.MDIM-1
  1339. STD D.T0
  1340. LOADCM PPUWD
  1341. ADN 1
  1342. CRM MREQ+10,D.T0
  1343. LJM MAS600
  1344. * /--- BLOCK ERR EXITS 00 000 78/03/02 16.57
  1345. TITLE ERROR EXIT ROUTINES
  1346. *
  1347. *
  1348. *
  1349. * FATAL ERROR EXIT ROUTINES
  1350. *
  1351. MASERR1 CALL DFM,ERRMSG1
  1352. UJP MASERRX
  1353. ERRMSG1 DATA C*("PPU.MAS") IMPROPER REQUEST*
  1354. *
  1355. MASERR2 LDD IR+2
  1356. LPN 1
  1357. ZJN MASER2A IF NOT *NO ABORT*
  1358. CALL MESSAG,ERRMSG2
  1359. LJM MASER99
  1360.  
  1361. MASER2A CALL DFM,ERRMSG2
  1362. UJP MASER99
  1363. ERRMSG2 DATA C*("PPU.MAS") MASTOR NOT ACTIVE*
  1364. *
  1365. MASERR3 CALL DFM,ERRMSG3
  1366. UJP MASERRX
  1367. ERRMSG3 DATA C*("PPU.MAS") DDP NOT AVAILABLE*
  1368. *
  1369. MASERR4 UJP MASERRX MESSAGE ALREADY WRITTEN
  1370. *
  1371. MASERR6 CALL DFM,ERRMSG6
  1372. UJP MASERRX
  1373. ERRMSG6 DATA C*("PPU.MAS") MASTOR TIMEOUT*
  1374. *
  1375. MASERR7 CALL DFM,ERRMSG7
  1376. UJP MASER99
  1377. ERRMSG7 DATA C*("PPU.MAS") MASTOR REQUEST = 0*
  1378.  
  1379. * SET *MAS ERROR IN REQUEST.
  1380.  
  1381. MASER99 LDC 7700B
  1382. STM MREQ+4
  1383.  
  1384. * TEST IF NO ABORT SPECIFIED IN THE REQUEST.
  1385.  
  1386. LDD IR+2
  1387. LPN 1
  1388. NJP MAS600 IF NO ABORT SPECIFIED
  1389. *
  1390. *
  1391. * SET CONTROL POINT ERROR FLAG
  1392. *
  1393. MASERRX LDC 4001B MARK ERROR OCCURRED
  1394. STD D.T0+3
  1395. LDN 1
  1396. STD D.T0+4 SET COMPLETION BIT
  1397. LOADCM PPUWD
  1398. ZJP MX100 CHECK IF ADDRESS PLANTED
  1399. CWD D.T0 WRITE COMPLETION BIT
  1400. *
  1401. MX100 LDC ZERL PRE-CLEAR ARGUMENTS
  1402. CRD CM
  1403. LDN PPET
  1404. STD CM+1 SET ERROR FLAG = PPU ABORT
  1405. MONITOR CEFM
  1406. UJP DROP
  1407. *
  1408. *
  1409. * /--- BLOCK DROP PPU 00 000 84/11/14 10.58
  1410. TITLE -MAS- DROP PPU
  1411. *
  1412. *
  1413. * SET COMPLETION BIT IN PPU STATUS WORD
  1414. *
  1415. DROP LOADCM PPUWD ADDRESS OF STATUS WORD
  1416. ZJN DROP110 IF STATUS WORD ILLEGAL
  1417. CRD CM READ STATUS WORD
  1418. LDN 1
  1419. STD CM+4 SET COMPLETION BIT
  1420. LOADCM PPUWD
  1421. CWD CM RE-WRITE STATUS WORD
  1422. *
  1423. * RELEASE TABLE/EQUIPMENT RESERVATIONS AND DROP PPU
  1424. *
  1425. *
  1426. * RELEASE REQUEST AREA
  1427. *
  1428. DROP110 BSS 0
  1429. LDD D.RE CHECK IF EM ROUTINES LOADED
  1430. ZJP DROP300 -- SIMPLY EXIT IF NOT LOADED
  1431. LDM M.REQA
  1432. ADM M.REQA+1 CHECK IF REQUEST ADDRESS SET
  1433. ZJP DROP200 -- DROP RESERVATIONS AND EXIT
  1434. READEM PPREQ,M.REQA,,1 EXAMINE PP REQUEST WORD
  1435. LDM REQADD LOAD UPPER BYTE OF ADDR
  1436. ADM REQADD+1 PLUS LOWER BYTE OF ADDR
  1437. ZJP DROP200 -- NO REQUEST AREA ASSIGNED
  1438.  
  1439. LDM PPREQ READ PP REQUEST FLAG
  1440. NJP DROP200 -- ALREADY FLAGGED FOR RELEASE
  1441.  
  1442. LDC 4000B SET FLAG FOR DELETION
  1443. STM PPREQ
  1444. WRITEM PPREQ,M.REQA,,1 POST RELEASE REQUEST
  1445.  
  1446. WRITEM MASTAB+5,,1,1 GET MASTOR'7S ATTENTION
  1447.  
  1448. DROP200 BSS 0
  1449. RJM 0,D.REL RELEASE DDP/INTERLOCK
  1450.  
  1451. DROP300 BSS 0
  1452. MONITOR DPPM DROP PPU
  1453. UJP PPR
  1454. *
  1455. *
  1456. * /--- BLOCK -PAUSE- 00 000 73/06/01 14.24
  1457. TITLE -PAUSE- CHECK FOR STORAGE MOVE
  1458. *
  1459. *
  1460. *
  1461. * -PAUSE-
  1462. * CHECK FOR STORAGE MOVE OR CONTROL POINT ERROR
  1463. *
  1464. *
  1465. PAUSE SUBR
  1466. LOADCM STATSW GET ADDRESS OF CP STATUS WORD
  1467. CRD D.T0
  1468. LDD D.T0+C.CPEF ERROR FLAG
  1469. NJP DROP110 CPU IS DEAD, GO DROP PPU
  1470. CALL PAUS1 CHECK FOR STORAGE MOVE
  1471. UJN PAUSEX
  1472. *
  1473. *
  1474. *
  1475. * -PAUS1-
  1476. * CHECK FOR IMPENDING STORAGE MOVE
  1477. *
  1478. *
  1479. PAUS1 SUBR
  1480. LDC CMCL
  1481. CRD CM READ MEMORY CONTROL WORD
  1482. LDD CP
  1483. .NOS27 IFGE OSLEV,716D NOS 2.7.1
  1484. SHN -7
  1485. .NOS27 ENDIF
  1486. LMD CM CHECK IF THIS CONTROL POINT
  1487. NJN PAUS1X
  1488. PAUSE ST
  1489. LDD D.PPWD UPPER PART OF RELATIVE ADDRESS
  1490. SHN 12
  1491. ADD D.PPWD+1 ATTACH LOWER PART
  1492. RJM ABS CONVERT TO ABSOLUTE
  1493. ZJP MASERR1
  1494. PLANT CM,PPUWD
  1495. LJM PAUS1X
  1496. *
  1497. *
  1498. TITLE -MESSAG- OUTPUT B-DISPLAY MESSAGE
  1499. *
  1500. *
  1501. *
  1502. * -MESSAG- OUTPUTS B-DISPLAY MESSAGE
  1503. * ON ENTRY - A = ADDRESS OF MESSAGE
  1504. *
  1505. * DESTROYS NO VARIABLES
  1506. *
  1507. *
  1508. MESSAG SUBR
  1509. STM MSG10+1 PLANT PPU ADDRESS OF MESSAGE
  1510. LDD D.T0
  1511. STM MSG20 PRESERVE *D.T0*
  1512. LDN 5
  1513. STD D.T0 SET LENGTH OF MESSAGE
  1514. LDD CP LOAD CONTROL POINT AREA ADDRESS
  1515. ADC MS1W ADD BIAS TO MESSAGE AREA
  1516. *
  1517. MSG10 CWM **,D.T0 WRITE MESSAGE TO CP AREA
  1518. LDM MSG20
  1519. STD D.T0 RESTORE *D.T0*
  1520. UJN MESSAGX
  1521. *
  1522. MSG20 BSS 1
  1523. *
  1524. *
  1525. * /--- BLOCK CEP 00 000 87/02/24 14.10
  1526. CEP TITLE CONVERT RAX/FLX
  1527. ** CEP - CONVERT RAX/FLX TO EXCHANGE PACKAGE VALUE
  1528. *
  1529. * ENTRY - (A) - RAX/FLX IN ALLOCATABLE UNIT
  1530. *
  1531. * EXIT - (T1 - T2) - EXCHANGE PACKAGE VALUE
  1532.  
  1533.  
  1534. CEP SUBR
  1535. STD T1
  1536. .NOS252 IFGE OSLEV,678D
  1537. LDD EX
  1538. NJN CEP1 IF EXTENDED ADDRESSING MODE
  1539. .NOS252 ELSE
  1540. LDD EM
  1541. NJN CEP1 IF ESM MODE
  1542. .NOS252 ENDIF
  1543.  
  1544. * PROCESS STANDARD ADDRESSING
  1545.  
  1546. LDD T1
  1547. LPN 7
  1548. SHN 9
  1549. STD T2
  1550. LDD T1
  1551. SHN -3
  1552. STD T1
  1553. UJN CEPX
  1554.  
  1555. * PROCESS EXTENDED ADDRESSING
  1556.  
  1557. CEP1 LDD T1
  1558. SHN 6
  1559. STD T2
  1560. SHN -12
  1561. STD T1
  1562. UJN CEPX
  1563. * /--- BLOCK STORAGE 00 000 87/02/17 11.32
  1564. TITLE STORAGE DEFINITIONS
  1565.  
  1566. *CALL COMPDV5
  1567. *
  1568. *CALL PLAPABS
  1569. *CALL PLAPDNM
  1570. *CALL PLAPEQN
  1571. *CALL PLAPPLN
  1572. *CALL PLAPVEP
  1573. *
  1574. *
  1575. * (C=DDP) = CHANNEL OF DDP.
  1576. * = -1 IF NO DDP.
  1577. *
  1578. C=DDP1 DATA -1 NO DDP INITIALLY
  1579. .NOS252 IFGE OSLEV,678D
  1580. BSS 1 SECONDARY ACCESS CHANNEL
  1581. .NOS252 ENDIF
  1582. *
  1583. *
  1584. JOBNAM BSS 5 CALLING JOB NAME
  1585. MASNAM DIS ,*MASTOR* *MASTOR* NAME
  1586. MFN DATA 0
  1587. JOBORG BSS 1 JOB ORIGIN CODE
  1588. MASCPA BSS 1 FWA OF MASTOR-S CP AREA
  1589. *
  1590. PPUWD TABLE CM CPU/PPU COMMUNICATION ADDRESS
  1591. STATSW TABLE CM CPU STATUS WORD
  1592. *
  1593. JREQ BSSZ 5*MS.MDIM JOB TO *MAS* REQUEST
  1594. MREQ BSSZ 5*MS.RDIM *MAS* TO *MASTOR* REQUEST
  1595. MMREQ EQU MREQ+5 *MASTOR* TO *MAS* REQUEST
  1596. *
  1597. MASTAB BSSZ 3*5 *MASTOR* POINTER TABLE
  1598. M.REQA EQU MASTAB+11 POINTER TO REQUEST AREA TABLE
  1599. *
  1600. PPREQ BSSZ 5 PP REQUEST WORD
  1601. REQADD EQU PPREQ+3 ADDR OF REQUEST AREA ASSIGNED
  1602. *
  1603.  
  1604. * THE FOLLOWING 15 WORDS ARE READ FROM CM AND
  1605. * MUST BE CONTIGUOUS.
  1606.  
  1607. CHKS BSS 5 CHECKSUM OF PARAMETERS
  1608. ECSP BSS 1 START OF ECS POINTERS
  1609. MRAX BSS 2 *MASTOR* RAX
  1610. MFLX BSS 2 *MASTOR* FLX
  1611. PNW BSS 5 PROGRAM NAME WORD
  1612.  
  1613. *
  1614. RDDP BSSZ 1 DDP RESERVED FLAG
  1615. RREQ BSSZ 1 REQUEST TABLE RESERVED FLAG
  1616. *
  1617. MTIM DATA 0 TIMER
  1618. NCLOCK BSSZ 5 NEW COPY OF MASTOR CLOCK
  1619. OCLOCK BSSZ 5 PREVIOUS COPY OF MASTOR CLOCK
  1620. *
  1621. II BSS 1
  1622. *
  1623. KZERO BSSZ 5
  1624. *
  1625. * /--- BLOCK EM PROCS 00 000 86/02/07 13.02
  1626. TITLE EM PROCS
  1627.  
  1628.  
  1629. EMSTRT EQU * START OF EM HANDLING PROCEDURES
  1630.  
  1631. PPNAM MICRO 1,3,*MAS* PPU NAME FOR DAYFILE MESSAGES
  1632.  
  1633. LIST X
  1634. *CALL EMPROCS
  1635. LIST *
  1636.  
  1637. BUFF EQU EMSTRT+EMPRLNG START OF EXTRA BUFFER
  1638. ERRNG 7776B-BUFF - 0AV BUFFER LENGTH OVERFLOW
  1639.  
  1640. * DEFINITIONS FOR *CPW* (COMMON DECK PLAPCPW).
  1641.  
  1642. PWRD EQU JREQ+15 START OF PASSWORD (5 WORDS)
  1643. AVLA EQU BUFF *0AV* LOAD ADDRESS
  1644.  
  1645. END
plato/source/plaopl/mas.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator