User Tools

Site Tools


cdc:nos2.source:opl871:sfp

Table of Contents

SFP

Table Of Contents

  • [00009] SFP - SCOPE FUNCTION PROCESSOR.
  • [00088] MACRO DEFINITIONS.
  • [00090] EMESS - GENERATE ERROR MESSAGE
  • [00168] ENTRY - DEFINE OVERLAY ENTRY POINT.
  • [00183] FCN - DEFINE FUNCTION PROCESSOR.
  • [00213] LDA - FORM ABSOLUTE CM ADDRESS.
  • [00234] OVERLAY - GENERATE OVERLAY CONSTANTS.
  • [00264] DIRECT LOCATION ASSIGNMENTS.
  • [00296] ERR - PROCESS ERROR.
  • [00311] MSR - PROCESS MASS STORAGE ERROR.
  • [00337] SUBROUTINES WHICH MAY BE OVERLAID.
  • [00339] PRS - PRESET PROGRAM.
  • [00406] TFCN - TABLE OF FUNCTION CODE PROCESSORS.
  • [00474] TSTS - TABLE OF STS FUNCTIONS PROCESSORS.
  • [00489] SES - SET EXIT STATUS.
  • [00866] SDT - SET *SCOPE 3.4* DEVICE NAME/TYPE.
  • [01206] MESSAGE CODE TABLE.
  • [01214] TABLE 1 (000 - 177 MESSAGE CODE)
  • [01271] TABLE 2 (200 - 277 MESSAGE CODE) (SIS MESSAGES)
  • [01344] TABLE 3 (300 - 377 MESSAGE CODES)
  • [01382] MESSAGE AREA.
  • [02216] CKP - CHECKPOINT REQUEST.
  • [02227] REQ - REQUEST EQUIPMENT ASSIGNMENT.
  • [02238] DEP - DUMP EXTENDED MEMORY FIELD LENGTH.
  • [02249] DMP - DUMP CM FIELD LENGTH.
  • [02305] ISP - INITIALIZE SPCW.
  • [02399] NFE - NON-FATAL ERROR PROCESSOR.
  • [02440] SNM - SET NAME IN MESSAGE.
  • [02480] SPN - SET PACKAGE NAME.
  • [02644] PIM - PROCESS MESSAGE INSERTIONS.
  • [02773] NFE - NON-FATAL ERROR PROCESSOR.
  • [02792] SES - SET EXIT STATUS.
  • [02812] ICS - INSERT CHARACTER STRING.
  • [02854] IDM - ISSUE DAYFILE MESSAGE.
  • [02924] SST - SEARCH FOR SYMBOL TABLE.
  • [02972] PMS - PROCESS MICRO SEARCH.
  • [03033] CMP - COMPARE MICRO NAME.
  • [03055] GNT - GET NEXT BLOCK.
  • [03093] FPB - FILL PP BUFFER.
  • [03172] PRESET.
  • [03174] PRS - PRESET ROUTINE.
  • [03338] TFIN - TABLE OF FUNCTION CODE TRANSLATIONS.

Source Code

SFP.txt
  1. IDENT SFP,SFP
  2. PERIPH
  3. BASE MIXED
  4. QUAL$ EQU 1 DEFINES UNQUALIFIED COMMON DECKS
  5. SST
  6. SYSCOM
  7. *COMMENT SFP - SCOPE FUNCTION PROCESSOR.
  8. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  9. TITLE SFP - SCOPE FUNCTION PROCESSOR.
  10. SPACE 4,10
  11. ***** SFP - SCOPE FUNCTION PROCESSOR.
  12. * D. J. TAYLOR. 72/09/27.
  13. SPACE 4,10
  14. *** *SFP* IS A FUNCTION PROCESSOR WHICH IS CALLED BY THE
  15. * PPR SUBROUTINE *PLL* WHENEVER *PLL* IS UNABLE TO FIND A
  16. * REQUESTED PP PROGRAM. *SFP* WILL CHECK THE REQUESTED PP
  17. * PACKAGE AGAINST A TABLE OF ACCEPTABLE PP PACKAGE CALLS AND,
  18. * IF LEGAL, WILL CALL THE ASSOCIATED FUNCTION PROCESSOR TO
  19. * PROCESS THE REQUEST. THE FUNCTION PROCESSORS ARE DESIGNED
  20. * TO PROVIDE *SCOPE 3.4* CAPABILITY.
  21. SPACE 4,10
  22. *** CALL.
  23. *
  24. *
  25. * *SFP* IS CALLED DIRECTLY BY THE PPR SUBROUTINE *PLL*.
  26. SPACE 4,10
  27. *** ENTRY CONDITIONS.
  28. *
  29. *
  30. * (IR - IR+4) = ORGINAL PP PROGRAM CALL.
  31. * (PLLA - PLLA+1) = PP PACKAGE BEING CALLED.
  32. SPACE 4,10
  33. *** FUNCTIONS.
  34. *
  35. * THE FOLLOWING ARE THOSE PP PACKAGES WHO HAVE A ASSOCIATED
  36. * FUNCTION PROCESSOR -
  37. *
  38. * STS - *SCOPE 3.4* STATUS PACKAGE
  39. * MSD - *SCOPE 3.4* SDA/SIS MESSAGE GENERATOR
  40. * PFE - *SCOPE 3.4* EXTEND/ALTER FUNCTION
  41. * ACE - *SCOPE 3.4* ADVANCE COMMAND.
  42. * CKP - *SCOPE 3.4* CHECKPOINT
  43. * REQ - *SCOPE 3.4* REQUEST CALL
  44. * DMB - DUMP CM/EXTENDED MEMORY FIELD LENGTH IN BINARY.
  45. * DMM - DUMP MACHINE MEMORY.
  46. * DMP - DUMP FIELD LENGTH
  47. * DMD - DUMP FIELD LENGTH - DISPLAY CODE
  48. * DEP - DUMP EXTENDED MEMORY FIELD LENGTH
  49. * DED - DUMP EXTENDED MEMORY FIELD LENGTH - DISPLAY CODE
  50. * PRM - *SCOPE 3.4* PERMISSION CHECKING FUNCTION
  51. * D00 - *SCOPE 3.4* ERROR TEXT PROCESSOR
  52. SPACE 4,10
  53. *** DAYFILE MESSAGES.
  54. *
  55. *
  56. * *XXX NOT IN PP LIB.*
  57. * THE PP PACKAGE, XXX, WAS NOT FOUND IN THE PPU
  58. * LIBRARIES.
  59. *
  60. * *XXX NOT IN PP LIB. CALLED BY YYY.*
  61. * THE PP PACKAGE, XXX, WAS CALLED BY THE PP PROGRAM,
  62. * YYY, AND WAS NOT FOUND IN THE PPU LIBRARIES.
  63. *
  64. * * SFP CALL ERROR.*
  65. * *SFP* WAS CALLED DIRECTLY AND NOT BY *PLL*.
  66. *
  67. * * SFP/XXX PARAMETER ERROR.*
  68. * THE PARAMETER ADDRESS SPECIFIED IN THE INPUT REGISTER
  69. * IS OUT OF RANGE. THE PROGRAM BEING CALLED IS XXX.
  70. *
  71. * *MONITOR CALL ERROR.*
  72. * THIS MESSAGE IS DETECTED BY *SFP* BUT IS ISSUED BY
  73. * *1AJ*.
  74. SPACE 4,10
  75. * COMMON DECKS.
  76.  
  77.  
  78. *CALL COMPMAC
  79. *CALL COMSCPS
  80. *CALL COMSMSC
  81. *CALL COMSMSP
  82. QUAL COMSMTX
  83. *CALL COMSMTX
  84. QUAL *
  85. *CALL COMSPIM
  86. *CALL COMSWEI
  87.  
  88. TITLE MACRO DEFINITIONS.
  89. EMESS SPACE 4,20
  90. ** EMESS - GENERATE ERROR MESSAGE
  91. *
  92. * EMESS TYPE,KEY,ERR,COM,RET,CODE,(MESSAGE)
  93. *
  94. * TYPE ERROR TYPE. MUST BE EITHER *FA* - FATAL OR
  95. * *TR* - TRIVAL.
  96. *
  97. * KEY KEY PROCESSING. MUST BE EITHER *KY* - KEY
  98. * PROCESSING REQUIRED, OR *NK* - NO KEY
  99. * PROCESSING REQUIRED.
  100. *
  101. * ERR MESSAGE CODE ORDINAL MINUS TABLE OFFSET. THIS
  102. * PARAMETER MUST BE 3 CHARACTERS LONG IN MACRO
  103. * CALL.
  104. *
  105. * COM COMMENT TO ERROR FILE. MUST BE EITHER *CM* -
  106. * COMMENT TO ERROR FILE, OR *NC* - NO COMMENT TO
  107. * ERROR FILE.
  108. *
  109. * RET RETURN FLAG. MUST BE EITHER *RT* - USER EXITS
  110. * ROUTINE AT ENTRY POINT, OR *NR* - USER EXITS
  111. * BY A JUMP INSTRUCTION.
  112. *
  113. * CODE RETURN CODE. A FOUR LETTER RETURN CODE
  114. * INFORMING THE USER OF AN ERROR.
  115. *
  116. * MESSAGE ERROR MESSAGE. NO LEADING BLANKS ALLOWED.
  117. * IF FIRST CHARACTER A BLANK, MESSAGE MUST
  118. * START IN COLUMN 2 OF A FOLLOWING CONTINUATION
  119. * COMMAND.
  120.  
  121.  
  122. PURGMAC EMESS
  123.  
  124.  
  125. EMESS MACRO TY,KE,ER,CT,RC,CD,MS
  126. .K MICRO 1,1,*MS*
  127. IFC NE,*".K"* *
  128. .K MICRO 1,,*MS*
  129. ELSE 4
  130. .K MICRO 34,1,*MS*
  131. IFC EQ,*".K"**,1
  132. ERR * -MESSAGE- NOT STARTED IN COL 2 OF CONT. LINE.*
  133. .K MICRO 34,,*MS*
  134. IFC EQ,*TY*FA*
  135. VFD 1/1
  136. ELSE 3
  137. IFC NE,*TY*TR*,1
  138. ERR * INCORRECT -TYPE- PARAMETER.*
  139. VFD 1/0
  140. IFC EQ,*KE*KY*
  141. VFD 1/1
  142. ELSE 3
  143. IFC NE,*KE*NK*,1
  144. ERR * INCORRECT -KEY- PARAMETER.*
  145. VFD 1/0
  146. IFC EQ,*ER**,1
  147. ERR * UNDEFINED -ERR- PARAMETER.*
  148. VFD 9/ER
  149. IFC EQ,*CT*CM*
  150. VFD 1/1
  151. ELSE 3
  152. IFC NE,*CT*NC*,1
  153. ERR * INCORRECT -COM- PARAMETER.*
  154. VFD 1/0
  155. IFC EQ,*RC*RT*
  156. VFD 1/0
  157. ELSE 3
  158. IFC NE,*RC*NR*,1
  159. ERR * INCORRECT -RET* PARAMETER.*
  160. VFD 1/1
  161. IFC EQ,*CD**,1
  162. ERR * UNDEFINED -CODE- PARAMETER.*
  163. VFD 2/0
  164. VFD 9/CD
  165. DATA C*".K"*
  166. EMESS ENDM
  167. ENTRY SPACE 4,10
  168. ** ENTRY - DEFINE OVERLAY ENTRY POINT.
  169. *
  170. * ENTRY NAME
  171. *
  172. * NAME NAME OF ENTRY ADDRESS
  173.  
  174.  
  175. PURGMAC ENTRY
  176.  
  177. ENTRY MACRO NAME
  178. QUAL
  179. NAME EQU *+1R".M"*10000
  180. QUAL ".O"
  181. ENTRY ENDM
  182. FCN SPACE 4,10
  183. ** FCN - DEFINE FUNCTION PROCESSOR.
  184. *
  185. *
  186. * CALL FCN NAME,CHECK
  187. *
  188. * CALL NAME OF CALLING PP PACKAGE.
  189. *
  190. * NAME NAME OF ASSOCIATED FUNCTION PROCESSOR.
  191. *
  192. * CHECK IF DEFINED, A VALID PARAMETER ADDRESS IS
  193. * CONTAINED IN BITS 0 - 17 OF CALL.
  194.  
  195.  
  196. PURGMAC FCN
  197.  
  198. MACRO FCN,A,B,C
  199. NOREF .I
  200. .I SET 0
  201. LOC .I/3
  202. IFC EQ,*C**
  203. VFD 1/1
  204. ELSE 1
  205. VFD 1/0
  206. VFD 5/B/10000
  207. .J MICRO 1,,*A*
  208. VFD 18/3L".J"
  209. CON B-B/10000*10000
  210. .I SET .I+3
  211. ENDM
  212. LDA SPACE 4,10
  213. ** LDA - FORM ABSOLUTE CM ADDRESS.
  214. *
  215. * LDA X,M
  216. *
  217. * X DIRECT CELLS CONTAINING RELATIVE ADDRESS
  218. *
  219. * M IF SPECIFIED, ONLY LOWER 17 BITS OF (X - X+1)
  220. * ARE USED.
  221.  
  222. PURGMAC LDA
  223.  
  224. LDA MACRO X,M
  225. LDD X
  226. IFC NE,*M**,1
  227. LPN 37
  228. SHN 6
  229. ADD RA
  230. SHN 6
  231. ADD X+1
  232. LDA ENDM
  233. OVERLAY SPACE 4,10
  234. ** OVERLAY - GENERATE OVERLAY CONSTANTS.
  235. *
  236. * OVERLAY (TEXT)
  237. *
  238. * TEXT TEXT OF SUBTITLE.
  239.  
  240.  
  241. PURGMAC OVERLAY
  242.  
  243. * OVERLAY CONTROL.
  244.  
  245.  
  246. .N SET 0
  247. OVLB MICRO 1,, 2S BASE OVERLAY NAME
  248.  
  249. OVERLAY MACRO TEXT
  250. QUAL
  251. .N SET .N+1
  252. .M MICRO .N,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
  253. .O MICRO 1,3, "OVLB"".M"
  254. QUAL ".O"
  255. TTL SFP/".O" - TEXT
  256. TITLE
  257. IDENT ".O",OVL TEXT
  258. *COMMENT SFP - TEXT
  259. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  260. ORG OVL
  261. LJM *
  262. UJN *-2
  263. OVERLAY ENDM
  264. TITLE DIRECT LOCATION ASSIGNMENTS.
  265. * DIRECT LOCATION ASSIGNMENTS.
  266.  
  267. FS EQU 20 - 24 FST ENTRY (5 LOCATIONS)
  268. CN EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS)
  269. PN EQU 35 - 36 PACKAGE NAME (2 LOCATIONS)
  270. PI EQU 37 PARAMETER AREA INDEX
  271. EI EQU 46 ERROR NUMBER
  272. OC EQU 47 JOB ORGIN CODE
  273. FN EQU 40 - 44 FILE NAME (5 LOCATIONS)
  274. FA EQU 57 ADDRESS OF FNT ENTRY
  275. SP EQU 60 - 64 COMMAND POINTER (5 LOCATIONS)
  276. SFP TITLE MAIN PROGRAM.
  277. ** MAIN PROGRAM.
  278.  
  279.  
  280. ORG PPFW
  281.  
  282. SFP PSN ENTRY FROM *PPR*
  283. PSN SPACE FOR RETURN JUMP FROM *EXR*
  284. RJM PRS PRESET (ENTRY FROM *EXR*)
  285. SFP1 LDC 0
  286. SFPA EQU *-1 (OVERLAY NAME)
  287. ZJN SFP2 IF NO OVERLAY REQUIRED
  288. LMC 2L"OVLB" LOAD OVERLAY
  289. RJM EXR
  290. SFP2 LJM * PROCESS REQUEST
  291. SFPB EQU *-1
  292.  
  293. SFPX MONITOR DPPM DROP PP
  294. LJM PPR EXIT TO PP RESIDENT
  295. ERR SPACE 4,10
  296. ** ERR - PROCESS ERROR.
  297. *
  298. * ENTRY (A) = ERROR NUMBER.
  299.  
  300.  
  301. ERR STD EI
  302. LDC ERP
  303. STM SFPB SET ERROR PROCESSING ENTRY
  304. SHN -14
  305. STM SFPA SET OVERLAY NAME
  306. UJN SFP1 LOAD ERROR PROCESSING OVERLAY
  307.  
  308. ERRA BSS 5 STORAGE FOR ERROR TEXT DECK NAME
  309. ERRB BSS 1 STORAGE FOR ERROR TEXT MESSAGE NUMBER
  310. MSR SPACE 4,10
  311. ** MSR - PROCESS MASS STORAGE ERROR.
  312. *
  313. * ENTRY (T5) = EST ORDINAL OF DEVICE WITH ERROR.
  314. *
  315. * EXIT TO *SFPX* IF ERROR IS NOT RECOVERABLE OR ROLLABLE.
  316. * TO *1RJ* TO ROLL JOB IF ERROR IS RECOVERABLE AND
  317. * JOB IS ROLLABLE.
  318.  
  319.  
  320. MSR BSS 0 ENTRY
  321. LDM RDCT CHECK FOR NON-RECOVERABLE ERROR
  322. SHN 21-12
  323. MJN MSR1 IF NON-RECOVERABLE MASS STORAGE ERROR
  324. LDM MSD CHECK FOR SUBSYSTEM
  325. SHN 21-13
  326. PJN MSR1 IF SUBSYSTEM, RETURN ERROR
  327. LDD T5 EST ORDINAL OF DEVICE
  328. STD IR+4
  329. EXECUTE 1RJ ROLL JOB
  330. * LJM PPR DOES NOT RETURN
  331.  
  332. MSR1 MONITOR ABTM ABORT CONTROL POINT
  333. LJM PPR EXIT
  334.  
  335. USE OVERLAY
  336. OVL EQU *+10
  337. TITLE SUBROUTINES WHICH MAY BE OVERLAID.
  338. PRS SPACE 4,30
  339. ** PRS - PRESET PROGRAM.
  340. *
  341. * CHECKS THE PP PACKAGE FOR WHICH *PLL* COULD NOT FIND
  342. * THE ASSOCIATED ROUTINE AGAINST A TABLE OF SPECIAL FUNCTIONS
  343. * ACCEPTABLE. IF PACKAGE ACCEPTABLE AS SPECIAL FUNCTION, A
  344. * CHECK IS PERFORMED FOR VALID FUNCTION CODE AND PARAMETER
  345. * ADDRESS WITHIN USER AREA.
  346. *
  347. * ENTRY (IR) = ADDRESS OF REQUESTING PP PROGRAM.
  348. * (PLLA) = FIRST CHARACTER OF PP PACKAGE BEING CALLED.
  349. * (PLLB) = SECOND AND THIRD CHARACTERS OF PACKAGE NAME.
  350. *
  351. * EXIT *SFPA* = FUNCTION PROCESSOR NAME.
  352. * *SFPB* = FUNCTION PROCESSOR ENTRY ADDRESS
  353. * (PN - PN+1) = PACKAGE NAME.
  354. *
  355. * USES T6, PN - PN+1.
  356. *
  357. * MACROS PAUSE.
  358.  
  359. PRS SUBR ENTRY/EXIT
  360. LDM PLLA STORE PACKAGE NAME
  361. STD PN
  362. LDM PLLB
  363. STD PN+1
  364.  
  365. * CHECK FOR LEGAL PP PACKAGE CALL.
  366.  
  367. LDC TFCN-3 SET START OF FUNCTION TABLE
  368. STD T6
  369. PRS1 LDN 3 ADVANCE TABLE ADDRESS
  370. RAD T6
  371. LDI T6
  372. LPN 77
  373. ZJN PRS4 IF NOT IN TABLE
  374. LMD PN COMPARE NAME
  375. SHN 14
  376. LMM 1,T6
  377. LMD PN+1
  378. NJN PRS1 IF NO MATCH
  379.  
  380. * SET PROCESSOR PARAMETERS.
  381.  
  382. LDM 2,T6 SET PROCESSOR ADDRESS
  383. STM SFPB
  384. LDI T6 SET OVERLAY
  385. SHN -6
  386. LPN 37
  387. STM SFPA
  388. LDI T6 CHECK PARAMETER PRESENT
  389. SHN -13
  390. NJN PRS5 IF NO PARAMETER CHECK
  391. LDD IR+3 CHECK PARAMETER ADDRESS
  392. LPN 77
  393. SHN 14
  394. LMD IR+4
  395. SHN -1
  396. ZJN PRS3 IF INCORRECT REQUEST
  397. SHN -5
  398. SBD FL
  399. MJN PRS5 IF ADDRESS IN FL
  400. PRS3 LDN /ERR/PAE&/ERR/PCE *SFP/XXX PARAMETER ERROR.*
  401. PRS4 LMN /ERR/PCE *MONITOR CALL ERROR.*
  402. LJM ERR
  403.  
  404. PRS5 LJM PRSX RETURN
  405. TFCN SPACE 4,10
  406. ** TFCN - TABLE OF FUNCTION CODE PROCESSORS.
  407. *
  408. * ENTRY 3 WORDS.
  409. *
  410. *T 1/ C,5/ OV,18/ PP PACKAGE,12/ ADDR
  411. *
  412. * PP PACKAGE - NAME OF LEGAL PP PACKAGE CALL
  413. * OV OVERLAY NAME
  414. * ADDR ADDRESS OF FUNCTION PROCESSOR
  415. * C 0 IF TO CHECK PARAMETER ADDRESS
  416.  
  417.  
  418. TFCN BSS 0
  419.  
  420. STS FCN STS,C STATUS PROCESSOR
  421. MSD FCN EMG,C SDA/SIS MESSAGE GENERATOR
  422. PFE FCN PFE,C *ALTER* FUNCTION
  423. ACE FCN ACE,C ADVANCE COMMAND
  424. PRM FCN PRM,C PERMISSION CHECKING FUNCTION
  425. CKP FCN CKP *SCOPE 3.4* CHECKPOINT REQUEST
  426. REQ FCN REQ,C *SCOPE 3.4* REQUEST
  427. DMB FCN DMP DUMP CM/ECS FIELD LENGTH REQUEST - BINARY
  428. DMM FCN DMP DUMP MACHINE MEMORY REQUEST
  429. DMP FCN DMP DUMP FIELD LENGTH REQUEST
  430. DMD FCN DMP DUMP FIELD LENGTH REQUEST - DISPLAY CODE
  431. DEP FCN DEP DUMP EXTENDED MEMORY FIELD LENGTH REQUEST
  432. DED FCN DEP DUMP ECS FL REQUEST - DISPLAY CODE
  433. D00 FCN D00,C ERROR TEXT PROCESSOR
  434. FIN FCN FIN,C FILE INFORMATION REQUEST
  435. SFP FCN ERR DETECT INCORRECT DIRECT CALL
  436. ERRNZ /ERR/SCE-0 INSURE DIRECT CALL ERROR IS ZERO
  437.  
  438. LOC *O
  439. CON 0 TERMINATE TABLE
  440.  
  441. OVERFLOW
  442. OVERLAY (STS - STATUS PROCESSOR.)
  443. STE SPACE 4
  444. ENTRY STS ENTRY
  445. LDA IR+3
  446. CRD SP READ STATUS HEADER
  447. LDN 0
  448. STD SP+2 CLEAR RETURN LENGTH
  449. LDD SP+1
  450. NJN STS2 IF LIST LENGTH .NE. 0
  451. STS1 LDN /ERR/PAE
  452. LJM ERR *PARAMETER ERROR*
  453.  
  454. STS2 LDD IR+3
  455. SHN 14
  456. LMD IR+4
  457. ADD SP+1 CHECK LIST LENGTH
  458. ADN 1
  459. SHN -6
  460. SBD FL
  461. PJN STS1 IF END OF LIST BEYOND FL
  462. LDD IR+2
  463. NJN STS4 IF FUNCTION CODE .NE. 0
  464. STS3 LDN /ERR/IAF * SFP/STS INCORRECT FUNCTION CODE.*
  465. LJM ERR PROCESS ERROR
  466.  
  467. STS4 SBN TSTSL
  468. PJN STS3 IF FUNCTION OUT OF RANGE
  469. LDM TSTS-1,IR+2
  470. STD T2 SET PROCESSOR ADDRESS
  471. LJM 0,T2
  472.  
  473.  
  474. ** TSTS - TABLE OF STS FUNCTIONS PROCESSORS.
  475. *
  476. *T 12/ ADDR
  477. *
  478. * ADDR FUNCTION ADDRESS
  479.  
  480.  
  481. TSTS BSS 0
  482. LOC 1
  483. CON STE
  484. CON STF
  485. CON STP
  486. TSTSL EQU * *TSTS* TABLE LENGTH
  487. LOC *O
  488. SES SPACE 4,10
  489. ** SES - SET EXIT STATUS.
  490. *
  491. * EXIT FUNCTION SET COMPLETE.
  492. *
  493. * USES SP+4.
  494. *
  495. * MACROS LDA.
  496.  
  497.  
  498. SES LDN 1
  499. STD SP+4 SET FUNCTION COMPLETE
  500. LDA IR+3
  501. CWD SP
  502. LJM SFPX RETURN
  503. EJECT
  504. STE SPACE 4,30
  505. *** FUNCTION 01 - RETURN MASS STORAGE DEVICES STATUS.
  506. *
  507. * RETURNS STATUS OF MASS STORAGE DEVICES STARTING AT
  508. * ADDRESS+1 OF ADDRESS CONTAINED IN BITS 0 - 17 OF PROGRAM
  509. * CALL. RETURN AREA IS DEFINED BY ADDRESS -
  510. *
  511. *
  512. *T ADR 12/ ,12/ LL,12/ LR,23/ ,1/A
  513. *
  514. * LL NUMBER OF WORDS, EXCLUDING THIS HEADER WORD, TO BE
  515. * USED FOR RETURN INFORMATION; MUST BE SET BY USER TO
  516. * OTHER THAN 0.
  517. *
  518. * LR NUMBER OF STATUS WORDS RETURNED.
  519. *
  520. * A AUTO RECALL REPLY; SET TO 0 BY USER AND SET TO 1 WHEN
  521. * REQUEST IS COMPLETE.
  522. *
  523. *
  524. * THE MASS STORAGE DEVICE STATUS IS RETURNED, 1 WORD
  525. * PER DEVICE, IN THE FOLLOWING FORMAT -
  526. *
  527. *
  528. *T ADR+N 3/ ,9/ STATUS,12/ DEV TYPE,12/ EST ORD,6/ CHAN,6/ EQ,12/ PRUS
  529. *
  530. * STATUS 000 - NOT AVAILABLE, OFF, NOT IN USE
  531. * 040 - UNLOADED PACK
  532. * 120 - *NOS* SYSTEM ROUTINES
  533. * 140 - *NOS* SYSTEM ROUTINES ON PACK
  534. * 620 - CONTAINS PERMANENT FILES
  535. * 640 - PACK WITH PERMANENT FILES
  536. * 700 - *NOS* SYSTEM AND PERMANENT FILES
  537. * 740 - *NOS* SYSTEM AND PERM FILES ON PACK
  538. *
  539. * DEV TYPE *SCOPE 3.4* HARDWARE MNEMONIC IN DISPLAY CODE.
  540. * AZ - 844-41 DISK SYSTEM
  541. *
  542. * PRUS NUMBER OF PRUS/100 OCTAL OF SPACE REMAINING ON THE
  543. * DEVICE. A VALUE OF 7777 INDICATES AT LEAST 262,100
  544. * PRUS AVAILABLE.
  545.  
  546.  
  547. STE BSS 0 ENTRY
  548. LDC =C$ **** ENDING SUPPORT OF STS FUNCTION 01 ****.$
  549. RJM DFM
  550. LDN ESTP
  551. CRD T6 READ EST POINTER
  552. LDD T6+3 SET LAST MASS STORAGE ORDINAL + 1
  553. STD T7
  554. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  555. STD CN+2
  556. STE1 ZJN SES IF END OF LIST
  557. STE2 AOD CN+2
  558. LMD T7
  559. ZJN SES IF END OF MS ENTRIES
  560. SFA EST,CN+2 READ EST ENTRY
  561. ADK EQDE
  562. CRD CM
  563. LDD CM CHECK MS DEVICE
  564. SHN 21-13
  565. PJN STE2 IF NOT MASS STORAGE
  566. SHN 13-6
  567. PJN STE3 IF DEVICE AVAILABLE
  568. LDN 0
  569. STE3 SHN -1 FORM INDEX TO STATUS TABLE
  570. LPN 5
  571. STD T2
  572. LDD CM+4 CHECK PERMANENT FILE STATUS
  573. SHN 3
  574. ADN PUGL
  575. CRD FN
  576. LDD FN+3
  577. LPN 17
  578. ADD FN+4
  579. ZJN STE4 IF NOT A PERMANENT FILE DEVICE
  580. LDN 2
  581. RAD T2
  582. STE4 LDM TSTE,T2 SET DEVICE STATUS
  583. STD CN
  584. LDD CM+2
  585. LPC 7000 EXTRACT EQUIPMENT
  586. SHN 3
  587. LMD CM+1 MERGE CHANNEL
  588. SHN 6
  589. STD CN+3 STORE CHANNEL/EQUIPMENT
  590. RJM SDT
  591. STD CN+1 SET DEVICE MNEMONIC
  592. LDD CM
  593. LPN 3
  594. ZJN STE5 IF DEVICE LOGICALLY *ON*
  595. LDN 0
  596. STD CN CLEAR STATUS BYTE
  597. STE5 LDD CM+4
  598. SHN 3 READ MST FOR DEVICE
  599. ADK TDGL
  600. CRD CM
  601. LDD CM
  602. SHN 14 FORM AVAILABLE SECTOR COUNT
  603. LMD CM+1
  604. SHN -6 SECTOR COUNT / 100B
  605. STD CN+4
  606. AOD SP+2 BUMP WORDS RETURNED COUNT
  607. LDA IR+3
  608. ADD SP+2 COPY ENTRY TO CM
  609. CWD CN
  610. LDD SP+1 CHECK FOR END OF LIST
  611. LMD SP+2
  612. LJM STE1 LOOP
  613.  
  614.  
  615. TSTE CON 0 TABLE OF DEVICE STATUS RETURNED
  616.  
  617. LOC 0
  618. VFD 12/0040 UNLOAD PACK
  619. VFD 12/0620 CONTAINS PERMANENT FILES
  620. VFD 12/0640 PACK WITH PERMANENT FILES
  621. VFD 12/0120 *NOS* SYSTEM ROUTINES
  622. VFD 12/0140 *NOS* SYSTEM ROUTINES ON PACK
  623. VFD 12/0700 *NOS* SYSTEM AND PERMANENT FILES
  624. VFD 12/0740 *NOS* SYSTEM AND PERM FILES ON PACK
  625. LOC *O
  626. STF SPACE 4,30
  627. *** FUNCTION 02 - RETURN FILE STATUS.
  628. *
  629. * RETURNS TO THE CALLING PROGRAM THE FNT/FST ENTRIES
  630. * OF FILES REQUESTED WHOSE NAMES ARE SET IN EVERY THIRD
  631. * LOCATION STARTING WITH PARM+1 OF ADDRESS CONTAINED IN THE
  632. * *PARM* FIELD OF THE CALLING PROGRAM. IF THE FILE EXISTS,
  633. * THE FILE NAME WILL BE REPLACED BY THE FNT/FST OF *NOS*
  634. * MAPPED INTO THE *SCOPE 3.4* FNT/FST. IF THE FILE
  635. * DOES NOT EXIST, THE FILE NAME WILL BE ZEROED OUT.
  636. *
  637. * FORMAT OF LOCATION POINTED TO BY *PARM* -
  638. *
  639. *
  640. *T PARM 12/ ,12/ LL,12/ LR,23/ ,1/A
  641. *
  642. * LL NUMBER OF WORDS, EXCLUDING THIS HEADER WORD, TO BE
  643. * USED FOR RETURN INFORMATION; MUST BE SET BY USER TO
  644. * A MULTIPLE OF THREE.
  645. *
  646. * LR LENGTH OF STATUS AREA RETURNED.
  647. *
  648. * A AUTO RECALL REPLY - SET TO ZERO BY USER AND SET TO ONE
  649. * WHEN REQUEST IS COMPLETE.
  650. *
  651. * FORMAT OF MAPPED 3 WORD *NOS* FNT/FST.
  652. *
  653. *T 42/ FILE NAME, 18/ 0
  654. *T, 12/ DEVT, 48/ 0
  655. *T, 36/ 0, 4/ PERM, 20/ 0
  656.  
  657.  
  658. STF BSS 0 ENTRY
  659. LDN SSTL CHECK LOGGING ENABLED
  660. CRD CM
  661. LDD CM+3
  662. SHN 21-4
  663. MJN STF0 IF ANALYST LOGGING DISABLED
  664. LDC =C$ **** USE *FILINFO* IN PLACE OF *STS* CALL ****.$
  665. RJM DFM
  666. STF0 LCN 1 INITIALIZE PARAMETER INDEX
  667. STD PI
  668. STF1 LDN 3 ADVANCE PARAMETER INDEX
  669. RAD PI
  670. LDA IR+3
  671. ADD PI READ FILE NAME
  672. CRD FN
  673. RJM SAF SEARCH FOR ASSIGNED FILE
  674. NJN STF3 IF FILE FOUND
  675. LDN ZERL
  676. CRD FN
  677. CRD FS CLEAR FNT/FST RETURN
  678. CRD CN
  679. STF2 LDA IR+3
  680. ADD PI
  681. CWD FN WRITE FNT TO CENTRAL
  682. ADN 1
  683. CWD FS COPY FST
  684. ADN 1
  685. CWD CN
  686. LDN 3 ADVANCE WORDS RETURNED COUNT
  687. RAD SP+2
  688. ADN 2 CHECK - END OF PARAMETER AREA
  689. SBD SP+1
  690. MJN STF1 IF NOT END OF PARAMETER AREA
  691. LJM SES SET ERROR STATUS
  692.  
  693. STF3 NFA FA,R
  694. CRD FN READ FNT
  695. ADN FSTL
  696. CRD FS READ FST
  697. LDD FN+3
  698. LPN 77 SAVE FILE CONTROL BITS
  699. STD T7
  700. LMD FN+3 CLEAR CONTROL BITS FROM FNT
  701. STD FN+3
  702. LDN 0 CLEAR REMAINING DATA
  703. STD FN+4
  704. LDD FS
  705. SFA EST READ EST ENTRY FOR DEVICE
  706. ADK EQDE
  707. CRD CM
  708. RJM SDT TRANSLATE DEVICE MNEMONIC/TYPE
  709. STD T4 SET DEVICE MNEMONIC
  710. SHN -14
  711. STD T3
  712. LDD T4
  713. LMC 2RNT
  714. ZJN STF6 IF 9 TRACK TAPE
  715. LMC 2RMT&2RNT
  716. NJN STF9 IF NOT TAPE
  717. STF6 LDD FS+2 CHECK TAPE FORMAT
  718. SHN -10
  719. LMN /COMSMTX/TFSI
  720. ZJN STF8 IF SI FORMAT
  721. LMN /COMSMTX/TFI&/COMSMTX/TFSI
  722. ZJN STF8 IF *I* FORMAT
  723. LMN /COMSMTX/TFS&/COMSMTX/TFI
  724. ZJN STF7 IF S FORMAT
  725. LMN /COMSMTX/TFL&/COMSMTX/TFS
  726. NJN STF8 IF NOT *L* TAPE
  727. LDN 20
  728. STF7 ADN 40
  729. STF8 ADC 4002 FORCE DENSITY TO 800 BPI ALWAYS
  730. STD FS
  731. LDD T3 SET NT/MT BIT
  732. LPC 100
  733. RAD FS
  734. LDD FS+4 SET LABELED FLAG
  735. SHN -13
  736. SHN 2
  737. RAD FS
  738. UJN STF10 CONTINUE
  739.  
  740. STF9 LDD T3
  741. SHN 6
  742. STD FS STORE DEVICE TYPE
  743. STF10 LDN 0 CLEAR DATA FIELDS
  744. STD FS+1
  745. STD FS+2
  746. STD FS+3
  747. STD FS+4
  748. LDN ZERL
  749. CRD CN
  750. LDD T7 CHECK FILE CONTROL BITS
  751. LPN 35
  752. ZJN STF14 IF NO CONTROLS
  753. SHN 21-2
  754. PJN STF11 IF NOT *EXECUTE ONLY*
  755. LDN 0
  756. UJN STF15 SET *EXECUTE ONLY*
  757.  
  758. STF11 SHN 21-0-21+2
  759. PJN STF12 IF NOT *READ ONLY*
  760. LDN 1
  761. UJN STF15 SET *READ ONLY*
  762.  
  763. STF12 SHN 21-3-21+0+22
  764. MJN STF13 IF ALTER ONLY
  765. LDN 3
  766. UJN STF15 SET STATUS
  767.  
  768. STF13 LDN 7
  769. UJN STF15 SET STATUS
  770.  
  771. STF14 LDN 17
  772. STF15 SHN 10
  773. STD CN+3 STORE FILE CONTROL
  774. LJM STF2 RETURN INFORMATION TO CM
  775. STP SPACE 4,30
  776. *** FUNCTION 3 - RETURN PRU COUNT OF FILE(S).
  777. *
  778. * RETURNS TO THE CALLING PROGRAM THE NUMBER OF PRUS OF
  779. * THE FILES REQUESTED WHOSE NAMES ARE SET IN EVERY SECOND WORD
  780. * STARTING AT *PARM+1* OF ADDRESS CONTAINED IN THE *PARM* FIELD
  781. * OF THE CALLING PROGRAM. IF THE FILE EXISTS, THE PRU COUNT
  782. * WILL BE RETURNED IN BITS 0 - 23 OF THE SECOND WORD. IF THE
  783. * FILE DOES NOT EXIST, THE SECOND WORD WILL BE ZEROED.
  784. *
  785. * FORMAT OF LOCATION POINTED TO BY *PARM*.
  786. *
  787. *
  788. *T PARM 12/ ,12/ LL,12/ LR,23/ ,1/A
  789. *
  790. * LL NUMBER OF WORDS, EXCLUDING THIS HEADER, TO BE USED;
  791. * MUST BE SET BY USER TO A MULTIPLE OF 2.
  792. *
  793. * LR LENGTH OF STATUS REPLY AREA.
  794. *
  795. * A AUTO RECALL REPLY - SET TO ZERO BY USER AND SET TO ONE
  796. * WHEN REQUEST IS COMPLETE.
  797.  
  798.  
  799. STP BSS 0 ENTRY
  800. LDN SSTL CHECK LOGGING ENABLED
  801. CRD CM
  802. LDD CM+3
  803. SHN 21-4
  804. MJN STP0 IF ANALYST LOGGING DISABLED
  805. LDC =C$ **** USE *FILINFO* IN PLACE OF *STS* CALL ****.$
  806. RJM DFM
  807. STP0 LDN ZERL CLEAR SECTOR COUNT RETURN
  808. CRD CN
  809. LDN 1 INITIALIZE PARAMETER INDEX
  810. STD PI
  811. STP1 LDA IR+3
  812. ADD PI READ FILE NAME
  813. CRD FN
  814. RJM SAF SEARCH FOR ASSIGNED FILE
  815. NJN STP3 IF FILE FOUND
  816. STP2 STD CN+4
  817. SHN -14
  818. STD CN+3 SET SECTOR COUNT FOR FILE
  819. STP2.1 LDA IR+3
  820. ADD PI
  821. ADN 1
  822. CWD CN
  823. LDN 2
  824. RAD SP+2 ADVANCE WORDS RETURNED COUNT
  825. ADN 1
  826. STD PI ADVANCE PARAMETER INDEX
  827. SBD SP+1
  828. MJN STP1 IF NOT END OF PARAMETER AREA
  829. LJM SES SET ERROR STATUS
  830.  
  831. STP3 NFA FA,R
  832. ADN FSTL
  833. CRD T5 READ FST
  834. SFA EST,T5 READ EST FOR DEVICE
  835. ADK EQDE
  836. CRD CM READ EST FOR DEVICE
  837. LDD CM
  838. SHN -13
  839. ZJN STP7 IF NOT MASS STORAGE
  840. LDD T5+2
  841. ZJN STP7 IF FILE UNUSED
  842. LDD FS+4 CHECK FOR DIRECT ACCESS FILE
  843. SHN -6
  844. LMN PMFT
  845. NJN STP5 IF NOT DIRECT ACCESS
  846. LDD FS+3 CHECK FOR SPECIAL ACCESS MODE
  847. LPN 30
  848. ZJN STP4 IF NOT SPECIAL ACCESS MODE
  849. LDD TH SET RETURN-ON-INACCESSIBLE OPTION
  850. RAD T5
  851. LCN 1
  852. STP4 ADN 1
  853. STP5 RJM SEI SEARCH FOR EOI
  854. MJP MSR IF DEVICE INACCESSIBLE
  855. LDD T2 SET SECTOR COUNT
  856. STD CN+3
  857. SOD T3 DECREMENT FOR EOI SECTOR
  858. PJN STP6 IF NO UNDERFLOW
  859. SOD CN+3
  860. LCN 0
  861. STP6 STD CN+4
  862. LJM STP2.1 LOOP
  863.  
  864. STP7 LJM STP2 RETURN FILE STATUS
  865. SDT SPACE 4,10
  866. ** SDT - SET *SCOPE 3.4* DEVICE NAME/TYPE.
  867. *
  868. * ENTRY (CM - CM+4) = EST ENTRY
  869. *
  870. * EXIT (A) = *SCOPE 3.4* DEVICE TYPE/MNEMONIC
  871. *
  872. * USES T4.
  873.  
  874.  
  875. SDT4 LDC 140000B+2RAZ
  876.  
  877. SDT SUBR ENTRY/EXIT
  878. LDD CM
  879. SHN 0-13
  880. NJN SDT4 IF MASS STORAGE
  881. STD T4 TABLE INDEX
  882. SDT1 LDM TKDT,T4 SEARCH DEVICE TABLE FOR MATCH
  883. ZJN SDT3 IF END OF TABLE
  884. LMD CM+3
  885. ZJN SDT2 IF MATCH FOUND
  886. AOD T4 GET NEXT ENTRY
  887. UJN SDT1 LOOP
  888.  
  889. SDT2 LDD T4
  890. SHN 1 ORDINAL*2
  891. ADC TSDT ADD TABLE ADDRESS
  892. STD T3
  893. LDM 1,T3 LOAD DEVICE TYPE
  894. SHN 6
  895. LMI T3 MERGE DEVICE MNEMONIC
  896. UJN SDTX EXIT
  897.  
  898. SDT3 LDN /ERR/IDC UNKNOWN DEVICE TYPE/NAME
  899. LJM ERR ERROR EXIT
  900. TKDT SPACE 4,10
  901. * TKDT - TABLE OF *NOS* DEVICE NAMES/TYPES.
  902.  
  903.  
  904. TKDT BSS 0
  905. LOC 0
  906. CON 2RMT 7 - TRACK TAPES
  907. CON 2RNT 9 - TRACK TAPES
  908. CON 2RCT CARTRIDGE TAPES
  909. CON 2RAT ACS CARTRIDGE TAPES
  910. CON 2RCR CARD READER
  911. CON 2RCP CARD PUNCH
  912. CON 2RLP LINE PRINTER
  913. CON 2RLQ LINE PRINTER (512)
  914. CON 2RTT TIME-SHARING TERMINAL
  915. CON 2RLR LINE PRINTER (580)
  916. CON 2RRD EST ORDINAL 0
  917. CON 2RNE NULL EQUIPMENT
  918. CON 0 END OF TABLE
  919. LOC *O
  920. TSDT SPACE 4,10
  921. * TSDT - TABLE OF *SCOPE 3.4* DEVICE NAMES/TYPES.
  922.  
  923.  
  924. TSDT BSS 0
  925. LOC 0
  926. CON 2RMT,4000 7 - TRACK TAPES
  927. CON 2RNT,4100 9 - TRACK TAPES
  928. CON 2RNT,4100 CARTRIDGE TAPES (TREATED AS 9-TRACK)
  929. CON 2RNT,4100 ACS CARTRIDGE TAPES (TREATED AS 9-TRACK)
  930. CON 2RCR,6000 CARD READER
  931. CON 2RCP,7000 CARD PUNCH
  932. CON 2RLP,5000 LINE PRINTER
  933. CON 2RLQ,5000 LINE PRINTER (512)
  934. CON 2RTA,6100 TIME-SHARING TERMINAL
  935. CON 2RLR,5000 LINE PRINTER (580)
  936. CON 0,0 EST ORDINAL 0
  937. CON 0,0 NULL EQUIPMENT
  938.  
  939. LOC *O
  940. SPACE 4,10
  941. * COMMON DECKS.
  942.  
  943.  
  944. *CALL COMPCTI
  945. SEI$ EQU 1 MAKE INTERLOCKING AVAILABLE
  946. *CALL,COMPSEI
  947. *CALL COMPSAF
  948. *CALL COMPSTI
  949. SPACE 4,10
  950. OVERFLOW OVL
  951. OVERLAY (MSD - SDA/SIS MESSAGE GENERATOR.)
  952. EMG SPACE 4,10
  953. *** MSD - SDA/SIS MESSAGE GENERATOR.
  954. *
  955. * RETURNS MESSAGES TO SDA/SIS AS REQUESTED BY A
  956. * MESSAGE CODE CONTAINED IN THE PP CALL PARAMETER AREA. EMG
  957. * PERFORMS THE FUNCTION OF THE *SCOPE 3.4* PP PROGRAM *MSD*.
  958. *
  959. * ENTRY (IR - IR+4) = CALL TO *MSD* WITH THE FORMAT -
  960. *
  961. *
  962. *T, 24/ *MSD* ,18/MESSAGE CODE,18/ RETURN ADDRESS
  963. *
  964. *
  965. * MESSAGE CODE = MESSAGE ORDINAL OF MESSAGE TO BE RETURNED.
  966. *
  967. * RETURN ADDRESS = CM ADDRESS TO RETURN MESSAGE BEGINNING AT
  968. * (RETURN ADDRESS+1).
  969. *
  970. * EXIT (RETURN ADDRESS) .NE. 0. UPON COMPLETION OF MESSAGE
  971. * TRANSFER, (RETURN ADDRESS) IS SET
  972. * TO -
  973. *
  974. *T 12/ MESS CODE,12/MESS SIZE-1,12/MESS SIZE,23/ ,1/1
  975. *
  976. *
  977. * MESS CODE = MESSAGE CODE ISSUED IN *MSD* CALL.
  978. * MESS SIZE = MESSAGE SIZE IN CM WORDS OF MESSAGE RETURNED.
  979. SPACE 4,10
  980. * RETURN CODES.
  981.  
  982.  
  983. C001 EQU 445
  984. C002 EQU 446
  985. C003 EQU 6
  986. C004 EQU 50
  987. C005 EQU 50
  988. C006 EQU 50
  989. C007 EQU 100
  990. C010 EQU 117
  991. C011 EQU 147
  992. C012 EQU 352
  993. C013 EQU 147
  994. C014 EQU 166
  995. C015 EQU 167
  996. C016 EQU 170
  997. C017 EQU 170
  998. C020 EQU 170
  999. C021 EQU 170
  1000. C022 EQU 171
  1001. C023 EQU 253
  1002. C024 EQU 300
  1003. C025 EQU 301
  1004. C026 EQU 302
  1005. C027 EQU 304
  1006. C030 EQU 352
  1007. C031 EQU 352
  1008. C032 EQU 370
  1009. C033 EQU 356
  1010. C034 EQU 357
  1011. C035 EQU 421
  1012. C036 EQU 426
  1013. C037 EQU 441
  1014. C040 EQU 447
  1015. C041 EQU 150
  1016. C042 EQU 0
  1017. C043 EQU 0
  1018. C044 EQU 0
  1019. C045 EQU 0
  1020. C046 EQU 0
  1021. C047 EQU 452
  1022. C050 EQU 170
  1023. C051 EQU 135
  1024. C052 EQU 136
  1025. C053 EQU 252
  1026. C055 EQU 52B
  1027. C175 EQU 175
  1028. C176 EQU 176
  1029. C201 EQU 0
  1030. C202 EQU 0
  1031. C203 EQU 416
  1032. C204 EQU 445
  1033. C205 EQU 6
  1034. C206 EQU 50
  1035. C207 EQU 50
  1036. C210 EQU 50
  1037. C212 EQU 100
  1038. C213 EQU 147
  1039. C214 EQU 147
  1040. C215 EQU 147
  1041. C216 EQU 166
  1042. C217 EQU 167
  1043. C220 EQU 170
  1044. C221 EQU 170
  1045. C222 EQU 170
  1046. C223 EQU 170
  1047. C224 EQU 253
  1048. C225 EQU 300
  1049. C226 EQU 301
  1050. C227 EQU 302
  1051. C230 EQU 352
  1052. C231 EQU 352
  1053. C232 EQU 352
  1054. C233 EQU 352
  1055. C234 EQU 352
  1056. C236 EQU 417
  1057. C237 EQU 420
  1058. C240 EQU 421
  1059. C241 EQU 423
  1060. C242 EQU 425
  1061. C243 EQU 441
  1062. C244 EQU 441
  1063. C245 EQU 441
  1064. C246 EQU 441
  1065. C247 EQU 441
  1066. C250 EQU 441
  1067. C251 EQU 441
  1068. C252 EQU 442
  1069. C253 EQU 443
  1070. C254 EQU 444
  1071. C255 EQU 446
  1072. C256 EQU 447
  1073. C257 EQU 360
  1074. C260 EQU 360
  1075. C261 EQU 360
  1076. C262 EQU 360
  1077. C264 EQU 360
  1078. C265 EQU 360
  1079. C266 EQU 360
  1080. C267 EQU 360
  1081. C270 EQU 422
  1082. C271 EQU 424
  1083. C272 EQU 425
  1084. C273 EQU 360
  1085. C274 EQU 356
  1086. C275 EQU 360
  1087. C276 EQU 0
  1088. C277 EQU 0
  1089. C300 EQU 150
  1090. C301 EQU 135
  1091. C302 EQU 136
  1092. C303 EQU 252
  1093. C304 EQU 352
  1094. C305 EQU 357
  1095. C307 EQU 0
  1096. C313 EQU 50
  1097. C314 EQU 0
  1098. C315 EQU 417
  1099. C316 EQU 104
  1100. C317 EQU 110
  1101.  
  1102. ZERO EQU 0 NO CODE STATUS
  1103.  
  1104.  
  1105. EMG SPACE 4,10
  1106. ENTRY EMG
  1107. LDD IR+3 LOAD MESSAGE CODE ORDINAL
  1108. SHN -6
  1109. STD T7
  1110. LDD IR+2 LOAD MESSAGE CODE TABLE ORDINAL
  1111. SBN 4
  1112. MJN EMG2 IF ORDINAL WITHIN TABLE SET
  1113. EMG1 LDC ERRMSG SET ERROR MESSAGE RETURN
  1114. UJN EMG6 SET WRIT MESSAGE POINTER
  1115.  
  1116. EMG2 ADN 1
  1117. MJN EMG3 IF NOT *300* LEVEL MESSAGE
  1118. LDC TEMG3L CHECK ORDINAL
  1119. SBD T7
  1120. MJN EMG1 IF ORDINAL NOT WITHIN BOUNDS
  1121. LDC TEMG3 SET TABLE SET FWA
  1122. UJN EMG5 LOAD MESSAGE ADDRESS
  1123.  
  1124. EMG3 ADN 1
  1125. MJN EMG4 IF LESS THAN *200* LEVEL MESSAGE
  1126. LDC TEMG2L
  1127. SBD T7
  1128. MJN EMG1 IF ORDINAL NOT WITHIN BOUNDS
  1129. LDC TEMG2 SET TABLE SET FWA
  1130. UJN EMG5 LOAD MESSAGE ADDRESS
  1131.  
  1132. EMG4 LDC TEMG1L
  1133. SBD T7
  1134. MJN EMG1 IF ORDINAL NOT WITHIN BOUNDS
  1135. LDC TEMG1 SET TABLE SET FWA
  1136. EMG5 STM EMGA
  1137. LDM *,T7 LOAD
  1138. EMGA EQU *-1
  1139. EMG6 STM EMGB STORE MESSAGE ADDRESS
  1140. ADN 1
  1141. STD T1 PRESET ZERO BYTE SEARCH
  1142. LDN ZERL PRESET HEADER RETURN
  1143. CRD CM
  1144. LDD IR+2 SET MESSAGE CODE
  1145. SHN 6
  1146. ADD T7
  1147. STD CM
  1148. AOD CM+4
  1149. LDN 2
  1150.  
  1151. * SET NUMBER OF LINES TO BE WRITTEN.
  1152.  
  1153. EMG7 STD T2 PRESET CM BYTE COUNT
  1154. AOD CM+2 UPDATE CM WORD COUNT
  1155. EMG8 AOD T1 INCREMENT MESSAGE BYTE POINTER
  1156. LDI T1
  1157. ZJN EMG10 IF MESSAGE TERMINATED
  1158. LPN 77
  1159. NJN EMG9 IF CHARACTER PRESENT
  1160. LDN 1R INSERT SPACE
  1161. RAI T1
  1162. EMG9 AOD T2 INCREMENT CM WORD BYTE COUNT
  1163. SBN 5
  1164. MJN EMG8 IF NOT END OF CM WORD
  1165. LDN 0
  1166. UJN EMG7 LOOP
  1167.  
  1168. EMG10 LDD T2
  1169. SBN 4
  1170. ZJN EMG12 IF LAST BYTE OF CM WORD
  1171. EMG11 LDC 2R INSERT FIELD INTO NEXT CM BYTE
  1172. STI T1
  1173. AOD T1
  1174. AOD T2 INCREMENT CM WORD BYTE POINTER
  1175. SBN 4
  1176. MJN EMG11 IF NOT LAST BYTE OF CM WORD
  1177. LDN 0
  1178. STI T1
  1179. EMG12 LDD CM+2 SET TOTAL CM WORD COUNT
  1180. SBN 1
  1181. STD CM+1
  1182. LDD IR+3 VALIDATE RETURN ADDRESS
  1183. LPN 37
  1184. SHN 14
  1185. ADD IR+4
  1186. ADD CM+2
  1187. SHN -6
  1188. SBD FL
  1189. MJN EMG13 IF ADDRESS VALID
  1190. LDN /ERR/PAE *PARAMETER ERROR.*
  1191. LJM ERR PROCESS ERROR
  1192.  
  1193. EMG13 LDD IR+3 SET USER RETURN ADDRESS
  1194. LPN 77
  1195. SHN 6
  1196. ADD RA
  1197. SHN 6
  1198. ADD IR+4
  1199. ADN 1
  1200. CWM *,CM+2 SEND MESSAGE TO USER
  1201. EMGB EQU *-1
  1202. SBD CM+2 SEND MESSAGE HEADER
  1203. SBN 1
  1204. CWD CM
  1205. LJM SFPX EXIT
  1206. TITLE MESSAGE CODE TABLE.
  1207. ** MESSAGE CODE TABLE.
  1208. *
  1209. * CONSISTS OF SET OF TABLES WHOSE POSITION CORRESPONDS
  1210. * TO A MESSAGE CODE NUMBER CONTAINED IN (IR+2 - IR+3). THE
  1211. * ADDRESS CONTAINED IN EACH TABLE ENTRY CORRESPONDS TO THE
  1212. * FWA OF THE MESSAGE ASSOCIATED WITH THE CALLING MESSAGE CODE.
  1213. SPACE 4,10
  1214. ** TABLE 1 (000 - 177 MESSAGE CODE)
  1215.  
  1216.  
  1217. TEMG1 BSS 0
  1218. LOC 0
  1219.  
  1220. CON ERRMSG
  1221. CON TS1M1 KEY NOT FOUND
  1222. CON TS1M2 DUPLICATE KEY FOUND
  1223. CON TS1M3 FILE CONTENT NOT COMPATIBLE
  1224. CON TS1M4 OPEN FILE LIMIT
  1225. CON TS1M5 EXISTING FILE
  1226. CON TS1M6 FILE ILLEGALLY EXTENDED
  1227. CON TS1M7 EOI ENCOUNTERED
  1228. CON TS1M8 PUT, OR REPLACE ERROR
  1229. CON TS1M9 CHECKSUM ERROR-DATA
  1230. CON ERRMSG
  1231. CON TS1M11 CHECKSUM ERROR-FSTT
  1232. CON TS1M12 INCOMPLETE FIT
  1233. CON TS1M13 RECORD LENGTH ERROR
  1234. CON TS1M14 RECORD LENGTH ERROR
  1235. CON TS1M15 MINIMUM RECORD SIZE ERROR
  1236. CON TS1M16 KEY POSITION RANGE ERROR
  1237. CON TS1M17 RELATIVE KEY POSITION RANGE ERROR
  1238. CON TS1M18 INCORRECT HASHING ROUTINE
  1239. CON TS1M19 FILE LIMIT REACHED
  1240. CON TS1M20 NO READ PERMISSION
  1241. CON TS1M21 NO MODIFY PERMISSION
  1242. CON TS1M22 NO EXTEND PERMISSION
  1243. CON TS1M23 ILLEGAL OVERFLOW BLOCK CREATION
  1244. CON TS1M24 UNKNOWN CLOSING FILE
  1245. CON TS1M25 UNEQUAL NUMBER OF FILES/FITS
  1246. CON TS1M26 FATAL I-O ERROR
  1247. CON TS1M27 TRIVAL ERROR LIMIT REACHED
  1248. CON TS1M28 NOT ENOUGH BUFFER SPACE
  1249. CON TS1M29 UNSPECIFIED WSA
  1250. CON TS1M30 ILLEGAL GETN
  1251. CON TS1M31 HASH KEY OUTSIDE HOME BLOCK
  1252. CON TS1M32 UNSEPCIFIED KEY ADDRESS
  1253. CON TS1M33 FILE NOT ON MASS STORAGE
  1254. CON TS1M34 ILLEGAL GETN AFTER EOI
  1255. CON TS1M35 ILLOGICAL SUCCESSIVE SEEKS
  1256. CON TS1M36 ILLEGAL CHECKSUM
  1257. CON TS1M37 ILLOGICAL KEY CHANGE
  1258. CON TS1M38 EMPTY HOME BLOCK
  1259. CON TS1M39 FILE ALREADY OPEN
  1260. CON TS1M40 MINIMUM RECORD SIZE ERROR
  1261. CON TS1M41 RMS READ PARITY ERROR
  1262. CON TS1M42 RMS WRITE PARITY ERROR
  1263. CON TS1M43 RMS LIMIT EXCEEDED
  1264. CON TS1M44 BLOCK SIZE TOO LARGE
  1265. CON TS1M45 FILE NOT CLOSED AFTER UPDATE
  1266. CON TS1M46 MRL/MAXRECSZ CONFLICT
  1267.  
  1268. LOC *O
  1269. TEMG1L EQU *-TEMG1 LENGTH OF TABLE
  1270. SPACE 4,10
  1271. ** TABLE 2 (200 - 277 MESSAGE CODE) (SIS MESSAGES)
  1272.  
  1273. TEMG2 BSS 0
  1274. LOC 0
  1275.  
  1276. CON ERRMSG
  1277. CON ERRMSG
  1278. CON TS2M2 BOI ENCOUNTERED
  1279. CON TS2M3 ONLY PUT ALLOWED
  1280. CON TS2M4 KEY NOT FOUND
  1281. CON ERRMSG
  1282. CON ERRMSG
  1283. CON ERRMSG
  1284. CON ERRMSG
  1285. CON ERRMSG
  1286. CON TS2M10 ILLEGAL SEQUENTIAL PROCESSING
  1287. CON ERRMSG
  1288. CON TS2M12 CHECKSUM ERROR-INDEX
  1289. CON ERRMSG
  1290. CON ERRMSG
  1291. CON ERRMSG
  1292. CON ERRMSG
  1293. CON TS2M17 RECORD SIZE NEGATIVE
  1294. CON ERRMSG
  1295. CON ERRMSG
  1296. CON ERRMSG
  1297. CON ERRMSG
  1298. CON ERRMSG
  1299. CON ERRMSG
  1300. CON ERRMSG
  1301. CON ERRMSG
  1302. CON TS2M26 PTREE OVERFLOW
  1303. CON TS2M27 BAD FIT ADDRESS
  1304. CON TS2M28 INTERNAL ERROR
  1305. CON ERRMSG
  1306. CON TS2M30 ONLY REPLACE .EQ. SIZE RECORDS
  1307. CON TS2M31 NO REWIND
  1308. CON ERRMSG
  1309. CON TS2M33 CANNOT DELETE ACTUAL RECORDS
  1310. CON TS2M34 CANNOT SKIP BACKWARDS
  1311. CON TS2M35 MAJOR KEY WITH SYMB KEY ONLY
  1312. CON TS2M36 CHANGE KEY TYPE
  1313. CON TS2M37 CHANGE KEY SIZE
  1314. CON TS2M38 KEY TYPE INCORRECT
  1315. CON TS2M39 NO KEY DEFINED
  1316. CON TS2M40 KEY SIZE ILLEGAL
  1317. CON TS2M41 MAJOR KEY SIZE ILLEGAL
  1318. CON TS2M42 INVALID ACTUAL KEY
  1319. CON TS2M43 COMP-1 KEY BAD BIAS
  1320. CON TS2M44 NEW KEY .LT. LAST KEY
  1321. CON ERRMSG
  1322. CON ERRMSG
  1323. CON TS2M47 CANNOT SPECIFY SETBLKI
  1324. CON TS2M48 BAD BUFFER ADDRESS
  1325. CON TS2M49 NOT AFTER OPEN
  1326. CON TS2M50 ERROR IN CALLING LIST
  1327. CON ERRMSG
  1328. CON TS2M52 WRONG NO. OF PARAMETERS
  1329. CON TS2M53 INCONSISTENT CALLING SPEC.
  1330. CON TS2M54 CANNOT PUT IN SEQ. MODE
  1331. CON TS2M55 CANNOT DELETE IN SEQ. MODE
  1332. CON TS2M56 CANNOT SEEK IN SEQ. MODE
  1333. CON TS2M57 CANNOT GET IN SEQ. MODE
  1334. CON TS2M58 CANNOT SKIP BACKWORD IN SEQ. MODE
  1335. CON TS2M59 PARAMETER NNN OUT OF RANGE
  1336. CON ERRMSG
  1337. CON TS2M61 SISV1 PARAMETER ONE ERROR
  1338. CON TS2M62 DELETED LAST RECORD
  1339. CON TS2M63 EMPTY FILE OPENED
  1340.  
  1341. LOC *O
  1342. TEMG2L EQU *-TEMG2 TABLE LENGTH
  1343. SPACE 4,10
  1344. ** TABLE 3 (300 - 377 MESSAGE CODES)
  1345.  
  1346.  
  1347. TEMG3 BSS 0
  1348. LOC 0
  1349.  
  1350. CON ERRMSG
  1351. CON ERRMSG
  1352. CON ERRMSG
  1353. CON TS3M4 FATAL I/O ERROR
  1354. CON ERRMSG
  1355. CON ERRMSG
  1356. CON TS3M7 SIS RECOVER ERROR
  1357. CON ERRMSG
  1358. CON ERRMSG
  1359. CON ERRMSG
  1360. CON TS3M11 NONEXISTENT FILE
  1361. CON TS3M12 DATA BLOCK/SIZE/FACTOR SET
  1362. CON TS3M13 REPLACE LARGER RECORD IN SEQ. MODE
  1363. CON TS3M14 ONLY PUT IN CREATE
  1364. CON TS3M15 SISV1 FILE NOT OPEN
  1365. CON TS3M16 FILE SLOT EMPTY
  1366. CON TS3M17 FILE SLOT OCCUPPIED
  1367. CON TS3M18 INVALID ACTUAL KEY
  1368. CON TS3M19 HEADER LENGTH ERROR
  1369. CON TS3M20 BLOCKING TOO LARGE
  1370. CON TS3M21 MINN RECORD SIZE ERROR
  1371. CON TS3M22 RECORD SIZE ERROR
  1372. CON TS3M23 POSITION ERROR
  1373. CON TS3M24 PADDING PERCENTAGE ERROR
  1374. CON TS3M25 FILE STORAGE LIMIT EXCEEDED
  1375. CON TS3M26 INTERNAL I/O ERROR
  1376. CON TS3M27 ILLEGAL OPEN
  1377. CON TS3M28 BLOCKING FACTOR ERROR
  1378. CON TS3M29 FILE LIMIT REACHED
  1379.  
  1380. LOC *O
  1381. TEMG3L EQU *-TEMG3 TABLE SIZE
  1382. TITLE MESSAGE AREA.
  1383. ** MESSAGE AREA.
  1384. *
  1385. * ALL MESSAGES IN THIS AREA ARE IN SEQUENTIAL
  1386. * ASCENDING ORDER BY TABLE AND POSITION.
  1387. SPACE 4,10
  1388. * ILLEGAL MESSAGE CODE RETURN.
  1389.  
  1390. ERRMSG EMESS FA,NK,12B,NC,RT,C012,(
  1391. ,ILLEGAL CALL TO DIAGNOSTIC ROUTINE)
  1392.  
  1393.  
  1394. * TABLE 1 MESSAGES.
  1395.  
  1396.  
  1397. TS1M1 EMESS TR,KY,01B,NC,RT,C001,(
  1398. ,KEY NOT FOUND - FILE POSITION ALTERED - REQUEST IGNORED)
  1399.  
  1400. TS1M2 EMESS TR,KY,02B,NC,RT,C002,(
  1401. ,DUPLICATE KEY FOUND - FILE POSITION ALTERED - REQUEST IGNORED)
  1402.  
  1403. TS1M3 EMESS FA,NK,03B,NC,RT,C003,(
  1404. ,FILE CONTENT NOT COMPATIBLE WITH FILE TYPE)
  1405.  
  1406. TS1M4 EMESS FA,NK,04B,NC,RT,C004,(
  1407. ,NUMBER OF FILES PERMITTED TO BE OPEN SIMULTANEOUSLY HAS BEEN EXCEEDED)
  1408.  
  1409. TS1M5 EMESS FA,NK,05B,NC,RT,C005,(
  1410. ,FILE ALREADY EXISTS-CANNOT OPEN NEW)
  1411.  
  1412. TS1M6 EMESS FA,NK,06B,NC,RT,C006,(
  1413. ,FILE ILLEGALLY EXTENDED-EOI MOVED)
  1414.  
  1415. TS1M7 EMESS TR,NK,07B,CM,RT,C042,(
  1416. ,END OF INFORMATION ENCOUNTERED)
  1417.  
  1418. TS1M8 EMESS TR,KY,10B,NC,RT,C010,(
  1419. ,PUT,OR REPLACE WITH LARGER RECORD ILLEGAL BETWEEN GETN COMMANDS)
  1420.  
  1421. TS1M9 EMESS FA,NK,11B,NC,RT,C011,(
  1422. ,CHECKSUM ERROR-DATA BLOCK)
  1423.  
  1424. TS1M11 EMESS FA,NK,13B,NC,RT,C013,(
  1425. ,CHECKSUM ERROR-FSTT)
  1426.  
  1427. TS1M12 EMESS FA,NK,14B,NC,RT,C014,(
  1428. ,FIT INCOMPLETE - CANNOT CREATE FILE)
  1429.  
  1430. TS1M13 EMESS TR,NK,15B,NC,RT,C015,(
  1431. ,RECORD LENGTH OUTSIDE MIN-MAX RANGE - REQUEST IGNORED)
  1432.  
  1433. TS1M14 EMESS FA,NK,16B,NC,RT,C016,(
  1434. ,RECORD SIZE EXCEEDS BLOCK SIZE)
  1435.  
  1436. TS1M15 EMESS FA,NK,17B,NC,RT,C017,(
  1437. ,MINIMUM RECORD SIZE EXCEEDS MAXIMUM)
  1438.  
  1439. TS1M16 EMESS FA,NK,20B,NC,RT,C020,(
  1440. ,KEY POSITION OUT OF RANGE)
  1441.  
  1442. TS1M17 EMESS FA,NK,21B,NC,RT,C021,(
  1443. ,RELATIVE KEY POSITION OUT OF RANGE)
  1444.  
  1445. TS1M18 EMESS FA,NK,22B,NC,RT,C022,(
  1446. ,INCORRECT HASHING ROUTINE)
  1447.  
  1448. TS1M19 EMESS TR,KY,23B,NC,RT,C023,(
  1449. ,FILE LIMIT REACHED-RECORD NOT INSERTED)
  1450.  
  1451. TS1M20 EMESS FA,NK,24B,NC,RT,C024,(
  1452. ,NO READ PERMISSION)
  1453.  
  1454. TS1M21 EMESS FA,NK,25B,NC,RT,C025,(
  1455. ,NO MODIFY PERMISSION)
  1456.  
  1457. TS1M22 EMESS FA,NK,26B,NC,RT,C026,(
  1458. ,NO EXTEND PERMISSION)
  1459.  
  1460. TS1M23 EMESS TR,NK,27B,NC,RT,C027,(
  1461. ,NOT ALLOWED TO CREATE OVERFLOW BLOCKS)
  1462.  
  1463. TS1M24 EMESS TR,NK,30B,NC,RT,C030,(
  1464. ,FILE TO BE CLOSED IS NOT KNOWN)
  1465.  
  1466. TS1M25 EMESS FA,NK,31B,NC,RT,C031,(
  1467. ,TOTAL OF OPEN FILES NOT EQUAL TO TOTAL OF FIT ADDRESSES)
  1468.  
  1469. TS1M26 EMESS FA,NK,32B,NC,RT,C032,(
  1470. ,FATAL I-O ERROR)
  1471.  
  1472. TS1M27 EMESS FA,NK,33B,NC,RT,C033,(
  1473. ,TRIVIAL ERROR LIMIT REACHED)
  1474.  
  1475. TS1M28 EMESS FA,NK,34B,NC,RT,C034,(
  1476. ,NOT ENOUGH BUFFER SPACE)
  1477.  
  1478. TS1M29 EMESS TR,NK,35B,NC,RT,C035,(
  1479. ,WORKING STORAGE ADDRESS NOT SPECIFIED-REQUEST IGNORED)
  1480.  
  1481. TS1M30 EMESS TR,NK,36B,NC,RT,C036,(
  1482. ,GETN NOT ALLOWED DURING FILE CREATION - REQUEST IGNORED)
  1483.  
  1484. TS1M31 EMESS FA,KY,37B,NC,RT,C037,(
  1485. ,HASHED KEY OUTSIDE HOME BLOCK AREA)
  1486.  
  1487. TS1M32 EMESS TR,NK,40B,NC,RT,C040,(
  1488. ,KEY ADDRESS NOT SPECIFIED - REQUEST IGNORED)
  1489.  
  1490. TS1M33 EMESS FA,NK,41B,NC,RT,C041,(
  1491. ,FILE NOT ON MASS STORAGE DEVICE)
  1492.  
  1493. TS1M34 EMESS TR,NK,42B,NC,RT,C007,(
  1494. ,CANNOT GETN AFTER EOI ENCOUNTERED)
  1495.  
  1496. TS1M35 EMESS TR,NK,43B,CM,RT,C043,(
  1497. ,ILLOGICAL SUCCESSIVE SEEK REQUESTS)
  1498.  
  1499. TS1M36 EMESS TR,NK,44B,CM,RT,C044,(
  1500. ,CANNOT CHECKSUM A FILE CREATED WITHOUT CHECKSUMS)
  1501.  
  1502. TS1M37 EMESS TR,NK,45B,CM,RT,C045,(
  1503. ,ILLOGICAL TO CHANGE THE KEY BEFORE SEEK FUNCTION COMPLETED)
  1504.  
  1505. TS1M38 EMESS TR,NK,46B,CM,RT,C046,(
  1506. ,HOME BLOCK EMPTY - HASHING ROUTINE NOT VERIFIED)
  1507.  
  1508. TS1M39 EMESS FA,NK,47B,NC,RT,C047,(
  1509. ,FILE ALREADY OPEN)
  1510.  
  1511. TS1M40 EMESS FA,NK,50B,NC,RT,C050,(
  1512. ,MINIMUM RECORD SIZE LESS THAN KEY LENGTH PLUS KEY POSITION)
  1513.  
  1514. TS1M41 EMESS FA,NK,51B,NC,RT,C051,(
  1515. ,RMS READ PARITY ERROR)
  1516.  
  1517. TS1M42 EMESS FA,NK,52B,NC,RT,C052,(
  1518. ,RMS WRITE PARITY ERROR)
  1519.  
  1520. TS1M43 EMESS FA,NK,53B,NC,RT,C053,(
  1521. ,SYSTEM MASS STORAGE LIMIT EXCEEDED)
  1522.  
  1523. TS1M44 EMESS FA,NK,54B,CM,RT,C175,(
  1524. ,REQUESTED DATA OR INDEX BLOCK SIZE TOO LARGE)
  1525.  
  1526. TS1M45 EMESS TR,NK,55B,NC,NR,C055,(
  1527. ,FILE NOT CLOSED AFTER LAST UPDATE - FILE CONDITION QUESTIONABLE)
  1528.  
  1529. TS1M46 EMESS TR,NK,56B,NC,NR,C176,(
  1530. ,MRL IN FIT LESS THAN MAXRECSZ IN FSTT, WSA MAY BE TOO SHORT)
  1531. SPACE 4,10
  1532. * TABLE 2 MESSAGES.
  1533.  
  1534.  
  1535. TS2M2 EMESS TR,KY,02B,CM,NR,C202,(
  1536. ,BEGINNING OF INFORMATION ENCOUNTERED)
  1537.  
  1538. TS2M3 EMESS FA,KY,03B,NC,RT,C203,(
  1539. ,ONLY PUT ALLOWED DURING INITIAL CREATION)
  1540.  
  1541. TS2M4 EMESS TR,KY,04B,NC,RT,C204,(
  1542. ,KEY NOT FOUND-FILE POSITION ALTERED-REQUEST IGNORED)
  1543.  
  1544. TS2M10 EMESS TR,KY,12B,NC,RT,C212,(
  1545. ,CANNOT PROCESS SEQUENTIALLY BEYOND FILE BOUNDRIES.)
  1546.  
  1547. TS2M12 EMESS FA,NK,14B,NC,RT,C214,(
  1548. ,CHECKSUM ERROR-INDEX BLOCK)
  1549.  
  1550. TS2M17 EMESS FA,NK,21B,NC,RT,C221,(
  1551. ,RECORD SIZE NEGATIVE)
  1552.  
  1553. TS2M26 EMESS FA,NK,32B,NC,RT,C232,(
  1554. ,HIERARCHY TABLE OVERFLOW)
  1555.  
  1556. TS2M27 EMESS FA,NK,33B,NC,RT,C233,(
  1557. ,BAD FIT ADDRESS)
  1558.  
  1559. TS2M28 EMESS FA,NK,34B,NC,RT,C234,(
  1560. ,INTERNAL ERROR)
  1561.  
  1562. TS2M30 EMESS TR,KY,36B,NC,RT,C236,(
  1563. ,CAN ONLY REPLACE WITH EQUAL SIZE RECORDS IN ACTUAL KEY FILES)
  1564.  
  1565. TS2M31 EMESS TR,NK,37B,NC,NR,C237,(
  1566. ,CANNOT SPECIFY NO REWIND-FILE REWOUND)
  1567.  
  1568. TS2M33 EMESS TR,KY,41B,NC,RT,C241,(
  1569. ,CANNOT DELETE ACTUAL KEY RECORDS)
  1570.  
  1571. TS2M34 EMESS TR,NK,42B,NC,RT,C242,(
  1572. ,CANNOT SKIP BACKWARD WITH ACTUAL KEYS)
  1573.  
  1574. TS2M35 EMESS FA,KY,43B,NC,RT,C243,(
  1575. ,MAJOR KEY WITH SYMBOLIC KEYS ONLY)
  1576.  
  1577. TS2M36 EMESS FA,KY,44B,NC,RT,C244,(
  1578. ,CHANGED KEY TYPE)
  1579.  
  1580. TS2M37 EMESS FA,KY,45B,NC,RT,C245,(
  1581. ,CHANGED KEY SIZE)
  1582.  
  1583. TS2M38 EMESS FA,KY,46B,NC,RT,C246,(
  1584. ,KEY TYPE INCORRECT)
  1585.  
  1586. TS2M39 EMESS FA,NK,47B,NC,RT,C247,(
  1587. ,NO KEY DEFINED)
  1588.  
  1589. TS2M40 EMESS FA,NK,50B,NC,RT,C250,(
  1590. ,KEY SIZE ILLEGAL)
  1591.  
  1592. TS2M41 EMESS FA,NK,51B,NC,RT,C251,(
  1593. ,MAJOR KEY SIZE ILLEGAL)
  1594.  
  1595. TS2M42 EMESS TR,KY,52B,NC,RT,C252,(
  1596. ,INVALID ACTUAL KEY-REQUEST IGNORED)
  1597.  
  1598. TS2M43 EMESS TR,KY,53B,NC,RT,C253,(
  1599. ,COMP-1 KEY HAS INCONSISTENT BIAS-REQUEST IGNORED)
  1600.  
  1601. TS2M44 EMESS TR,KY,54B,NC,RT,C254,(
  1602. ,NEW KEY LESS THAN PREVIOUS KEY IN INITIAL CREATION)
  1603.  
  1604. TS2M47 EMESS FA,NK,57B,NC,RT,C257,(
  1605. ,SISV1 CANNOT SPECIFY SETBLKI OR SETBLKD WITH OPENOLD)
  1606.  
  1607. TS2M48 EMESS FA,NK,60B,NC,RT,C260,(
  1608. ,SISV1 BAD BUFFER ADDRESS)
  1609.  
  1610. TS2M49 EMESS FA,NK,61B,NC,RT,C261,(
  1611. ,SISV1 MAY NOT CALL AFTER OPENING FILE)
  1612.  
  1613. TS2M50 EMESS FA,NK,62B,NC,RT,C262,(
  1614. ,SISV1 ERROR IN CALLING LIST, PARAMETER NUMBER NNN)
  1615.  
  1616. TS2M52 EMESS FA,NK,64B,NC,RT,C264,(
  1617. ,SISV1 WRONG NUMBER OF PARAMETERS IN CALLING LIST)
  1618.  
  1619. TS2M53 EMESS FA,NK,65B,NC,RT,C265,(
  1620. ,SISV1 INCONSISTENT COLLATING SPECIFICATIONS)
  1621.  
  1622. TS2M54 EMESS FA,KY,66B,NC,RT,C266,(
  1623. ,SISV1 CANNOT PUT IN SEQUENTIAL MODE)
  1624.  
  1625. TS2M55 EMESS FA,KY,67B,NC,RT,C267,(
  1626. ,SISV1 CANNOT DELETE IN SEQUENTIAL MODE)
  1627.  
  1628. TS2M56 EMESS TR,KY,70B,NC,RT,C270,(
  1629. ,SISV1 SEEK ILLOGICAL IN SEQUENTIAL MODE)
  1630.  
  1631. TS2M57 EMESS TR,KY,71B,NC,NR,C271,(
  1632. ,SISV1 CANNOT GET IN SEQUENTIAL MODE GETN ASSUMED)
  1633.  
  1634. TS2M58 EMESS TR,NK,72B,NC,RT,C272,(
  1635. ,SISV1 CANNOT SKIP BACKWARD IN SEQUENTIAL MODE)
  1636.  
  1637. TS2M59 EMESS FA,NK,73B,NC,RT,C273,(
  1638. ,SISV1 PARAMETER OUT OF RANGE, PARAMETER NUMBER NNN)
  1639.  
  1640. TS2M61 EMESS FA,NK,75B,NC,RT,C275,(
  1641. ,SISV1 ERROR IN PARAMETER ONE-FILE NOT GIVEN)
  1642.  
  1643. TS2M62 EMESS TR,NK,76B,CM,NR,C276,(
  1644. ,DELETED LAST RECORD)
  1645.  
  1646. TS2M63 EMESS TR,NK,77B,CM,NR,C277,(
  1647. ,EMPTY FILE OPENED)
  1648. SPACE 4,10
  1649. * TABLE 3 MESSAGES.
  1650.  
  1651.  
  1652. TS3M4 EMESS FA,NK,04B,NC,NR,C304,(
  1653. ,INTERNAL IO ERROR)
  1654.  
  1655. TS3M7 EMESS TR,NK,07B,CM,RT,C307,(
  1656. ,SIS ERROR RECOVERY)
  1657.  
  1658. TS3M11 EMESS FA,NK,13B,NC,RT,C313,(
  1659. ,FILE NONEXISTENT - CANNOT OPEN-OLD)
  1660.  
  1661. TS3M12 EMESS TR,NK,14B,CM,NR,C314,(
  1662. ,DATA BLOCK SIZE AND BLOCKING FACTOR BOTH SET)
  1663.  
  1664. TS3M13 EMESS TR,NK,15B,NC,RT,C315,(
  1665. ,CANNOT REPLACE LARGER RECORDS IN SEQUENTIAL MODE)
  1666.  
  1667. TS3M14 EMESS TR,NK,16B,NC,NR,C316,(
  1668. ,ONLY PUT ALLOWED IN CREATION MODE)
  1669.  
  1670. TS3M15 EMESS FA,NK,17B,NC,RT,C317,(
  1671. ,SISV1 FILE NOT OPEN)
  1672.  
  1673. TS3M16 EMESS TR,KY,20B,NC,RT,ZERO,(
  1674. ,SPECIFIED FILE SLOT IS EMPTY-REQUEST IGNORED)
  1675.  
  1676. TS3M17 EMESS TR,KY,21B,NC,RT,ZERO,(
  1677. ,SPECIFIED FILE SLOT IS OCCUPPIED-REQUEST IGNORED)
  1678.  
  1679. TS3M18 EMESS TR,KY,22B,NC,RT,ZERO,(
  1680. ,INVALID ACTUAL KEY-REQUEST IGNORED)
  1681.  
  1682. TS3M19 EMESS TR,NK,23B,NC,RT,ZERO,(
  1683. ,USER HEADER LENGTH INCONSISTENT WITH RECORD LENGTH-REQUEST IGNORED)
  1684.  
  1685. TS3M20 EMESS TR,NK,24B,NC,RT,ZERO,(
  1686. ,BLOCKING FACTOR TOO LARGE FOR KEY LENGTH)
  1687.  
  1688. TS3M21 EMESS TR,NK,25B,NC,RT,ZERO,(
  1689. ,MINIMUM RECORD SIZE MUST BE GREATER THAN ZERO)
  1690.  
  1691. TS3M22 EMESS TR,NK,26B,NC,RT,ZERO,(
  1692. ,RECORD SIZE TOO LARGE FOR BLOCK SIZE)
  1693.  
  1694. TS3M23 EMESS TR,NK,27B,NC,RT,ZERO,(
  1695. ,CANNOT SEQUENTIALLY POSITION PAST FILE BOUNDS)
  1696.  
  1697. TS3M24 EMESS TR,NK,30B,NC,RT,ZERO,(
  1698. ,PADDING PERCENTAGE OUT OF RANGE)
  1699.  
  1700. TS3M25 EMESS TR,NK,31B,NC,RT,ZERO,(
  1701. ,FILE MASS STORAGE LIMIT EXCEEDED)
  1702.  
  1703. TS3M26 EMESS TR,NK,32B,NC,RT,ZERO,(
  1704. ,INTERNAL I-O ERROR)
  1705.  
  1706. TS3M27 EMESS TR,NK,33B,NC,RT,ZERO,(
  1707. ,ILLEGAL TO OPEN-OLD A NULL FILE)
  1708.  
  1709. TS3M28 EMESS TR,NK,34B,NC,RT,ZERO,(
  1710. ,BLOCKING FACTOR TOO LARGE FOR BLOCK SIZE)
  1711.  
  1712. TS3M29 EMESS TR,NK,35B,NC,RT,ZERO,(
  1713. ,FILE LIMIT REACHED, LINEAR SEARCH FOR SPACE INITIATED)
  1714. SPACE 4,10
  1715. OVERFLOW OVL
  1716. OVERLAY (PFE - EXTEND/ALTER FUNCTION.)
  1717. PFE SPACE 4,20
  1718. *** PFE - EXTEND/ALTER FILE FUNCTION.
  1719. *
  1720. * ALTERS THE REQUESTED FILE TO HAVE AN EOI RECORDED
  1721. * AT THE CURRENT POSITION OF THE MASS STORAGE FILE. WORD
  1722. * CONTAINED AT THE ADDRESS IN THE FUNCTION CALL IS -
  1723. *
  1724. *
  1725. *T, PARM 42/ LOGICAL FILE NAME,9/ RET,3/ O,4/ F,1/ ,1/C
  1726. *
  1727. * RET IF THE *RC* AND *RT* PARAMETER DEFINED IN *O*, A
  1728. * RETURN CODE WILL BE AVAILABLE TO THE USER. THE
  1729. * FOLLOWING CODES WILL BE RETURNED -
  1730. *
  1731. * 000 - FUNCTION SUCCESSFUL
  1732. * 003 - UNKNOWN LFN
  1733. * 025 - FILE UNAVAILABLE
  1734. *
  1735. * O OPTIONS AVAILABLE ARE THE FOLLOWING -
  1736. * BIT 6 - RETURN CODE TO USER IN *RET*
  1737. *
  1738. * F FUNCTION CODE FOR ALTER. BITS 2 - 5 = 0111.
  1739. *
  1740. * C COMPLETION BIT. SET WHEN FUNCTION IS COMPLETE.
  1741. *
  1742. * DAYFILE MESSAGES.
  1743. *
  1744. * *SFP/PFE INCORRECT FUNCTION CODE.*
  1745. * *PFE* WAS CALLED WITH AN INCORRECT FUNCTION CODE.
  1746. *
  1747. * *SFP/PFE I/O SEQUENCE ERROR.*
  1748. * AN ACTION WAS REQUESTED ON A FILE THAT WAS
  1749. * ALREADY BUSY.
  1750.  
  1751.  
  1752. ENTRY PFE ENTRY
  1753. LDD IR+3 LOAD PARAMETER WORD
  1754. SHN 6
  1755. ADD RA
  1756. SHN 6
  1757. ADD IR+4
  1758. CRD FN PRESET FOR FILE SEARCH
  1759. CRD CN
  1760. LDD CN+4 CHECK ALTER/EXTEND FUNCTION CODE
  1761. LPN 33
  1762. LMN 30
  1763. ZJN PFE1 IF ALTER/EXTEND FUNCTION CODE
  1764. LDN /ERR/IAF * SFP/PFE INCORRECT FUNCTION CODE.*
  1765. LJM ERR ERROR EXIT
  1766.  
  1767. PFE1 RJM SAF SEARCH FOR FILE
  1768. NJN PFE2 IF FILE FOUND
  1769. LDN 3 SET *UNKNOWN FILE* RETURN CODE
  1770. LJM PFE8 STORE PARAMETER WORD
  1771.  
  1772. PFE2 LDD CN+4 CHECK FOR ALTER FUNCTION
  1773. SHN 21-2
  1774. MJN PFE3 IF ALTER FUNCTION
  1775. LJM PFE7 NO-OP EXTEND FUNCION
  1776.  
  1777. PFE3 RJM SFB SET FILE BUSY
  1778. ZJN PFE4 IF FILE MADE BUSY
  1779. LDN /ERR/IOS *SFP/PFE I/O SEQUENCE ERROR.*
  1780. LJM ERR
  1781.  
  1782. PFE4 LDD CM+3 CHECK FOR FILE UNAVAILABLE
  1783. LPN 35
  1784. ZJN PFE6 IF FILE AVAILABLE
  1785. PFE5 LDN 25 SET *UNAVAILABLE FILE* RETURN CODE
  1786. LJM PFE8 STORE PARAMETER WORD
  1787.  
  1788. PFE6 LDD FS SET EQUIPMENT
  1789. STD T5
  1790. SFA EST CHECK IF MASS STORAGE
  1791. ADK EQDE
  1792. CRD CM
  1793. LDD CM
  1794. SHN 21-13
  1795. PJN PFE5 IF NOT MASS STORAGE
  1796. LDD FS+2
  1797. ZJN PFE5 IF FILE NOT WRITTEN ON
  1798. LDD FS+1 SET FIRST TRACK
  1799. ZJN PFE5 IF FIRST TRACK NOT ASSIGNED
  1800. STD T6
  1801. RJM STI SET TRACK INTERLOCK
  1802. NJN PFE5 IF OPERATOR DROP
  1803. LDD FS+2 SET CURRENT POSITION
  1804. STD T6
  1805. LDD FS+3 SET CURRENT SECTOR
  1806. STD T7
  1807. SETMS IO
  1808. RJM WEI WRITE EOI SECTOR
  1809. MJP PFE10 IF MASS STORAGE ERROR
  1810. ENDMS
  1811. LDD T5 SET EQUIPMENT
  1812. STD CM+1
  1813. LDD T6 SET EOI TRACK
  1814. LPC 3777
  1815. STD CM+2
  1816. LDD T7 SET EOI SECTOR
  1817. STD CM+3
  1818. MONITOR DTKM DROP TRACKS
  1819. LDD FS+4 UPDATE FST AND SET COMPLETE
  1820. LPC 7460
  1821. LMC 303
  1822. STD FS+4
  1823. LDD FS+1 SET FIRST TRACK
  1824. STD T6
  1825. RJM CTI CLEAR TRACK INTERLOCK
  1826. NFA FA,R STORE FST ENTRY
  1827. ADK FSTL
  1828. CWD FS
  1829. PFE7 LDN 0
  1830. PFE8 STD T1 RETURN STATUS
  1831. LDD CN+3 CLEAR OLD RETURN CODE
  1832. SCN 77
  1833. STD CN+3
  1834. LDD CN+4
  1835. LPC 776
  1836. LMN 1
  1837. STD CN+4
  1838. SHN 21-6
  1839. PJN PFE9 IF NO RETURN REQUESTED
  1840. LDD T1 SET RETURN CODE
  1841. SHN 21-2
  1842. RAD CN+3
  1843. SHN -6
  1844. RAD CN+4
  1845. PFE9 LDD IR+3 RESTORE STATUS
  1846. SHN 6
  1847. ADD RA
  1848. SHN 6
  1849. ADD IR+4
  1850. CWD CN
  1851. LJM SFPX EXIT
  1852.  
  1853. PFE10 SHN 21-12
  1854. MJN PFE11 IF NON-RECOVERABLE MASS STORAGE ERROR
  1855. LDM MSD CHECK FOR SUBSYSTEM
  1856. SHN 21-13
  1857. PJN PFE11 IF SUBSYSTEM, RETURN ERROR
  1858. LDD T5 EST ORDINAL OF DEVICE
  1859. STD IR+4
  1860. EXECUTE 1RJ ROLL JOB
  1861. * LJM PPR DOES NOT RETURN
  1862.  
  1863. PFE11 MONITOR ABTM ABORT CONTROL POINT
  1864. LJM PPR EXIT
  1865.  
  1866.  
  1867. * COMMON DECKS.
  1868.  
  1869.  
  1870. *CALL COMPCTI
  1871. *CALL COMPSAF
  1872. *CALL COMPSFB
  1873. *CALL COMPSTI
  1874. *CALL COMPWEI
  1875. SPACE 4,10
  1876. OVERFLOW OVL
  1877. OVERLAY (ACE - ADVANCE COMMAND.)
  1878. ACE SPACE 4,30
  1879. *** ACE - ADVANCE COMMAND
  1880. *
  1881. * READS/BACKSPACES NEXT/PREVIOUS COMMAND INTO
  1882. * RA+70B - RA+77B WITH THE OPTION TO PLACE THE COMMAND
  1883. * IN THE DAYFILE AND/OR TO CRACK AND STORE THE COMMAND
  1884. * PARAMETERS IN *SCOPE 3.4* FORMAT INTO RA+2 - RA+53B.
  1885. * IF A READ FUNCTION IS ISSUED AND THE POINTER IS AT THE END
  1886. * OF THE COMMAND RECORD, AN EOR STATUS (BIT 4 SET IN THE
  1887. * FUNCTION CODE) AND RA+70B - RA+77B CLEARED. IF A BACKSPACE
  1888. * FUNCTION IS ISSUED AND THE POINTER IS AT THE BEGINNING OF
  1889. * THE COMMAND RECORD, THE POINTER IS NOT CHANGED AND AN
  1890. * EOR STATUS IS RETURNED. WHEN FUNCTION IS COMPLETE, THE
  1891. * COMPLETION BIT (BIT 0) IS SET AND RETURNED TO THE USER.
  1892. *
  1893. * CALL.
  1894. *
  1895. *T 24/ *ACEP*,9/ ,3/ F,6/ ,18/ FUNC ADDRESS
  1896. *
  1897. * *F* = X1 - CRACK PARAMETERS IN *SCOPE 3.4* FORMAT
  1898. * = 1X - ISSUE COMMAND TO DAYFILE
  1899. *
  1900. * *FUNC ADDRESS* = CM WORD CONTAINING FUNCTION TO BE
  1901. * PERFORMED.
  1902. *
  1903. *T FUNC 48/ ,12/ FUNCTION
  1904. *
  1905. * = 0010 - READ NEXT COMMAND AND
  1906. * ADVANCE COMMAND POINTER.
  1907. * = 0040 - BACKSPACE TO PREVIOUS COMMAND
  1908. *
  1909. * EXIT COMPLETION BIT SET IN *FUNCTION*.
  1910. *
  1911. * DAYFILE MESSAGES.
  1912. *
  1913. * *SFP/ACE INCORRECT FUNCTION CODE.*
  1914. * THE FUNCTION CODE AT *FUNC ADDRESS IS UNDEFINED.
  1915.  
  1916.  
  1917. ENTRY ACE ENTRY
  1918. LDD IR+3 LOAD FUNCTION CODE
  1919. LPN 37
  1920. SHN 6
  1921. ADD RA
  1922. SHN 6
  1923. ADD IR+4
  1924. CRM ACEC,ON (ACEC+4) = FUNCTION CODE
  1925. LDD CP
  1926. ADN CSPW
  1927. CRD SP (SP - SP+4) = COMMAND POINTER
  1928. ADN CSSW-CSPW
  1929. CRD CN (CN - CN+4) = COMMAND FILE STATUS
  1930. LDM ACEC+4 CHECK FUNCTION CODE
  1931. LMN 10
  1932. ZJN ACE1 IF *READ* FUNCTION
  1933. LMN 40&10
  1934. ZJN ACE4 IF BACKSPACE FUNCTION
  1935. LDN /ERR/IAF * SFP/ACE INCORRECT FUNCTION CODE.*
  1936. LJM ERR ERROR EXIT
  1937.  
  1938. * READ FUNCTION.
  1939.  
  1940. ACE1 LDD SP+3 CHECK COMMAND BUFFER
  1941. LMD SP+4
  1942. NJN ACE3 IF NOT EMPTY
  1943. LDD SP+1 SEE IF AT *EOR*
  1944. SHN 21-13
  1945. PJN ACE3 IF NOT AT EOR
  1946. ACE2 LDN 20
  1947. RAM ACEC+4
  1948. ACE3 LJM ACE13 COMPLETE FUNCTION
  1949.  
  1950. * BACKSPACE FUNCTION.
  1951.  
  1952. ACE4 LDD SP+3
  1953. LMC CSBN
  1954. ZJN ACE5 IF BEGINNING OF BUFFER
  1955. LJM ACE9 BACKSPACE WITHIN BUFFER
  1956.  
  1957. ACE5 LDD CN+1
  1958. LMD CN+2
  1959. NJN ACE6 IF CURRENT TRACK NOT FIRST
  1960. LDD CN+3
  1961. SBN FSMS+2
  1962. MJN ACE2 IF COMMAND BUFFER EMPTY
  1963. ACE6 LDD SP+1
  1964. LPC 3777 CLEAR EOR FLAG
  1965. STM ACEB
  1966. SOD SP+2 DECREMENT COMMAND COUNT
  1967. PJN ACE7 IF NO UNDERFLOW
  1968. AOD SP+2
  1969. SOM ACEB
  1970. MJN ACE2 IF HIGH ORDER UNDERFLOW
  1971. LDD SP+2
  1972. ACE7 STM ACEB+1 SAVE PREVIOUS COMMAND COUNT
  1973. LDN 0 CLEAR COMMAND COUNTER
  1974. STD SP+1
  1975. STD SP+2
  1976. LDC CSBN
  1977. STD SP+3
  1978. STD SP+4
  1979. LDD CN+1 REWIND COMMAND FILE
  1980. STD CN+2 FIRST = CURRENT TRACK
  1981. LDN FSMS
  1982. STD CN+3
  1983. LDD CP UPDATE *CSPW* AND *CSPW* + 1
  1984. ADN CSPW
  1985. CWD SP COMMAND POINTER WORD
  1986. ADN CSSW-CSPW
  1987. CWD CN COMMAND FILE STATUS
  1988. ACE8 RJM RCS READ COMMAND
  1989. PJN ACE8.2 IF NO MASS STORAGE ERROR
  1990. LDM RDCT CHECK FOR NON-RECOVERABLE ERROR
  1991. SHN 21-12
  1992. MJN ACE8.1 IF NON-RECOVERABLE MASS STORAGE ERROR
  1993. LDM MSD CHECK FOR SUBSYSTEM
  1994. SHN 21-13
  1995. PJN ACE8.1 IF SUBSYSTEM, RETURN ERROR
  1996. LDD T5 EST ORDINAL OF DEVICE
  1997. STD IR+4
  1998. EXECUTE 1RJ ROLL JOB
  1999. * LJM PPR DOES NOT RETURN
  2000.  
  2001. ACE8.1 MONITOR ABTM ABORT CONTROL POINT
  2002. LJM PPR EXIT
  2003.  
  2004. ACE8.2 LDD SP+1 SEE IF AT RIGHT COMMAND
  2005. LPC 3777 CLEAR EOR FLAG
  2006. LMM ACEB
  2007. NJN ACE8 IF NOT AT RIGHT COMMAND
  2008. LMD SP+2
  2009. LMM ACEB+1
  2010. NJN ACE8 IF NOT AT RIGHT COMMAND
  2011. UJN ACE12 UPDATE COMMAND WORD
  2012.  
  2013. ACE9 LDN 2 NUMBER OF COMMAND BOUNDARIES
  2014. STD T1
  2015. ACE10 AOD SP+3
  2016. LMC CSBN
  2017. ZJN ACE11 IF AT FIRST WORD IN BUFFER
  2018. NFA SP+3,R
  2019. CRD CM
  2020. LDD CM+4
  2021. NJN ACE10 IF NOT END OF COMMAND
  2022. SOD T1
  2023. NJN ACE10 IF NOT SECOND COMMAND BOUNDARY
  2024. SOD SP+3 PLACE COMMAND POINTER TO NEXT COMMAND
  2025. ACE11 SOD SP+2 DECREMENT COMMAND COUNTER
  2026. PJN ACE12 IF NO UNDERFLOW
  2027. SOD SP+1
  2028. AOD SP+2
  2029. ACE12 LDD CP UPDATE COMMAND WORD
  2030. ADN CSPW
  2031. CWD SP
  2032. ACE13 LDD CP LOAD ENTRY POINT WORD
  2033. ADC SEPW
  2034. CRD CM
  2035. LDD CM CLEAR *ARG=* AND *SDM=* FLAGS
  2036. LPC 7727
  2037. STD CM
  2038. LDD IR+2 CHECK OPTIONS
  2039. SHN 21-1
  2040. MJN ACE14 IF SEND DAYFILE
  2041. LDN 10 SET *SDM=* FLAG
  2042. RAD CM
  2043. ACE14 LDD IR+2
  2044. LPN 1 SET ARG= VALUE
  2045. SHN 5
  2046. RAD CM
  2047. AOM ACEC+4 SET COMPLETION BIT
  2048. LDD IR+3 RETURN FUNCTION CODE TO CALLER
  2049. LPN 37
  2050. SHN 6
  2051. ADD RA
  2052. SHN 6
  2053. ADD IR+4
  2054. CWM ACEC,ON
  2055. LDM ACEC+4
  2056. LPN 40
  2057. NJN ACE15 IF BACKSPACE FUNCTION
  2058. LDD CP RETURN ENTRY POINT WORD
  2059. ADC SEPW
  2060. CWD CM
  2061. LDD IR+1 SET CP NUMBER AND RECALL STATUS
  2062. LPN 77
  2063. RAM ACEA+1
  2064. LDD IA MAKE CALL TO *TCS*
  2065. CWM ACEA,ON
  2066. EXECUTE TCS,=
  2067. LJM PPR LOAD *TCS*
  2068.  
  2069. ACE15 LJM SFPX EXIT
  2070.  
  2071.  
  2072. ACEA VFD 18/3LTCS,1/0,5/0,12/4,6/40,18/CCDR
  2073. SPACE 4,10
  2074. * COMMON DECKS.
  2075.  
  2076.  
  2077. *CALL,COMPRNS
  2078. *CALL,COMPRCS
  2079. SPACE 4,10
  2080. USE BUFFER
  2081. STMT EQU * COMMAND BUFFER
  2082. ACEB EQU STMT+55 COMMAND COUNT
  2083. ACEC EQU ACEB+2 FUNCTION CODE
  2084.  
  2085. SPACE 4,10
  2086. OVERFLOW OVL
  2087. OVERLAY (PRM - PERMISSION CHECKING FUNCTION.)
  2088. PRM SPACE 4,30
  2089. *** PRM - *SCOPE 3.4* PERMISSION CHECKING FUNCTION.
  2090. *
  2091. * PRM WILL SCAN FOR AN FNT ENTRY WHOSE ADDRESS IS
  2092. * CONTAINED IN THE CALL AND, IF FOUND, WILL MAP THE *NOS*
  2093. * FILE PERMISSION BITS INTO THE *SCOPE 3.4* PERMISSION BITS AND
  2094. * RETURN TO THE USER AS A STATUS. IF THE CALL ADDRESS IS OUT
  2095. * OF RANGE OR THE REQUESTED FILE DOES NOT EXIST, NO DIAGNOSTIC
  2096. * WILL BE ISSUED AND NO STATUS WILL BE RETURNED TO THE USER.
  2097. *
  2098. * CALL
  2099. *
  2100. *T 24/ *PRM*,18/ ,18/ PARM ADDRESS
  2101. *
  2102. * *PARM ADDRESS* = CM ADDRESS WHICH CONTAINS THE FILE
  2103. * NAME TO SEARCH FOR.
  2104. *
  2105. *T PARM 42/ *LFN*,9/ CODE,8/ ,1/C
  2106. *
  2107. * *CODE* = A 5-BIT CODE RETURNED BY *PRM* IN BITS
  2108. * 9 - 13. THE RIGHTMOST 4 BITS ARE THE
  2109. * PERMISSION BITS. THE BINARY CODES ARE
  2110. *
  2111. * BITS 9 - 12.
  2112. *
  2113. * 1 0 0 0 CONTROL PERMISSION
  2114. * 0 1 0 0 MODIFY PERMISSION
  2115. * 0 0 1 0 EXTEND PERMISSION
  2116. * 0 0 0 1 READ PERMISSION
  2117. *
  2118. * BIT 13.
  2119. *
  2120. * 1 NON - PERMANENT FILE
  2121. * 0 PERMANENT FILE
  2122. *
  2123. * ALL BITS(9 - 13) ZERO IMPLIES FILE NOT FOUND.
  2124. *
  2125. * *C* = COMPLETION BIT. SET TO 1 WHEN FUNCTION IS
  2126. * COMPLETED.
  2127.  
  2128.  
  2129. ENTRY PRM ENTRY
  2130. LDN SSTL CHECK LOGGING ENABLED
  2131. CRD CM
  2132. LDD CM+3
  2133. SHN 21-4
  2134. MJN PRM1 IF ANALYST LOGGING DISABLED
  2135. LDC =C$ **** USE *FILINFO* IN PLACE OF *PRM* CALL ****.$
  2136. RJM DFM
  2137. PRM1 LDA IR+3 READ FILE NAME
  2138. CRD FN SET FILE TO FIND
  2139. RJM SAF SEARCH FOR FILE
  2140. ZJN PRM8 IF FILE NOT FOUND
  2141. LDD FS+4 CHECK FOR DIRECT ACCESS FILE
  2142. SHN -6
  2143. LMN PMFT
  2144. ZJN PRM2 IF DIRECT ACCESS
  2145. LDN 2 SET NON - PERMANENT FILE
  2146. RAD FN+3
  2147. PRM2 LDD FS+3 CHECK PERMISSIONS
  2148. LPN 35
  2149. ZJN PRM3 IF WRITE
  2150. LMN 30
  2151. ZJN PRM4 IF MODIFY
  2152. LMN 30&20
  2153. ZJN PRM5 IF APPEND
  2154. LMN 20&10
  2155. ZJN PRM6 IF UPDATE
  2156. LMN 10&5
  2157. ZJN PRM7 IF EXECUTE
  2158. LCN 17-1 SET READ ONLY PERMISSION
  2159. PRM3 ADN 10 SET CONTROL PERMISSION
  2160. PRM4 ADN 4 SET MODIFY PERMISSION
  2161. PRM5 ADN 3 SET EXTEND/READ PERMISSIONS
  2162. UJN PRM7 RETURN PERMISSION BITS
  2163.  
  2164. PRM6 ADN 5 SET READ/MODIFY PERMISSIONS
  2165. PRM7 SHN 11 POSITION PERMISSION BITS
  2166. STD FN+4
  2167. SHN -14
  2168. RAD FN+3
  2169. PRM8 AOD FN+4 SET COMPLETION BIT
  2170. LDA IR+3 RETURN INFORMATION TO CALLER
  2171. CWD FN
  2172. LJM SFPX EXIT
  2173.  
  2174.  
  2175. * COMMON DECKS.
  2176.  
  2177.  
  2178. *CALL COMPSAF
  2179. SPACE 4,10
  2180. OVERFLOW OVL
  2181. OVERLAY (SRP - SPECIAL REQUEST PROCESSING.)
  2182. SRP SPACE 4,30
  2183. *** SRP - SPECIAL REQUEST PROCESSING.
  2184. *
  2185. * SRP CONSISTS OF ROUTINES WHICH SET UP A SPECIAL
  2186. * PROCESSING WORD IN THE CALLING CONTROL POINT AREA (SPCW)
  2187. * FOR FOLLOW-UP PROCESSING BY *1AJ* AND A CP PROGRAM
  2188. * ASSOCIATED WITH THE CALL.
  2189. *
  2190. * FORMAT OF *SPCW* -
  2191. *
  2192. *T SPCW 18/ ENTRY POINT, 6/ CODES, 18/ PARAMETER, 18/ PARM ADDR
  2193. *
  2194. * ENTRY POINT = NAME OF ENTRY IN CP PROGRAM.
  2195. * CODES = CONTROL CODES FOR USE BY *1AJ*
  2196. * 1/A, 1/B, 1/C, 1/D, 2/0
  2197. * A = REQUEST ACTIVE (1AJ USE ONLY)
  2198. * B = CLEAR RA+1 BEFORE RELOAD IF NOT SET
  2199. * C = REMAINDER OF WORD IS PARAMETER LIST NOT
  2200. * ADDRESS OF PARAMETER LIST
  2201. * D = DO NOT RESTART CPU (1AJ USE ONLY)
  2202. * PARAMETER = INPUT/OUTPUT PARAMETER
  2203. * 18/ PARAMETER ON INPUT
  2204. * 12/ STATUS,6/ UNUSED ON OUTPUT
  2205. * PARM ADDR = PARAMETER ADDRESS PASSED IN CALL.
  2206. *
  2207. * EACH *SRP* ROUTINE WILL SET THE ROLLOUT FLAG IN THE CONTROL
  2208. * POINT AREA.
  2209. *
  2210. * DAYFILE MESSAGES.
  2211. *
  2212. * *SFP/SRP SPECIAL REQUEST PROCESSING ERROR.*
  2213. * A SPECIAL REQUEST WAS OUTSTANDING WHEN THE CURRENT
  2214. * SPECIAL REQUEST WAS ISSUED.
  2215. CKP SPACE 4,10
  2216. ** CKP - CHECKPOINT REQUEST.
  2217. *
  2218. * ENTRY (IR - IR+4) = CALL.
  2219. *
  2220. * EXIT SPCW WORD SET IN CONTROL POINT AREA FOR CP PROGRAM.
  2221.  
  2222.  
  2223. ENTRY CKP ENTRY
  2224. LDN 0 SELECT CLEAR RA+1 OPTION (CODES B)
  2225. UJN DMP1 PROCESS *SPCW* WORD
  2226. REQ SPACE 4,10
  2227. ** REQ - REQUEST EQUIPMENT ASSIGNMENT.
  2228. *
  2229. * ENTRY (IR - IR+4) = CALL.
  2230. *
  2231. * EXIT SPCW WORD SET IN CONTROL POINT AREA FOR CP PROGRAM.
  2232.  
  2233.  
  2234. ENTRY REQ ENTRY
  2235. LDN 0 SELECT CLEAR RA+1 OPTION (CODES B)
  2236. UJN DMP1
  2237. DEP SPACE 4,10
  2238. ** DEP - DUMP EXTENDED MEMORY FIELD LENGTH.
  2239. *
  2240. * ENTRY (IR - IR+4) = CALL.
  2241. *
  2242. * EXIT SPCW WORD SET IN CONTROL POINT FOR CP PROGRAM.
  2243.  
  2244.  
  2245. ENTRY DEP ENTRY
  2246. LDN 0 SELECT CLEAR RA+1 OPTION (CODES B)
  2247. UJN DMP1 PROCESS *SPCW* WORD
  2248. DMP SPACE 4,10
  2249. ** DMP - DUMP CM FIELD LENGTH.
  2250. * DMB - DUMP CM/EXTENDED MEMORY FIELD LENGTH IN BINARY.
  2251. * DMM - DUMP MACHINE MEMORY.
  2252. *
  2253. * ENTRY (IR - IR+4) = CALL.
  2254. * ENTERED AT *DMP1* FROM *CKP*, *DEP* AND *RWQ*.
  2255. *
  2256. * EXIT SPCW WORD SET IN CONTROL POINT AREA FOR CP PROGRAM.
  2257. *
  2258. * USES CM - CM+4, IR+1.
  2259. *
  2260. * CALL ISP.
  2261. *
  2262. * MACROS MONITOR.
  2263.  
  2264.  
  2265. ENTRY DMP ENTRY
  2266. LDN 10 SELECT PARAMETER LIST OPTION (CODES C)
  2267. DMP1 STD CM
  2268. LDD IR+1 CHECK AUTO RECALL
  2269. LPN 40
  2270. NJN DMP1.1 IF AUTO RECALL SPECIFIED
  2271. LJM DMP2 PROCESS ERROR
  2272.  
  2273. DMP1.1 BSS 0
  2274. RJM ISP INITIALIZE SPCW
  2275. LDD CM
  2276. RAM DMPA+1
  2277. LDD CP LOAD SPCW
  2278. ADC SPCW
  2279. CRD CM
  2280. LDD CM CHECK FOR *SPCW* FREE
  2281. NJN DMP2 IF *SPCW* NOT FREE
  2282. LDD CP STORE SPECIAL REQUEST
  2283. ADC SPCW
  2284. CWM DMPA,ON
  2285. LDN ZERL CLEAR *ROCM* PARAMETERS
  2286. CRD CM
  2287. ERRNZ ROSR CODE ASSUMES *ROSR* = 0
  2288. MONITOR ROCM
  2289. LDD IR+1 RESTORE SYSTEM REQUEST
  2290. SCN 77
  2291. LMN 20 SET AUTO RECALL
  2292. STD IR+1
  2293. LDD RA WRITE TO RA+1
  2294. SHN 6
  2295. ADN 1
  2296. CWD IR
  2297. LJM SFPX EXIT
  2298.  
  2299. DMP2 LDN /ERR/SRE *SFP/SRP SPECIAL REQUEST ERROR.*
  2300. LJM ERR ERROR EXIT
  2301.  
  2302.  
  2303. DMPA VFD 18/0,6/0,12/0,6/0,18/0
  2304. ISP SPACE 4,10
  2305. ** ISP - INITIALIZE SPCW.
  2306. *
  2307. * EXIT (DMPA - DMPA+1) = ((IA))
  2308.  
  2309.  
  2310. ISP SUBR ENTRY/EXIT
  2311. LDD IA READ CALL
  2312. CRM DMPA,ON
  2313. LDM DMPA+1
  2314. SCN 77 CLEAR CODES
  2315. STM DMPA+1
  2316. UJN ISPX RETURN
  2317. SPACE 4,10
  2318. OVERFLOW OVL
  2319. OVERLAY (ERP - ERROR PROCESSOR.)
  2320.  
  2321.  
  2322. ERRNZ 3R".O"-3R2SG *SLL* ASSUMES *2SG* IS ERROR PROCESSOR
  2323. ERP SPACE 4,10
  2324. *** ERP - ERROR PROCESSOR.
  2325. *
  2326. * ENTRY (EI) = ERROR NUMBER.
  2327. *
  2328. * EXIT TO *PPR* IF CONTROL POINT ABORTED.
  2329. * TO *SFPX* IF NON=FATAL ERROR.
  2330. *
  2331. * CALLS DFM, NFE, SNM, SPN.
  2332. *
  2333. * MACROS MONITOR.
  2334.  
  2335.  
  2336. ENTRY ERP
  2337. LDC ERPT+1 SET MESSAGE ADDRESS
  2338. RAD EI
  2339. LDM -1,EI
  2340. ZJN ERP1 IF NO SPECIAL PROCESSING
  2341. STM ERPA
  2342. RJM 0 PREPROCESS ERROR
  2343. ERPA EQU *-1
  2344.  
  2345. ERP1 LDD EI
  2346. LMC /ERR/PCE+ERPT+1
  2347. ZJN ERP3 IF PP-CALL ERROR
  2348. ERP2 LDI EI ISSUE MESSAGE TO DAYFILE
  2349. RJM DFM
  2350. MONITOR ABTM ABORT CONTROL POINT
  2351. LJM PPR
  2352.  
  2353. ERP3 LDD CP
  2354. ADN FLSW
  2355. CRD T0
  2356. LDD T0+2
  2357. ADD T0+3
  2358. ZJN ERP4 IF SYSTEM CONTROL POINT
  2359. LDD FL
  2360. ZJN ERP2 IF NO FIELD LENGTH
  2361. LDM SNMB
  2362. NJN ERP2 IF REQUEST NOT FROM INPUT REGISTER
  2363. LDN PCET
  2364. STD CM+1
  2365. MONITOR CEFM CHANGE ERROR FLAG
  2366. LDD RA REWRITE SYSTEM REQUEST TO RA+1.
  2367. SHN 6
  2368. ADN 1
  2369. CWD IR
  2370. LJM SFPX DROP PP
  2371.  
  2372. ERP4 LDC SNMA * XXX NOT IN PP LIB.*
  2373. RJM DFM
  2374. LJM SFPX DROP PPU
  2375.  
  2376. ERPT BSS 0
  2377. QUAL ERR
  2378. LOC 0
  2379.  
  2380. SCE CON 0,=C* SFP CALL ERROR.*
  2381. PCE CON /".O"/SNM,/".O"/SNMA * XXX NOT IN PP LIB.*
  2382. *PCE CON 0,0 * MONITOR CALL ERROR.* (ISSUED BY 1AJ)
  2383. IOC CON /".O"/SPN,=C* INCORRECT ORIGIN CODE.*
  2384. PAE CON /".O"/SPN,=C* PARAMETER ERROR.*
  2385. IAF CON /".O"/SPN,=C* INCORRECT FUNCTION CODE.*
  2386. SRE CON /".O"/SPN,=C* SPECIAL REQUEST PROCESSING ERROR.*
  2387. NET CON /".O"/NFE,=C* ERROR TEXT NOT FOUND.*
  2388. NMS CON /".O"/NFE,=C* ERROR TEXT NOT ON MASS STORAGE.*
  2389. BET CON /".O"/NFE,=C* BAD ERROR TEXT.*
  2390. IMN CON /".O"/NFE,=C* INCORRECT MESSAGE NUMBER.*
  2391. IOS CON /".O"/SPN,=C* I/O SEQUENCE ERROR.*
  2392. IDC CON /".O"/SPN,=C* UNKNOWN DEVICE NAME/TYPE.*
  2393.  
  2394. LOC *O
  2395. QUAL *
  2396.  
  2397.  
  2398. NFE SPACE 4,10
  2399. ** NFE - NON-FATAL ERROR PROCESSOR.
  2400. *
  2401. * NFE ISSUES THE SPECIFIED MESSAGE AND A SECOND MESSAGE WHICH
  2402. * IDENTIFIES THE ERROR TEXT AND MESSAGE NUMBER.
  2403. *
  2404. * ENTRY (EI) = ADDRESS OF *ERPT* POINTER TO ERROR MESSAGE.
  2405. * (MN) = MESSAGE NUMBER.
  2406. * (ERRA - ERRA+3) = ERROR TEXT NAME.
  2407. *
  2408. * EXIT TO *SFPX*.
  2409. *
  2410. * USES T1.
  2411. *
  2412. * CALLS ACS, ANS, DFM, SPN.
  2413.  
  2414.  
  2415. NFE CON 0 ENTRY
  2416. RJM SPN SET PACKAGE NAME IN MESSAGE
  2417. LDI EI
  2418. LMC CPON ISSUE BASE MESSAGE
  2419. RJM DFM
  2420. LDI EI
  2421. ADN 4 ADVANCE PAST * SFP/D00*
  2422. STD T1
  2423. LDN 0 TRUNCATE BASE MESSAGE
  2424. STI T1
  2425. LDC =C* TEXT=*
  2426. RJM ACS ASSEMBLE CHARACTER STRING
  2427. LDC ERRA ADDRESS OF TEXT DECK NAME
  2428. RJM ACS ASSEMBLE TEXT DECK NAME
  2429. LDC =C*, MSG=*
  2430. RJM ACS ASSEMBLE CHARACTER STRING
  2431. LDM ERRB
  2432. RJM ANS ASSEMBLE MESSAGE NUMBER
  2433. LDC =C*B.*
  2434. RJM ACS TERMINATE MESSAGE
  2435. LDI EI
  2436. LMC CPON ISSUE SECOND MESSAGE
  2437. RJM DFM
  2438. LJM SFPX DROP PP
  2439. SNM SPACE 4,10
  2440. ** SNM - SET NAME IN MESSAGE.
  2441. *
  2442. * ENTRY (PN - PN+1) = PACKAGE NAME TO LOAD.
  2443. * (IR - IR+1) = PROGRAM MAKING CALL.
  2444. *
  2445. * EXIT * XXX NOT IN PP LIB.* MESSAGE SET UP.
  2446. *
  2447. * USES PN+1.
  2448.  
  2449.  
  2450. SNM SUBR ENTRY/EXIT
  2451. LDD PN+1 SET PACKAGE NAME
  2452. LPN 77
  2453. NJN SNM1 IF NOT ZERO CHARACTER
  2454. LDN 1R
  2455. RAD PN+1
  2456. SNM1 LDD PN+1
  2457. STM SNMA+1
  2458. LDD PN
  2459. LMC 1R *100
  2460. STM SNMA
  2461. LDD IR+1
  2462. SCN 77
  2463. LMN 1R.
  2464. STM SNMB+6
  2465. SCN 77
  2466. SHN 6
  2467. LMD IR
  2468. STM SNMB+5
  2469. SHN 6
  2470. LMD PN+1
  2471. SHN 6
  2472. LMD PN
  2473. NJN SNM2 IF CALLED BY *YYY*
  2474. STM SNMB
  2475. SNM2 LJM SNMX RETURN
  2476.  
  2477. SNMA DATA L* XXX NOT IN PP LIB. *
  2478. SNMB DATA C*CALLED BY YYY.*
  2479. SPN SPACE 4,10
  2480. ** SPN - SET PACKAGE NAME.
  2481. *
  2482. * ENTRY (EI) = ADDRESS OF *ERPT* POINTER TO ERROR MESSAGE.
  2483. *
  2484. * USES T1.
  2485.  
  2486.  
  2487. SPN SUBR ENTRY/EXIT
  2488. LCN 4
  2489. RAI EI
  2490. STD T1
  2491. LDC 2R S
  2492. STI T1 ADD * SFP* TO MESSAGE
  2493. LDC 2RFP
  2494. STM 1,T1
  2495. LDD IR+1
  2496. SCN 77
  2497. SHN 6
  2498. LMD IR
  2499. SHN 6
  2500. STM 3,T1 ADD PACKAGE NAME TO MESSAGE
  2501. SHN -14
  2502. LMC 1R/*100
  2503. STM 2,T1
  2504. UJN SPNX RETURN
  2505.  
  2506.  
  2507. * COMMON DECKS FOR ERROR PROCESSOR.
  2508.  
  2509.  
  2510. *CALL COMPACS
  2511. *CALL COMPANS
  2512. SPACE 4,10
  2513. OVERFLOW OVL
  2514. OVERLAY (D00 - EXTRACT ERROR TEXT.)
  2515. D00 SPACE 4,30
  2516. *** D00 - EXTRACT ERROR TEXT.
  2517. *
  2518. * D00 IS A GOODIE THAT WILL EXTRACT MESSAGES FROM SPECIALLY
  2519. * CREATED SYSTEM TEXT DECKS TO AID IN ANALYZING ERROR
  2520. * SITUATIONS RESULTING FROM A PRODUCT SET. BY USING AN ERROR
  2521. * NUMBER AND THE PROPER SYSTEM TEXT DECK, AN ERROR DIAGNOSTIC
  2522. * WILL BE TRANSMITTED TO THE DAYFILE AND/OR TO A SPECIFIED CM
  2523. * BUFFER. ALL SYSTEM TEXT DECKS TO BE USED MUST BE
  2524. * MS RESIDENT.
  2525. *
  2526. * CALL.
  2527. *
  2528. *T 18/ *D00*,6/R,18/0,18/ ADDRES
  2529. *
  2530. *T,ADDRES 12/ A,12/ MSG NO.,12/ BUF SIZE,18/ BUF ADDR ,6/
  2531. *T 42/ TEXT DECK NAME,18/ INSERT CHARACTER
  2532. *
  2533. * WHERE A = 4000B - IF INSERTIONS TO MESSAGES.
  2534. * A = 2000B - IF DAYFILE MESSAGE TRANSFER.
  2535. * A = 1000B - IF CM BUFFER MESSAGE TRANSFER.
  2536. *
  2537. * EXIT.
  2538. *
  2539. *T ADDRES 36/ ,12/ STATUS,12/ 1
  2540. *
  2541. * WHERE STATUS = 0 - IF TRANSMITTAL TO DAYFILE ONLY.
  2542. *
  2543. * = 7777B IF ERROR.
  2544. * = CM WORDS WRITTEN IF CM BUFFER TRANSMITTAL.
  2545. *
  2546. *
  2547. * DAYFILE MESSAGES.
  2548. *
  2549. *
  2550. * *SFP/D00 ERROR TEXT NOT FOUND.*
  2551. * THE SPECIFIED SYSTEMS TEXT COULD NOT BE FOUND.
  2552. *
  2553. * *SFP/D00 ERROR TEXT NOT ON MASS STORAGE.*
  2554. * THE SPECIFIED SYSTEMS TEXT DOES NOT RESIDE ON
  2555. * MASS STORAGE.
  2556. *
  2557. * *SFP/D00 BAD ERROR TEXT.*
  2558. * THE SPECIFIED SYSTEMS TEXT IS NOT IN CORRECT FORMAT.
  2559. *
  2560. * *SFP/D00 INCORRECT MESSAGE NUMBER.*
  2561. * THE SPECIFIED MESSAGE NUMBER COULD NOT BE FOUND ON
  2562. * THE SYSTEMS TEXT.
  2563. *
  2564. * *SFP/D00 TEXT = XXXXXXX, MSG = NNNN.*
  2565. * IDENTIFIES THE SPECIFIED TEXT AND MESSAGE NUMBER
  2566. * CAUSING THE PREVIOUS DAYFILE MESSAGE. ALWAYS
  2567. * FOLLOWS ONE OF THE ABOVE DAYFILE MESSAGES.
  2568.  
  2569.  
  2570.  
  2571. EJECT
  2572. * DIRECT CELL ASSIGNMENTS.
  2573.  
  2574.  
  2575. BA EQU 20 PP BUFFER ADDRESS
  2576. B1 EQU 21 TEMPORARY STORAGE
  2577. B2 EQU 22 TEMPORARY STORAGE
  2578. IA EQU 23 INDEX ADVANCE
  2579. BE EQU 24 END OF PP BUFFER
  2580. IF EQU 25 INSERTION FLAG
  2581. TD EQU 26 TRANSMIT DAYFILE
  2582. TC EQU 27 TRANSMIT CM BUFFER
  2583. AB EQU 40 - 44 TEXT NAME
  2584. ER EQU 40 RECORD STATUS
  2585. SC EQU 41 SECTOR COUNT
  2586. WC EQU 42 WORD COUNT
  2587. IC EQU 44 INSETTION CHARACTER
  2588. AD EQU 45 - 46 CM BUFFER ADDRESS
  2589. ST EQU 47 EXIT STATUS
  2590. P0 EQU 57 TEMPORARY LOCATION
  2591. MN EQU 60 MESSAGE NUMBER
  2592. BF EQU 61 CM BUFFER SIZE
  2593. P1 EQU 62 TEMPORARY LOCATION
  2594. IN EQU 63 - 67 INSERTION MESSAGE
  2595. EJECT
  2596. * D00 - MAIN PROCESSING.
  2597.  
  2598. D001 LDC TBUF PROCESS FIRST SECTOR
  2599. RJM FPB
  2600. LDM 2,BA
  2601. LMC 7700
  2602. NJN D002 IF NO PREFIX TABLE
  2603. AOM 3,BA
  2604. STD T2
  2605. SHN 2
  2606. ADD T2
  2607. RAD BA ADVANCE INDEX
  2608. LDD WC
  2609. SBD T2 ADJUST WORD COUNT
  2610. STD WC
  2611. D002 LDM 2,BA
  2612. ADM 3,BA
  2613. LMC 5101
  2614. ZJN D004 IF SYSTEMS TEXT FORMAT
  2615. D003 LDN /ERR/BET *SFP/D00 BAD ERROR TEXT.*
  2616. LJM NFE NON FATAL ERROR
  2617.  
  2618. D004 STD ST CLEAR STATUS BYTE
  2619. LDM 12,BA
  2620. SHN 14
  2621. LMM 13,BA SET LENGTH OF SYMBOL TABLE
  2622. SHN -1
  2623. STD P0
  2624. ZJN D003 IF NO SYMBOL TABLE
  2625. LDN 25
  2626. RAD BA ADVANCE INDEX
  2627. LCN 4
  2628. RAD WC
  2629. RJM SST SEARCH SYMBOL TABLE
  2630. RJM PMS PROCESS MICRO SEARCH
  2631.  
  2632. * INSERT MESSAGE STUFF.
  2633.  
  2634. LDD IF
  2635. NJN D005 IF INSERTIONS TO BE PROCESSED
  2636. STD IC CLEAR INSERTION CHARACTER
  2637. D005 RJM PIM PROCESS D00 OPTIONS
  2638.  
  2639. * SET EXIT STATUS.
  2640.  
  2641. D006 RJM SES
  2642. LJM SFPX RETURN
  2643. PIM SPACE 4,20
  2644. ** PIM - PROCESS MESSAGE INSERTIONS.
  2645. *
  2646. * ENTRY (IC) = INSERTION CHARACTER.
  2647. * (TC) = TRANSMIT TO CM BUFFER FLAG.
  2648. * (TD) = TRANSMIT TO DAYFILE FLAG.
  2649. * (BA) = LWA OF MESSAGE.
  2650. * (BF) = BUFFER SIZE.
  2651. * (AD - AD+1) = FWA OF CM BUFFER.
  2652. * (P1) = FWA OF MESSAGE.
  2653. *
  2654. * EXIT MESSAGE SENT TO DAYFILE AND MESSAGE BUFFER
  2655. * AS REQUIRED.
  2656. * (ST) = NUMBER OF CM WORDS RETURNED TO CM BUFFER.
  2657. *
  2658. * USES P0, P1, ST, T1, T4, T5, T6.
  2659. *
  2660. * CALLS DFM, ICS.
  2661. *
  2662. * MACROS LDA.
  2663.  
  2664.  
  2665. PIM SUBR ENTRY/EXIT
  2666. LDN 1
  2667. STD P0 INITIALIZE INDEX TO PARAMETER AREA
  2668. LDC MBUF
  2669. STD T6 DEFINE CHARACTER BUFFER
  2670. SOD P1
  2671. LDM -1,BA
  2672. SCN 77 CLEAR END OF MESSAGE
  2673. STM -1,BA
  2674.  
  2675. * PROCESS MESSAGE INSERTIONS.
  2676.  
  2677. PIM1 AOD P1 ADVANCE MESSAGE ADDRESS
  2678. LDI P1
  2679. SHN -6 EXTRACT UPPER CHARACTER
  2680. STI T6
  2681. ZJN PIM4 IF END OF MESSAGE
  2682. LMD IC
  2683. NJN PIM2 IF NOT INSERTION CHARACTER
  2684. RJM ICS
  2685. PIM2 AOD T6 ADVANCE BUFFER ADDRESS
  2686. SBD P1
  2687. PJN PIM4 IF MESSAGE OVERLAID
  2688. LDI P1
  2689. LPN 77 EXTRACT LOWER CHARACTER
  2690. STI T6
  2691. ZJN PIM4 IF END OF MESSAGE
  2692. LMD IC
  2693. NJN PIM3 IF NOT INSERTION CHARACTER
  2694. RJM ICS
  2695. PIM3 AOD T6 ADVANCE BUFFER ADDRESS
  2696. SBD P1
  2697. MJN PIM1 IF NOT OVERLAYING MESSAGE
  2698. PIM4 LDC MBUF
  2699. STD T4
  2700. STD T5 SET START OF CHARACTER BUFFER
  2701. STD T1
  2702. LMD T6 CHECK - END OF MESSAGE ON BYTE BOUNDARY
  2703. LPN 1
  2704. ZJN PIM5 IF ON BYTE BOUNDARY
  2705. AOD T6
  2706. LDN 0 STORE ZERO ON BYTE BOUNDARY
  2707. STI T6
  2708.  
  2709. * PACK MESSAGE WITH INSERTIONS.
  2710.  
  2711. PIM5 LDI T1
  2712. SHN 6 PACK MESSAGE WITH INSERTIONS
  2713. LMM 1,T1
  2714. STI T5 STORE TWO CHARACTERS
  2715. AOD T5
  2716. LDN 2
  2717. RAD T1 ADVANCE THRU CHARACTER BUFFER
  2718. LMD T6
  2719. NJN PIM5 IF NOT END OF MESSAGE
  2720.  
  2721. * SEND MESSAGE TO DAYFILE.
  2722.  
  2723. LDD TD
  2724. ZJN PIM6 IF NO TRANSMISSION TO DAYFILE
  2725. RJM IDM ISSUE DAYFILE MESSAGE
  2726.  
  2727. * SEND MESSAGE TO CM BUFFER.
  2728.  
  2729. PIM6 LDD TC
  2730. NJN PIM7 IF MESSAGE GOING TO CM BUFFER
  2731. LJM PIMX RETURN
  2732.  
  2733. PIM7 LDM -1,T5 CHECK LAST CHARACTER
  2734. LPN 77
  2735. NJN PIM8 IF NOT ZERO
  2736. LDN 1R
  2737. RAM -1,T5 INSERT BLANK CHARACTER
  2738. PIM8 AOD ST
  2739. LDN 5
  2740. RAD T4 FIND CM WORD COUNT OF MESSAGE
  2741. SBD T5
  2742. MJN PIM8 IF NOT END OF MESSAGE
  2743. STD T1
  2744. NJN PIM9 IF EOM NOT ON CM WORD BOUNDARY
  2745. AOD ST ADVANCE WORD COUNT
  2746. LDN 5
  2747. STD T1
  2748. PIM9 LDN 0 ZERO FILL END OF MESSAGE
  2749. STI T5
  2750. AOD T5
  2751. SOD T1
  2752. NJN PIM9 IF NOT ZERO FILLED
  2753. LDD BF
  2754. SBD ST
  2755. PJN PIM10 IF MESSAGE LENGTH .LE. BUFFER SIZE
  2756. LDD BF
  2757. STD ST SET MESSAGE LENGTH = BUFFER SIZE
  2758. PIM10 LDD AD
  2759. SHN 14
  2760. LMD AD+1 CHECK - VALID CM ADDRESS
  2761. ADD ST
  2762. SHN -6
  2763. SBD FL
  2764. MJN PIM11 IF END OF BUFFER WITHIN FL
  2765. LDN /ERR/PAE
  2766. LJM ERR PROCESS ERROR
  2767.  
  2768. PIM11 LDA AD
  2769. CWM MBUF,ST COPY MESSAGE TO CENTRAL
  2770. PIMA EQU *-1
  2771. LJM PIMX RETURN
  2772. NFE SPACE 4,10
  2773. ** NFE - NON-FATAL ERROR PROCESSOR.
  2774. *
  2775. * ENTRY (A) = ERROR NUMBER.
  2776. *
  2777. * EXIT (A) = ERROR NUMBER.
  2778. * TO *ERR*.
  2779. *
  2780. * USES EI, ST.
  2781. *
  2782. * CALLS SES.
  2783.  
  2784.  
  2785. NFE STD EI
  2786. LCN 0
  2787. STD ST
  2788. RJM SES
  2789. LDD EI
  2790. LJM ERR PROCESS ERROR
  2791. SES SPACE 4,10
  2792. ** SES - SET EXIT STATUS.
  2793. *
  2794. * ENTRY (ST) = STATUS.
  2795. *
  2796. * EXIT PARAMETER BLOCK SET COMPLETE.
  2797. *
  2798. * USES CM - CM+4
  2799. *
  2800. * MACROS LDA.
  2801.  
  2802. SES SUBR ENTRY/EXIT
  2803. LDN ZERL
  2804. CRD CM
  2805. LDD ST SET STATUS
  2806. STD CM+3
  2807. AOD CM+4 SET REQUEST COMPLETE
  2808. LDA IR+3
  2809. CWD CM
  2810. UJN SESX RETURN
  2811. ICS SPACE 4,10
  2812. ** ICS - INSERT CHARACTER STRING.
  2813. *
  2814. * ENTRY (P0) = INDEX FOR INSERTION TEXT.
  2815. * (P1) = MESSAGE ADDRESS.
  2816. * (T6) = STRING BUFFER ADDRESS.
  2817. *
  2818. * EXIT (P0) = INDEX FOR INSERTION TEXT.
  2819. * (P1) = MESSAGE ADDRESS.
  2820. * (T6) = STRING BUFFER ADDRESS.
  2821. *
  2822. * USES P0, T2, T6, IN - IN+4.
  2823.  
  2824.  
  2825. ICS3 SOD T6 ADJUST STRING BUFFER INDEX
  2826.  
  2827. ICS SUBR ENTRY/EXIT
  2828.  
  2829. ICS1 AOD P0 ADVANCE PARAMETER INDEX
  2830. LDA IR+3
  2831. ADD P0
  2832. CRD IN READ WORD OF TEXT FOR INSERTION
  2833. LDN IN
  2834. STD T2 SET ADDRESS OF FIRST BYTE
  2835. ICS2 LDI T2
  2836. SHN -6 EXTRACT UPPER CHARACTER
  2837. STI T6
  2838. ZJN ICS3 IF END OF INSERTION
  2839. AOD T6
  2840. SBD P1
  2841. PJN ICS3 IF MESSAGE BEING OVERLAID
  2842. LDI T2
  2843. LPN 77 EXTRACT LOWER CHARACTER
  2844. STI T6
  2845. ZJN ICS3 IF END OF INSERTION
  2846. AOD T6
  2847. SBD P1
  2848. PJN ICS3 IF MESSAGE BEING OVERLAID
  2849. AOD T2
  2850. LMN IN+5
  2851. NJN ICS2 IF NOT END OF CM WORD
  2852. UJN ICS1 LOOP FOR MORE INSERTION TEXT
  2853. IDM SPACE 4,10
  2854. ** IDM - ISSUE DAYFILE MESSAGE.
  2855. *
  2856. * ENTRY (T4) = FWA OF MESSAGE.
  2857. * (T5) = LWA+1 OF MESSAGE.
  2858. *
  2859. * EXIT ((T5)) = 0.
  2860. *
  2861. * USES T1,T2,T6,T7.
  2862. *
  2863. * CALLS DFM.
  2864.  
  2865.  
  2866. IDM SUBR ENTRY/EXIT
  2867. LDD T4 INITIALIZE NEXT FRAGMENT POINTER
  2868. STD T6
  2869. LDD T5 CALCULATE MESSAGE LENGTH
  2870. SBD T4
  2871. STD T7
  2872.  
  2873. * LOOP UNTIL ALL OF THE MESSAGE HAS BEEN ISSUED TO THE DAYFILE.
  2874. * THE MESSAGE IS ISSUED IN FRAGMENTS OF 50 CHARACTERS OR LESS.
  2875.  
  2876. IDM1 LDD T7 CALCULATE MINIMUM OF 50 OR REMAINDER
  2877. SBN 26D
  2878. PJN IDM2 IF MORE THAN 50 CHARACTERS REMAIN
  2879. LDD T7 SET NUMBER OF WORDS IN LAST FRAGMENT
  2880. STD T1
  2881. LDN 0 CLEAR LENGTH FOR NO REMAINING FRAGMENT
  2882. STD T7
  2883. UJN IDM3 ISSUE LAST MESSAGE FRAGMENT
  2884.  
  2885. IDM2 ADN 1 SET NEW LENGTH OF REMAINING FRAGMENT
  2886. STD T7
  2887. LDN 25D SET FOR A 50 CHARACTER FRAGMENT
  2888. STD T1
  2889.  
  2890. * SETUP THE NEXT MESSAGE TO BE ISSUED.
  2891.  
  2892. IDM3 LDD T1 CALCULATE ADDRESS OF VALUE TO SAVE/CLEAR
  2893. ADD T6
  2894. STD T2 FWA + NEXT LENGTH + COMBINED OLD LENGTH
  2895. LDI T2 GET VALUE TO BE SAVED
  2896. STI T5 SET AT LWA+1 OF MESSAGE
  2897. LDN 0 SET FRAGMENT TERMINATOR
  2898. STI T2
  2899.  
  2900. * ISSUE NEXT MESSAGE.
  2901.  
  2902. LDD T6 SET ADDRESS OF CURRENT FRAGMENT
  2903. STM IDMB
  2904. LDD T1 ACCUMMULATE LENGTH OF FRAGMENTS
  2905. RAD T6
  2906. IDMA LDC ** (*NMSN* AFTER FIRST FRAGMENT)
  2907. IDMB EQU *-1 (ADDRESS OF FRAGMENT)
  2908. RJM DFM ISSUE NEXT MESSAGE
  2909.  
  2910. * PROCESS REMAINING FRAGMENTS AS NECESSARY.
  2911.  
  2912. LDD T7 CHECK REMAINING LENGTH
  2913. NJN IDM4 IF ANOTHER FRAGMENT TO PROCESS
  2914. LJM IDMX EXIT
  2915.  
  2916. IDM4 LDC LDCI+NMSN/10000 SETUP FOR NEXT MESSAGE ISSUED
  2917. STM IDMA
  2918. LDI T5 RESTORE THE VALUE USED FOR TERMINATOR
  2919. STI T6
  2920. LJM IDM1 PROCESS NEXT MESSAGE FRAGMENT
  2921. SPACE 4,10
  2922. MBUF EQU * MESSAGE BUFFER
  2923. SST SPACE 4,10
  2924. ** SST - SEARCH FOR SYMBOL TABLE.
  2925. *
  2926. * ENTRY (P0) = LENGTH OF SYMBOL TABLE.
  2927. * (BA) = BUFFER ADDRESS.
  2928. * (MN) = MESSAGE NUMBER.
  2929. * (BE) = LWA OF BUFFER.
  2930. * (WC) = WORD COUNT.
  2931. *
  2932. * EXIT (IN - IN+4) = MICRO NAME.
  2933. * (P0) = LENGTH OF SYMBOLTABLE.
  2934. *
  2935. * CALLS GNB.
  2936.  
  2937. SST3 SOD BA
  2938. SBN 10
  2939. STM SSTA
  2940. LDD MA
  2941. CWM *,ON MOVE MICRO NAME TO DIRECT CELLS
  2942. SSTA EQU *-1
  2943. SBN 1
  2944. CRD IN
  2945.  
  2946. SST SUBR ENTRY/EXIT
  2947. SST1 LDI BA CHECK MESSAGE NUMBER
  2948. LMD MN
  2949. ZJN SST3 IF MESSAGE FOUND
  2950. SOD P0
  2951. NJN SST2 IF NOT END OF SYMBOL TABLE
  2952. LDN /ERR/IMN *SFP/D00 INCORRECT MESSAGE NUMBER.*
  2953. LJM NFE PROCESS NON-FATAL ERROR
  2954.  
  2955. SST2 LCN 2
  2956. RAD WC
  2957. LDN 10D
  2958. RAD BA ADVANCE INDEX
  2959. SBD BE
  2960. MJN SST1 IF STILL WITHIN BUFFER
  2961. ZJN SST1 IF STILL WITHIN BUFFER
  2962. LDD BA
  2963. SBN 9D
  2964. STD P1
  2965. RJM GNB GET NEXT BLOCK
  2966. SOD IA
  2967. LPN 3
  2968. LMC -0
  2969. RAD WC ADJUST WORD COUNT
  2970. UJN SST1 CONTINUE SEARCH
  2971. PMS SPACE 4,10
  2972. ** PMS - PROCESS MICRO SEARCH.
  2973. *
  2974. * ENTRY (P0) = LENGTH OF SYMBOL TABLE.
  2975. * (WC) = WORD COUNT.
  2976. * (T4) = CHANNEL.
  2977. *
  2978. * EXIT (P1) = FWA OF MESSAGE.
  2979. *
  2980. * CALLS CMP, FPB, GNB.
  2981.  
  2982. PMS SUBR ENTRY/EXIT
  2983. SOD P0
  2984. SHN 1 LENGTH TO END OF SYMBOL TABLE
  2985. STD P0
  2986. SBD WC
  2987. MJN PMS1 IF MICRO TABLE WITHIN BUFFER
  2988. STD P0
  2989. LDC TBUF
  2990. RJM FPB LOAD PP BUFFER
  2991. PMS1 LDD P0
  2992. SHN 2 SET INDEX TO START OF MICRO TABLE
  2993. ADD P0
  2994. ADN 2
  2995. RAD BA
  2996. LDD WC DECREMENT WORD COUNT
  2997. SBD P0
  2998. STD WC
  2999. LDM 4,BA CHECK LENGTH OF MICRO TABLE
  3000. NJN PMS2 IF NO LENGTH
  3001. LDN /ERR/BET *SFP/D00 BAD ERROR TEXT.*
  3002. LJM NFE PROCESS NON FATAL ERROR
  3003.  
  3004. PMS2 LDD BA
  3005. STD P1 SET ADDRESS OF MICRO CONTROL WORD
  3006. PMS3 LDN 5
  3007. RAD BA LOCATE NEXT CONTROL WORD
  3008. SOD WC
  3009. NJN PMS4 IF NOT END OF BUFFER
  3010. RJM GNB
  3011. PMS4 LDI BA
  3012. SHN -6 CHECK FOR MICRO CONTROL WORD
  3013. LMN 20
  3014. NJN PMS3 IF NOT CONTROL WORD
  3015. LDI BA
  3016. LPN 77
  3017. STD T0
  3018. SHN 2
  3019. ADD T0 CHECK LENGTH OF ENTRY
  3020. ADD P1
  3021. LMD BA
  3022. NJN PMS3 IF NOT MICRO CONTROL WORD
  3023. LDM -1,BA
  3024. LPN 77 CHECK WORD COUNT FOR LWA MESSAGE
  3025. SBN 10D
  3026. PJN PMS3 IF INCORRECT COUNT
  3027. RJM CMP
  3028. NJN PMS2 IF NO MATCH ON MICRO NAME
  3029. LDN 5
  3030. RAD P1 SET FWA OF MESSAGE
  3031. LJM PMSX RETURN
  3032. CMP SPACE 4,10
  3033. ** CMP - COMPARE MICRO NAME.
  3034. *
  3035. * ENTRY (IN - IN+4) = MICRO NAME.
  3036. * ((BA)) = FWAOF NAME TO COMPARE.
  3037. *
  3038. * EXIT (A) = 0, IF NAMES COMPARE.
  3039.  
  3040.  
  3041. CMP SUBR ENTRY/EXIT
  3042. LDD IN+1
  3043. LMM 1,BA
  3044. NJN CMPX IF NO MATCH ON BYTE 1
  3045. LDD IN+2
  3046. LMM 2,BA
  3047. NJN CMPX IF NO MATCH ON BYTE 2
  3048. LDD IN+3
  3049. LMM 3,BA
  3050. NJN CMPX IF NO MATCH ON BYTE 3
  3051. LDD IN+4
  3052. LMM 4,BA COMPARE BYTE 4
  3053. UJN CMPX
  3054. GNT SPACE 4,10
  3055. ** GNT - GET NEXT BLOCK.
  3056. *
  3057. * ENTRY (T4) = CHANNEL.
  3058. * (T5) = EQUIPMENT.
  3059. * (T6) = TRACK.
  3060. * (T7) = SECTOR.
  3061. *
  3062. * EXIT BUFFER FILLED.
  3063. *
  3064. * CALLS FPB.
  3065.  
  3066.  
  3067. GNB SUBR ENTRY/EXIT
  3068. LDD BA
  3069. ADC 10000
  3070. SBD BE SET ADVANCE INTO NEXT BUFFER
  3071. STD IA
  3072. LDC TBUF SET BUFFER ADDRESS
  3073. STD BA
  3074. SOD BE
  3075. GNB1 LDI P1
  3076. STI BA MOVE UNCHECKED DATA TO START OF BUFFER
  3077. AOD BA
  3078. AOD P1
  3079. LMD BE
  3080. NJN GNB1 IF NOT END OF MOVE
  3081. LDI P1
  3082. STD B1
  3083. LDM 1,P1 SAVE BYTES OVERLAID BY LINKAGE
  3084. STD B2
  3085. LDD BA READ NEXT BLOCK
  3086. RJM FPB
  3087. LDC TBUF
  3088. STD P1 SET START OF BUFFER
  3089. AOD IA
  3090. RAD BA ADVANCE BUFFER INDEX
  3091. LJM GNBX RETURN
  3092. FPB SPACE 4,20
  3093. ** FPB - FILL PP BUFFER.
  3094. *
  3095. * ENTRY (A) = FWA OF BUFFER.
  3096. * (ER) = EOR STATUS.
  3097. * (T5) = EQUIPMENT.
  3098. * (T6) = TRACK.
  3099. * (T7) = SECTOR.
  3100. *
  3101. * EXIT (BA) = FWA OF BUFFER.
  3102. * TO *MSR* IF MASS STORAGE ERROR.
  3103. *
  3104. * CALLS RNS.
  3105. *
  3106. * MACROS ENDMS.
  3107.  
  3108.  
  3109. FPB SUBR ENTRY/EXIT
  3110. STD T3
  3111. STD BA SET BUFFER ADDRESS
  3112. LDD ER
  3113. ZJN FPB2 IF EOR ON LAST READ
  3114. LDN 0
  3115. STD WC CLEAR WORD/SECTOR COUNT
  3116. STD SC
  3117. LDC 7775
  3118. SBD BA CALCULATE SPACE AVAILABLE
  3119. SHN -6
  3120. STD T2
  3121. FPB1 AOD SC ADVANCE SECTOR COUNT
  3122. LCN 5
  3123. RAD T2
  3124. PJN FPB1 IF NOT END OF BUFFER SPACE
  3125. SOD SC
  3126. ZJN FPB2 IF NOT ROOM FOR ONE SECTOR
  3127. LDD T3 READ FIRST SECTOR OF BLOCK
  3128. RJM RNS
  3129. MJP MSR IF MASS STORAGE ERROR
  3130. NJN FPB4 IF NOT EOF
  3131. FPB2 ENDMS
  3132. LDN /ERR/BET *SFP/D00 BAD ERROR TEXT.*
  3133. LJM NFE ISSUE ERROR MESSAGE
  3134.  
  3135. FPB3 LDI BE
  3136. STD B2 SAVE BYTES OVERLAID BY LINKAGE
  3137. LDI T3
  3138. STD B1
  3139. LDD T3 READ NEXT SECTOR
  3140. RJM RNS
  3141. MJP MSR IF MASS STORAGE ERROR
  3142. FPB4 RAD WC INCREMENT WORD COUNT
  3143. LDD B1
  3144. STI T3 RESTORE BYTES OVERLAID BY LINKAGE
  3145. LDD B2
  3146. STM 1,T3
  3147. LDD T1
  3148. SHN 2 SECTOR WORD COUNT * 5
  3149. ADD T1
  3150. ADD T3
  3151. STD T3
  3152. ADN 1
  3153. STD BE SET END OF BUFFER
  3154. LDD T1
  3155. SHN -6 SET RECORD STATUS
  3156. STD ER
  3157. ZJN FPB5 IF SHORT SECTOR
  3158. SOD SC
  3159. NJN FPB3 IF BUFFER SPACE FOR NEXT SECTOR
  3160. FPB5 ENDMS
  3161. LJM FPBX RETURN
  3162.  
  3163.  
  3164. * COMMON DECKS
  3165.  
  3166.  
  3167. *CALL COMPRNS
  3168.  
  3169. TBUF EQU *
  3170.  
  3171. *CALL COMPCLD
  3172. TITLE PRESET.
  3173. PRS SPACE 4,20
  3174. ** PRS - PRESET ROUTINE.
  3175. *
  3176. * EXIT (IF) = INSERTION FLAG.
  3177. * (IC) = INSERTION CHARACTER.
  3178. * (TD) = SEND MESSAGE TO DAYFILE FLAG.
  3179. * (TC) = SEND MESSAGE TO CM BUFFER.
  3180. * (T4) = CHANNEL.
  3181. * (T5) = EQUIPMENT.
  3182. * (T6) = TRACK.
  3183. * (T7) = SECTOR,
  3184. * (AD - AD+1) = CM BUFFER ADDRESS.
  3185. * (MN) = MESSAGE NUMBER.
  3186. * (BF) = BUFFER SIZE.
  3187. * SYSTEM FILE ATTACHED.
  3188. * MASS STORAGE DRIVER LOADED.
  3189. * TO *MSR* IF MASS STORAGE ERROR.
  3190. *
  3191. * USES AB - AB+4, AD - AD+1, FS - FS+4, P0 - P0+4, T4 - T7.
  3192. *
  3193. * CALLS CLD.
  3194. *
  3195. * MACROS MONITOR.
  3196.  
  3197.  
  3198. ENTRY D00
  3199. LDN ZERL CLEAR FLAG CELLS
  3200. CRD IF
  3201.  
  3202. * READ PARAMETER BLOCK
  3203.  
  3204. LDA IR+3
  3205. CRD P0
  3206. ADN 1
  3207. CRD AB
  3208. CRM ERRA,ON SAVE ERROR TEXT DECK NAME
  3209. LDM ERRA+3 CLEAR ALL BUT TEXT DECK NAME
  3210. SCN 77
  3211. STM ERRA+3
  3212. LDN 0
  3213. STM ERRA+4
  3214. LDD MN SAVE ERROR TEXT MESSAGE NUMBER
  3215. STM ERRB
  3216. LDD P0
  3217. SHN -11
  3218. SHN 11+6+1
  3219. STD IF SET INSERT FLAG
  3220. SCN 1
  3221. SHN 1
  3222. STD TD SET DAYFILE FLAG
  3223. SCN 1
  3224. SHN 1
  3225. STD TC SET CM BUFFER FLAG
  3226. LDD P1+1
  3227. SCN 77
  3228. SHN 6
  3229. LMD P1
  3230. SHN 6
  3231. STD AD+1 SET CM BUFFER ADDRESS
  3232. SHN -14
  3233. LPN 37
  3234. STD AD
  3235. RJM CLD SEARCH LIBRARY DIRECTORY
  3236. NJN PRS1 IF ERROR TEXT FOUND
  3237. LDN /ERR/NET *SFP/D00 ERROR TEXT NOT FOUND.*
  3238. LJM NFE PROCESS NON FATAL ERROR
  3239.  
  3240. PRS1 CRD FS READ DIRECTORY ENTRY
  3241. LDD FS+1
  3242. LPC 6000
  3243. ZJN PRS1.1 IF ON SYSTEM DEVICE
  3244. SHN 21-14
  3245. MJN PRS1.0 IF ON ALTERNATE SYSTEM
  3246. LDN /ERR/NMS *SFP/D00 ERROR TEXT NOT ON MASS STORAGE.*
  3247. LJM NFE PROCESS NON FATAL ERROR
  3248.  
  3249. PRS1.0 LDD FS+2 SET ALTERNATE EQUIPMENT
  3250. LPC 777
  3251. STD T5
  3252. UJN PRS3 RESUME PROCESSING
  3253.  
  3254. PRS1.1 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  3255. STD T5
  3256. PRS2 AOD T5
  3257. SFA EST
  3258. ADK EQDE
  3259. CRD CM
  3260. LDD CM
  3261. SHN -12
  3262. LMN 3
  3263. NJN PRS2 IF NOT SYSTEM DEVICE
  3264. PRS3 LDD FS+3
  3265. STD T6 SET TRACK
  3266. LDD FS+4
  3267. STD T7 SET SECTOR
  3268. SETMS READSYS
  3269. LJM D001 ENTER MAIN ROUTINE
  3270. SPACE 4,10
  3271. OVERFLOW OVL
  3272.  
  3273. OVERLAY (FIN - FILE INFORMATION REQUEST.)
  3274. FIN SPACE 4,30
  3275. *** FIN - FILE INFORMATION REQUEST.
  3276. *
  3277. * FIN MAPS VALID NOS/BE *FIN* FUNCTIONS INTO VALID NOS *CPM*
  3278. * OR *LFM* REQUESTS AND ISSUES THESE REQUESTS.
  3279. *
  3280. * CALL.
  3281. *
  3282. *T 24/ *FINP*, 6/0, 6/ FC, 6/0, 18/ ADDR
  3283. *
  3284. * FC = FUNCTION CODE
  3285. *
  3286. * ADDR = PARAMETER ADDRESS (IF NEEDED)
  3287. *
  3288. * THE FOLLOWING MAPPING OCCURS -
  3289. *
  3290. * FC CALL/FUNCTION NORMAL NOS MACRO
  3291. *
  3292. * 01 LFM/32 FILINFO
  3293. * 02 LFM/21 ACCSF
  3294. * 03 LFM/22 ENCSF
  3295. * 04 CPM/74 GETJCI
  3296. * 05 CPM/74 SETJCI
  3297. *
  3298. * EXIT LFM OR CPM REQUESTS ISSUED.
  3299. *
  3300. * DAYFILE MESSAGES.
  3301. *
  3302. * *SFP/FIN INCORRECT FUNCTION CODE.*
  3303. * THE SPECIFIED FUNCTION CODE IS UNDEFINED.
  3304.  
  3305.  
  3306. ENTRY FIN
  3307. LDD IR+2 VALIDATE FUNCTION CODE
  3308. LPN 77
  3309. ZJN FIN1 IF NO FUNCTION CODE
  3310. SBN TFINL
  3311. MJN FIN2 IF LEGAL FUNCTION CODE
  3312. FIN1 LDN /ERR/IAF * SFP/FIN INCORRECT FUNCTION CODE.*
  3313. LJM ERR PROCESS ERROR
  3314.  
  3315. FIN2 LDM TFIN,IR+2 SET FUNCTION CODE
  3316. SHN 14
  3317. STD IR+2
  3318. MJN FIN3 IF *CPM* CALL
  3319. EXECUTE LFM,*
  3320. UJN FIN5 ISSUE *LFM* REQUEST
  3321.  
  3322. FIN3 SHN 1 CHECK FOR SET FUNCTION
  3323. PJN FIN4 IF GET
  3324. LDD HN SET *SETJCI* FUNCTION
  3325. RAD IR+3
  3326. FIN4 EXECUTE CPM,*
  3327. FIN5 SHN 14
  3328. STD IR
  3329. SHN -6
  3330. LMD IR+1
  3331. SCN 77
  3332. LMD IR+1
  3333. STD IR+1
  3334. LDD IA STORE INPUT REGISTER
  3335. CWD IR
  3336. LJM PPR EXIT TO PP RESIDENT
  3337.  
  3338. ** TFIN - TABLE OF FUNCTION CODE TRANSLATIONS.
  3339. *
  3340. * INDEXED BY *FIN* FUNCTION CODE.
  3341. *
  3342. *T 6/ CODE, 6/ PP
  3343. *
  3344. * CODE = *CPM* OR *LFM* FUNCTION CODE.
  3345. * PP = 0 IF *LFM* CALL.
  3346. * = 40 IF *GETJCI*
  3347. * = 60 IF *SETJCI*
  3348.  
  3349.  
  3350. TFIN BSS 0
  3351. LOC 0
  3352. CON 0
  3353. CON 32*100+0
  3354. CON 21*100+0
  3355. CON 22*100+0
  3356. CON 74*100+40
  3357. CON 74*100+40+20
  3358. TFINL EQU *
  3359. LOC *O
  3360. SPACE 4,10
  3361. OVERFLOW OVL
  3362.  
  3363.  
  3364. QUAL
  3365. TTL SFP - SCOPE FUNCTION PROCESSOR.
  3366. SPACE 4,10
  3367. END
cdc/nos2.source/opl871/sfp.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator