Table of Contents

1LC

Table Of Contents

  • [00005] 1LC - LOAD BUFFER CONTROLWARE.
  • [00150] MAIN PROGRAM.
  • [00153] LCW - LOAD BUFFER CONTROLWARE MAIN PROGRAM.
  • [00217] SUBROUTINES.
  • [00219] CCS - CHECK CONTROLLER STATUS.
  • [00250] DCH - DROP CHANNEL ASSIGNMENT.
  • [00269] DCT - DUMP CONTROLLER MEMORY.
  • [00370] D7C - DUMP 7165 CONTROLLER MEMORY.
  • [00427] FNC - ISSUE FUNCTION.
  • [00453] GDA - GET DUMP FET ADDRESS.
  • [00471] GLA - GET LOAD FET ADDRESS.
  • [00487] ICE - INTERLOCK CONTROLWARE LOAD BITS.
  • [00521] ILF - ISSUE LOAD FUNCTION.
  • [00556] LCT - LOAD CONTROLWARE TO CONTROLLER.
  • [00620] RCT - READ CHANNEL TABLE.
  • [00653] SDR - SET DUMP FET RESPONSE.
  • [00682] WBC - WRITE DUMP BUFFER TO CM.
  • [00710] BUFFERS.
  • [00746] PRESET.
  • [00748] PRS - PRESET LOAD CONTROLWARE.
  • [00985] SCI - SET CHANNEL INSTRUCTIONS.
  • [01006] RSC - RESERVE AND STATUS CHANNEL.
  • [01061] SCC - SET CONTROL MODULE CHANNEL.
  • [01144] VFP - VALIDATE FET PARAMETERS.

Source Code

1LC.txt
  1. IDENT 1LC,LCW
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. TITLE 1LC - LOAD BUFFER CONTROLWARE.
  6. *COMMENT 1LC - LOAD BUFFER CONTROLWARE ROUTINE.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. 1LC SPACE 4,10
  9. ***** 1LC - LOAD BUFFER CONTROLWARE.
  10. *
  11. * W. J. SMITH. 79/07/21.
  12. * J. L. LARSON. 83/06/14.
  13. *
  14. * DOWNLOAD DISK CONTROLWARE ON SPECIFIED CHANNEL.
  15. 1LC SPACE 4,10
  16. *** *1LC*, IN CONJUNCTION WITH THE CPU PROGRAM *LOADBC, WILL
  17. * DOWNLOAD CONTROLWARE TO THE REQUESTED CHANNEL AND
  18. * CONTROLLER.
  19. *
  20. * CALL -
  21. *
  22. *T,IR 18/ *1LC*,6/ 0,18/ DADDR,18/ LADDR
  23. * DADDR FET ADDRESS FOR CONTROLWARE DUMP.
  24. * = 0 IF CONTROLWARE NOT TO BE DUMPED BEFORE RELOAD.
  25. * LADDR FET ADDRESS OF CONTROLWARE TO LOAD.
  26. *
  27. * *LOADBC* USES RECALL MACRO WHEN CALLING *1LC*.
  28. 1LC SPACE 4,20
  29. *** *1LC* IS A PP PROGRAM CALLED BY THE CPU PROGRAM *LOADBC*
  30. * TO DOWNLOAD DISK CONTROLWARE ON A SPECIFIED CHANNEL OR TO
  31. * DOWNLOAD CONTROL MODULE CONTROLWARE TO A SPECIFIED CONTROL
  32. * MODULE. THE CONTROLWORD AT FET+8 IN *LOADBC* FL CONTAINS
  33. * EITHER THE CHANNEL NUMBER OR THE CONTROL MODULE EST ORDINAL
  34. * (IN WHICH CASE BIT 2**11 IS SET).
  35. * THE CONTROLWARE IS CHECKED FOR ITS VALIDITY, READ FROM FIELD
  36. * LENGTH OF *LOADBC* IN SEGMENTS AND DOWNLOADED. CONTROLLER
  37. * IS STATUSED FOR ITS FUNCTIONALITY (GENERAL STATUS OF ZERO
  38. * INDICATES CORRECT CHECKSUM) AND A RESPONSE CODE OF ZERO IS
  39. * RETURNED IN FET+0 ON A SUCCESSFUL LOAD. A NON-ZERO RESPONSE
  40. * CODE IS RETURNED FOR UNSUCCESSFUL LOADS.
  41. * IF A NONZERO DUMP CONTROLWARE FET ADDRESS IS ALSO SPECIFIED,
  42. * THE CONTENTS OF THE 7255 ADAPTOR, THE 7155 CONTROLLER (FMD OR
  43. * DEMA) OR THE 7165 CONTROLLER WILL BE DUMPED TO THE BUFFER
  44. * BEFORE THE RELOAD IS ATTEMPTED. A ZERO RESPONSE CODE IS
  45. * RETURNED TO THE DUMP FET+0 ON A SUCCESSFUL DUMP.
  46. * A NON-ZERO RESPONSE CODE IS RETURNED FOR BUFFER ERROR
  47. * CONDITIONS, UNSUCCESSFUL DUMPS, AND FOR DUMP REQUESTS OF
  48. * CONTROLLERS/ADAPTORS NOT LISTED ABOVE. THE NUMBER OF THE
  49. * CHANNEL THAT WAS USED TO LOAD CONTROLWARE IS RETURNED IN
  50. * FET+8, BYTE 0.
  51. 1LC SPACE 4,10
  52. *** DAYFILE MESSAGES.
  53. *
  54. * * FET ADDRESS OUT OF RANGE.* - THE CONTROLWARE DUMP OR
  55. * LOAD FET ADDRESS IS .LE. 1 OR EXTENDS PAST FL.
  56. SPACE 4,10
  57. * MACROS.
  58.  
  59.  
  60. *CALL COMPMAC
  61. *CALL COMSCPS
  62. *CALL COMPCHM
  63. *CALL COMSDSL
  64. *CALL COMSPIM
  65. *CALL COMSSSD
  66. SPACE 4,10
  67. * ASSEMBLY CONSTANTS.
  68.  
  69.  
  70. BUFL EQU 1000 LENGTH OF CONTROLWARE BLOCK
  71. FCDC EQU 701 DUMP 7165 CONTROLLER MEMORY
  72. FCLA EQU 500 LOAD ADDRESS AND LENGTH (7165 DUMP)
  73. FCAL EQU 414 AUTOLOAD FUNCTION CODE
  74. FCLC EQU 71 CONTROL MODULE LOAD FROM PP FUNCTION
  75. FCAR EQU 67 AUTOLOAD WITH NO DROP OF DRIVE RESERVES
  76. FCDM EQU 63 DUMP CONTROLLER MEMORY FUNCTION CODE
  77. FCMP EQU 62 MANIPULATE PROCESSOR FUNCTION CODE
  78. FCST EQU 12 GENERAL STATUS FUNCTION CODE
  79. FCOC EQU 10 OPERATION COMPLETE CODE
  80. FCCN EQU 0 CONNECT FUNCTION CODE
  81. SPACE 4,10
  82. * 7155 CONTROLLER DUMP ASSEMBLY CONSTANTS.
  83.  
  84.  
  85. CTSZ EQU 8192D 7155 CONTROLLER MEMORY SIZE (16 BIT WORDS)
  86. CWDB EQU 32D CONTROLLER WORDS PER MEMORY DUMP BLOCK
  87. PBDB EQU CWDB*2 PP BYTES PER DUMP BLOCK
  88. NCBD EQU CTSZ/CWDB NUMBER OF CONTROLLER BLOCKS TO DUMP
  89. SPACE 4,10
  90. * RESPONSE CODES RETURNED TO LOAD FET+0.
  91.  
  92.  
  93. RC0 EQU 0 CONTROLWARE LOAD COMPLETE
  94. RC1 EQU 1 * USER NOT SYSTEM ORIGIN.*
  95. RC2 EQU 2 * SPECIFIED CHANNEL IS IN USE.*
  96. RC3 EQU 3 RESERVED BY CPU ROUTINE *LOADBC*
  97. RC4 EQU 4 RESERVED BY CPU ROUTINE *LOADBC*
  98. RC5 EQU 5 RESERVED BY CPU ROUTINE *LOADBC*
  99. RC6 EQU 6 RESERVED BY CPU ROUTINE *LOADBC*
  100. RC7 EQU 7 RESERVED BY CPU ROUTINE *LOADBC*
  101. RC10 EQU 10 RESERVED BY CPU ROUTINE *LOADBC*
  102. RC11 EQU 11 * SYSTEM NOT IN ENGR MODE.*
  103. RC12 EQU 12 * BUFFER ARGUMENT ERROR.*
  104. RC13 EQU 13 CDC RESERVED
  105. RC14 EQU 14 * CONTROLWARE LOAD ALREADY IN PROGRESS.*
  106. RC15 EQU 15 * NO 77 TABLE IN CONTROLWARE RECORD.*
  107. RC16 EQU 16 * NO 52 TABLE IN CONTROLWARE RECORD.*
  108. RC17 EQU 17 * LENGTH IN 52 TABLE .NE. FET.*
  109. RC20 EQU 20 RESERVED BY CPU ROUTINE *LOADBC*
  110. RC21 EQU 21 * NOT CONTROL MODULE EST ORDINAL.*
  111. RC22 EQU 22 CDC RESERVED
  112. RC23 EQU 23 CDC RESERVED
  113. RC24 EQU 24 CDC RESERVED
  114. RC25 EQU 25 CDC RESERVED
  115. RC26 EQU 26 CDC RESERVED
  116. RC27 EQU 27 CDC RESERVED
  117. RC30 EQU 30 * CONTROLLER DID NOT TAKE ALL CONTROLWARE*
  118. RC31 EQU 31 * GENERAL STATUS = NNNN.*
  119. RC32 EQU 32 * FUNCTION TIMED OUT=NNNN.*
  120. RC33 EQU 33 * NO GENERAL STATUS RECEIVED.*
  121. RC34 EQU 34 * CHXX, CONTROLLER RESERVED.*
  122. SPACE 4,10
  123. * DUMP CONTROLWARE RESPONSE CODES RETURNED TO DUMP FET+0.
  124.  
  125.  
  126. DR0 EQU 0 * CONTROLLER DUMP COMPLETE.*
  127. DR1 EQU 1 * DUMP BUFFER ARGUMENT ERROR.*
  128. DR2 EQU 2 * INSUFFICIENT DUMP BUFFER SPACE.*
  129. DR3 EQU 3 * NOT CORRECT CONTROLLER TYPE FOR DUMP.*
  130. DR4 EQU 4 * CONTROLLER DUMP UNSUCCESSFUL.*
  131. SPACE 4,10
  132. * DIRECT CORE ASSIGNMENTS.
  133.  
  134.  
  135. BC EQU 20 BUFFER CONTROLLER CHANNEL NUMBER
  136. ST EQU 21 CONTROLLER GENERAL STATUS
  137. WC EQU 22 CONTROLWARE CM WORD COUNT
  138. FN EQU 23 LAST FUNCTION ISSUED TO CONTROLLER
  139. RC EQU 26 RESPONSE CODE
  140. DR EQU 27 DUMP FET RESPONSE CODE
  141. DP EQU 30 - 34 DATA POINTERS (5 LOCATIONS)
  142. CT EQU 35 CONTROLWARE TYPE
  143. CE EQU 36 - 37 CHANNEL CONTROLWARE ENTRY
  144. DB EQU 40 - 44 DUMP FET BUFFER POINTERS
  145. CS EQU 47 CHANNEL SPECIFIED ON CALL STATUS
  146. CN EQU 60 - 64 CM WORD BUFFER
  147. CO EQU 65 CONTROL MODULE EST ORDINAL
  148. EQ EQU 66 CONTROL MODULE EQUIPMENT NUMBER
  149. CF EQU 67 CHANNEL RESERVED BY *1LC* FLAG
  150. TITLE MAIN PROGRAM.
  151. ORG PPFW
  152. LCW SPACE 4,10
  153. ** LCW - LOAD BUFFER CONTROLWARE MAIN PROGRAM.
  154.  
  155.  
  156. LCW BSS 0 ENTRY
  157. RJM PRS PRESET LOAD CONTROLWARE
  158. STD RC
  159. LMK RC14
  160. ZJP LCW5 IF RELOAD ALREADY IN PROGRESS
  161. LMK RC14
  162. NJN LCW2.1 IF OTHER ERROR
  163. LDD CO
  164. NJN LCW0 IF CONTROL MODULE SPECIFIED
  165. RJM DCT DUMP CONTROLLER
  166. LCW0 RJM LCT LOAD CONTROLWARE
  167. NJN LCW2 IF ERROR RESPONSE
  168. LDD CS
  169. ZJN LCW1 IF DRIVER CALL
  170. LDN FCOC
  171. RJM FNC
  172. NJN LCW2 IF FUNCTION TIMEOUT
  173. LCW1 LDD ST CHECK STATUS
  174. ERRNZ RC0 CODE DEPENDS ON VALUE
  175. ZJN LCW2 IF NO ERROR
  176. LDN RC31 * GENERAL STATUS = NNNN.*
  177. LCW2 STD RC
  178. LCW2.1 LDD CS
  179. ZJN LCW3 IF DRIVER CALL
  180. RJM DCH DROP CHANNEL ASSIGNMENT
  181. UJN LCW4 CLEAR CHANNEL ENTRY INTERLOCK
  182.  
  183. LCW3 AOM CHTI+1*5 CLEAR SYSTEM REQUEST FLAG
  184. AOM LCWA INCREMENT CONTROLLER LOADED COUNT
  185. LCW4 LDM CHTI+4
  186. LCWA ADN 0
  187. * ADN 1 (DRIVER CALL)
  188. STM CHTI+1*5+4
  189. RJM ICE CLEAR CHANNEL ENTRY INTERLOCK
  190. LDD CM+1
  191. NJN LCW4 IF VERIFY OF LOAD COUNT FAILED
  192. LCW5 RJM SDR SET DUMP FET RESPONSE
  193. RJM GLA FET LOAD FET ADDRESS
  194. CRD CM READ LOAD FET+0
  195. LDN ZERL
  196. CRD CN
  197. LDD RC GET REPLY CODE
  198. SHN 1
  199. LMN 1 SET COMPLETE BIT
  200. STD CM+4
  201. LMN RC32*2+1
  202. NJN LCW6 IF NOT FUNCTION TIME OUT ERROR
  203. LDD FN
  204. UJN LCW7 RETURN LAST FUNCTION TO FET
  205.  
  206. LCW6 LDD ST RETURN GENERAL STATUS TO FET
  207. LCW7 STD CN+4
  208. LDD BC RETURN CHANNEL NUMBER
  209. STD CN
  210. RJM GLA GET LOAD FET ADDRESS
  211. ADN 8D
  212. CWD CN WRITE FET+8 RESPONSE DATA
  213. SBN 8D
  214. CWD CM WRITE FET+0 COMPLETION STATUS
  215. MONITOR DPPM DROP PP
  216. LJM PPR EXIT TO PP RESIDENT
  217. TITLE SUBROUTINES.
  218. CCS SPACE 4,10
  219. ** CCS - CHECK CONTROLLER STATUS.
  220. *
  221. * EXIT (A) = 0 IF STATUS RECEIVED.
  222. * (A) = *RC22* IF STATUS FUNCTION TIMEOUT.
  223. * (A) = *RC23* IF STATUS NOT RECEIVED.
  224. * (ST) = STATUS.
  225. *
  226. * CALLS FNC.
  227.  
  228.  
  229. CSS3 EJM CSS1,CH IF DATA NOT PRESENT
  230. LDN 1
  231. IAM ST,CH
  232. DCN CH
  233. NJN CSS2 IF NO STATUS RECEIVED
  234.  
  235. CCS SUBR ENTRY/EXIT
  236. LDN FCST CHECK STATUS
  237. RJM FNC
  238. NJN CCSX IF FUNCTION TIMEOUT
  239. ACN CH
  240. LDD HN
  241. STD T0
  242. CSS1 ADN 1
  243. NJN CSS3 IF NOT TIMEOUT
  244. SOD T0
  245. NJN CSS3 IF NOT TIMEOUT
  246. CSS2 DCN CH
  247. LDN RC33 * NO GENERAL STATUS RECEIVED.*
  248. UJN CCSX RETURN
  249. DCH SPACE 4,10
  250. ** DCH - DROP CHANNEL ASSIGNMENT.
  251. *
  252. * ENTRY (BC) = CHANNEL NUMBER.
  253. * (CF) = 0 IF CHANNEL NOT RESERVED BY *1LC*.
  254. *
  255. * EXIT (CF) = 0.
  256. *
  257. * MACROS DCHAN.
  258.  
  259.  
  260. DCH SUBR ENTRY/EXIT
  261. LDD CF
  262. ZJN DCHX IF CHANNEL NOT RESERVED BY *1LC*
  263. LDD BC
  264. DCHAN
  265. * LDN 0
  266. STD CF
  267. UJN DCHX RETURN
  268. DCT SPACE 4,15
  269. ** DCT - DUMP CONTROLLER MEMORY.
  270. *
  271. * ENTRY (CT) = CHANNEL CONTROLWARE ENTRY.
  272. * (DB - DB+4) = DUMP FET *IN* POINTER (SET TO *FIRST*).
  273. * (DR) = *DR4* (CONTROLLER DUMP UNSUCCESSFUL) STATUS.
  274. *
  275. * EXIT (DR) = DUMP FET RESPONSE CODE.
  276. *
  277. * USES T1, T2, T3, T4, CM - CM+4.
  278. *
  279. * CALLS D7C, FNC, GDA, SDR, WBC.
  280.  
  281.  
  282. DCT8 RJM D7C DUMP 7165 CONTROLLER MEMORY
  283. NJN DCTX IF DUMP NOT SUCCESSFUL
  284. DCT9 RJM GDA GET DUMP FET ADDRESS
  285. ADN 2 UPDATE DUMP FET *IN* POINTER
  286. CWD DB
  287. LDN DR0
  288. DCT10 STD DR SAVE DUMP FET RESPONSE CODE
  289.  
  290. DCT SUBR ENTRY/EXIT
  291. RJM GDA GET DUMP FET ADDRESS
  292. ZJN DCTX IF NO DUMP REQUESTED
  293. LDN ZERL CLEAR MANIPULATE PROCESSOR PARAMETERS
  294. CRD CM
  295. LDN 2 SET TO DUMP CONTROLLER MEMORY
  296. STD CM
  297. STD T4 PRESET 8K CONTROLLER TYPE INDEX
  298. LDD CT CHECK CONTROLWARE TYPE
  299. LPN 37
  300. LMN FMCW
  301. ZJN DCT1 IF MA721 CONTROLWARE FOR 7155 FMD
  302. LMN PHCW&FMCW
  303. ZJN DCT1 IF MA722 CONTROLWARE FOR 7155 DEMA
  304. LMN CCCW&PHCW
  305. ZJN DCT8 IF 7165 CONTROLLER
  306. LMN IDCW&CCCW
  307. ZJN DCT0 IF 7255 ADAPTOR
  308. LDN DR3 * NOT CORRECT CONTROLLER TYPE FOR DUMP.*
  309. UJN DCT10 SAVE RESPONSE CODE
  310.  
  311. DCT0 LDN 40 SET 7255 ADAPTOR MEMORY ADDRESS
  312. STD CM+1
  313. SHN 1 SET MEMORY ADDRESS INCREMENT
  314. STM DCTB
  315. LDN 1 SET 7255 CONTROLLER TYPE INDEX
  316. STD T4
  317. DCT1 LDK NFBT SET NUMBER OF FULL BUFFERS
  318. STD T2
  319. LDK CWFB SET CM WORDS IN FULL BUFFER
  320. STD T3
  321. DCT2 LDK MXDB SET NUMBER OF BLOCKS IN FULL BUFFER
  322. STD T1
  323. DCT3 LDC DBUF RESET PP DUMP BUFFER ADDRESS
  324. STM DCTA
  325. DCT4 LDN FCMP INITIATE MANIPULATE PROCESSOR FUNCTION
  326. RJM FNC
  327. DCT5 NJP DCTX IF FUNCTION TIMEOUT
  328. ACN CH
  329. LDN 5 TRANSFER PARAMETERS
  330. OAM CM,CH
  331. FJM *,CH IF CHANNEL FULL
  332. DCN CH
  333. NJN DCT5 IF NOT ALL PARAMETERS TAKEN
  334. LDN FCDM DUMP CONTROLLER MEMORY
  335. RJM FNC
  336. NJN DCT5 IF FUNCTION TIMEOUT
  337. ACN CH
  338. LDD HN
  339. ERRNZ PBDB-100B CODE DEPENDS ON VALUE
  340. IAM DBUF,CH READ CONTROLLER MEMORY DUMP BLOCK
  341. DCTA EQU *-1
  342. NJN DCT5 IF NOT ALL DATA TRANSFERRED
  343. LDD HN ADVANCE PP DUMP BUFFER ADDRESS
  344. RAM DCTA
  345. LDC CWDB ADVANCE CONTROLLER MEMORY ADDRESS
  346. DCTB EQU *-1
  347. * LDC 100 (ADVANCE 7255 ADAPTOR ADDRESS)
  348. RAD CM+2
  349. SHN 21-10
  350. PJN DCT6 IF NOT 8 BIT OVERFLOW
  351. STD CM+2 CLEAR LOWER 8 BITS OF CONTROLLER ADDRESS
  352. AOD CM+1 INCREMENT UPPER 8 BITS OF ADDRESS
  353. DCT6 SOD T1
  354. NJP DCT4 IF MORE BLOCKS TO TRANSFER TO BUFFER
  355. RJM WBC WRITE BUFFER TO CM
  356. SOD T2
  357. MJN DCT7 IF DUMP COMPLETE
  358. NJP DCT2 IF MORE FULL BUFFERS TO DUMP
  359. LDK RPBB SET REMAINING PARTIAL BUFFER BLOCKS
  360. ZJN DCT7 IF NO PARTIAL BUFFER
  361. STD T1
  362. LDK CWPB SET CM WORDS IN LAST PARTIAL BUFFER
  363. STD T3
  364. LDN ZERL CLEAR LAST CM WORD
  365. CRM DBUF+RPBB*PBDB,ON
  366. LJM DCT3 TRANSFER LAST PARTIAL BUFFER
  367.  
  368. DCT7 LJM DCT9 UPDATE FET
  369. D7C SPACE 4,10
  370. ** D7C - DUMP 7165 CONTROLLER MEMORY.
  371. *
  372. * ENTRY (CM+1) = 0.
  373. *
  374. * EXIT (A) = 0 IF DUMP SUCCESSFUL.
  375. *
  376. * USES CM+1, T1, T2, T3, T4.
  377. *
  378. * CALLS FNC, WBC.
  379.  
  380.  
  381. D7C SUBR ENTRY/EXIT
  382. LDN 4 SET 7165 CONTROLLER TYPE INDEX
  383. STD T4
  384. LDN NBBD SET NUMBER OF CONTROLLER BLOCKS TO DUMP
  385. STD T2
  386. LDK CMWF SET NUMBER OF CM WORDS IN FULL BUFFER
  387. STD T3
  388. LDK CTDB SET NUMBER OF CONTROLLER WORDS IN BLOCK
  389. STD T1
  390. D7C1 LDC FCLA LOAD ADDRESS AND LENGTH
  391. D7CA EQU *-1
  392. RJM FNC
  393. D7C2 NJN D7CX IF FUNCTION TIMEOUT
  394. ACN CH
  395. LDD CM+1 SEND BOTTOM 12 BITS OF ADDRESS
  396. OAN CH
  397. LDD T1 SEND LENGTH
  398. OAN CH
  399. FJM *,CH
  400. DCN CH
  401. LDC FCDC ISSUE DIAGNOSTIC READ
  402. RJM FNC
  403. NJN D7CX IF FUNCTION TIMEOUT
  404. ACN CH
  405. LDD T1
  406. SHN 1
  407. IAM DBUF,CH READ CONTROLLER MEMORY BLOCK
  408. NJN D7C2 IF NOT ALL DATA TRANSFERRED
  409. RJM WBC WRITE BUFFER TO CM
  410. SOD T2
  411. PJN D7C3 IF DUMP NOT COMPLETE
  412. LDN 0
  413. LJM D7CX RETURN
  414.  
  415. D7C3 LDC CTDB UPDATE CONTROLLER MEMORY ADDRESS
  416. RAD CM+1
  417. SHN -14
  418. RAM D7CA
  419. LDD T2
  420. NJN D7C4 IF MORE FULL BLOCKS TO DUMP
  421. LDK CMWP SET NUMBER OF CM WORDS IN PARTIAL BLOCK
  422. STD T3
  423. LDK CTPB SET NUMBER OF PP BYTES IN PARTIAL BLOCK
  424. STD T1
  425. D7C4 LJM D7C1 DUMP PARTIAL BLOCK
  426. FNC SPACE 4,10
  427. ** FNC - ISSUE FUNCTION.
  428. *
  429. * ENTRY (A) = FUNCTION CODE.
  430. *
  431. * EXIT (A) = 0 IF FUNCTION ACCEPTED.
  432. * (A) = *RC22* IF FUNCTION TIMEOUT.
  433.  
  434.  
  435. FNC3 LDN 0
  436.  
  437. FNC SUBR ENTRY/EXIT
  438. STD FN SAVE FUNCTION ISSUED
  439. IJM FNC1,CH IF CONTROLLER READY
  440. DCN CH
  441. FNC1 FAN CH
  442. LDD HN FUNCTION TIMEOUT OUTER DELAY
  443. STD T0
  444. FNC2 ADD ON
  445. IJM FNC3,CH IF FUNCTION ACCEPTED
  446. NJN FNC2 IF NOT FUNCTION TIMEOUT
  447. SOD T0
  448. NJN FNC2 IF NOT FUNCTION TIMEOUT
  449. DCN CH
  450. LDN RC32 * FUNCTION TIMED OUT=NNNN.*
  451. UJN FNCX EXIT
  452. GDA SPACE 4,10
  453. ** GDA - GET DUMP FET ADDRESS.
  454. *
  455. * ENTRY (IR+2 - IR+3) = DUMP FET ADDRESS.
  456. *
  457. * EXIT (A) = ABSOLUTE DUMP FET ADDRESS.
  458. * (A) = 0 IF NO DUMP REQUESTED.
  459.  
  460.  
  461. GDA SUBR ENTRY/EXIT
  462. LDD IR+3 GET DUMP FET ADDRESS
  463. SCN 77
  464. SHN 6
  465. ADD IR+2
  466. ZJN GDAX IF NO DUMP REQUESTED
  467. ADD RA
  468. SHN 6
  469. UJN GDAX RETURN
  470. GLA SPACE 4,10
  471. ** GLA - GET LOAD FET ADDRESS.
  472. *
  473. * ENTRY (IR+3 - IR+4) = LOAD FET ADDRESS.
  474. *
  475. * EXIT (A) = ABSOLUTE LOAD FET ADDRESS.
  476.  
  477.  
  478. GLA SUBR ENTRY/EXIT
  479. LDD IR+3 GET LOAD FET ADDRESS
  480. LPN 37
  481. SHN 6
  482. ADD RA
  483. SHN 6
  484. ADD IR+4
  485. UJN GLAX RETURN
  486. ICE SPACE 4,10
  487. ** ICE - INTERLOCK CONTROLWARE LOAD BITS.
  488. *
  489. * ENTRY (CE - CE+1) = CONTROLWARE LOAD BIT ADDRESS.
  490. * (CHTI) = CONTROLWARE INTERLOCK *UTEM* PARAMETERS.
  491. *
  492. * EXIT (CM+1) = *UTEM* RETURN STATUS.
  493. *
  494. * USES CM+1, CM+3, CM+4, T1.
  495. *
  496. * MACROS MONITOR.
  497.  
  498.  
  499. ICE SUBR ENTRY/EXIT
  500. LDN 2
  501. STD CM+1 SET NUMBER OF *UTEM* PARAMETER WORDS
  502. STD T1
  503. LDD CE SET CONROLWARE LOAD BIT ADDRESS
  504. STD CM+3
  505. LDD CE+1
  506. STD CM+4
  507. LDD MA
  508. CWM CHTI,T1 SET/CLEAR CONTROLWARE LOAD INTERLOCK
  509. MONITOR UTEM
  510. LDD MA GET NEW VALUES
  511. CRM CHTI,T1
  512. UJN ICEX RETURN
  513.  
  514.  
  515. CHTI VFD 1/1,5/0,6/2,6/34D,42/0 VERIFY INTERLOCKS
  516. * VFD 1/1,5/0,6/4,6/30D,42/0 VERIFY RELOAD COUNT/DRIVER BIT
  517.  
  518. VFD 1/0,5/0,6/1,6/34D,42/1 SET LOAD IN PROGRESS
  519. * VFD 1/0,5/0,6/5,6/30D,42/0 CLEAR INTERLOCK/SET LOAD COUNT
  520. ILF SPACE 4,10
  521. ** ILF - ISSUE LOAD FUNCTION.
  522. *
  523. * ENTRY (CO) = 0 IF NOT CONTROL MODULE RELOAD.
  524. * (CS) = 0 IF DRIVER CALL.
  525. * (EQ) = CONTROL MODULE EQUIPMENT NUMBER.
  526. *
  527. * CALLS CCS, FNC.
  528.  
  529.  
  530. ILF2 LDD CS
  531. ILFA ZJN ILF3 IF DRIVER CALL
  532. * PSN (*FCAR* FUNCTION NOT SUPPORTED)
  533. LDC FCAL&FCAR
  534. ILF3 LMN FCAR
  535. ILF4 RJM FNC ISSUE FUNCTION
  536.  
  537. ILF SUBR ENTRY/EXIT
  538. LDD CO
  539. ZJN ILF2 IF NOT CONTROL MODULE RELOAD
  540. ILF1 LDN FCCN
  541. RJM FNC ISSUE CONNECT FUNCTION
  542. NJN ILFX IF FUNCTION TIMEOUT
  543. ACN CH
  544. LDD EQ OUTPUT CONTROL MODULE EQUIPMENT NUMBER
  545. SHN 3
  546. OAN CH
  547. FJM *,CH IF CHANNEL FULL
  548. DCN CH
  549. RJM CCS STATUS CONTROLLER
  550. NJN ILFX IF ERROR
  551. LDD ST
  552. NJN ILF1 IF GENERAL STATUS NOT ZERO
  553. LDN FCLC
  554. UJN ILF4 ISSUE CONTROLWARE LOAD FROM PP FUNCTION
  555. LCT SPACE 4,15
  556. ** LCT - LOAD CONTROLWARE TO CONTROLLER.
  557. *
  558. * ENTRY (CS) = CHANNEL SPECIFIED ON CALL STATUS.
  559. * (DP+3 - DP+4) = FWA CONTROLWARE RECORD (77 TABLE).
  560. * (EQ) = CONTROL MODULE EQUIPMENT NUMBER IF SPECIFIED.
  561. * (WC) = CM WORD COUNT OF CONTROLWARE RECORD.
  562. *
  563. * EXIT (A) = 0 IF LOAD COMPLETE.
  564. * (A) = *RC30* IF CONTROLLER DID NOT TAKE ALL
  565. * CONTROLWARE.
  566. * (A) = *RC22* IF FUNCTION TIMEOUT.
  567. * (A) = *RC23* IF STATUS NOT RECEIVED.
  568. *
  569. * USES T1, WC, DP+3 - DP+4.
  570. *
  571. * CALLS CCS, ILF.
  572.  
  573.  
  574. LCT4 FJM *,CH IF LAST WORD STILL ON CHANNEL
  575. DCN CH
  576. LCT5 DELAY
  577. RJM CCS CHECK STATUS
  578. NJN LCTX IF ERROR
  579. LDD ST
  580. SBN 2
  581. ZJN LCT5 IF CONTROLLER BUSY
  582. LDN 0
  583.  
  584. LCT SUBR ENTRY/EXIT
  585. RJM ILF ISSUE LOAD FUNCTION
  586. NJN LCTX IF FUNCTION TIMEOUT
  587. LDD RA
  588. SHN 6
  589. RAD DP+4
  590. SHN -14
  591. RAD DP+3
  592. LDD TH
  593. ERRNZ BUFL-1000 CODE DEPENDS ON VALUE
  594. STD T1
  595. ACN CH ACTIVATE CHANNEL FOR OUTPUT
  596. LCT2 LDD WC SET BLOCK WORD COUNT
  597. ZJN LCT4 IF END OF CONTROLWARE
  598. SBD T1
  599. PJN LCT3 IF DATA OVERFLOWS BUFFER
  600. LDD WC
  601. STD T1
  602. LDN 0
  603. LCT3 STD WC
  604. LDD DP+3 SET CONTROLWARE DATA ADDRESS
  605. SHN 14
  606. ADD DP+4
  607. CRM BUF,T1 READ BLOCK OF CONTROLWARE
  608. STD DP+4 SAVE NEXT CM ADDRESS FOR CONTROLWARE READ
  609. SHN -14
  610. STD DP+3
  611. LDD T1 OUTPUT BLOCK TO CONTROLLER
  612. SHN 2
  613. ADD T1
  614. OAM BUF,CH
  615. FJM *,CH IF CHANNEL FULL
  616. ZJN LCT2 IF ALL DATA TAKEN
  617. LDN RC30 * CONTROLLER DID NOT TAKE ALL CONTROLWARE*
  618. LJM LCTX RETURN
  619. RCT SPACE 4,10
  620. ** RCT - READ CHANNEL TABLE.
  621. *
  622. * ENTRY (A) = CHANNEL NUMBER.
  623. *
  624. * EXIT (A) = ADDRESS OF CHANNEL RESERVATION TABLE WORD.
  625. * (BC) = CHANNEL NUMBER.
  626. * (T6) = BYTE ADDRESS OF CHANNEL RESERVATION STATUS.
  627. * (CM - CM+4) = CHANNEL RESERVATION TABLE WORD.
  628. *
  629. * USES T0.
  630.  
  631.  
  632. RCT SUBR ENTRY/EXIT
  633. LPN 77
  634. STD BC
  635. STD T6
  636. LCN 0
  637. STD T0
  638. LDK CHTP GET CHANNEL TABLE ADDRESS
  639. CRD CM
  640. RCT1 AOD T0
  641. LCN 5
  642. RAD T6
  643. PJN RCT1 IF CHANNEL WORD NOT REACHED
  644. ADN CM+5
  645. STD T6
  646. LDD CM+2 READ CHANNEL RESERVATION TABLE
  647. SHN 14
  648. LMD CM+3
  649. ADD T0
  650. CRD CM
  651. UJN RCTX RETURN
  652. SDR SPACE 4,10
  653. ** SDR - SET DUMP FET RESPONSE.
  654. *
  655. * ENTRY (DR) = DUMP FET RESPONSE CODE.
  656. * (IR+2 - IR+3) = DUMP FET ADDRESS.
  657. *
  658. * EXIT (IR+2 - IR+3) = DUMP FET ADDRESS CLEARED.
  659. *
  660. * USES CM - CM+4.
  661. *
  662. * CALLS GDA.
  663.  
  664.  
  665. SDR SUBR ENTRY/EXIT
  666. RJM GDA GET DUMP FET ADDRESS
  667. ZJN SDRX IF NO DUMP REQUESTED
  668. CRD CM
  669. LDD DR RETURN RESPONSE CODE
  670. SHN 1
  671. LMN 1 SET COMPLETE BIT
  672. STD CM+4
  673. RJM GDA
  674. CWD CM
  675. LDN 0 CLEAR DUMP FET ADDRESS
  676. STD IR+2
  677. LDD IR+3
  678. LPN 77
  679. STD IR+3
  680. UJN SDRX RETURN
  681. WBC SPACE 4,10
  682. ** WBC - WRITE DUMP BUFFER TO CM.
  683. *
  684. * ENTRY (T3) = NUMBER OF CM WORDS IN BUFFER BLOCK.
  685. * (T4) = CONTROLLER TYPE INDEX IF FIRST BLOCK.
  686. * = 0 IF FIRST BLOCK ALREADY WRITTEN.
  687. * (DB+3 - DB+4) = DUMP FET *IN* POINTER.
  688. *
  689. * EXIT BUFFER BLOCK WRITTEN TO CM.
  690. * DUMP FET *IN* POINTER UPDATED.
  691.  
  692.  
  693. WBC SUBR ENTRY/EXIT
  694. LDD T4 SET CONTROLLER TYPE INDEX IN BYTE 0
  695. ZJN WBC1 IF NOT FIRST BLOCK
  696. STM BUF
  697. LDN 0 SET FIRST BLOCK WRITTEN
  698. STD T4
  699. WBC1 LDD DB+3 WRITE BUFFER TO CM
  700. SHN 6
  701. ADD RA
  702. SHN 6
  703. ADD DB+4
  704. CWM DBUF,T3
  705. LDD T3 ADVANCE DUMP FET *IN* POINTER
  706. RAD DB+4
  707. SHN -14
  708. RAD DB+3
  709. UJN WBCX RETURN
  710. TITLE BUFFERS.
  711. USE BUFFERS
  712. USE *
  713.  
  714.  
  715. BUF EQU * CONTROLWARE LOAD BUFFER
  716.  
  717. ERRNG EPFW-BUF-BUFL PPU MEMORY OVERFLOW
  718.  
  719.  
  720. DBUF EQU * CONTROLLER DUMP BUFFER
  721. DBUFL EQU EPFW-DBUF-5 MAXIMUM BUFFER SIZE
  722.  
  723. * 7155 DUMP BUFFER ASSEMBLY CONSTANTS.
  724.  
  725. MXDB EQU DBUFL/PBDB/5*5 MAXIMUM 7155 DUMP BLOCKS IN PP BUFFER
  726. NFBT EQU NCBD/MXDB NUMBER OF FULL BUFFERS TO TRANSFER
  727. RPBB EQU NCBD-NFBT*MXDB REMAINING PARTIAL BUFFER BLOCKS
  728. CWFB EQU MXDB*PBDB/5 CM WORDS IN FULL BUFFER
  729. PBPB EQU RPBB*PBDB+4 PP BYTES IN LAST PARTIAL BUFFER (ROUNDED)
  730. CWPB EQU PBPB/5 CM WORDS IN LAST PARTIAL BUFFER
  731.  
  732. * 7165 DUMP BUFFER ASSEMBLY CONSTANTS.
  733.  
  734. PPDB EQU DBUFL/12*12 PP BYTES PER FULL DUMP BLOCK
  735. CCSZ EQU 40000 7165 CONTROLLER MEMORY SIZE (16 BIT WORDS)
  736. CTDB EQU PPDB/2 CONTROLLER WORDS PER FULL DUMP BLOCK
  737. NBBD EQU CCSZ/CTDB NUMBER OF CONTROLLER BLOCKS TO DUMP
  738. CTPB EQU CCSZ-NBBD*CTDB CONTROLLER WORDS IN PARTIAL DUMP BLOCK
  739. CMWF EQU PPDB/5 NUMBER OF CM WORDS PER FULL BLOCK
  740. CPPB EQU CTPB*2+4 PP BYTES PER PARTIAL BLOCK (ROUNDED)
  741. CMWP EQU CPPB/5 NUMBER OF CM WORDS PER PARTIAL BLOCK
  742. DBSZ EQU CMWF*NBBD+CMWP CM DUMP BUFFER SIZE
  743.  
  744.  
  745. OVERFLOW
  746. TITLE PRESET.
  747. PRS SPACE 4,20
  748. ** PRS - PRESET LOAD CONTROLWARE.
  749. *
  750. * ENTRY (IR+2 - IR+3) = DUMP FET ADDRESS.
  751. * (IR+3 - IR+4) = LOAD FET ADDRESS.
  752. * (LOAD FET+8) BIT 2**11 = 1 IF BOTTOM 9 BITS =
  753. * CONTROL MODULE EST ORDINAL.
  754. * BIT 2**10 = 0 IF DRIVER CALL.
  755. *
  756. * EXIT (A) = ERROR RESPONSE.
  757. * (BC) = CHANNEL NUMBER.
  758. * (CS) = 0 IF DRIVER CALL.
  759. * (CT) = CHANNEL CONTROLWARE TYPE.
  760. * (CE - CE+1) = CONTROLWARE LOAD BITS POINTER.
  761. * (CHTI) SET FOR CLEAR OF CONTROLWARE TABLE INTERLOCK.
  762. * (DB - DB+4) = *IN* POINTER FOR DUMP FET.
  763. * (DP+3 - DP+4) = FWA OF CONTROLWARE RECORD (77 TABLE).
  764. * (DR) = INITIAL DUMP FET RESPONSE.
  765. * (WC) = CM WORD COUNT OF CONTROLWARE RECORD.
  766. * IF A CHANNEL WAS SPECIFIED ON THE CALL -
  767. * (CF) = 0.
  768. * (CO) = 0.
  769. * IF A CONTROL MODULE WAS SPECIFIED ON THE CALL -
  770. * (CO) = CONTROL MODULE EST ORDINAL.
  771. * (CF) = 1 (CHANNEL RESERVED).
  772. * (EQ) = CONTROL MODULE EQUIPMENT NUMBER.
  773. *
  774. * USES T6, T7, CM - CM+4, CN - CN+4, DB-2 - DB+7, T0 - T4.
  775. *
  776. * CALLS DCH, GDA, GLA, ICE, RCT, RSC, SCC, SDR, VFP.
  777.  
  778.  
  779. PRS18 LDN RC1 * USER NOT SYSTEM ORIGIN.*
  780.  
  781. PRS SUBR ENTRY/EXIT
  782. LDN DR4 PRESET CONTROLLER DUMP UNSUCCESSFUL STATUS
  783. STD DR
  784. LDN 0 INITIALIZE NO CONTROL MODULE EST ORDINAL
  785. STD CO
  786. STD CF INITIALIZE NO CHANNEL RESERVED
  787. LDD IR+3 VALIDATE CONTROLWARE LOAD FET
  788. LPN 77
  789. SHN 14
  790. ADD IR+4
  791. RJM VFP
  792. NJN PRS1 IF INVALID BUFFER PARAMETERS
  793. LDD CP
  794. ADK JOTW
  795. CRD CM
  796. LDD CM+3
  797. LMK SYOT
  798. NJN PRS18 IF NOT SYSTEM ORIGIN
  799. LDD MA GET LOAD FET PARAMETERS
  800. ADN 2
  801. CRD DP *IN* AND *OUT* POINTERS
  802. ADN 1
  803. CRD CM GET FET LENGTH
  804. LDD CM
  805. LPN 77
  806. SBN 4
  807. PJN PRS2 IF LOAD FET LONG ENOUGH
  808. PRS1 LDN RC12 * BUFFER ARGUMENT ERROR.*
  809. UJN PRSX RETURN
  810.  
  811. PRS2 LDD IR+3 VALIDATE CONTROLWARE DUMP FET
  812. SCN 77
  813. SHN 6
  814. LMD IR+2
  815. SHN 6
  816. ZJN PRS4 IF NO CONTROLLER DUMP REQUESTED
  817. RJM VFP
  818. NJN PRS3 IF INVALID BUFFER PARAMETERS
  819. LDD MA GET DUMP FET PARAMETERS
  820. ADN 3
  821. CRD DB+2 *FIRST* AND *LIMIT* POINTERS
  822. LDN ZERL
  823. CRD DB-2
  824. RJM GDA GET DUMP FET ADDRESS
  825. ADN 2 REWIND FET (SET *IN* = *OUT* = *FIRST*)
  826. CWD DB
  827. ADN 1
  828. CWD DB
  829. LDD DB+2+3 VERIFY DUMP BUFFER SIZE
  830. SBD DB+2+1
  831. SHN 14
  832. ADD DB+2+4
  833. SBD DB+2+2
  834. SBK DBSZ+1 REQUIRED CM DUMP BUFFER SIZE
  835. PJN PRS4 IF DUMP BUFFER LARGE ENOUGH
  836. LDN DR2 * INSUFFICIENT DUMP BUFFER SPACE.*
  837. PRS3 STD DR
  838. RJM SDR SET DUMP FET RESPONSE
  839. PRS4 LDD DP+3 LOAD FET *OUT* POINTER
  840. SHN 6
  841. ADD RA
  842. SHN 6
  843. ADD DP+4
  844. CRD CM
  845. LDD CM
  846. LMC 7700
  847. ZJN PRS5 IF 77 TABLE PRESENT
  848. LDN RC15 * NO 77 TABLE IN CONTROLWARE RECORD.*
  849. UJN PRS6 RETURN
  850.  
  851. PRS5 LDD DP+3
  852. SHN 6
  853. ADD RA
  854. SHN 6
  855. ADD DP+4
  856. ADD CM+1 ADD 77 TABLE LENGTH
  857. ADN 1
  858. CRD CN READ EXPECTED 52 TABLE
  859. LDD CN
  860. LMC 5200
  861. ZJN PRS7 IF 52 TABLE PRESENT
  862. LDN RC16 * NO 52 TABLE IN CONTROLWARE RECORD.*
  863. PRS6 LJM PRSX RETURN
  864.  
  865. PRS7 STD CE+1 CLEAR CHANNEL ENTRY POINTER
  866. LDD DP+3
  867. SHN 14
  868. ADD DP+4
  869. ADD CM+1 ADD 77 TABLE LENGTH - 1
  870. ADN 2 52 TABLE ADDRESS + LENGTH
  871. STD DP+4 RESET *OUT* POINTER TO FWA CONTROLWARE
  872. SHN -14
  873. STD DP+3
  874. LDD CN+4 LENGTH OF CONTROLWARE
  875. SBN 1 ADJUST FOR 52 TABLE
  876. STD WC CM WORD COUNT OF CONTROLWARE
  877. LDD DP+1 CHECK *IN* - *OUT*
  878. SBD DP+3
  879. SHN 14
  880. ADD DP+2
  881. SBD DP+4
  882. SBD WC
  883. ZJN PRS8 IF CORRECT CONTROLWARE LENGTH
  884. LDN RC17 * LENGTH IN 52 TABLE .NE. FET.*
  885. UJN PRS6 RETURN
  886.  
  887. PRS8 STD CO INITIALIZE CONTROL MODULE INDICATOR
  888. RJM GLA GET LOAD FET ADDRESS
  889. ADN 10 READ FET+8
  890. CRD CM
  891. LDD CM+4 SET CALL STATUS
  892. SHN 0-12
  893. LPN 1
  894. STD CS
  895. ZJN PRS9 IF DRIVER CALL
  896. LDN SSTL
  897. CRD T0
  898. LDD T0+3
  899. LPN 4
  900. ZJN PRS9 IF ENGINEERING MODE ENABLED
  901. LDD CP
  902. ADN JCIW
  903. CRD T0 CHECK FOR *MSE* SUBSYSTEM
  904. LDD T0+2 GET SUBSYSTEM ID
  905. LMC ASSI
  906. ZJN PRS9 IF CALLER IS *MSE* SUBSYSTEM
  907. LDN RC11 * SYSTEM NOT IN ENGR MODE.*
  908. UJN PRS10 RETURN
  909.  
  910. PRS9 LDD CM+4
  911. SHN 21-13
  912. PJN PRS11 IF CHANNEL SPECIFIED
  913. SHN 13-21
  914. LPC 777
  915. STD CO SET CONTROL MODULE EST ORDINAL
  916. RJM SCC SET CONTROL MODULE CHANNEL
  917. ZJN PRS12 IF NO ERROR
  918. PRS10 LJM PRSX RETURN
  919.  
  920. PRS11 SHN 13-21
  921. RJM RCT READ CHANNEL TABLE
  922. ADN 2*CTALL READ CHANNEL CONTROLWARE TABLE
  923. CRD CM
  924. STD CE+1 SAVE CONTROLWARE ENTRY ADDRESS
  925. SHN -14
  926. STD CE
  927. LDI T6
  928. STD CT SAVE CHANNEL CONTROLWARE ENTRY
  929. LDM PRSA-CM,T6 SET *UTEM* PARAMETERS FOR CHANNEL TABLE
  930. STM CHTI+1
  931. STM CHTI+1*5+1
  932. PRS12 LDD CT
  933. SHN 0-12
  934. STM CHTI+4
  935. SHN 21-0
  936. MJN PRS13 IF LOAD ALREADY IN PROGRESS
  937. RJM ICE INTERLOCK CONTROLWARE LOAD BITS
  938. LDD CM+1
  939. ZJN PRS14 IF INTERLOCK SET CORRECTLY
  940. PRS13 RJM DCH DROP CHANNEL ASSIGNMENT
  941. LDN RC14 * CONTROLWARE LOAD ALREADY IN PROGRESS.*
  942. LJM PRSX RETURN
  943.  
  944. PRS14 LDD CT SET PARAMETERS TO CLEAR CHANNEL INTERLOCK
  945. SHN -6
  946. LPN 17
  947. STM CHTI+4
  948. LDC 4004
  949. STM CHTI
  950. LDN 5
  951. STM CHTI+1*5
  952. LDC -400
  953. RAM CHTI+1
  954. STM CHTI+1*5+1
  955. LDD CO
  956. NJN PRS15 IF CONTROL MODULE RELOAD
  957. RJM RSC RESERVE AND STATUS CHANNEL
  958. NJN PRS17 IF ERROR
  959. PRS15 LDD CT CHECK CONTROLWARE TYPE
  960. LPN 37
  961. SBN FMCW
  962. ZJN PRS17 IF MA721 (SUPPORTS *FCAR* FUNCTION)
  963. SBN PHCW-FMCW
  964. ZJN PRS17 IF MA722 (SUPPORTS *FCAR* FUNCTION)
  965. SBN IDCW-PHCW
  966. ZJN PRS17 IF MA462 (SUPPORTS *FCAR* FUNCTION)
  967. LDN PSNI
  968. STM ILFA
  969. LDN 0
  970. PRS17 LJM PRSX RETURN
  971.  
  972.  
  973. PRSA BSS 0 TABLE OF RELOAD FLAG BIT POSITIONS
  974. CON 58DS6
  975. CON 46DS6
  976. CON 34DS6
  977. CON 22DS6
  978. CON 10DS6
  979. SPACE 4,10
  980. * CHANNEL TABLE.
  981.  
  982.  
  983. CHTB CH
  984. SCI SPACE 4,10
  985. ** SCI - SET CHANNEL INSTRUCTIONS.
  986. *
  987. * USES T1, T2, T3.
  988.  
  989.  
  990. SCI SUBR ENTRY/EXIT
  991. LDC CTCH INITIALIZE CHANNEL TABLE ADDRESS
  992. STD T1
  993. LDD BC CLEAR POSSIBLE CCH FLAG
  994. LPN 37
  995. STD T3
  996. SCI1 LDI T1
  997. ZJN SCIX IF END OF CHANNEL INSTRUCTIONS
  998. STD T2
  999. LDI T2 GET NEXT CHANNEL INSTRUCTION
  1000. SCN 37
  1001. LMD T3
  1002. STI T2 INITIALIZE CHANNEL INSTRUCTION
  1003. AOD T1
  1004. UJN SCI1 LOOP TO CHECK FOR NEXT INSTRUCTION
  1005. RSC SPACE 4,15
  1006. ** RSC - RESERVE AND STATUS CHANNEL.
  1007. *
  1008. * ENTRY (BC) = CHANNEL NUMBER.
  1009. * = *RC2* IF DOWN CHANNEL IN USE.
  1010. * = *RC34* IF CONTROLLER RESERVED.
  1011. * (CS) = CHANNEL SPECIFIED ON CALL STATUS.
  1012. *
  1013. * EXIT (A) = 0.
  1014. * (A) = *RC24* IF CONTROLLER RESERVED THROUGH
  1015. * ALTERNATE ACCESS OR *RC22* IF FUNCTION
  1016. * TIMEOUT OCCURED.
  1017. * CHANNEL RESERVED IF NOT SYSTEM REQUEST.
  1018. *
  1019. * USES CM - CM+4.
  1020. *
  1021. * CALLS CCS, FNC, RCT, SCI.
  1022. *
  1023. * MACROS MONITOR, RCHAN.
  1024.  
  1025.  
  1026. RSC2 LDD BC
  1027. RCHAN RESERVE CHANNEL
  1028. RSC3 AOD CF SET CHANNEL RESERVED BY *1LC* FLAG
  1029. RSC4 RJM SCI SET CHANNEL INSTRUCTIONS
  1030. LDD BC
  1031. LPN 40
  1032. ZJN RSC5 IF NOT A CIO CHANNEL
  1033. LDC 100000 MASTER CLEAR THE CHANNEL
  1034. RJM FNC
  1035. NJN RSCX IF ERROR OCCURRED
  1036. RSC5 RJM CCS CHECK CONTROLLER STATUS
  1037. NJN RSC6 IF STATUS TIMEOUT OR STATUS NOT RECEIVED
  1038. LDD ST
  1039. RSC6 LPC 2000
  1040. ZJN RSCX IF CONTROLLER NOT ALREADY RESERVED
  1041. LDN RC34 * CHXX, CONTROLLER RESERVED.*
  1042.  
  1043. RSC SUBR ENTRY/EXIT
  1044. LDD CS
  1045. ZJN RSC4 IF DRIVER CALL
  1046. LDD BC
  1047. RJM RCT READ CHANNEL TABLE
  1048. LDI T6
  1049. LPN 40
  1050. ZJP RSC2 IF CHANNEL UP
  1051. LDN 0
  1052. STD CM+2
  1053. LDD BC ASSIGN DOWNED CHANNEL
  1054. STD CM+1
  1055. MONITOR CCHM
  1056. LDD CM+2
  1057. NJP RSC3 IF CHANNEL ASSIGNED
  1058. LDN RC2 * SPECIFIED CHANNEL IS IN USE.*
  1059. UJN RSCX RETURN
  1060. SCC SPACE 4,15
  1061. ** SCC - SET CONTROL MODULE CHANNEL.
  1062. *
  1063. * ENTRY (CO) = CONTROL MODULE EST ORDINAL.
  1064. * (CS) = 0 IF DRIVER CALL.
  1065. *
  1066. * EXIT (A) = ERROR RESPONSE (0 IF NO ERROR).
  1067. * (BC) = CHANNEL NUMBER.
  1068. * (CF) .NE. 0 IF CHANNEL RESERVED.
  1069. * (CT) = CONTROLWARE TYPE.
  1070. * (EQ) = CONTROL MODULE EQUIPMENT NUMBER.
  1071. * (CE - CE+1) = ABSOLUTE ADDRESS OF *CM* EST ENTRY.
  1072. *
  1073. * USES BC, CF, CT, EQ, T1, CE - CE+1, CM - CM+4, CN - CN+4.
  1074. *
  1075. * CALLS SCI.
  1076. *
  1077. * MACROS MONITOR, RCHAN, SFA.
  1078.  
  1079.  
  1080. SCC10 LDN RC21 * NOT CONTROL MODULE EST ORDINAL.*
  1081.  
  1082. SCC SUBR ENTRY/EXIT
  1083. SFA EST,CO GET EST ENTRY
  1084. ADK EQDE
  1085. CRD CN
  1086. ADN EQAE-EQDE
  1087. CRD CM
  1088. STD CE+1
  1089. SHN -14
  1090. STD CE
  1091. LDD CN+3
  1092. LMC 2RCM
  1093. NJN SCC10 IF NOT CONTROL MODULE
  1094. LDD CN+4 SAVE CONTROL MODULE EQUIPMENT NUMBER
  1095. SHN -11
  1096. STD EQ
  1097. LDD CM+2
  1098. STD CT
  1099. SHN 0-11
  1100. LPN 1
  1101. LMN 1
  1102. RAM SCCA
  1103. LDD CS
  1104. NJN SCC6 IF NOT DRIVER CALL
  1105. LDD CN+1 SET CHANNEL NUMBER
  1106. * LDD CN+2 (CHANNEL ACCESS BIT CLEAR)
  1107. SCCA EQU *-1
  1108. LPN 37
  1109. SCC2 STD BC
  1110. LDN 0
  1111. SCC3 LJM SCCX RETURN
  1112.  
  1113. SCC4 LDI T1
  1114. RCHAN RESERVE CHANNEL
  1115. SCC5 RJM SCI SET CHANNEL INSTRUCTIONS
  1116. AOD CF SET CHANNEL RESERVED BY *1LC* FLAG
  1117. LDD CM+1
  1118. UJN SCC2 SET CHANNEL NUMBER
  1119.  
  1120. SCC6 LDN CN+1
  1121. STD T1
  1122. SCC7 LDI T1
  1123. SHN 0-12
  1124. LMN 2
  1125. ZJN SCC4 IF CHANNEL ENABLED AND UP
  1126. AOD T1
  1127. LMN CN+3
  1128. NJN SCC7 IF ANOTHER CHANNEL BYTE TO CHECK
  1129. SCC8 SOD T1
  1130. LMN CN
  1131. NJN SCC9 IF ANOTHER CHANNEL TO CHECK
  1132. LDN RC2 * SPECIFIED CHANNEL IS IN USE.*
  1133. UJN SCC3 RETURN
  1134.  
  1135. SCC9 LDI T1
  1136. STD CM+1
  1137. SHN 21-13
  1138. PJN SCC8 IF CHANNEL NOT ENABLED
  1139. MONITOR CCHM ASSIGN DOWNED CHANNEL
  1140. LDD CM+2
  1141. ZJN SCC8 IF CHANNEL NOT ASSIGNED
  1142. UJP SCC5 SET CHANNEL ASSIGNED AND RETURN
  1143. VFP SPACE 4,20
  1144. ** VFP - VALIDATE FET PARAMETERS.
  1145. *
  1146. * ENTRY (A) = FET ADDRESS.
  1147. *
  1148. * EXIT (A) = 0 IF FET ADDRESS AND BUFFER PARAMETERS VALID.
  1149. * (A) = *DR1* IF BUFFER PARAMETERS INVALID.
  1150. * (MB+2) = 12/0, 24/*IN*, 24/*OUT*.
  1151. * (MB+3) = 1/RANDOM FILE FLAG, 5/0, 6/FET LENGTH,
  1152. * 24/*FIRST*, 24/*LIMIT*.
  1153. *
  1154. * ERROR TO *PPR* AFTER JOB ABORT IF FET ADDRESS INVALID.
  1155. *
  1156. * USES CM+1, CM+3, CM+4.
  1157. *
  1158. * CALLS DFM.
  1159. *
  1160. * MACROS MONITOR.
  1161.  
  1162.  
  1163. VFP1 LDN DR1 * DUMP BUFFER ARGUMENT ERROR.*
  1164.  
  1165. VFP SUBR ENTRY/EXIT
  1166. STD CM+4
  1167. SHN -14
  1168. STD CM+3
  1169. LDN 3 VALIDATE *FIRST*, *IN*, *OUT*, AND *LIMIT*
  1170. STD CM+1
  1171. MONITOR VFPM
  1172. LDD CM+1
  1173. ZJN VFPX IF FET ADDRESS AND BUFFER PATAMETERS VALID
  1174. SBN 1
  1175. NJN VFP1 IF NOT INVALID FET ADDRESS
  1176. LDC VFPA * FET ADDRESS OUT OF RANGE.*
  1177. RJM DFM
  1178. MONITOR ABTM ABORT CONTROL POINT
  1179. LJM PPR EXIT TO PP RESIDENT
  1180.  
  1181.  
  1182. VFPA DATA C* FET ADDRESS OUT OF RANGE.*
  1183. SPACE 4,10
  1184. END