User Tools

Site Tools


cdc:nos2.source:opl871:loadbc

LOADBC

Table Of Contents

  • [00008] LOADBC - LOAD BUFFER CONTROLWARE.
  • [00291] NIPADD - NAD INITIATION PARAMETER ADDRESS.
  • [00310] NSTADD - NAD STATUS WORD ADDRESS.
  • [00451] TRCM - GENERATE MESSAGE ADDRESS TABLE.
  • [00467] TLRC - INDEXED TABLE OF LOAD RESPONSE MESSAGE ADDRESSES.
  • [00513] TDMA - INDEXED TABLE OF DUMP RESPONSE MESSAGE ADDRESSES.
  • [00601] NAD CONTROLWARE PARAMETERS.
  • [00603] NADCON - GENERATE NAD CONSTANT.
  • [00617] NADIP - NAD INITIALIZATION PARAMETERS.
  • [00673] MAIN PROGRAM.
  • [00675] LOAD BUFFER CONTROLWARE MAIN PROGRAM.
  • [00765] DISK CONTROLWARE SUBROUTINES.
  • [00767] CCS - CHECK CHANNEL STATUS.
  • [00835] TCWT - TABLE OF CONTROLWARE TYPES.
  • [00855] ELP - END *LOADBC* PROCESSING.
  • [00893] FFI - FIND FIRMWARE IDENT.
  • [00949] IRM - ISSUE RESPONSE MESSAGES.
  • [01041] RCF - READ CONTROLWARE FILE.
  • [01158] RCT - READ CHANNEL TABLES.
  • [01179] SCN - SELECT CHANNEL NUMBER.
  • [01294] VCD - VERIFY CONTROLWARE DUMP.
  • [01375] PROCESS NAD CONTROLWARE.
  • [01377] PNC - PROCESS NAD CONTROLWARE.
  • [01434] CCV - SET UP PARAMETERS AND CALL *CVL*.
  • [01512] CNL - CALL *NLD* TO LOAD NAD CONTROLWARE.
  • [01572] CNP - CHECK NAD INITIATION PARAMETERS.
  • [01675] EMS - ISSUE ERROR MESSAGE.
  • [01707] FNP - FETCH NAD INITIATION PARAMETER.
  • [01735] FNS - FETCH NAD STATUS WORD.
  • [01766] NER - PROCESS *NLD* ERROR.
  • [01787] PSE - PAUSE FOR OPERATOR GO/DROP.
  • [01808] RET - RETURN NAD EQUIPMENT VIA *CVL*.
  • [01838] SNP - SET NAD INITIATION PARAMETER.
  • [01872] COMMON DECKS.
  • [01890] BUFFER ALLOCATION.
  • [01917] PRESET.
  • [01919] PRS - PRESET PROGRAM.
  • [02150] CNS - CHECK IF NAD ONLY PARAMETER SPECIFIED.
  • [02165] TLCA - TABLE OF *LOADBC* ARGUMENTS.
  • [02183] TRCT - TABLE OF REMOTE CONTROLWARE TYPES.

Source Code

LOADBC.txt
  1. IDENT LOADBC,110B,LOADBC
  2. ABS
  3. SST
  4. ENTRY LOADBC
  5. ENTRY RFL=
  6. ENTRY SSJ=
  7. SYSCOM B1
  8. TITLE LOADBC - LOAD BUFFER CONTROLWARE.
  9. *COMMENT LOADBC - LOAD BUFFER CONTROLWARE.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. LOADBC SPACE 4,10
  12. ***** LOADBC - DOWNLOAD DISK OR NAD CONTROLWARE.
  13. *
  14. * W. J. SMITH. 79/07/21.
  15. * J. L. LARSON. 83/06/14.
  16. *
  17. * LOAD APPROPRIATE CONTROLWARE ON REQUESTED CHANNEL.
  18. LOADBC SPACE 4,10
  19. *** *LOADBC* IN CONJUNCTION WITH THE PP PROGRAM *1LC* WILL DOWN-
  20. * LOAD CONTROLWARE TO THE REQUESTED CHANNEL AND CONTROLLER.
  21. *
  22. * COMMAND CALL - (DISK AND LOCAL NAD FORMAT)
  23. *
  24. * LOADBC(C=XX,F=EEEEEEE,D=DDDDDDD)
  25. *
  26. * XX OCTAL CHANNEL NUMBER. IF NOT SPECIFIED
  27. * (FOR A SYSTEM INITIATED REQUEST), CHANNEL IS
  28. * DETERMINED FROM THE CHANNEL CONTROLWARE TABLE OR
  29. * THE EST (CONTROL MODULE LOAD).
  30. * IF THE PREFIX C IS USED THE CHANNEL IS A CONCURRENT
  31. * CHANNEL. (IE. C4 = CONCURRENT CHANNEL 4)
  32. *
  33. * EEEEEEE FILE NAME TO LOAD CONTROLWARE FROM
  34. * (DEFAULT = SYSTEM FILE).
  35. *
  36. * DDDDDDD FILE NAME TO DUMP CONTROLLER MEMORY TO BEFORE
  37. * CONTROLLER RELOAD. THE DUMP CAPABILITY IS AVAILABLE
  38. * FOR 7155/7165/7255 CONTROLLERS ONLY
  39. * (DEFAULT = NO LOAD).
  40. *
  41. * *LOADBC* PRESENTLY ASSUMES A CONTROLLER PHYSICAL EQUIPMENT
  42. * NUMBER OF ZERO.
  43. *
  44. * COMMAND CALL - (CONTROL MODULE)
  45. *
  46. * LOADBC(EQ=EO,F=EEEEEEE)
  47. *
  48. * EO CONTROL MODULE EST ORDINAL.
  49. * EEEEEEE FILE NAME TO LOAD CONTROLWARE FROM
  50. * (DEFAULT = SYSTEM FILE).
  51. *
  52. *
  53. * *LOADBC* CAN ALSO LOAD CONTROLWARE ON REMOTE NADS
  54. * VIA *NLD* AFTER FIRST OBTAINING VALIDATION FROM *CVL*.
  55. *
  56. * COMMAND CALL - (REMOTE NAD FORMAT)
  57. *
  58. * LOADBC(C=XX,ND=AA,TY=BBB,LT=CC,AC=DDDD,F=EEEEEEE)
  59. *
  60. * XX OCTAL CHANNEL NUMBER.
  61. * AA HEXADECIMAL REMOTE NAD NUMBER.
  62. * BBB TYPE OF CONTROLWARE TO LOAD.
  63. * 170 - CYBER 170 (DEFAULT).
  64. * IBM - IBM.
  65. * MIN - COMMON MINICOMPUTER.
  66. * 200 - CYBER 20X.
  67. * CC LOGICAL TCU ENABLES MASK.
  68. * DDDD HEXADECIMAL ACCESS CODE.
  69. * EEEEEEE FILE NAME TO LOAD CONTROLWARE FROM
  70. * (DEFAULT = SYSTEM FILE).
  71. LOADBC SPACE 4,10
  72. *** DAYFILE MESSAGES.
  73. *
  74. * * BUFFER ARGUMENT ERROR.*
  75. * *LOADBC* LOAD FET CONTAINED INCORRECT BUFFER POINTER.
  76. *
  77. * * CHXX, CONTROLLER RESERVED.*
  78. * THE MULTIPLE-ACCESS CONTROLLER IS RESERVED THROUGH THE
  79. * ALTERNATE ACCESS. *LOADBC* DELAYS AND CONTINUES RETRY
  80. * OF CONTROLWARE RELOAD VIA *1LC* UNTIL THE RESERVE IS
  81. * RELEASED.
  82. *
  83. * * CONTROLLER DID NOT TAKE ALL CONTROLWARE.*
  84. * THE CONTROLLER DID NOT TAKE ALL THE DATA IN THE
  85. * CONTROLWARE RECORD DURING LOAD PROCESSING.
  86. * THE CONTENTS OF THE A REGISTER IN *1LC* WAS NOT
  87. * ZERO AFTER ONE OF THE *OAM* INSTRUCTIONS.
  88. *
  89. * * CONTROLLER DUMP COMPLETE.*
  90. * REQUESTED CONTROLLER DUMP WAS SUCCESSFUL.
  91. *
  92. * * CONTROLLER DUMP UNSUCCESSFUL.*
  93. * *1LC* WAS UNABLE TO DUMP 7155 CONTROLLER MEMORY DUE
  94. * TO FUNCTION TIMEOUT OR INCORRECT CONTROLLER RESPONSE.
  95. *
  96. * * CONTROLWARE LOAD ABORT, C=XX.*
  97. * REQUESTED CONTROLWARE LOAD WAS UNSUCCESSFUL.
  98. * XX = CHANNEL NUMBER XX REQUESTED.
  99. *
  100. * * CONTROLWARE LOAD ABORT, EQ=XXX.*
  101. * REQUESTED CONTROLWARE LOAD WAS UNSUCCESSFUL.
  102. * XX = CONTROL MODULE EST ORDINAL.
  103. *
  104. * * CONTROLWARE LOAD ALREADY IN PROGRESS.*
  105. * REQUESTED CONTROLWARE LOAD FOR SPECIFIED CHANNEL
  106. * WAS ALREADY BEING PROCESSED BY ANOTHER COPY OF
  107. * *LOADBC*/*1LC*.
  108. *
  109. * * CONTROLWARE NOT FOUND.*
  110. * EITHER THE SPECIFIED FILE DOES NOT CONTAIN THE
  111. * REQUESTED CONTROLWARE, OR *F=0* WAS SPECIFIED.
  112. *
  113. * * DUMP BUFFER ARGUMENT ERROR.*
  114. * *LOADBC* DUMP FET CONTAINED INCORRECT BUFFER POINTER.
  115. *
  116. * * ERROR IN PARAMETERS.*
  117. * *LOADBC* COMMAND CONTAINED INCORRECT PARAMETER(S).
  118. *
  119. * * FUNCTION TIMED OUT=NNNN.*
  120. * *1LC* TIMED OUT IN THE FUNCTION ROUTINE WHEN
  121. * FUNCTIONING THE CONTROLLER DURING LOAD PROCESSING.
  122. * NNNN = FUNCTION NUMBER.
  123. *
  124. * * GENERAL STATUS = NNNN.*
  125. * NNNN = THE GENERAL STATUS AFTER THE CONTROLWARE LOAD
  126. * WAS COMPLETED. THE CONTROLWARE LOAD WAS NOT
  127. * SUCCESSFUL AND THE GENERAL STATUS IS NOT ZERO.
  128. *
  129. * * INSUFFICIENT DUMP BUFFER SPACE.*
  130. * *LOADBC* DUMP FET BUFFER SPACE WAS INSUFFICIENT FOR
  131. * CONTROLLER MEMORY DUMP.
  132. *
  133. * * INCORRECT CHANNEL NUMBER.*
  134. * CHANNEL NUMBER SUPPLIED ON *LOADBC* COMMAND WAS NOT
  135. * NUMERIC OR WAS NOT A VALID HARDWARE CHANNEL NUMBER.
  136. *
  137. * * INCORRECT EST ORDINAL.*
  138. * EST ORDINAL SUPPLIED ON *LOADBC* COMMAND WAS NOT A
  139. * VALID EST ORDINAL.
  140. *
  141. * * INCORRECT 1LC DUMP RESPONSE CODE.*
  142. * *1LC* RETURNED AN INCORRECT RESPONSE CODE TO *LOADBC*.
  143. *
  144. * * LENGTH IN 52 TABLE .NE. FET.*
  145. * THE CONTROLWARE RECORD LENGTH IN THE 52 TABLE DID NOT
  146. * EQUAL THE CONTROLWARE RECORD LENGTH SPECIFIED IN THE
  147. * FET AFTER THE CONTROLWARE WAS READ INTO *LOADBC* FIELD
  148. * LENGTH.
  149. *
  150. * * LOADBC ABORT - BAD INITIATION PARAMETERS.*
  151. * THE ACTUAL NAD MEMORY SIZE IS SMALLER THAN THE
  152. * SPECIFIED *LOADBC* DEFAULT MEMORY SIZE.
  153. *
  154. * * LOADBC ABORT - XXX ERROR CODE = YYY.*
  155. * PP PROGRAM XXX (*CVL* OR *NLD*) RETURNED A RESPONSE
  156. * CODE OF YYY WHEN VALIDATING THE NAD OR WHEN
  157. * LOADING NAD CONTROLWARE.
  158. *
  159. * * LOADBC REMOTE NAD LOAD - GO OR DROP.*
  160. * FLASHING DISPLAY MESSAGE INDICATING THAT *CVL* COULD
  161. * NOT DETERMINE THE STATUS OF THE NAD. OPERATOR
  162. * ACTION IS REQUIRED BEFORE CONTROLWARE WILL BE
  163. * LOADED.
  164. *
  165. * * NO CHANNEL LOAD REQUEST.*
  166. * CHANNEL WAS NOT SPECIFIED ON THE *LOADBC* COMMAND
  167. * AND CHANNEL CONTROLWARE LOAD REQUEST WAS NOT FOUND
  168. * IN THE CHANNEL TABLE.
  169. *
  170. * * NO CONTROLWARE ON CHANNEL.*
  171. * THE CHANNEL TABLES INDICATE NO CONTROLWARE
  172. * EXISTS ON THE REQUESTED CHANNEL.
  173. *
  174. * * NO GENERAL STATUS RECEIVED.*
  175. * AFTER A GENERAL STATUS FUNCTION IN *1LC*, THE *IAM*
  176. * INSTRUCTION DID NOT RECEIVE THE STATUS WORD.
  177. *
  178. * * NO 52 TABLE IN CONTROLWARE RECORD.*
  179. * THE CONTROLWARE RECORD READ FROM THE FILE DID
  180. * NOT CONTAIN A 52 TABLE ENTRY.
  181. *
  182. * * NO 77 TABLE IN CONTROLWARE RECORD.*
  183. * THE CONTROLWARE RECORD READ FROM THE FILE DID
  184. * NOT CONTAIN A 77 PREFIX TABLE.
  185. *
  186. * * NOT CORRECT CONTROLLER TYPE FOR DUMP.*
  187. * REQUESTED CONTROLLER DUMP WAS NOT PERFORMED SINCE
  188. * THE DEVICE IS NOT A 7155/7165 CONTROLLER NOR A 7255
  189. * ADAPTOR.
  190. *
  191. * * NOT CONTROL MODULE EST ORDINAL.*
  192. * EST ORDINAL SUPPLIED ON *LOADBC* COMMAND DOES NOT
  193. * CORRESPOND TO A CONTROL MODULE DEVICE.
  194. *
  195. * * SPECIFIED CHANNEL IS IN USE.*
  196. * THE CHANNEL TABLES INDICATE THE SPECIFIED CHANNEL
  197. * WAS DOWN AND ASSIGNED TO MAINTENANCE PERSONNEL.
  198. *
  199. * * SYSTEM NOT IN ENGR MODE.*
  200. * *LOADBC* AND *1LC* INITIATED FROM A NON-SYSTEM REQUEST
  201. * REQUIRE ENGINEERING MODE ENABLED.
  202. *
  203. * * USER NOT SYSTEM ORIGIN.*
  204. * *LOADBC* AND *1LC* CAN ONLY BE INITIATED FROM SYSTEM
  205. * ORIGIN OR FROM A SYSTEM REQUEST.
  206. *
  207. * * VALIDATION DENIED - DEVICE NOT FOUND.*
  208. * *CVL* RETURNED A RESPONSE INDICATING THAT THE
  209. * SPECIFIED NAD WAS NOT FOUND IN THE EST.
  210. *
  211. * * VALIDATION DENIED - DEVICE ON OR IN USE.*
  212. * *CVL* RETURNED A RESPONSE INDICATING THAT NAD
  213. * CONTROLWARE COULD NOT BE LOADED BECAUSE THE NAD
  214. * WAS TURNED ON OR IN USE.
  215. *
  216. * * YYY FIRMWARE MATTT-VVV,CH=XX.*
  217. * YYY = CONTROLLER TYPE (844, 885, FSC ADAPTOR).
  218. * TTT = CONTROLWARE TYPE (401, 454, 710, 721).
  219. * VVV = VERSION NUMBER (A12, A13,...).
  220. * XX = CHANNEL ON WHICH CONTROLWARE WAS DOWNLOADED.
  221. LOADBC SPACE 4,10
  222. *** ERRLOG MESSAGES.
  223. *
  224. * *CHXX,MATTT,AVV,LOAD COMPLETE.*
  225. * XX = CHANNEL ON WHICH DISK CONTROLWARE WAS DOWNLOADED.
  226. * TTT = CONTROLWARE TYPE (MA401, MA454, MA710, MA721).
  227. * VV = VERSION NUMBER (A12, A13, A15, ...).
  228. *
  229. * * CHXX,ABORT,SYYYY.*
  230. * AN ERROR IN GENERAL STATUS AFTER THE CONTROLWARE WAS
  231. * DOWNLOADED.
  232. * XX = CHANNEL NUMBER XX.
  233. * YYYY = GENERAL STATUS.
  234. *
  235. * * CHXX,ABORT,FYYYY.*
  236. * FUNCTION TIMEOUT WHEN FUNCTIONING THE DISK CONTROLLER.
  237. * XX = CHANNEL NUMBER.
  238. * YYYY = FUNCTION THAT TIMED OUT.
  239. *
  240. * * CHXX,ABORT,ALL DATA NOT TAKEN.*
  241. * THE CONTROLLER DID NOT ACCEPT ALL THE DATA ON A
  242. * DOWNLOAD CONTROLWARE ATTEMPT.
  243. * XX = CHANNEL NUMBER.
  244. *
  245. * * CHXX,ABORT,NO GENERAL STATUS.*
  246. * AFTER DOWNLOAD OF CONTROLWARE WAS COMPLETE, THE
  247. * GENERAL STATUS WORD WAS NOT RETURNED BY THE CONTROLLER
  248. * AFTER A STATUS FUNCTION.
  249. * XX = CHANNEL NUMBER.
  250. *
  251. * * CHXX, CONTROLLER RESERVED.*
  252. * THE GENERAL STATUS INDICATED THE MULTIPLE-ACCESS
  253. * CONTROLLER WAS RESERVED THROUGH THE ALTERNATE ACCESS.
  254. * CONTROLWARE IS DOWNLOADED AFTER THE CONTROLLER RESERVE
  255. * IS RELEASED.
  256. * XX = CHANNEL NUMBER.
  257. SPACE 4,10
  258. *** *LOADBC* IS A CPU PROGRAM WHICH LOADS CONTROLWARE TO
  259. * A SPECIFIED OR DRIVER REQUESTED CHANNEL OR CONTROL
  260. * MODULE. THE CONTROLWARE IS READ FROM A LOCAL
  261. * FILE OR FROM THE SYSTEM (DEFAULT) FILE.
  262. * IF CONTROLWARE IS TO BE LOADED ON A DISK CHANNEL, *1LC*
  263. * IS CALLED TO DO THE ACTUAL LOADING OF CONTROLWARE READ FROM
  264. * *LOADBC* FIELD LENGTH. A RESPONSE CODE IS RETURNED TO
  265. * *LOADBC* LOAD FET+0 AND THE APPROPRIATE DAYFILE MESSAGE
  266. * IS ISSUED. *LOADBC* WILL RETRY CONTROLWARE RELOAD VIA *1LC*
  267. * *CRRC* TIMES BEFORE THE RELOAD IS CONSIDERED UNSUCCESSFUL
  268. * DUE TO CONTROLLER HARDWARE MALFUNCTION. FOR 7155 DISK
  269. * CONTROLLERS, *1LC* WILL ALSO OPTIONALLY DUMP THE CONTROLLER
  270. * MEMORY TO *LOADBC* DUMP BUFFER BEFORE RELOADING THE
  271. * CONTROLWARE. *LOADBC* WILL PERFORM A BINARY COMPARISON
  272. * BETWEEN THE OLD AND NEW CONTROLWARE AND WRITE THIS
  273. * DATA TO A FILE THAT CAN BE PROCESSED BY *DSDI*.
  274. * IF CONTROLWARE IS TO BE LOADED ON A NAD CHANNEL, *CVL* IS
  275. * FIRST CALLED TO VALIDATE ACCESS TO THAT NAD. IF VALIDATION
  276. * HAS BEEN GRANTED, *NLD* IS CALLED FOUR TIMES - 1) TO LOAD
  277. * CONTROLWARE USING DEFAULT NAD BUFFER AND MEMORY SIZE
  278. * PARAMETERS, 2) TO OBTAIN GENERAL NAD STATUS AND THE NAD-S
  279. * ACTUAL MEMORY SIZE, 3) TO LOAD CONTROLWARE USING THE ACTUAL
  280. * NAD MEMORY SIZE, AND 4) TO RETURN THE LOCAL NAD TO A
  281. * USABLE STATE. THE ASSIGNED LOCAL NAD IS THEN RELEASED
  282. * BY A FINAL CALL TO *CVL*, AND AN APPROPRIATE DAYFILE
  283. * MESSAGE IS ISSUED.
  284. SPACE 4,10
  285. * MACRO DEFINITIONS.
  286.  
  287.  
  288. *CALL COMCCMD
  289. *CALL COMCMAC
  290. NIPADD SPACE 4,15
  291. ** NIPADD - NAD INITIATION PARAMETER ADDRESS.
  292. *
  293. * NIPADD W
  294. * W = NAD WORD ORDINAL (0-24).
  295. *
  296. * USES X - 2.
  297. * A - 2.
  298. * B - 2.
  299.  
  300.  
  301. NIPADD MACRO W
  302. LOCAL A,B
  303. MACREF NIPADD
  304. A SET W*24/60 *NADIP* TABLE OFFSET
  305. B SET W*24-A*60 SHIFT COUNT
  306. SA2 NADIP+A
  307. SB2 B+12D
  308. ENDM
  309. NSTADD SPACE 4,15
  310. ** NSTADD - NAD STATUS WORD ADDRESS.
  311. *
  312. * NSTADD W
  313. * W = NAD STATUS WORD ORDINAL (0-23).
  314. *
  315. * USES X - 2.
  316. * A - 2.
  317. * B - 2.
  318.  
  319.  
  320. NSTADD MACRO W
  321. LOCAL A,B
  322. MACREF NSTADD
  323. A SET W*16/60 NAD STATUS BLOCK OFFSET
  324. B SET W*16-A*60 SHIFT COUNT
  325. SA2 GST+A
  326. SB2 B
  327. ENDM
  328. SPACE 4,10
  329. * COMMON DECKS.
  330.  
  331.  
  332. *CALL COMSDFS
  333. *CALL COMSDSL
  334. *CALL COMSPRD
  335. *CALL COMSSSD
  336. *CALL COMSSSJ
  337. SPACE 4,10
  338. * LOCAL SYMBOL DEFINITIONS.
  339.  
  340.  
  341. BUFL EQU 10000D BUFFER SIZE NECESSARY FOR NAD CW
  342. CRRC EQU 3 CONTROLWARE RELOAD RETRY COUNT
  343. CTL EQU 201B *CVL* LOAD CONTROLWARE FLAGS
  344. CTSZ EQU 40000B 7165 CONTROLLER MEMORY SIZE
  345. DBUFL SET CTSZ*2+4
  346. DBUFL SET DBUFL/5+1 DUMP BUFFER LENGTH
  347. FDBC EQU 100B FIRST DUMP BYTE TO COMPARE
  348. FDWI EQU FDBC*2/5 FIRST DUMP WORD INDEX
  349. FDBI EQU FDBC*2-FDWI*5 FIRST DUMP BYTE INDEX
  350. LDBC EQU 13710B+1 LAST DUMP BYTE + 1 TO COMPARE
  351. LDWI EQU LDBC*2/5 LAST DUMP WORD INDEX
  352. LDBI EQU LDBC*2-LDWI*5 LAST DUMP BYTE INDEX
  353. CDHZ EQU 2410D CONTROLWARE DIAGNOSTICS HEADER SIZE
  354. FLBC EQU CDHZ+FDBC-100B FIRST LOAD BYTE TO COMPARE
  355. ERRNG FDBC-100B LOAD BEGINS AT 100B AFTER DIAGNOSTICS
  356. FLWI EQU FLBC*2/5 FIRST LOAD WORD INDEX
  357. FLBI EQU FLBC*2-FLWI*5 FIRST LOAD BYTE INDEX
  358. NAD EQU 300B *CVL* NAD DEVICE CODE
  359. RND EQU 301B *CVL* REMOTE NAD DEVICE CODE
  360. RTNU EQU 10B RETURN EQUIPMENT BIT
  361. VRNM EQU 4 *CVL* RESPONSE - DEVICE NOT FOUND
  362. VRUS EQU 6 *CVL* RESPONSE - DEVICE IN USE OR ON
  363. VRSI EQU 34B *CVL* RESPONSE - NAD STATUS INDETERMINATE
  364. SPACE 4,10
  365. * GLOBAL MEMORY DEFINITIONS.
  366.  
  367.  
  368. ORG 110B
  369. SSJ= VFD 36/0,12/LCCS,12/IRSI
  370. BSSZ SSJL-1
  371. SPACE 4,10
  372. * FILE ENVIRONMENT TABLES.
  373.  
  374.  
  375. IN EQU *
  376. SYSTEM RFILEB BUF,BUFL,(FET=9)
  377.  
  378. DUMP FILEB DBUF,DBUFL
  379. ORG DUMP
  380. CON 0 CLEAR DUMP FILE NAME
  381. ORG DUMP+5
  382. SPACE 4,10
  383. * CONTROL STORAGE CELLS.
  384.  
  385.  
  386. ACC CON 0 REMOTE NAD ACCESS CODE
  387. CCHF CON 0 CONCURRENT CHANNEL FLAG
  388. CHAN VFD 18/2H ,42/0 CHANNEL IN DISPLAY CODE LEFT JUSTIFIED
  389. CHN CON 0 CHANNEL NUMBER
  390. CME CON 0 CONTROL MODULE EST ORDINAL
  391. CMES CON 0 EST ORDINAL DISPLAY CODE LEFT JUSTIFIED
  392. CMQ CON 0 CONTROL MODULE EQUIPMENT NUMBER
  393. CRN CON 0 CONTROLWARE RECORD NAME LEFT JUSTIFIED
  394. CWL CON 0 CONTROLWARE LENGTH
  395. DRCF CON 0 SET IF NOT DRIVER CALL
  396. ESTW CON -1 EST POINTER WORD *ESTP*
  397. FN VFD 36/6HSYSTEM,24/0 DEFAULT CONTROLWARE FILE
  398. FWC CON 0 FWA OF CONTROLWARE
  399. LTCU CON 0 LOGICAL TCU ENABLES
  400. LWC CON 0 LWA+1 OF CONTROLWARE
  401. RE CON 0 RETURN EQUIPMENT FLAG
  402. RL CON 0 REMOTE NAD LOAD FLAG
  403. RNAD CON 0 REMOTE NAD NUMBER
  404. RT CON CRRC RETRY COUNT
  405. TYPE DATA 0L170 NAD CONTROLWARE TYPE
  406. TYPN CON 0 NAD TYPE FLAG
  407. GST BSSZ 100B GENERAL STATUS RETURNED BY *NLD*
  408. GSTL EQU * APPROXIMATE END OF GENERAL STATUS
  409. CVLB SPACE 4,10
  410. ** *CVL* PARAMETER BLOCK.
  411.  
  412.  
  413. CVLB BSS 0
  414. LOC 0
  415. CRC CON 0 RESPONSE CODE
  416. CEO CON 0 EST ORDINAL
  417. CCH CON 1S48 CHANNEL
  418. CEQ CON 1S48+NAD*10000B LOCAL NAD DEVICE CODE
  419. CUN CON 0 UNIT (NOT USED FOR *RHF*)
  420. CDV CON 1S48 NAD DEVICE CODE
  421. CFC CON 0 FUNCTION CHARACTERISTICS
  422. CAC CON 0 REMOTE HOST ACCESS CODE
  423. CLT CON 0 LOGICAL TCU ENABLES MASK
  424. CND CON 0 REMOTE NAD NUMBER
  425. LOC *O
  426. NLDB SPACE 4,10
  427. ** *NLD* PARAMETER BLOCK.
  428.  
  429.  
  430. NLDB CON 0 RESPONSE CODE
  431. CON 0 *FIRST*
  432. CON 0 *IN*
  433. CON 0 *OUT*
  434. CON 0 *LIMIT*
  435. CON 0 RESERVED FOR REMOTE NAD LOADING
  436.  
  437. * *NLD* PARAMETER BLOCK FOR NAD STATUS.
  438.  
  439. NADSTAT BSS 1 WORD 0 OF *NLD* PARAMETER BLOCK
  440. VFD 60/GST *FIRST*
  441. VFD 60/GST *IN*
  442. VFD 60/GST *OUT*
  443. VFD 60/GSTL *LIMIT*
  444. BSSZ 1 RESERVED FOR REMOTE NAD STATUS
  445. SPACE 4,10
  446. * NAD STATUS SYMBOLS.
  447.  
  448. WAMS EQU 22D WORD ORDINAL OF ACTUAL MEMORY SIZE
  449. WUNM EQU 12D WORD ORDINAL OF UNUSED NAD MEMORY
  450. TRCM SPACE 4,10
  451. ** TRCM - GENERATE MESSAGE ADDRESS TABLE.
  452. *
  453. * TRCM BML,DAY,ERROR
  454. *
  455. * BML BINARY MAINTENANCE LOG MESSAGE FIRST WORD ADDRESS.
  456. * DAY DAYFILE MESSAGE FIRST WORD ADDRESS.
  457. * ERROR ERROR LOG MESSAGE FIRST WORD ADDRESS.
  458.  
  459. PURGMAC TRCM
  460.  
  461. TRCM MACRO BML,DAY,ERROR
  462. VFD 24/BML
  463. VFD 18/DAY
  464. VFD 18/ERROR
  465. ENDM
  466. TLRC SPACE 4,10
  467. ** TLRC - INDEXED TABLE OF LOAD RESPONSE MESSAGE ADDRESSES.
  468. *
  469. *T TLRC VFD 6/0,18/ BML ,18/ DAY ,18/ ERROR
  470. *
  471. * BML BINARY MAINTENANCE LOG MESSAGE FIRST WORD ADDRESS.
  472. * DAY DAYFILE MESSAGE FIRST WORD ADDRESS.
  473. * ERROR ERROR LOG MESSAGE FIRST WORD ADDRESS.
  474.  
  475.  
  476. TLRC BSS 0
  477. LOC 0
  478. TRCM ,MSG0,EMSG
  479. RC1 TRCM ,MSG1
  480. RC2 TRCM ,MSG2
  481. RC3 TRCM ,MSG3
  482. RC4 TRCM ,MSG4
  483. RC5 TRCM ,MSGRR
  484. RC6 TRCM ,MSG6
  485. RC7 TRCM ,MSG7
  486. RC10 TRCM ,MSG10
  487. RC11 TRCM ,MSG11
  488. RC12 TRCM ,MSG12
  489. RC13 TRCM ,MSGRR
  490. RC14 TRCM ,MSG14
  491. RC15 TRCM ,MSG15
  492. RC16 TRCM ,MSG16
  493. RC17 TRCM ,MSG17
  494. RC20 TRCM ,MSG20
  495. RC21 TRCM ,MSG21
  496. RC22 TRCM ,MSGRR
  497. RC23 TRCM ,MSGRR
  498. RC24 TRCM ,MSGRR
  499. RC25 TRCM ,MSGRR
  500. RC26 TRCM ,MSGRR
  501. RC27 TRCM ,MSGRR
  502.  
  503. RCAML EQU * LOAD RESPONSE CODE ABORT MESSAGE LIMIT
  504.  
  505. RC30 TRCM BML30,MSG30,EMSG0
  506. RC31 TRCM BML31,MSG31,EMSG1
  507. RC32 TRCM BML32,MSG32,EMSG2
  508. RC33 TRCM BML33,MSG33,EMSG3
  509. RC34 TRCM 0,IRMB,EMSG4
  510. LOC *O
  511. TLRCL EQU *-TLRC TABLE LENGTH
  512. TDMA SPACE 4,10
  513. ** TDMA - INDEXED TABLE OF DUMP RESPONSE MESSAGE ADDRESSES.
  514. *
  515. * 42/0, 18/DAYFILE MESSAGE ADDRESS
  516.  
  517.  
  518. TDMA BSS 0
  519. LOC 0
  520. CON DRM0 * CONTROLLER DUMP COMPLETE.*
  521. DR1 CON DRM1 * DUMP BUFFER ARGUMENT ERROR.*
  522. DR2 CON DRM2 * INSUFFICIENT DUMP BUFFER SPACE.*
  523. DR3 CON DRM3 * NOT CORRECT CONTROLLER TYPE FOR DUMP.*
  524. DR4 CON DRM4 * CONTROLLER DUMP UNSUCCESSFUL.*
  525. TDMAL EQU * TABLE LENGTH
  526. DR5 CON DRM5 * INCORRECT 1LC DUMP RESPONSE CODE.*
  527. LOC *O
  528. SPACE 4,10
  529. * DAYFILE MESSAGES ISSUED BY *LOADBC*.
  530.  
  531.  
  532. MSG0 DATA C* YYY FIRMWARE VVVVVVVVV,CH=XXX.*
  533. MSG1 DATA C* USER NOT SYSTEM ORIGIN.*
  534. MSG2 DATA C* SPECIFIED CHANNEL IS IN USE.*
  535. MSG3 DATA C* NO CHANNEL LOAD REQUEST.*
  536. MSG4 DATA C* ERROR IN PARAMETERS.*
  537. MSG6 DATA C* INCORRECT CHANNEL NUMBER.*
  538. MSG7 DATA C* NO CONTROLWARE ON CHANNEL.*
  539. MSG10 DATA C* CONTROLWARE NOT FOUND.*
  540. MSG11 DATA C* SYSTEM NOT IN ENGR MODE.*
  541. MSG12 DATA C* BUFFER ARGUMENT ERROR.*
  542. MSG14 DATA C* CONTROLWARE LOAD ALREADY IN PROGRESS.*
  543. MSG15 DATA C* NO 77 TABLE IN CONTROLWARE RECORD.*
  544. MSG16 DATA C* NO 52 TABLE IN CONTROLWARE RECORD.*
  545. MSG17 DATA C* LENGTH IN 52 TABLE .NE. FET.*
  546. MSG20 DATA C* INCORRECT EST ORDINAL.*
  547. MSG21 DATA C* NOT CONTROL MODULE EST ORDINAL.*
  548. MSG30 DATA C* CONTROLLER DID NOT TAKE ALL CONTROLWARE.*
  549. MSG31 DATA C* GENERAL STATUS = NNNN.*
  550. MSG32 DATA C* FUNCTION TIMED OUT=NNNN.*
  551. MSG33 DATA C* NO GENERAL STATUS RECEIVED.*
  552. MSGRR DATA C* CDC RESERVED RESPONSE CODE.*
  553.  
  554. DRM0 DATA C* CONTROLLER DUMP COMPLETE.*
  555. DRM1 DATA C* DUMP BUFFER ARGUMENT ERROR.*
  556. DRM2 DATA C* INSUFFICIENT DUMP BUFFER SPACE.*
  557. DRM3 DATA C* NOT CORRECT CONTROLLER TYPE FOR DUMP.*
  558. DRM4 DATA C* CONTROLLER DUMP UNSUCCESSFUL.*
  559. DRM5 DATA C* INCORRECT 1LC DUMP RESPONSE CODE.*
  560.  
  561. MSGA DATA C* CONTROLWARE LOAD ABORT, C=XXXXXXX.*
  562. MSGB DATA C* CONTROLWARE LOAD COMPLETE.*
  563. MSGC DATA C* CONTROLWARE LOAD ABORT, EQ=XXXXXXX.*
  564. SPACE 4,10
  565. * ERROR LOG MESSAGES.
  566.  
  567.  
  568. EMSG DATA C*CHXXX,YYYYYYYYY,LOAD COMPLETE.*
  569. EMSG0 DATA C* CHXXX,ABORT,ALL DATA NOT TAKEN.*
  570. EMSG1 DATA C* CHXXX,ABORT,SYYYY.*
  571. EMSG2 DATA C* CHXXX,ABORT,FYYYY.*
  572. EMSG3 DATA C* CHXXX,ABORT,NO GENERAL STATUS.*
  573. EMSG4 DATA C* CHXXX, CONTROLLER RESERVED.*
  574. SPACE 4,10
  575. * BML MESSAGES.
  576.  
  577.  
  578. BMLM VFD 12/BMLML,48/0 SET MESSAGE LENGTH
  579. VFD 12/DM0401,12/HI0105,12/0,12/0,12/0 CHANNEL/EQUIPMENT
  580. VFD 60/0 CONTROLWARE TYPE AND VERSION
  581. BMLML EQU *-BMLM-1 MESSAGE LENGTH
  582. BML30 VFD 12/BML30L,48/0 SET MESSAGE LENGTH
  583. VFD 12/DM0401,12/HI0114,12/0,24/0 CHANNEL
  584. VFD 60/0 NOT USED
  585. BML30L EQU *-BML30-1 MESSAGE LENGTH
  586.  
  587. BML31 VFD 12/BML31L,48/0 SET MESSAGE LENGTH
  588. VFD 12/DM0401,12/HI0115,12/0,24/0 CHANNEL
  589. VFD 60/0 LAST STATUS
  590. BML31L EQU *-BML31-1 MESSAGE LENGTH
  591.  
  592. BML32 VFD 12/BML32L,48/0 SET MESSAGE LENGTH
  593. VFD 12/DM0401,12/HI0116,12/0,24/0 CHANNEL
  594. VFD 60/0 LAST FUNCTION
  595. BML32L EQU *-BML32-1 MESSAGE LENGTH
  596.  
  597. BML33 VFD 12/BML33L,48/0 SET MESSAGE LENGTH
  598. VFD 12/DM0401,12/HI0117,12/0,24/0 CHANNEL
  599. VFD 60/0 NOT USED
  600. BML33L EQU *-BML33-1 MESSAGE LENGTH
  601. TITLE NAD CONTROLWARE PARAMETERS.
  602. NADCON SPACE 4,10
  603. ** NADCON - GENERATE NAD CONSTANT.
  604. *
  605. * NADCON P
  606. * P = HEXADECIMAL VALUE (0-FFFF).
  607.  
  608.  
  609. NADCON MACRO P
  610. LOCAL A,B
  611. MACREF NADCON
  612. A SET P/0#100
  613. B SET P-A*0#100
  614. VFD 4/0,8/A,4/0,8/B
  615. ENDM
  616. NADIP SPACE 4,10
  617. ** NADIP - NAD INITIALIZATION PARAMETERS.
  618. *
  619. * THE FOLLOWING INITIALIZATION PARAMETERS ARE LOADED AT THE
  620. * END OF THE NAD CONTROLWARE. THEY ARE USED BY THE CONTROLWARE
  621. * TO CONFIGURE THE NAD DURING INITIALIZATION.
  622. *
  623. * NOTE - IF ENABLED NAD BUFFER TRACING IS DESIRED, THE
  624. * ANALYST SHOULD CHANGE THE APPROPRIATE LINE BELOW TO -
  625. * NADCON 0#2954 ENABLE NAD BUFFER TRACING.
  626.  
  627.  
  628. NADIP BSS 0
  629. NADCON 0 NAD MEMORY SIZE - 1
  630. NADCON 0#F TCU ENABLES
  631. NADCON 0 STREAM MODE
  632. NADCON 0#19 NUMBER OF NADS
  633. NADCON 0#23 MAXIMUM NUMBER OF PATHS
  634. NADCON 0 RESERVED
  635. NADCON 0 INTERNAL BUFFER COUNT
  636. NADCON 0 RESERVED
  637. NADCON 0 CONTROL MESSAGE BUFFER COUNT
  638. NADCON 0#81 TYPE 0 BUFFER SIZE
  639. NADCON 0 TYPE 0 BUFFER COUNT
  640. NADCON 0#810 TYPE 1 BUFFER SIZE
  641. NADCON 0 TYPE 1 BUFFER COUNT
  642. NADCON 0 TYPE 2 BUFFER SIZE
  643. NADCON 0 TYPE 2 BUFFER COUNT
  644. NADCON 0 TYPE 3 BUFFER SIZE
  645. NADCON 0 TYPE 3 BUFFER COUNT
  646. NADCON 6 TRUNK RECEIVER QUEUE LIMIT
  647. NADCON 6 TRUNK SEND QUEUE LIMIT
  648. NADCON 0#1E CONTROL MESSAGE RECEIVE QUEUE LIMIT
  649. NADCON 0#1E CONTROL MESSAGE SEND QUEUE LIMIT
  650. NADCON 2 PATH RECEIVE QUEUE LIMIT
  651. NADCON 2 PATH SEND QUEUE LIMIT
  652. NADCON 0 DISABLE NAD BUFFER TRACING (DEFAULT)
  653. NADCON 1R:/1R:*10000B CHARACTER SET MODE (DEFAULT 64)
  654. DATA 0
  655. LNADIP EQU *-NADIP
  656.  
  657.  
  658. * *NADIP* TABLE WORD OFFSETS.
  659.  
  660. WCBC EQU 8 CONTROL MESSAGE BUFFER COUNT
  661. WIBC EQU 6 INTERNAL (SYSTEM) BUFFER COUNT
  662. WMNP EQU 4 MAXIMUM NUMBER OF PATHS
  663. WNMS EQU 0 NAD MEMORY SIZE
  664. WTBC EQU 12D TYPE 1 BUFFER COUNT
  665.  
  666. * NAD INITIATION PARAMETER DEFINITIONS.
  667.  
  668. DCBC EQU 0#23 DEFAULT CONTROL MESSAGE BUFFER COUNT
  669. DNMS EQU 0#7FFF DEFAULT NAD MEMORY SIZE - 1
  670. DTBC EQU 2 DEFAULT TYPE 1 BUFFER SIZE
  671. LCBC EQU 0#30 CONTROL MESSAGE BUFFER LENGTH
  672. LTBC EQU 0#820 TYPE 1 BUFFER LENGTH
  673. TITLE MAIN PROGRAM.
  674. LBC SPACE 4,10
  675. ** LOADBC - LOAD BUFFER CONTROLWARE MAIN PROGRAM.
  676.  
  677.  
  678. LOADBC BSS 0 ENTRY
  679. SB1 1
  680. RJ PRS PRESET
  681. SA1 DRCF
  682. NZ X1,LBC2 IF NOT DRIVER CALL
  683. LBC1 RJ SCN SELECT CHANNEL NUMBER
  684. SA1 CME
  685. NZ X1,LBC2 IF LOAD REQUEST FOR CONTROL MODULE
  686. RJ CCS CHECK CHANNEL STATUS
  687. LBC2 RJ RCF READ CONTROLWARE FILE
  688. LBC3 SA2 DUMP
  689. ZR X2,LBC4 IF NO DUMP REQUESTED
  690. SX2 A2+
  691. LX2 18
  692. LBC4 SA3 CME
  693. SA1 CHN
  694. ZR X3,LBC4.1 IF CONTROL MODULE NOT SPECIFIED
  695. SX1 X3+4000B SET CONTROL MODULE FLAG FOR *1LC*
  696. LBC4.1 SA3 DRCF
  697. LX3 10
  698. BX6 X3+X1
  699. SA6 IN+8
  700. SA3 LBCA BUILD *1LC* CALL WORD
  701. BX6 X3+X2 SET DUMP REQUEST
  702. MX7 42
  703. SA1 IN CLEAR FET+0 RESPONSE CODE
  704. SA6 LBCD+1
  705. SA6 LBCB
  706. BX7 X7*X1
  707. SA7 A1
  708. SA2 CCHF CHECK FOR CONCURRENT CHANNEL
  709. NZ X2,LBC6 IF CONCURRENT CHANNEL
  710. SYSTEM SPC,,A6 CALL *1LC*
  711. EQ LBC7 COMPLETE LOAD
  712.  
  713. LBC6 SYSTEM CPM,R,LBCD,140B*100B ASSIGN CIO PP FOR THE LOAD
  714. LBC7 RECALL IN WAIT FOR LOAD TO COMPLETE
  715. SA1 X2 GET *1LC* RESPONSE CODE
  716. MX0 -8
  717. LX1 -1
  718. BX0 -X0*X1
  719. SX2 X0-RC14 CHECK FOR LOAD ALREADY IN PROGRESS
  720. SA1 DRCF CHECK IF NEED TO RESELECT CHANNEL
  721. BX1 X1+X2
  722. CX1 X1
  723. ZR X1,LBC1 IF RELOAD IN PROGRESS FOR DRIVER REQUEST
  724. SA1 CME
  725. ZR X1,LBC8 IF NOT CONTROL MODULE LOAD
  726. SA1 IN+8 GET CHANNEL NUMBER USED
  727. MX6 12
  728. BX1 X6*X1
  729. LX1 12
  730. BX6 X1
  731. SX1 X1+10000B
  732. SA6 CHN
  733. RJ COD CONVERT TO DISPLAY CODE
  734. LX6 48-0
  735. MX4 12
  736. BX6 X4*X6
  737. SA6 CHAN
  738. LBC8 SX2 X0-RCAML
  739. NG X2,ELP IF NOT CONTROLLER HARDWARE ERROR
  740. SX6 X0-RC34
  741. ZR X6,LBC9 IF CONTROLLER RESERVED
  742. SA2 DRCF
  743. ZR X2,ELP IF DRIVER CALL
  744. SA2 RT CHECK RETRY COUNT
  745. SX6 X2-1
  746. SA6 A2+
  747. ZR X6,ELP IF RETRY COUNT EXHAUSTED
  748. RJ IRM ISSUE RESPONSE MESSAGES
  749. BX2 X2-X2 PREVENT DUMP ON RETRY
  750. EQ LBC4 RETRY CONTROLWARE LOAD
  751.  
  752. LBC9 RECALL
  753. SA1 LBCC GET PREVIOUS CONTROLLER RESERVE FLAG
  754. NZ X1,LBC3 IF PREVIOUS CONTROLLER RESERVE
  755. SX6 B1
  756. SA6 A1
  757. RJ IRM ISSUE RESPONSE MESSAGES
  758. EQ LBC3 RETRY CONTROLWARE RELOAD
  759.  
  760.  
  761. LBCA VFD 18/3R1LC,24/0,18/IN *1LC* CALL WORD
  762. LBCB BSS 1 *SPC* PARAMETER WORD
  763. LBCC CON 0 CONTROLLER RESERVED RESPONSE FLAG
  764. LBCD CON 0,0 CALL BLOCK FOR CONCURRENT PP ASSIGNMENT
  765. TITLE DISK CONTROLWARE SUBROUTINES.
  766. CCS SPACE 4,15
  767. ** CCS - CHECK CHANNEL STATUS.
  768. *
  769. * ENTRY (CHN) = CHANNEL NUMBER.
  770. *
  771. * EXIT (X5) = CONTROLWARE TYPE FOR CHANNEL.
  772. * (CHAN) = CHANNEL NUMBER IN DISPLAY CODE.
  773. * (CRN) = CONTROLWARE RECORD NAME.
  774. *
  775. * ERROR EXIT TO *ELP* WITH (X0) = ERROR RESPONSE.
  776. *
  777. * USES X - ALL.
  778. * A - 1, 2, 3, 4, 5, 6, 7.
  779. * B - 3, 6.
  780. *
  781. * CALLS COD, RCT.
  782.  
  783.  
  784. CCS SUBR ENTRY/EXIT
  785. SA5 CHN CONVERT CHANNEL NUMBER TO DISPLAY
  786. MX0 -5 CLEAR POSSIBLE CCH FLAG
  787. BX1 -X0*X5
  788. SX1 X1+100B FORCE LEADING ZERO FILL
  789. SX0 5
  790. RJ COD
  791. MX1 -12
  792. SB6 -B1
  793. BX6 -X1*X6
  794. LX6 -12
  795. SA1 CHN CHECK FOR CONCURRENT CHANNEL
  796. LX1 59-5
  797. PL X1,CSS0 IF NOT A CONCURRENT CHANNEL
  798. SX1 1RC ADD *C* TO CHANNEL NUMBER
  799. LX6 -6
  800. LX1 54
  801. BX6 X6+X1
  802. CSS0 SA6 CHAN
  803. RJ RCT READ CHANNEL TABLES
  804. CCS1 SB6 B6+B1 CALCULATE WORD INDEX IN CHANNEL TABLE
  805. IX5 X5-X0
  806. PL X5,CCS1 IF DIVIDE BY 5 NOT COMPLETE
  807. IX5 X5+X0 BYTE INDEX
  808. SX1 12
  809. IX5 X5*X1
  810. SB3 X5 SHIFT FOR CHANNEL BYTE
  811. SA1 CBUF+B6 CHANNEL STATUS
  812. MX5 -5
  813. SA3 CBUF+CTALL*2+B6 CHANNEL CONTROLWARE
  814. LX1 B3
  815. LX3 B3
  816. SX0 RC7 * NO CONTROLWARE ON CHANNEL.*
  817. LX3 12
  818. BX5 -X5*X3 CONTROLWARE TYPE
  819. SX7 X5-MXCWT
  820. PL X7,ELP IF INCORRECT TYPE
  821. SA4 TCWT+X5 GET CONTROLWARE RECORD NAME
  822. ZR X4,ELP IF NO CONTROLWARE ON CHANNEL
  823. BX7 X4
  824. LX1 59-53
  825. SA7 CRN
  826. PL X1,CCSX IF CHANNEL UP
  827. SA2 CBUF+CTALL+B6 CHANNEL ASSIGNMENT
  828. MX6 12
  829. LX2 B3
  830. BX2 X6*X2
  831. R= X0,RC2 * SPECIFIED CHANNEL IS IN USE.*
  832. ZR X2,CCSX IF CHANNEL NOT ASSIGNED
  833. EQ ELP PROCESS ERROR
  834. TCWT SPACE 4,10
  835. ** TCWT - TABLE OF CONTROLWARE TYPES.
  836.  
  837.  
  838. TCWT BSS 0
  839. LOC 0
  840. NOCW CON 0 0 - NO CONTROLWARE
  841. HTCW DATA 0LBCS 1 - HT (7054/7154/7152)
  842. FTCW DATA 0LBCF 2 - FT (7154/7152)
  843. FMCW DATA 0LFMD 3 - FMD (7155)
  844. ADCW DATA 0LADP 4 - FSC ADAPTER
  845. PHCW DATA 0LPHD 5 - DEMA/PFMD (7155-10)
  846. IDCW DATA 0LISD 6 - 7255 ADAPTOR
  847. CCCW DATA 0LMA464 7 - 7165 CCC
  848. LNFL EQU * LOCAL NAD FLAG
  849. NDCW DATA 0L170 10 - CYBER 170 NAD
  850. CMCW DATA 0LCMD 11 - CONTROL MODULE I
  851. C2CW DATA 0LCM2 12 - CONTROL MODULE II
  852. M8CW DATA 0LCCC7990 13 - 7990 CCC
  853. LOC *O
  854. ELP SPACE 4,15
  855. ** ELP - END *LOADBC* PROCESSING.
  856. *
  857. * ENTRY (X0) = LOAD RESPONSE CODE.
  858. *
  859. * USES X - 1, 2.
  860. * A - 0, 1, 2.
  861. * B - 2, 5.
  862. *
  863. * CALLS IRM, SNM, VCD.
  864. *
  865. * MACROS ABORT, ENDRUN, MESSAGE.
  866.  
  867.  
  868. ELP BSS 0 ENTRY
  869. SA0 B0 SET NO ABORT FLAG
  870. ZR X0,ELP1 IF LOAD COMPLETE
  871. SA0 B1 SET ABORT FLAG
  872. SX1 X0-RCAML
  873. NG X1,ELP2 IF NOT CONTROLLER HARDWARE ERROR
  874. ELP1 RJ VCD VERIFY CONTROLWARE DUMP
  875. ELP2 RJ IRM ISSUE RESPONSE MESSAGES
  876. SB5 MSGB * CONTROLWARE LOAD COMPLETE.*
  877. ZR X0,ELP3 IF LOAD COMPLETE
  878. SB5 MSGA * CONTROLWARE LOAD ABORT, C=XX.*
  879. SA1 CHAN ENTER CHANNEL DISPLAY INTO SUMMARY MESSAGE
  880. SA2 CME
  881. ZR X2,ELP2.1 IF NOT CONTROL MODULE
  882. SB5 MSGC * CONTROLWARE LOAD ABORT, EQ=XXX.*
  883. SA1 CMES ENTER EST ORDINAL INTO SUMMARY MESSAGE
  884. ELP2.1 SB2 1RX
  885. RJ SNM
  886. ELP3 MESSAGE B5,0,R
  887. SX1 A0+
  888. NZ X1,ELP4 IF *LOADBC* TO BE ABORTED
  889. ENDRUN
  890.  
  891. ELP4 ABORT
  892. FFI SPACE 4,10
  893. ** FFI - FIND FIRMWARE IDENT.
  894. *
  895. * (BUF - BUF+16) = PREFIX TABLE OF FIRMWARE RECORD.
  896. *
  897. * (X7) = FIRMWARE TYPE AND REVISION LEVEL.
  898. *
  899. * USES X - 1, 2, 3, 4, 7.
  900. * A - 1, 2, 3.
  901. * B - 2, 3.
  902. *
  903. * CALLS USB.
  904.  
  905.  
  906. * SET DEFAULT NAME.
  907.  
  908. FFI4 SA3 FFIB DEFAULT NAME
  909. BX7 X3
  910.  
  911. FFI SUBR 0 ENTRY/EXIT
  912. SB2 BUF+10B FIRST WORD ADDRESS OF UNPACK
  913. SB3 B0 DEFINE NO ASCII
  914. MX4 -6
  915. RJ USB
  916. SB2 70
  917. SA1 USBB-1
  918. FFI1 SA1 A1+B1 SCAN FOR *FIRMWARE*
  919. SB2 B2-B1
  920. SX1 X1-1RF
  921. ZR B2,FFI4 IF END OF TEXT STRING
  922. NZ X1,FFI1 IF NOT *F*
  923. SA2 A1+1
  924. SX2 X2-1RI
  925. NZ X2,FFI1 IF NOT *I*
  926. SA3 FFIA CHECK FOR REMAINDER OF *FIRMWARE*
  927. FFI2 BX1 -X4*X3
  928. SA2 A2+B1
  929. AX3 6
  930. IX2 X1-X2
  931. NZ X2,FFI1 IF NOT *RMWARE*
  932. NZ X3,FFI2 IF NOT END OF *RMWARE*
  933. SB3 A2-USBB-61
  934. SX7 1R ASSEMBLE FIRMWARE IDENT
  935. PL B3,FFI4 IF NOT ENOUGH CHARACTERS REMAIN
  936. SB3 9
  937. FFI3 LX7 6 POSITION ASSEMBLY
  938. SA2 A2+B1
  939. SB3 B3-B1
  940. BX7 X2+X7
  941. NZ B3,FFI3 IF NOT END OF ASSEMBLY
  942. LX7 6
  943. EQ FFIX RETURN
  944.  
  945.  
  946. FFIA VFD 18/0,42/7H ERAWMR
  947. FFIB DATA 10H**********
  948. IRM SPACE 4,15
  949. ** IRM - ISSUE RESPONSE MESSAGES.
  950. *
  951. * ENTRY (X0) = LOAD RESPONSE CODE.
  952. *
  953. * EXIT DAYFILE AND ERROR LOG MESSAGES ISSUED
  954. * FOR RESPONSE CODE.
  955. *
  956. * USES X - 1, 2, 3, 5, 6.
  957. * A - 1, 2, 3, 5, 6.
  958. * B - 2, 3, 5.
  959. *
  960. * CALLS COD, FFI, SNM.
  961. *
  962. * MACROS MESSAGE.
  963.  
  964.  
  965. IRM1 SX1 X0-RCAML
  966. NG X1,IRM3 IF NOT CONTROLLER HARDWARE ERROR
  967. SA1 IN+8 GET LAST FUNCTION/STATUS FROM *1LC*
  968. MX2 -12
  969. BX1 -X2*X1
  970. SX1 X1+10000B FORCE LEADING ZERO FILL
  971. RJ COD CONVERT TO DISPLAY CODE
  972. MX2 -24
  973. BX1 -X2*X6
  974. SX6 1R.
  975. LX1 -24
  976. LX6 30
  977. BX6 X1+X6
  978. SA6 MSG31+2 ENTER LAST STATUS IN MESSAGE
  979. SA6 BML31+2 ENTER LAST STATUS IN MESSAGE
  980. SA6 MSG32+2 ENTER LAST FUNCTION IN MESSAGE
  981. SA6 BML32+2 ENTER LAST FUNCTION IN MESSAGE
  982. IRM2 SB5 X5 ENTER DATA IN ERROR LOG MESSAGE
  983. SB3 IRMB
  984. SB5 -B5
  985. SB2 1RY
  986. RJ SNM
  987. SB5 IRMB ENTER CHANNEL DISPLAY IN ERROR LOG MESSAGE
  988. SB2 1RX
  989. SA1 CHAN
  990. RJ SNM
  991. MESSAGE B5,4 ISSUE ERROR LOG MESSAGE
  992. IRM3 AX5 18
  993. MESSAGE X5,0,R ISSUE LOAD RESPONSE MESSAGE
  994. AX5 18 CHECK FOR BML MESSAGE
  995. SX5 X5
  996. ZR X5,IRMX IF NO BML MESSAGE
  997. SA2 X5+1
  998. SA1 CHN SET CHANNEL IN BML MESSAGE
  999. LX1 24
  1000. BX6 X1+X2
  1001. SA6 A2
  1002. MESSAGE X5,11B,R ISSUE LOAD COMPLETE MESSAGE TO BML
  1003.  
  1004.  
  1005. IRM SUBR ENTRY/EXIT
  1006. SA5 TLRC+X0 GET MESSAGE ADDRESSES
  1007. NZ X0,IRM1 IF NOT LOAD COMPLETE
  1008. SB5 MSG0 ENTER CONTROLWARE TYPE
  1009. SB2 1RY
  1010. SA1 BUF+10B
  1011. RJ SNM
  1012. SB5 MSG0 ENTER CHANNEL DISPLAY IN DAYFILE MESSAGE
  1013. SB2 1RX
  1014. SA1 CHAN
  1015. RJ SNM
  1016. RJ FFI FIND FIRMWARE IDENT
  1017. SA2 BMLM+1
  1018. SA1 CHN SET CHANNEL IN BML MESSAGE
  1019. SA7 A2+1 STORE FIRMWARE IDENT
  1020. SA7 IRMC
  1021. LX1 24
  1022. BX6 X1+X2
  1023. SA3 CMQ SET EQUIPMENT NUMBER IN BML MESSAGE
  1024. LX3 12
  1025. BX6 X1+X2
  1026. BX6 X6+X3
  1027. SA6 A2
  1028. MESSAGE BMLM,11B,R ISSUE LOAD COMPLETE MESSAGE TO BML
  1029. SB5 MSG0 ENTER CONTROLWARE TYPE
  1030. SB2 1RV
  1031. BX1 X7
  1032. RJ SNM
  1033. SA1 IRMC
  1034. EQ IRM2 SET CONTROLWARE TYPE IN ERROR LOG MESSAGE
  1035.  
  1036.  
  1037. IRMA VFD 18/0,24/4H,CH=,12/0,6/1R.
  1038. IRMB BSS 4
  1039. IRMC CON 0
  1040. RCF SPACE 4,20
  1041. ** RCF - READ CONTROLWARE FILE.
  1042. *
  1043. * ENTRY (TYPN) = NAD TYPE FLAG.
  1044. * .EQ. POSITIVE, IF *TY* OPTION NOT SPECIFIED.
  1045. * .EQ. NEGATIVE, IF *TY* OPTION SPECIFIED.
  1046. * (RL) = .NE. 0, IF REMOTE NAD LOAD.
  1047. *
  1048. * EXIT (FWC) = FWA CONTROLWARE IN LOAD BUFFER.
  1049. * (LWC) = LWA CONTROLWARE IN LOAD BUFFER.
  1050. *
  1051. * ERROR EXIT TO *ELP* WITH (X0) = ERROR RESPONSE CODE.
  1052. *
  1053. * USES X - 0, 1, 2, 3, 5, 6, 7.
  1054. * A - 1, 2, 3, 6, 7.
  1055. * B - 2, 3, 4, 6.
  1056. *
  1057. * MACROS ASSIGN, READ, REWIND, SKIPB, SKIPEI, STATUS.
  1058.  
  1059.  
  1060. RCF2 STATUS IN DETERMINE IF LOCAL FILE PRESENT
  1061. SA1 X2
  1062. MX2 -11
  1063. AX1 1
  1064. BX1 -X2*X1
  1065. ZR X1,ELP IF NO LOCAL FILE
  1066. REWIND IN,R
  1067. RCF3 READ IN,R READ CONTROLWARE RECORD
  1068. SA1 IN CLEAR FET CODE AND STATUS
  1069. MX6 51
  1070. BX6 X6*X1
  1071. SA6 A1
  1072. SA1 IN+2 READ *IN* POINTER
  1073. SA2 A1+B1 READ *OUT* POINTER
  1074. SB2 X2
  1075. SA3 B2
  1076. SB6 X1 SAVE *IN*
  1077. MX5 12
  1078. MX1 6 FORM 7700 MASK
  1079. BX2 X5*X3
  1080. SX0 RC15 * NO 77 TABLE IN CONTROLWARE RECORD.*
  1081. BX1 X1-X2
  1082. NZ X1,ELP IF NOT 7700 TABLE
  1083. LX3 12
  1084. BX2 X5*X3 LENGTH OF 7700 TABLE
  1085. SX0 RC16 * NO 52 TABLE IN CONTROLWARE RECORD.*
  1086. LX2 12
  1087. SB3 X2+B1
  1088. SA2 B2+B3 READ EXPECTED 5200 TABLE
  1089. SX3 5200B
  1090. SX6 A2+B1 FWA OF CONTROLWARE
  1091. SA6 FWC
  1092. SB2 X6 *OUT* = FWA OF CONTROLWARE
  1093. SX6 X2-1 SUBTRACT LENGTH OF 5200 TABLE
  1094. SX7 A2
  1095. IX7 X2+X7 ADD CONTROLWARE LENGTH
  1096. SB4 X6
  1097. BX2 X5*X2
  1098. SA7 LWC SAVE LWA+1 OF CONTROLWARE
  1099. LX2 12
  1100. BX2 X2-X3
  1101. NZ X2,ELP IF NOT 5200 TABLE
  1102. SB6 B6-B2 *IN* - *OUT*
  1103. SB6 B6-B4
  1104. SX0 RC17 * LENGTH IN 52 TABLE .NE. FET.*
  1105. NZ B6,ELP IF CM WORD COUNT DOES NOT MATCH
  1106. SA6 CWL SAVE CONTROLWARE LENGTH
  1107.  
  1108. RCF SUBR ENTRY/EXIT
  1109. SA1 IN
  1110. SA2 FN ASSUMED FILE NAME
  1111. SX0 RC10 * CONTROLWARE NOT FOUND.*
  1112. ZR X1,ELP IF *F=0* SPECIFIED
  1113. MX3 42
  1114. BX1 X3*X1
  1115. BX3 X1-X2
  1116. NZ X3,RCF2 IF ALTERNATE FILE SPECIFIED
  1117. ASSIGN IN
  1118. SKIPEI IN,R POSITION TO EOI
  1119. SKIPB IN,2,R POSITION TO BEGINNING OF DIRECTORY
  1120. READ IN,R READ DIRECTORY
  1121. SA2 X2+2 READ *IN* POINTER
  1122. SA3 BUF LENGTH OF 7700 TABLE
  1123. SB3 X2+ (B3) = LWA+1 OF DATA READ
  1124. SA2 CRN
  1125. LX3 24
  1126. SB2 X3+BUF FIRST RECORD ON SYSTEM DIRECTORY
  1127. MX7 42
  1128. SA1 TYPN
  1129. PL X1,RCF1 IF TYPE NOT SPECIFIED
  1130. SA3 RL
  1131. ZR X3,RCF1 IF NOT REMOTE NAD LOAD
  1132. SA2 TYPE USE TYPE SPECIFIED BY CALLER
  1133. RCF1 SA1 B2+ READ DIRECTORY ENTRY
  1134. GE B2,B3,ELP IF END OF DIRECTORY
  1135. SB2 B2+2
  1136. BX3 X7*X1
  1137. BX3 X3-X2
  1138. NZ X3,RCF1 IF CONTROLWARE NOT FOUND
  1139. BX1 -X7*X1
  1140. SX1 X1-10
  1141. NZ X1,RCF1 IF CONTROLWARE NOT FOUND
  1142. SA1 A1+B1 SET RANDOM ADDRESS IN FET
  1143. MX7 -29
  1144. SA2 IN+6
  1145. BX2 X7*X2
  1146. BX6 -X7*X1
  1147. BX6 X6+X2
  1148. SA6 A2
  1149. SA1 IN+2 RESET *IN* = *FIRST*
  1150. SA2 IN+1
  1151. MX7 -18
  1152. BX2 -X7*X2
  1153. BX1 X7*X1
  1154. BX6 X1+X2
  1155. SA6 A1
  1156. EQ RCF3 READ CONTROLWARE RECORD
  1157. RCT SPACE 4,10
  1158. ** RCT - READ CHANNEL TABLES.
  1159. *
  1160. * ENTRY (RCTA) = CHANNEL TABLES DESCRIPTOR WORD.
  1161. *
  1162. * EXIT CBUF = CHANNEL TABLES FROM CMR.
  1163. *
  1164. * USES X - 7.
  1165. * A - 7.
  1166. *
  1167. * MACROS SYSTEM.
  1168.  
  1169.  
  1170. RCT SUBR ENTRY/EXIT
  1171. MX7 1 READ FROM LOW CORE
  1172. SA7 CBUF
  1173. SYSTEM RSB,R,RCTA,0 READ CHANNEL TABLES
  1174. EQ RCTX RETURN
  1175.  
  1176.  
  1177. RCTA VFD 12/0,12/CTALL*3,18/0,18/CBUF
  1178. SCN SPACE 4,15
  1179. ** SCN - SELECT CHANNEL NUMBER.
  1180. *
  1181. * ENTRY (ESTW) = EST POINTER WORD *ESTP*.
  1182. *
  1183. * EXIT IF DRIVER REQUEST FOUND IN CHANNEL TABLE -
  1184. * (CHN) = CHANNEL NUMBER.
  1185. * (CME) = 0.
  1186. * (CMQ) = 0.
  1187. * IF DRIVER REQUEST FOUND IN CONTROL MODULE EST ENTRY -
  1188. * (CME) = EST ORDINAL.
  1189. * (CRN) = CONTROLWARE RECORD NAME LEFT JUSTIFIED.
  1190. *
  1191. * ERROR EXIT TO *ELP* WITH (X0) = ERROR RESPONSE.
  1192. *
  1193. * USES X - 2, 3, 4, 5, 6, 7.
  1194. * A - 2, 4, 6.
  1195. * B - 2, 3, 4, 5, 6.
  1196. *
  1197. * CALLS RCT.
  1198.  
  1199.  
  1200. SCN7 SA6 CHN SAVE CHANNEL NUMBER
  1201. LX6 59-5
  1202. PL X6,SCN7.1 IF NOT CONCURRENT CHANNEL
  1203. SA6 CCHF SET CONCURRENT CHANNEL FLAG
  1204. SCN7.1 SX6 HI0103
  1205. SCN8 SA1 BMLM+1 SET BML MESSAGE SYMPTOM CODE
  1206. LX6 36
  1207. MX5 12
  1208. LX5 48
  1209. BX1 -X5*X1
  1210. BX6 X1+X6
  1211. SA6 A1
  1212.  
  1213. SCN SUBR ENTRY/EXIT
  1214. SB4 4
  1215. RJ RCT READ CHANNEL TABLES
  1216. SA4 CBUF+CTALL*2 GET CHANNEL CONTROLWARE ENTRY
  1217. SX6 B0+ INITIALIZE CHANNEL NUMBER
  1218. SA6 CME CLEAR CONTROL MODULE EST ORDINAL
  1219. SA6 CMQ CLEAR CONTROL MODULE EQUIPMENT NUMBER
  1220. SCN1 SB4 B4-B1
  1221. PL X4,SCN2 IF NO CONTROLWARE LOAD REQUESTED
  1222. LX2 X4,B1
  1223. PL X2,SCN7 IF NOT LOAD IN PROGRESS
  1224. SCN2 LX4 12
  1225. SX6 X6+B1 ADVANCE CHANNEL NUMBER
  1226. PL B4,SCN1 IF MORE ENTRIES IN WORD
  1227. SA4 A4+1
  1228. SB4 4
  1229. SB2 A4-CBUF-CTALL*3
  1230. NE B2,SCN1 IF MORE CHANNELS IN TABLE
  1231.  
  1232. * SCAN EST FOR LOAD REQUEST FOR CONTROL MODULE.
  1233.  
  1234. SA4 ESTW GET LAST EST ORDINAL + 1
  1235. MX6 -12
  1236. LX4 -24
  1237. BX4 -X6*X4
  1238. SB3 X4
  1239. MX7 -11
  1240. R= B4,ESTE EST ENTRY SIZE
  1241. SX5 2RCM CONTROL MODULE MNEMONIC
  1242. SB7 CBUF
  1243. SX0 100B
  1244. SB5 B7+X0 END OF BUFFER
  1245. LX0 18
  1246. SCN3 SB6 B7-B4
  1247. SA7 B6+B4 SET LOW CORE READ FLAG FOR *RSB*
  1248. SYSTEM RSB,R,SCNA,0 READ NEXT 100B WORDS OF EST
  1249. SA4 SCNA ADVANCE EST BLOCK IN *RSB* CALL
  1250. IX6 X4+X0
  1251. SA6 A4
  1252. SCN4 SB6 B6+B4
  1253. EQ B6,B5,SCN3 IF END OF BUFFER
  1254. SA4 B6 READ WORD *EQDE* OF EST ENTRY
  1255. ERRNZ EQDE CODE ASSUMES *EQDE* = 0
  1256. SA2 A4+B1
  1257. ERRNZ EQAE-1 CODE ASSUMES *EQAE* = 1
  1258. LX4 -12
  1259. BX6 -X7*X4
  1260. BX6 X6-X5
  1261. LX2 59-35
  1262. NZ X6,SCN5 IF NOT CONTROL MODULE
  1263. PL X2,SCN5 IF RELOAD NOT REQUESTED
  1264. LX2 35-34
  1265. PL X2,SCN6 IF LOAD NOT IN PROGRESS
  1266. SCN5 SB2 B2+1 INCREMENT EST ORDINAL
  1267. NE B2,B3,SCN4 IF NOT END OF EST
  1268. SX0 RC3 * NO CHANNEL LOAD REQUEST.*
  1269. EQ ELP PROCESS ERROR
  1270.  
  1271. SCN6 MX0 -5 SET CONTROLWARE TYPE
  1272. LX2 11
  1273. BX2 -X0*X2 GET RECORD NAME TABLE INDEX
  1274. MX0 -3 SAVE EQUIPMENT NUMBER
  1275. LX4 3
  1276. BX6 -X0*X4
  1277. SA6 CMQ
  1278. SA2 X2+TCWT
  1279. BX6 X2
  1280. SX7 B2 SET EST ORDINAL
  1281. SA6 CRN SET RECORD NAME
  1282. SA7 CME
  1283. SX1 X7+1000B FORCE LEADING ZERO-FILL
  1284. RJ COD CONVERT TO DISPLAY CODE
  1285. LX6 42-0
  1286. MX0 18
  1287. BX6 X0*X6
  1288. SA6 CMES
  1289. SX6 HI0106
  1290. EQ SCN8 SET BML MESSAGE SYMPTOM CODE
  1291.  
  1292. SCNA VFD 12/0,12/100B,18/0,18/CBUF
  1293. VCD SPACE 4,15
  1294. ** VCD - VERIFY CONTROLWARE DUMP.
  1295. *
  1296. * EXIT CONTROLLER MEMORY DUMP VERIFIED WITH CONTROLWARE
  1297. * RECORD AND DUMP FILE WRITTEN.
  1298. *
  1299. * USES X - 1, 2, 3, 4, 5, 6, 7.
  1300. * A - ALL.
  1301. * B - 2, 3, 4, 5.
  1302. *
  1303. * MACROS MESSAGE, WRITER.
  1304.  
  1305.  
  1306. VCD SUBR ENTRY/EXIT
  1307. SA1 DUMP
  1308. ZR X1,VCDX IF NO DUMP REQUESTED
  1309. MX2 -8
  1310. LX1 -1
  1311. BX5 -X2*X1 DUMP RESPONSE CODE
  1312. SA0 B1 SET ABORT FLAG
  1313. SB5 X5-TDMAL
  1314. SA1 TDMA+X5 GET MESSAGE ADDRESS
  1315. NG B5,VCD0 IF VALID RESPONSE CODE
  1316. SA1 TDMA+DR5 SET INCORRECT *1LC* RESPONSE MESSAGE
  1317. VCD0 SB3 12
  1318. MESSAGE X1,0 ISSUE DUMP STATUS MESSAGE TO DAYFILE
  1319. NZ X5,VCDX IF NOT DUMP COMPLETE
  1320. SA4 FWC GET FWA CONTROLWARE IN LOAD BUFFER
  1321. SA5 DBUF+FDWI GET FIRST WORD OF DUMP TO COMPARE
  1322. SA4 X4+FLWI GET FIRST LOAD WORD (SKIP DIAGNOSTICS)
  1323. LX5 FDBI*12+12
  1324. SB5 60-FDBI*12-12
  1325. LX4 FLBI*12+12
  1326. SB4 60-FLBI*12-12
  1327. MX3 -12
  1328. SB2 B0
  1329. VCD1 BX2 X4-X5 COMPARE DUMP AND LOAD CONTROLWARE
  1330. BX2 -X3*X2
  1331. ZR X2,VCD4 IF BYTE COMPARES
  1332. CX6 X2
  1333. AX2 1
  1334. SX6 X6-1
  1335. SX7 17B INDICATE MULTIPLE BITS DID NOT VERIFY
  1336. NZ X6,VCD3 IF MULTIPLE BIT FAILURE
  1337. SX7 10B INDICATE BIT 0 DID NOT VERIFY
  1338. ZR X2,VCD3 IF BIT 0 FAILURE
  1339. SX7 B0+
  1340. VCD2 AX2 1 LOCATE FAILING BIT POSITION
  1341. SX7 X7+B1
  1342. NZ X2,VCD2 IF BIT NOT LOCATED
  1343. VCD3 LX7 8
  1344. BX5 X5+X7
  1345. LX7 X5,B5
  1346. SA7 A5
  1347. VCD4 SB4 B4-B3
  1348. LX4 12
  1349. PL B4,VCD5 IF MORE BYTES IN LOAD WORD
  1350. SA4 A4+B1 GET NEXT LOAD WORD
  1351. SB4 48
  1352. LX4 12
  1353. VCD5 SB5 B5-B3
  1354. LX5 12
  1355. GE B5,B2,VCD1 IF MORE BYTES IN DUMP WORD
  1356. SA5 A5+1 GET NEXT DUMP WORD
  1357. SB5 60
  1358. SX1 A5-DBUF-LDWI
  1359. NG X1,VCD5 IF NOT AT LAST WORD
  1360. SB2 60-LDBI*12
  1361. ZR X1,VCD5 IF COMPARING LAST WORD
  1362. SA3 CHAN SET DISPLAY CHANNEL IN DUMP HEADER
  1363. SA2 CHID1
  1364. SX7 DHDR RESET DUMP FET *FIRST* AND *OUT* TO HEADER
  1365. LX3 -12
  1366. BX6 X2+X3
  1367. SA7 DUMP+3
  1368. SA6 CHID2
  1369. SA7 DUMP+1
  1370. SA6 A2
  1371. WRITER A7-B1 WRITE RECORD TO DUMP FILE
  1372. SETFS X2,0 CLEAR FILE STATUS
  1373. SA0 B0 SET NO ABORT FLAG
  1374. EQ VCDX RETURN
  1375. TITLE PROCESS NAD CONTROLWARE.
  1376. PNC SPACE 4,10
  1377. ** PNC - PROCESS NAD CONTROLWARE.
  1378.  
  1379.  
  1380. PNC BSS 0 ENTRY
  1381. RJ RCF READ CONTROLWARE FILE
  1382. RJ CCV CALL *CVL* FOR VALIDATION
  1383. ZR X1,PNC2 IF ALLOWED ACCESS TO NAD
  1384. SX2 X1-VRNM
  1385. ZR X2,PNC4 IF NAD NOT FOUND
  1386. SX2 X1-VRUS
  1387. ZR X2,PNC5 IF NAD IN USE OR ON
  1388. SX2 X1-VRSI
  1389. ZR X2,PNC1 IF REMOTE NAD STATUS INDETERMINATE
  1390. SB6 3RCVL
  1391. RJ EMS ISSUE ERROR MESSAGE
  1392. ABORT
  1393.  
  1394. PNC1 MESSAGE PNCA,2,R *$LOADBC REMOTE NAD LOAD - GO OR DROP.*
  1395. RJ PSE PAUSE
  1396.  
  1397. * SET UP *NLD* EST ORDINAL AND CHANNEL PARAMETERS.
  1398.  
  1399. PNC2 SA1 CVLB+CEO EST ORDINAL (MAY BE ZERO)
  1400. MX0 -12
  1401. SA2 A1+B1 CHANNEL NUMBER
  1402. BX1 -X0*X1
  1403. BX2 -X0*X2
  1404. LX1 36-0
  1405. LX2 48-0
  1406. BX6 X1+X2
  1407. SA6 NLDB SAVE PARAMETERS FOR *NLD* CALL
  1408. RJ CNP CHECK NAD INITIATION PARAMETERS
  1409. NZ X6,NER IF ERROR DETECTED BY *NLD*
  1410. RJ CNL LOAD NAD CONTROLWARE
  1411. SX0 0 INDICATE LOAD COMPLETE FOR *IRM*
  1412. RJ IRM ISSUE RESPONSE MESSAGES
  1413. MESSAGE MSGB,0 * CONTROLWARE LOAD COMPLETE.*
  1414. SA1 NLDB+5
  1415. NZ X1,PNC3 IF LOAD FOR REMOTE NAD
  1416. SA1 NLDB CLEAR COMPLETION BIT IN PARAMETER BLOCK
  1417. MX0 48
  1418. BX6 X0*X1
  1419. SA6 A1
  1420. SYSTEM NLD,R,NLDB,4*100B TURN NAD ON AND UP
  1421. PNC3 RJ RET RETURN EQUIPMENT VIA *CVL*
  1422. ENDRUN
  1423.  
  1424. PNC4 MESSAGE PNCB,,R * DEVICE NOT FOUND.*
  1425. ABORT
  1426.  
  1427. PNC5 MESSAGE PNCC,,R * DEVICE ON OR IN USE.*
  1428. ABORT
  1429.  
  1430. PNCA DATA C*$REMOTE NAD LOAD - GO OR DROP.*
  1431. PNCB DATA C* VALIDATION DENIED - DEVICE NOT FOUND.*
  1432. PNCC DATA C* VALIDATION DENIED - DEVICE ON OR IN USE.*
  1433. CCV SPACE 4,15
  1434. ** CCV - SET UP PARAMETERS AND CALL *CVL*.
  1435. *
  1436. * ENTRY (RL) = REMOTE NAD LOAD FLAG.
  1437. * .EQ. 0, IF LOCAL NAD LOAD.
  1438. * .NE. 0, IF REMOTE NAD LOAD.
  1439. * (CHN) = CHANNEL NUMBER (IN BINARY).
  1440. *
  1441. * EXIT (X1) = RESPONSE CODE FROM *CVL*.
  1442. *
  1443. * USES X - ALL.
  1444. * A - 1, 2, 3, 4, 5, 6, 7.
  1445. * B - NONE.
  1446. *
  1447. * CALLS CVL=.
  1448.  
  1449.  
  1450. CCV SUBR ENTRY/EXIT
  1451. SA1 CHN SET CHANNEL
  1452. SA2 CVLB+CCH
  1453. BX6 X1+X2
  1454. SA6 A2
  1455. MX0 1
  1456. SA1 RL
  1457. LX0 52-59
  1458. NZ X1,CCV1 IF REMOTE NAD LOAD
  1459.  
  1460. * SET UP PARAMETERS FOR DEDICATED LOCAL NAD ACCESS.
  1461.  
  1462. SA2 A2+B1 SET LOCAL NAD DEDICATED ACCESS FLAG
  1463. BX6 X0+X2
  1464. SA6 A2
  1465. SA2 CVLB+CDV SET LOCAL NAD DEVICE CODE
  1466. SX3 NAD
  1467. BX7 X2+X3
  1468. SA7 A2
  1469. SA2 A2+B1 SET *LOAD CONTROLWARE* FLAGS
  1470. SX3 CTL
  1471. BX6 X2+X3
  1472. SA6 A2
  1473. EQ CCV2 CALL *CVL*
  1474.  
  1475. * SET UP PARAMETERS FOR DEDICATED REMOTE NAD ACCESS.
  1476.  
  1477. CCV1 SA2 CVLB+CAC SET ACCESS CODE
  1478. SA1 ACC
  1479. LX0 48-52
  1480. BX1 X0+X1
  1481. BX6 X1+X2 ACCESS CODE
  1482. SA6 A2
  1483. SA2 A2+B1 SET TCU ENABLES MASK
  1484. SX3 B1
  1485. SA4 LTCU
  1486. BX2 X0+X2
  1487. LX3 4-0
  1488. BX7 X2+X3
  1489. BX7 X4+X7 MERGE TCU ENABLES FIELD
  1490. SA7 A2
  1491. SA2 A2+B1 SET REMOTE NAD NUMBER
  1492. SX4 RND SET REMOTE NAD DEVICE CODE
  1493. LX3 52-4
  1494. SA1 RNAD
  1495. BX2 X0+X3
  1496. SA5 CVLB+CDV
  1497. BX7 X4+X5
  1498. SA7 A5
  1499. BX6 X1+X2
  1500. LX4 12 POSITION REMOTE NAD DEVICE CODE
  1501. BX6 X4+X6
  1502. SA6 A2
  1503. CCV2 SX1 CVLB FWA OF PARAMETER BLOCK
  1504. SX2 1 FUNCTION REQUEST
  1505. RJ CVL= CALL *CVL*
  1506. SA1 CVLB+CRC CHECK RESPONSE CODE FROM *CVL*
  1507. MX0 -6
  1508. LX1 -6
  1509. BX1 -X0*X1
  1510. EQ CCVX RETURN
  1511. CNL SPACE 4,15
  1512. ** CNL - CALL *NLD* TO LOAD NAD CONTROLWARE.
  1513. *
  1514. * ENTRY (NLDB - NLDB+5) = *NLD* PARAMETER BLOCK.
  1515. * (RL) = REMOTE NAD LOAD FLAG.
  1516. * .EQ. 0, IF LOCAL NAD LOAD.
  1517. * .EQ. 1, IF REMOTE NAD LOAD.
  1518. *
  1519. * EXIT NAD CONTROLWARE LOADED.
  1520. *
  1521. * ERROR TO *NER*, IF *NLD* DETECTED ERROR.
  1522. *
  1523. * USES X - 0, 1, 2, 3, 4, 6, 7.
  1524. * A - 1, 2, 3, 4, 6, 7.
  1525. * B - NONE.
  1526. *
  1527. * MACROS MOVE, SYSTEM.
  1528.  
  1529.  
  1530. CNL SUBR ENTRY/EXIT
  1531. SA1 NLDB CLEAR COMPLETION BIT
  1532. MX0 48
  1533. BX6 X0*X1
  1534. SA6 A1
  1535.  
  1536. * ENSURE INITIALIZATION PARAMETERS START ON NAD WORD BOUNDARY.
  1537.  
  1538. SA1 CWL GET CONTROLWARE LENGTH
  1539. BX7 X7-X7
  1540. SA4 LWC LWA+1 OF CONTROLWARE
  1541. LX1 59-0
  1542. PL X1,CNL1 IF EVEN NUMBER OF CM WORDS
  1543. SA7 X4 APPEND ZERO WORD AFTER CONTROLWARE
  1544. SX4 X4+B1
  1545. CNL1 SX6 X4+LNADIP ADD NAD INITIALIZATION PARAMETERS
  1546. SA6 NLDB+2 SET *IN*
  1547. SA1 FWC SET *OUT* = *FIRST* = FWA OF CONTROLWARE
  1548. BX7 X1
  1549. SA7 A6+B1 *OUT*
  1550. SA7 A6-B1 *FIRST*
  1551. SX6 X6+B1 SET *LIMIT*
  1552. SA6 A6+2
  1553. SA3 RL
  1554. ZR X3,CNL2 IF LOCAL NAD LOAD
  1555. SA1 ACC ACCESS CODE
  1556. SA2 RNAD REMOTE NAD NUMBER
  1557. LX1 16-0
  1558. SA3 LTCU LOGICAL TCU ENABLES
  1559. LX2 8-0
  1560. BX6 X1+X3
  1561. BX6 X2+X6
  1562. SA6 NLDB+5
  1563. CNL2 MOVE LNADIP,NADIP,X4
  1564. SYSTEM NLD,R,NLDB,1*100B
  1565. SA1 NLDB CHECK *NLD* RESPONSE CODE
  1566. MX0 -6
  1567. LX1 -6
  1568. BX1 -X0*X1
  1569. ZR X1,CNLX IF NO ERROR
  1570. EQ NER ISSUE ERROR MESSAGE AND ABORT
  1571. CNP SPACE 4,15
  1572. ** CNP - CHECK NAD INITIATION PARAMETERS.
  1573. *
  1574. * EXIT (X6) = 0, IF NAD READY FOR FINAL LOAD.
  1575. * (X6) .GT. 0, IF *NLD* ERROR.
  1576. *
  1577. * USES X - 0, 1, 2, 5, 6.
  1578. * A - 1, 6.
  1579. * B - NONE.
  1580. *
  1581. * CALLS CNL, FNP, FNS, RET, SNP.
  1582. *
  1583. * MACROS ABORT, MESSAGE, NIPADD, NSTADD, SYSTEM.
  1584.  
  1585.  
  1586. CNP SUBR ENTRY/EXIT
  1587. NIPADD WNMS GET SPECIFIED NAD MEMORY SIZE
  1588. RJ FNP
  1589. NZ X6,CNP6 IF MEMORY SIZE SPECIFIED
  1590. SX6 DNMS SET DEFAULT NAD MEMORY SIZE
  1591. NIPADD WNMS
  1592. RJ SNP
  1593. NIPADD WMNP GET MAXIMUM NUMBER OF PATHS
  1594. RJ FNP
  1595. SX5 X6+B1 SAVE MAXIMUM NUMBER OF PATHS + 1
  1596. NIPADD WIBC GET INTERNAL BUFFER COUNT
  1597. RJ FNP
  1598. IX6 X6-X5
  1599. PL X6,CNP1 IF INTERNAL BUFFER COUNT .GT. PATHS
  1600. BX6 X5
  1601. NIPADD WIBC RESET INTERNAL BUFFER COUNT
  1602. RJ SNP
  1603. CNP1 SX5 DCBC
  1604. NIPADD WCBC GET CONTROLWARE MESSAGE BUFFER COUNT
  1605. RJ FNP
  1606. IX6 X6-X5
  1607. PL X6,CNP2 IF COUNT .GE. DEFAULT
  1608. BX6 X5
  1609. NIPADD WCBC SET DEFAULT COUNT
  1610. RJ SNP
  1611. CNP2 SX5 DTBC
  1612. NIPADD WTBC GET TYPE 1 BUFFER COUNT
  1613. RJ FNP
  1614. IX6 X6-X5
  1615. PL X6,CNP3 IF COUNT .GE. DEFAULT
  1616. BX6 X5
  1617. NIPADD WTBC SET DEFAULT TYPE 1 BUFFER COUNT
  1618. RJ SNP
  1619. CNP3 RJ CNL CALL *NLD* TO LOAD CONTROLWARE
  1620. SA1 NLDB SET UP NAD STATUS PARAMETER BLOCK
  1621. MX6 48
  1622. BX6 X6*X1
  1623. SA6 NADSTAT
  1624. SA1 NLDB+5 REMOTE NAD ADDRESS
  1625. BX6 X1
  1626. SA6 NADSTAT+5
  1627. SYSTEM NLD,R,NADSTAT,3*100B CALL *NLD*
  1628. SA1 NADSTAT CHECK *NLD* RESPONSE CODE
  1629. MX0 -6
  1630. LX1 -6
  1631. BX6 -X0*X1
  1632. BX1 X6 SAVE STATUS IF *NLD* ERROR
  1633. NZ X6,CNPX IF *NLD* ERROR
  1634. NSTADD WAMS GET ACTUAL MEMORY SIZE FROM STATUS
  1635. RJ FNS
  1636. SX5 X6-DNMS
  1637. ZR X5,CNP4 IF SAME AS DEFAULT SIZE
  1638. NG X5,CNP7 IF ACTUAL .LT. DEFAULT
  1639. NIPADD WNMS RESET NAD MEMORY SIZE
  1640. RJ SNP
  1641. CNP4 NSTADD WUNM GET UNUSED MEMORY FROM STATUS
  1642. RJ FNS
  1643. IX5 X5+X6 UNUSED MEMORY + (ACTUAL-DEFAULT)
  1644. SX2 LTBC TYPE 1 BUFFER SIZE
  1645. IX6 X5-X2
  1646. NG X6,CNP5 IF NO ROOM FOR MORE TYPE 1 BUFFERS
  1647. BX6 X5
  1648. IX1 X6/X2 ADDITIONAL MEMORY USED
  1649. SX2 LTBC TYPE 1 BUFFER SIZE
  1650. IX2 X2*X1 ADDITIONAL MEMORY USED
  1651. IX5 X5-X2 REMAINING UNUSED MEMORY
  1652. NIPADD WTBC GET CURRENT TYPE 1 BUFFER COUNT
  1653. RJ FNP
  1654. IX6 X6+X1 INCREMENT COUNT
  1655. NIPADD WTBC RESET TYPE 1 BUFFER COUNT
  1656. RJ SNP
  1657. CNP5 SX2 LCBC CONTROLWARE MESSAGE BUFFER SIZE
  1658. IX6 X5-X2
  1659. NG X6,CNP6 IF NO ROOM FOR MORE BUFFERS
  1660. IX1 X5/X2 ADDITIONAL MESSAGE BUFFERS
  1661. NIPADD WCBC GET CURRENT BUFFER COUNT
  1662. RJ FNP
  1663. IX6 X6+X1 INCREMENT COUNT
  1664. NIPADD WCBC RESET MESSAGE BUFFER COUNT
  1665. RJ SNP
  1666. CNP6 BX6 X6-X6
  1667. EQ CNPX RETURN
  1668.  
  1669. CNP7 MESSAGE CNPA,0 * LOADBC ABORT - ...*
  1670. RJ RET RETURN NAD EQUIPMENT
  1671. ABORT
  1672.  
  1673. CNPA DATA C* LOADBC ABORT - BAD INITIATION PARAMETERS.*
  1674. EMS SPACE 4,15
  1675. ** EMS - ISSUE ERROR MESSAGE.
  1676. *
  1677. * ENTRY (B6) = PP NAME IN DISPLAY CODE.
  1678. * (X1) = ERROR CODE.
  1679. *
  1680. * EXIT DAYFILE MESSAGE ISSUED.
  1681. *
  1682. * USES X - 1.
  1683. * A - NONE.
  1684. * B - 2, 5.
  1685. *
  1686. * CALLS COD, SNM.
  1687. *
  1688. * MACROS MESSAGE.
  1689.  
  1690.  
  1691. EMS SUBR ENTRY/EXIT
  1692. RJ COD CONVERT TO OCTAL DISPLAY CODE
  1693. SB2 1RY INSERT ERROR CODE INTO MESSAGE
  1694. SB5 EMSA
  1695. BX1 X4
  1696. RJ SNM
  1697. SX1 B6 INSERT PP NAME INTO MESSAGE
  1698. SB2 1RX
  1699. LX1 59-17
  1700. SB5 EMSA
  1701. RJ SNM
  1702. MESSAGE EMSA,0 *LOADBC ABORT - ...*
  1703. EQ EMSX RETURN
  1704.  
  1705. EMSA DATA C* LOADBC ABORT - XXX ERROR CODE = YYY.*
  1706. FNP SPACE 4,15
  1707. ** FNP - FETCH NAD INITIATION PARAMETER.
  1708. *
  1709. * (NAD INITIATION PARAMETERS ARE 16-BIT VALUES DEFINED IN THE
  1710. * *NADIP* TABLE, 2.5 PARAMETERS PER CM WORD.)
  1711. *
  1712. * ENTRY (X2) = *NADIP* TABLE WORD.
  1713. * (B2) = SHIFT COUNT TO POSITION FIRST BYTE.
  1714. *
  1715. * EXIT (X6) = 44/0,16/VALUE.
  1716. *
  1717. * USES X - 0, 2, 6.
  1718. * A - 2.
  1719. * B - 2.
  1720.  
  1721.  
  1722. FNP SUBR ENTRY/EXIT
  1723. MX0 -8
  1724. LX2 B2,X2 POSITION UPPER 8 BITS
  1725. SB2 B2-60
  1726. BX6 -X0*X2 EXTRACT UPPER 8 BITS
  1727. NG B2,FNP1 IF PARAMETER NOT DIVIDED
  1728. SA2 A2+B1 GET NEXT WORD
  1729. FNP1 LX2 12 POSITION LOWER 8 BITS
  1730. LX6 8
  1731. BX0 -X0*X2 EXTRACT LOWER BITS
  1732. IX6 X0+X6 COMBINE UPPER AND LOWER BITS
  1733. EQ FNPX RETURN
  1734. FNS SPACE 4,15
  1735. ** FNS - FETCH NAD STATUS WORD.
  1736. *
  1737. * ENTRY (X2) = WORD CONTAINING FIRST DIGIT OF VALUE.
  1738. * (B2) = SHIFT COUNT FOR POSITIONING DIGIT.
  1739. *
  1740. * EXIT (X6) = 44/0,16/NAD STATUS WORD.
  1741. *
  1742. * USES X - 0, 2, 3, 6.
  1743. * A - 2.
  1744. * B - 2, 3, 4.
  1745.  
  1746.  
  1747. FNS SUBR ENTRY/EXIT
  1748. SB4 4
  1749. LX2 B2,X2 POSITION FIRST DIGIT
  1750. SB3 B4-B1 DIGIT COUNT
  1751. MX0 4
  1752. SX6 B0 CLEAR RESULT
  1753. FNS1 BX3 X0*X2 NEXT DIGIT
  1754. SB3 B3-B1
  1755. BX6 X6+X3
  1756. SB2 B2+B4 INCREMENT POSITION
  1757. LX6 4
  1758. NG B3,FNSX IF ALL DIGITS EXTRACTED
  1759. LX2 4 POSITION NEXT DIGIT
  1760. SX3 B2-60
  1761. NG X3,FNS1 IF STILL IN SAME WORD
  1762. SA2 A2+B1 GET NEXT WORD
  1763. SB2 B0 RESET POSITION
  1764. EQ FNS1 CONTINUE
  1765. NER SPACE 4,10
  1766. ** NER - PROCESS *NLD* ERROR.
  1767. *
  1768. * ENTRY (X1) = *NLD* ERROR RESPONSE CODE.
  1769. *
  1770. * EXIT NAD IS RELEASED, AND JOB IS ABORTED.
  1771. *
  1772. * USES X - NONE.
  1773. * A - NONE.
  1774. * B - 6.
  1775. *
  1776. * CALLS EMS, RET.
  1777. *
  1778. * MACROS ABORT.
  1779.  
  1780.  
  1781. NER BSS 0
  1782. SB6 3RNLD
  1783. RJ EMS ISSUE ERROR MESSAGE
  1784. RJ RET RETURN NAD EQUIPMENT
  1785. ABORT
  1786. PSE SPACE 4,10
  1787. ** PSE - PAUSE FOR OPERATOR GO/DROP.
  1788. *
  1789. * USES X - 1, 6.
  1790. * A - 1, 6.
  1791. * B - NONE.
  1792. *
  1793. * MACROS RECALL.
  1794.  
  1795.  
  1796. PSE SUBR ENTRY/EXIT
  1797. SA1 B0 SET PAUSE FLAG IN RA+0
  1798. SX6 10000B
  1799. BX6 X1+X6
  1800. SA6 A1
  1801. PSE1 RECALL
  1802. SA1 B0 CHECK PAUSE FLAG IN RA+0
  1803. SX6 10000B
  1804. BX1 X1*X6
  1805. NZ X1,PSE1 IF PAUSE FLAG NOT CLEARED
  1806. EQ PSEX EXIT
  1807. RET SPACE 4,10
  1808. ** RET - RETURN NAD EQUIPMENT VIA *CVL*.
  1809. *
  1810. * EXIT ANY EQUIPMENT ASSIGNED TO JOB HAS BEEN RELEASED.
  1811. *
  1812. * USES X - 0, 1, 2, 3, 6, 7.
  1813. * A - 1, 3, 6, 7.
  1814. * B - NONE.
  1815. *
  1816. * CALLS CVL=.
  1817.  
  1818.  
  1819. RET SUBR ENTRY/EXIT
  1820. SA1 CVLB+CEO EST ORDINAL
  1821. MX0 -12
  1822. BX6 -X0*X1
  1823. ZR X6,RETX IF NO EQUIPMENT ASSIGNED
  1824. SA3 CVLB+CRC
  1825. MX2 1 SET DATA-IN-WORD FLAG
  1826. BX7 X0*X3 CLEAR RESPONSE CODE/COMPLETION BIT
  1827. LX2 48-59
  1828. SA7 A3
  1829. BX6 X2+X6
  1830. SA6 A1
  1831. SX7 RTNU SET RETURN EQUIPMENT FLAG
  1832. SA7 CVLB+CFC
  1833. SX1 CVLB FWA OF PARAMETER BLOCK
  1834. SX2 1 FUNCTION REQUEST
  1835. RJ CVL= CALL *CVL*
  1836. EQ RETX RETURN
  1837. SNP SPACE 4,15
  1838. ** SNP - SET NAD INITIATION PARAMETER.
  1839. *
  1840. * ENTRY (X2) = WORD CONTAINING FIRST BYTE OF VALUE.
  1841. * (X6) = 44/0, 16/NEW VALUE.
  1842. * (B2) = SHIFT COUNT FOR POSITIONING FIRST BYTE.
  1843. *
  1844. * EXIT NAD PARAMETER RESET.
  1845. *
  1846. * USES X - 0, 2, 6.
  1847. * A - 2, 6.
  1848. * B - 2.
  1849.  
  1850.  
  1851. SNP SUBR ENTRY/EXIT
  1852. MX0 -12
  1853. LX6 -8 POSITION UPPER 8 BITS OF NEW VALUE
  1854. LX2 B2,X2 POSITION WORD
  1855. BX2 X0*X2 CLEAR OLD VALUE
  1856. SB2 B2-60
  1857. BX0 -X0*X6
  1858. IX2 X0+X2 SET NEW VALUE (UPPER 8)
  1859. BX0 -X0*X6 SAVE NEW VALUE (LOWER 8)
  1860. LX0 -4
  1861. LT B2,B0,SNP1 IF PARAMETER NOT DIVIDED
  1862. BX6 X2
  1863. SA6 A2 STORE FIRST WORD (UPPER 8)
  1864. SA2 A2+B1 GET NEXT WORD (LOWER 8)
  1865. SNP1 MX6 12
  1866. BX2 -X6*X2 CLEAR OLD VALUE (LOWER BYTE)
  1867. SB2 -B2 COMPLEMENT SHIFT COUNT
  1868. BX0 X0+X2 INSERT NEW VALUE (LOWER 8)
  1869. LX6 B2,X0
  1870. SA6 A2 STORE WORD
  1871. EQ SNPX RETURN
  1872. TITLE COMMON DECKS.
  1873. * COMMON DECKS.
  1874.  
  1875.  
  1876. *CALL COMCARG
  1877. *CALL COMCCIO
  1878. *CALL COMCCOD
  1879. *CALL COMCCVL
  1880. *CALL COMCDXB
  1881. *CALL COMCHXB
  1882. *CALL COMCLFM
  1883. *CALL COMCMVE
  1884. *CALL COMCSNM
  1885. *CALL COMCSYS
  1886. *CALL COMCUSB
  1887. SPACE 4,10
  1888. USE LITS
  1889. USE *
  1890. TITLE BUFFER ALLOCATION.
  1891. * BUFFER ALLOCATION.
  1892.  
  1893.  
  1894. CBUF BSS 100B CHANNEL TABLES / EST BUFFER
  1895. ERRNG *-CBUF-CTALL*3 CHANNEL TABLES OVERFLOW BUFFER
  1896.  
  1897.  
  1898. DHDR BSS 0 DUMP FILE HEADER
  1899. VFD 12/7700B,12/16B,36/0
  1900. CHID1 VFD 12/2HCH,12/0,36/0 CONTROLLER CHANNEL NUMBER
  1901. SYDT1 BSSZ 1 SYSTEM DATE ( YY/MM/DD.)
  1902. SYTM1 BSSZ 1 SYSTEM TIME ( HH.MM.SS.)
  1903. BSSZ 11
  1904. CHID2 VFD 12/2HCH,12/0,36/0 CONTROLLER CHANNEL NUMBER
  1905. VFD 12/2HID,48/5
  1906. SYVR BSSZ 2 SYSTEM VERSION
  1907. SYDT2 BSSZ 1 SYSTEM DATE
  1908. SYTM2 BSSZ 1 SYSTEM TIME
  1909. BSSZ 1
  1910. VFD 12/2HBC,48/0
  1911.  
  1912. DBUF EQU * CONTROLLER DUMP BUFFER
  1913.  
  1914. BUF EQU DBUF+DBUFL CONTROLLER LOAD BUFFER
  1915.  
  1916. RFL= EQU BUF+BUFL+4 FIELD LENGTH
  1917. TITLE PRESET.
  1918. PRS SPACE 4,20
  1919. ** PRS - PRESET PROGRAM.
  1920. *
  1921. * EXIT (CHN) = CHANNEL, IF SPECIFIED ON COMMAND.
  1922. * (CHAN) = DISPLAY CHANNEL, IF SPECIFIED ON COMMAND.
  1923. * (CME) = CONTROL MODULE EST ORDINAL, IF SPECIFIED.
  1924. * (CMES) = DISPLAY EST ORDINAL, IF SPECIFIED.
  1925. * (CMQ) = CONTROL MODULE EQUIPMENT NUMBER.
  1926. * (CRN) = CONTROLWARE RECORD NAME.
  1927. * (DRCF) = 0 IF DRIVER CALL.
  1928. * (ESTW) = EST POINTER WORD *ESTP*.
  1929. * DUMP FILE HEADER PRESET IF CONTROLLER DUMP REQUESTED.
  1930. * TO *PNC* IF TO LOAD NAD CONTROLWARE.
  1931. * (RL) .NE. 0 IF REMOTE NAD LOAD.
  1932. *
  1933. * ERROR EXIT TO *ELP* WITH (X0) = ERROR RESPONSE CODE.
  1934. *
  1935. * USES X - ALL.
  1936. * A - 1, 2, 3, 4, 5, 6, 7.
  1937. * B - 4, 5, 7.
  1938. *
  1939. * CALLS ARG, CCS, DXB, HXB.
  1940. *
  1941. * MACROS CLOCK, DATE, MESSAGE, SYSTEM.
  1942.  
  1943.  
  1944. PRS6 RJ CNS CHECK IF NAD ONLY PARAMETER SPECIFIED
  1945. SA1 DUMP
  1946. ZR X1,PRSX IF NO CONTROLLER DUMP REQUESTED
  1947. DATE PRSA GET SYSTEM DATE
  1948. SA1 PRSA
  1949. BX6 X1
  1950. SA6 SYDT1 SET SYSTEM DATE IN DUMP FILE HEADER
  1951. SA6 SYDT2
  1952. CLOCK PRSA GET SYSTEM TIME
  1953. SA1 PRSA
  1954. BX6 X1
  1955. MX7 1
  1956. SA6 SYTM1 SET SYSTEM TIME IN DUMP FILE HEADER
  1957. SA6 SYTM2
  1958. SA7 A1 READ FROM LOW CORE
  1959. SYSTEM RSB,R,PRSC,0 GET SYSTEM VERSION
  1960. SA1 PRSA SET SYSTEM VERSION IN DUMP FILE HEADER
  1961. SA2 A1+B1
  1962. BX6 X1
  1963. LX7 X2
  1964. SA6 SYVR
  1965. SA7 A6+B1
  1966.  
  1967. PRS SUBR ENTRY/EXIT
  1968. SA1 XJPR
  1969. LX1 59-23
  1970. MX2 -6
  1971. BX1 -X2*X1
  1972. SX0 RC1 * USER NOT SYSTEM ORIGIN.*
  1973. ERRNZ SYOT CODE DEPENDS ON VALUE
  1974. NZ X1,ELP IF USER IS NOT SYSTEM ORIGIN
  1975. SA1 ACTR GET ARGUMENT COUNT
  1976. SA4 ARGR ADDRESS OF FIRST PARAMETER
  1977. SB5 TLCA *LOADBC* ARGUMENT TABLE
  1978. SB4 X1
  1979. RJ ARG PROCESS ARGUMENTS
  1980. NZ X1,PRS2 IF ARGUMENT ERROR
  1981. SYSTEM RSB,R,PRSB,0 GET FWA CHANNEL TABLES
  1982. SA1 PRSA
  1983. MX0 -18
  1984. AX1 12
  1985. BX6 -X0*X1
  1986. SA1 RCTA
  1987. LX6 18
  1988. BX6 X1+X6
  1989. SA6 A1
  1990. SYSTEM RSB,R,PRSD,0 GET EST POINTER WORD *ESTP*
  1991. SA1 ESTW
  1992. AX1 36
  1993. BX6 -X0*X1
  1994. SA1 SCNA PLACE EST FWA IN *RSB* CALL
  1995. LX6 18
  1996. BX6 X6+X1
  1997. SA6 A1
  1998. SA1 CMEF
  1999. PL X1,PRS0 IF CONTROL MODULE NOT SPECIFIED
  2000. SA1 CHFL
  2001. NG X1,PRS2 IF CHANNEL PARAMETER SPECIFIED
  2002. SA1 A1+B1
  2003. SX7 B1 INDICATE NOT DRIVER CALL
  2004. SA7 DRCF
  2005. NG X1,PRS2 IF DUMP FILE NAME SPECIFIED
  2006. SA5 CMES CONVERT EST ORDINAL
  2007. RJ CNS CHECK IF NAD ONLY PARAMETER SPECIFIED
  2008. SB7 B0+ SET OCTAL CONVERSION
  2009. RJ DXB
  2010. SX0 RC20 * INCORRECT EST ORDINAL.*
  2011. NZ X4,ELP IF CONVERSION ERROR
  2012. SA6 CME
  2013. SA5 ESTW GET LAST EST ORDINAL + 1
  2014. MX7 -12
  2015. LX5 36
  2016. BX7 -X7*X5
  2017. IX7 X6-X7
  2018. PL X7,ELP IF EST ORDINAL TOO BIG
  2019. SX7 X6-NOPE
  2020. NG X7,ELP IF EST ORDINAL TOO SMALL
  2021. MX7 -24 ISOLATE EST FWA
  2022. AX5 12
  2023. BX2 -X7*X5
  2024. ERRNZ ESTE-2 CODE ASSUMES *ESTE* = 2
  2025. LX6 1
  2026. IX6 X2+X6
  2027. LX6 18
  2028. SA1 PRSE SET EST ENTRY ADDRESS IN *RSB* WORD
  2029. BX6 X6+X1
  2030. SA6 A1
  2031. SA7 PRSA SET LOW CORE READ FLAG FOR *RSB*
  2032. SX5 2RCM
  2033. SYSTEM RSB,R,PRSE,0 GET EST ENTRY
  2034. ERRNZ EQDE CODE ASSUMES *EQDE* = 0
  2035. SA1 A7
  2036. SA2 A1+B1
  2037. ERRNZ EQAE-1 CODE ASSUMES *EQAE* = 1
  2038. MX0 -3 SAVE EQUIPMENT NUMBER
  2039. AX1 9
  2040. BX6 -X0*X1
  2041. SA6 CMQ
  2042. MX6 -11 GET MNEMONIC
  2043. AX1 3
  2044. BX6 -X6*X1
  2045. BX6 X6-X5
  2046. SX0 RC21 * NOT CONTROL MODULE EST ORDINAL.*
  2047. MX7 -5
  2048. NZ X6,ELP IF NOT *CM* DEVICE
  2049. AX2 24 GET CONTROLWARE TYPE
  2050. BX1 -X7*X2
  2051. SA1 X1+TCWT GET CONTROLWARE RECORD NAME
  2052. BX6 X1
  2053. SA6 CRN
  2054. EQ PRSX RETURN
  2055.  
  2056. PRS0 R= X6,HI0105-HI0102
  2057. SA5 CHAN CONVERT CHANNEL NUMBER
  2058. MX7 -6
  2059. BX2 X5
  2060. LX2 6
  2061. BX0 -X7*X2
  2062. SB6 -34B SET MAXIMUM CHANNEL NUMBER
  2063. SX0 X0-1RC
  2064. NZ X0,PRS0.1 IF NOT A CONCURRENT CHANNEL
  2065. BX5 X7*X2
  2066. SX7 40B SET CONCURRENT CHANNEL FLAG
  2067. SB6 -12B SET MAXIMUM CHANNEL NUMBER
  2068. SA7 CCHF
  2069. PRS0.1 SA1 CHFL
  2070. PL X1,PRS6 IF CHANNEL PARAMETER NOT SPECIFIED
  2071. SA1 BMLM+1 SET OPERATOR INITIATED LOAD
  2072. LX6 36
  2073. IX6 X1-X6
  2074. SA6 A1
  2075. SX7 B1 INDICATE NOT DRIVER CALL
  2076. SA7 DRCF
  2077. RJ DXB
  2078. SX0 RC6 * INCORRECT CHANNEL NUMBER.*
  2079. NZ X4,ELP IF CONVERSION ERROR
  2080. SA1 CCHF
  2081. SX5 X6+B6
  2082. IX6 X6+X1
  2083. PL X5,ELP IF NOT HARDWARE CHANNEL
  2084. SA6 CHN
  2085. LX6 12 SET CHANNEL IN *CPM* CALL BLOCK
  2086. SA6 LBCD
  2087. RJ CCS CHECK CHANNEL STATUS
  2088. SX5 X5-LNFL
  2089. NZ X5,PRS6 IF NOT NAD CHANNEL
  2090. SA3 TYFL
  2091. SA1 TYPE NAD TYPE
  2092. MX0 18
  2093. BX1 X0*X1
  2094. BX7 X3
  2095. SA7 TYPN SAVE NAD TYPE FLAG
  2096. SA2 TRCT TABLE OF REMOTE CONTROLWARE TYPES
  2097. PL X3,PRS3 IF NO NAD TYPE SPECIFIED
  2098. PRS1 BX2 X1-X2
  2099. ZR X2,PRS3 IF MATCH ON NAD TYPE
  2100. SA2 A2+B1
  2101. NZ X2,PRS1 IF NOT END OF TABLE
  2102. PRS2 SX0 RC4 * ERROR IN PARAMETERS.*
  2103. EQ ELP PROCESS ERROR
  2104.  
  2105. PRS3 SA5 LTCU VALIDATE LTCU ENABLES
  2106. ZR X5,PRS5 IF NOT REMOTE NAD LOAD
  2107. SB7 B0
  2108. RJ DXB
  2109. NZ X4,PRS2 IF PARAMETER ERROR
  2110. SX7 -1111B VALIDATE LTCU ENABLES
  2111. BX5 X7*X6
  2112. NZ X5,PRS2 IF PARAMETER ERROR
  2113. MX0 4
  2114. SA7 RL SET REMOTE NAD LOAD FLAG
  2115. LX0 1
  2116. BX7 X0*X6
  2117. PRS4 LX0 1 CHANGE OCTAL DIGITS TO BINARY DIGITS
  2118. AX6 2
  2119. BX7 X7+X6
  2120. BX6 -X0*X6
  2121. NG X0,PRS4 IF MORE DIGITS TO PROCESS
  2122. BX7 X0*X7
  2123. SA7 A5
  2124. SA5 RNAD
  2125. ZR X5,PRS2 IF NO REMOTE NAD ADDRESS SPECIFIED
  2126. RJ HXB
  2127. NZ X4,PRS2 IF PARAMETER ERROR
  2128. SX5 X6-0#100
  2129. PL X5,PRS2 IF PARAMETER ERROR
  2130. SA6 A5+
  2131. SA5 ACC
  2132. ZR X5,PRS5 IF NO ACCESS CODE SPECIFIED
  2133. RJ HXB
  2134. NZ X4,PRS2 IF PARAMETER ERROR
  2135. SX5 X6-0#10000
  2136. PL X5,PRS2 IF PARAMETER ERROR
  2137. SA6 A5+
  2138. PRS5 SA1 DUMP
  2139. ZR X1,PNC IF NO CONTROLLER DUMP REQUESTED
  2140. MESSAGE DRM3,0 * NOT CORRECT CONTROLLER TYPE FOR DUMP.*
  2141. EQ PNC PROCESS NAD CONTROLWARE LOAD
  2142.  
  2143.  
  2144. PRSA CON -1 TEMPORARY BUFFER
  2145. PRSB VFD 12/0,12/1,18/CHTP,18/PRSA CHANNEL TABLE ADDRESS
  2146. PRSC VFD 12/0,12/2,18/SVNL,18/PRSA SYSTEM VERSION
  2147. PRSD VFD 12/0,12/1,18/ESTP,18/ESTW EST ADDRESS
  2148. PRSE VFD 12/0,12/1,18/0,18/PRSA CONTROL MODULE EST ENTRY
  2149. CNS SPACE 4,10
  2150. ** CNS - CHECK IF NAD ONLY PARAMETER SPECIFIED.
  2151. *
  2152. * EXIT TO *PRS2* IF NAD ONLY PARAMETER SPECIFIED.
  2153. *
  2154. * USES X - 1.
  2155. * A - 1.
  2156.  
  2157.  
  2158. CNS SUBR ENTRY/EXIT
  2159. SA1 NOLP-1
  2160. CNS1 SA1 A1+B1
  2161. NG X1,PRS2 IF NAD ONLY PARAMETER SPECIFIED
  2162. NZ X1,CNS1 IF NOT END OF ARGUMENT TABLE
  2163. EQ CNSX RETURN
  2164. TLCA SPACE 4,10
  2165. ** TLCA - TABLE OF *LOADBC* ARGUMENTS.
  2166.  
  2167.  
  2168. TLCA BSS 0
  2169. CHFL EQU * CHANNEL FLAG
  2170. C ARG CHAN,CHAN,400B
  2171. D ARG DUMP,DUMP
  2172. F ARG IN,IN
  2173. CMEF EQU * CONTROL MODULE FLAG
  2174. EQ ARG CMES,CMES
  2175. NOLP EQU * FOLLOWING ARE NAD ONLY *LOADBC* PARAMETERS
  2176. AC ARG ACC,ACC
  2177. LT ARG LTCU,LTCU
  2178. ND ARG RNAD,RNAD,400B
  2179. TYFL EQU * NAD TYPE FLAG
  2180. TY ARG TYPE,TYPE
  2181. ARG END OF ARGUMENT TABLE
  2182. TRCT SPACE 4,10
  2183. ** TRCT - TABLE OF REMOTE CONTROLWARE TYPES.
  2184.  
  2185.  
  2186. TRCT BSS 0
  2187. DATA 0L170 CYBER 170
  2188. DATA 0LIBM IBM
  2189. DATA 0LMIN COMMON MINICOMPUTER
  2190. DATA 0L200 CYBER 20X
  2191. CON 0 END OF TABLE
  2192. SPACE 4,10
  2193. END
cdc/nos2.source/opl871/loadbc.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator