Table of Contents

BAAML

Table Of Contents

  • [00026] BAAML - OBJECT TIME BATCH CONCURRENCY.
  • [00030] OBJECT TIME BATCH CONCURRENCY.
  • [00310] FCTM - FUNCTION CODE TABLE ERROR.
  • [00346] SUB-FUNCTION FOR *CRM* CALLS.
  • [00360] CLOSE - CLOSE A FILE.
  • [00382] DBCOMIT - MARK END OF UPDATE SEQUENCE.
  • [00403] DBEGIN - DESIGNATE A DATA BASE AS RECOVERABLE.
  • [00435] DBFREE - ROLLBACK ALL UPDATES TO A FILE.
  • [00456] DBSTAT - FIND LAST BEGIN/COMMIT SEQUENCE.
  • [00502] DELETE - DELETE A RECORD.
  • [00531] FLOCK - LOCK A FILE.
  • [00553] LOCK - LOCK RECORD.
  • [00591] OPEN - OPEN DATA BASE.
  • [00613] READ - READ BY KEY.
  • [00635] READL - READ AND LOCK RECORD.
  • [00655] READM - READ BY MAJOR KEY.
  • [00676] READNL - READ NEXT RECORD WITH LOCK.
  • [00697] READN - READ NEXT RECORD.
  • [00718] REWIND - REWIND FILE.
  • [00740] REWRITE - REWRITE RECORD.
  • [00760] SKIPBL - SKIP BACKWARD LOGICAL RECORDS.
  • [00780] SKIPFL - SKIP FORWARD LOGICAL RECORDS.
  • [00800] START - POSITION A FILE AT OR AFTER A GIVEN KEY.
  • [00852] UNFLOCK - UNLOCK FILE.
  • [00874] UNLOCK - UNLOCK RECORD.
  • [00911] WRITE - WRITE RECORD.
  • [00930] UTILITIES FOR *CRM* FUNCTIONS.
  • [00932] CKF - CHECK KEY FIELD LENGTH.
  • [00997] CWS - CALCULATE *WSA* LENGTH.
  • [01052] DCF - DBCOMIT AND DBFREE PROCESSOR.
  • [01081] LWR - LAST WORD AND RECORD LENGTH RESTORED.
  • [01123] MST - TO MOVE THE KEY TO PACKET AREA.
  • [01177] MTS - TO MOVE TEXT TO STRING.
  • [01237] PRT - PRESET PACKET AND HEADER WORDS.
  • [01313] RAD - READ AND READL PROCESSOR.
  • [01375] RDM - READM/READNL/READN PROCESSOR.
  • [01460] RKA - RETURN KEY-AREA.
  • [01517] RTS - RETURN STATUS CODES.
  • [01572] RTT - RETURN TAF-STATUS.
  • [01613] RQS - REQUEST *TAF/CRM* SUBSYSTEM.
  • [01755] SKP - SKIP FUNCTION PROCESSOR.
  • [01781] WRR - WRITE AND REWRITE A RECORD.

Source Code

BAAML.txt
  1. IDENT BAAML
  2. SST
  3. ENTRY CLOSE
  4. ENTRY DBCOMIT
  5. ENTRY DBEGIN
  6. ENTRY DBFREE
  7. ENTRY DBSTAT
  8. ENTRY DELETE
  9. ENTRY FLOCK
  10. ENTRY LOCK
  11. ENTRY OPEN
  12. ENTRY READ
  13. ENTRY READL
  14. ENTRY READM
  15. ENTRY READNL
  16. ENTRY READN
  17. ENTRY REWIND
  18. ENTRY REWRITE
  19. ENTRY SKIPBL
  20. ENTRY SKIPFL
  21. ENTRY START
  22. ENTRY UNFLOCK
  23. ENTRY UNLOCK
  24. ENTRY WRITE
  25. SYSCOM B1
  26. TITLE BAAML - OBJECT TIME BATCH CONCURRENCY.
  27. *COMMENT BAAML - OBJECT TIME BATCH CONCURRENCY.
  28. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  29. BAAML SPACE 4,10
  30. *** BAAML - OBJECT TIME BATCH CONCURRENCY.
  31. *
  32. * P. H. PETERSEN. 81/01/13.
  33. SPACE 4,10
  34. *** BAAML IS AN USER LIBRARY INTERFACE FOR COBOL5 AND FORTRAN
  35. * BATCH USER PROGRAMS TO MAKE ADVANCED ACCESS METHOD CYBER
  36. * RECORD MANAGER REQUESTS OF THE TRANSACTION FACILITY. DECK
  37. * *BAAML* IS PLACED ON THE SYSTEM AS LIBRARY *BAAML*. COBOL5
  38. * *ENTER* VERB AND FORTRAN *CALL* COMMAND INTERFACE THE
  39. * USER BATCH PROGRAMS TO THE TRANSACTION FACILITY.
  40. *
  41. * THE REQUESTS FOR *TAF CMR* ARE AS FOLLOWS -
  42. *
  43. * TO CLOSE A FILE FOR A DATA BASE -
  44. * ENTER "CLOSE" USING FILE,TSTAT,CSTAT.
  45. * CALL CLOSE (FILE,TSTAT,CSTAT).
  46. *
  47. * TO MARK THE END OF AN UPDATE SEQUENCE -
  48. * ENTER "DBCOMIT" USING TSTAT.
  49. * CALL DBCOMIT (TSTAT).
  50. *
  51. * TO ESTABLISH A DATA BASE AS RECOVERABLE -
  52. * ENTER "DBEGIN" USING UBEGIN, TSTAT.
  53. * CALL DBEGIN (UBEGIN, TSTAT).
  54. *
  55. * TO ROLLBACK UPDATES TO A DATA BASE -
  56. * ENTER "DBFREE" USING TSTAT.
  57. * CALL DBFREE (TSTAT).
  58. *
  59. * TO FIND LAST IDENTIFIER OF LAST SUCCESSFULL BEGIN/COMMIT -
  60. * ENTER "DBSTAT" USING UBEGIN, TSTAT, PBEGIN.
  61. * CALL DBSTAT (UBEGIN, TSTAT, PBEGIN).
  62. *
  63. * TO DELETE A RECORD -
  64. * ENTER "DELETE" USING FILE,TSTAT,CSTAT,KEYN,KEYP.
  65. * CALL DELETE (FILE,TSTAT,CSTAT,KEYN,KEYP).
  66. *
  67. * TO LOCK A RECORD -
  68. * ENTER "LOCK" USING FILE,TSTAT,KEYN,KEYP.
  69. * CALL LOCK (FILE,TSTAT,KEYN,KEYP).
  70. *
  71. * TO LOCK A FILE -
  72. * ENTER "FLOCK" USING FILE,TSTAT.
  73. * CALL FLOCK (FILE,TSTAT).
  74. *
  75. * TO OPEN A FILE FOR A DATA BASE -
  76. * ENTER "OPEN" USING FILE,TSTAT,CSTAT.
  77. * CALL OPEN (FILE,TSTAT,CSTAT).
  78. *
  79. * TO READ A RECORD BY KEY -
  80. * ENTER "READ" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYN,KEYP,
  81. * KSTAT,KEYID,KEYA,KEYL.
  82. * CALL READ (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYN,KEYP,
  83. * KSTAT,KEYID,KEYA,KEYL).
  84. *
  85. * TO READ A RECORD BY KEY WITH LOCK -
  86. * ENTER "READL" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYN,KEYP,
  87. * KSTAT,KEYID,KEYA,KEYL.
  88. * CALL READL (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYN,KEYP,
  89. * KSTAT,KEYID,KEYA,KEYL).
  90. *
  91. * TO READ A RECORD BY MAJOR KEY -
  92. * ENTER "READM" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,
  93. * KEYRL,KEYN,KEYP,MKEYL,KSTAT,KEYID.
  94. * CALL READM (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,
  95. * KEYRL,KEYN,KEYP,MKEYL,KSTAT,KEYID).
  96. *
  97. * TO READ NEXT RECORD -
  98. * ENTER "READN" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL,
  99. * KSTAT.
  100. * CALL READN (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL,KSTAT).
  101. *
  102. * TO READ NEXT RECORD WITH LOCK -
  103. * ENTER "READNL" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL,
  104. * KSTAT.
  105. * CALL READNL (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL,KSTAT).
  106. *
  107. * TO REWIND A FILE -
  108. * ENTER "REWIND" USING FILE,TSTAT,CSTAT.
  109. * CALL REWIND (FILE,TSTAT,CSTAT).
  110. *
  111. * TO REWRITE A RECORD -
  112. * ENTER "REWRITE" USING FILE,TSTAT,CSTAT,WSA,RL,KEYN,KEYP.
  113. * CALL REWRITE (FILE,TSTAT,CSTAT,WSA,RL,KEYN,KEYP).
  114. *
  115. * TO SKIP A LOGICAL RECORD BACKWARD -
  116. * ENTER "SKIPBL" USING FILE,TSTAT,CSTAT,COUNT.
  117. * CALL SKIPBL (FILE,TSTAT,CSTAT,COUNT).
  118. *
  119. * TO SKIP A LOGICAL RECORD FORWARD -
  120. * ENTER "SKIPFL" USING FILE,TSTAT,CSTAT,COUNT.
  121. * CALL SKIPFL (FILE,TSTAT,CSTAT,COUNT).
  122. *
  123. * TO ESTABLISH A POSITION ON A FILE -
  124. * ENTER "START" USING FILE,TSTAT,CSTAT,RELOP,KEYN,KEYP,KSTAT,
  125. * KEYID,MKEYL.
  126. * CALL START (FILE,TSTAT,CSTAT,RELOP,KEYN,KEYP,KSTAT,
  127. * KEYID,MKEYL.
  128. *
  129. * TO UNLOCK A RECORD -
  130. * ENTER "UNLOCK" USING FILE,TSTAT,KEYN,KEYP.
  131. * CALL UNLOCK (FILE,TSTAT,KEYN,KEYP).
  132. *
  133. * TO UNLOCK A FILE -
  134. * ENTER "UNFLOCK" USING FILE,TSTAT.
  135. * CALL UNFLOCK (FILE,TSTAT).
  136. *
  137. * TO WRITE A RECORD -
  138. * ENTER "WRITE" USING FILE,TSTAT,CSTAT,WSA,RL,KEYN,KEYP.
  139. * CALL WRITE (FILE,TSTAT,CSTAT,WSA,RL,KEYN,KEYP).
  140. *
  141. * THE PARAMETERS FOR *TAF CRM* REQUESTS ARE DEFINED BELOW -
  142. *
  143. * XXPFNI (FILE) - FILE NAME SELECTED BY DATA BASE ADMINIS-
  144. * TRATOR. THE FILE NAME MUST BEGIN ON A WORD BOUNDARY
  145. * AND CONSIST OF 2-7 CHARACTERS WITH BLANK OR BINARY
  146. * ZERO FILL.
  147. * COBOL5 - 01 LEVEL DATA NAME.
  148. * FORTRAN - INTEGER.
  149. *
  150. * TAF-STATUS (TSTAT) - TRANSACTION FACILTY STATUS.
  151. * SEE DECK *COMKTER.
  152. * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
  153. * FORTRAN - INTEGER.
  154. *
  155. * CRM-STATUS (STAT) - ERROR CODE STATUS FOR *CRM*.
  156. * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
  157. * FORTRAN - INTEGER.
  158. *
  159. * WSA-NAME (WSA) - SPECIFIES THE AREA TO CONTAIN THE RECORD.
  160. * COBOL5 - 01 LEVEL DATA NAME.
  161. * FORTRAN - INTEGER ARRAY.
  162. *
  163. *
  164. * WSA-LENGTH (WSAL) - SPECIFIES THE LENGTH OF THE AREA
  165. * IDENTIFIED BY THE WSA-NAME.
  166. * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
  167. * FORTRAN - INTEGER.
  168. *
  169. * KEY-AREA (KEYA) - SPECIFIES THE FIELD TO CONTAIN THE
  170. * PRIMARY KEY RETURNED ON A READ REQUEST.
  171. * COBOL5 - 01 LEVEL DATA NAME.
  172. * FORTRAN - INTEGER.
  173. *
  174. * KEY-AREA-LENGTH (KEYAL) - THE LENGTH OF THE FIELD IDENTIFIED
  175. * BY THE KEY-AREA PARAMETER.
  176. * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
  177. * FORTRAN - INTEGER.
  178. *
  179. * MAJOR-KEY-LENGTH (MKEYL) - THE LENGTH OF THE MAJOR KEY.
  180. * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
  181. * FORTRAN - INTEGER.
  182. *
  183. * KEY-OFFSET (KEYP) - THE BEGINNING POSITION OF THE
  184. * PRIMARY KEY.
  185. * COBOL5 - 01 COMPUTATIONAL-1 DATA NAME.
  186. * FORTRAN - INTEGER.
  187. *
  188. * KEY-NAME (KEYN) - DATA NAME THE CONTAINS THE PRIMARY KEY.
  189. * COBOL5 - 01 LEVEL DATA NAME.
  190. * FORTRAN - INTEGER.
  191. *
  192. * RECORD-LENGTH (RL) - DATA NAME THE SPECIFIES THE LENGTH
  193. * OF THE RECORD RETURNED BY *TAF* AFTER ISSUING
  194. * A READ REQUEST. ALSO, THE LENGTH OF THE RECORD
  195. * TO BE WRITTEN TO THE DATA BASE FROM THE AREA
  196. * IDENTIFIED BY THE WSA-NAME PARAMETER.
  197. * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
  198. * FORTRAN - INTEGER.
  199. *
  200. * COUNT - COUNT OF LOGICAL RECORDS TO SKIP.
  201. * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
  202. * FORTRAN - INTEGER.
  203. *
  204. * KEY-STATUS (KSTAT) - DATA NAME THAT SPECIFIES THE FIELD TO
  205. * CONTAIN A KEY STATUS CODE RETURNED BY *TAF*.
  206. * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
  207. * FORTRAN - INTEGER.
  208. *
  209. * KEY-IDENTIFIER (KEYID) - A DATA NAME THE SPECIFIES
  210. * THE KEY, ALTERNATE OR PRIMARY, FOR ACCESS.
  211. *
  212. * NEGATIVE - NO CHANGE IN KEY ACCESS.
  213. * 0 - PRIMARY KEY.
  214. * N - VALUE ASSOCIATED WITH THE
  215. * KEY BY AN *AKY* COMMAND.
  216. * COBOL5 - 01 LEVEL COMPUTIONAL DATA NAME.
  217. * FORTRAN - INTEGER.
  218. *
  219. * RELATION-OPERATOR (RELOP) - VALUES EQ, GT, OR GE.
  220. * A DATA NAME THAT SPECIFIES THE POSITION RELATIVE
  221. * TO THE GIVEN KEY AFTER THE OPERATION.
  222. * COBOL5 - 01 LEVEL COMPUTATION-1 DATA NAME.
  223. * FORTRAN - INTEGER.
  224. *
  225. * UBEGIN - A JOB SUPPLIED VALUE TO DEFINE A
  226. * RESTART POSITION.
  227. * COBOL5 - 01 LEVEL COMPUTIONAL-1 DATA NAME.
  228. * FORTRAN - INTEGER.
  229. *
  230. * PBEGIN - THE BEGINNING IDENTIFIER OF THE
  231. * PREVIOUS *DBEGIN* REQUEST.
  232. * COBOL5 - 01 LEVEL COMPUTIONAL-1 DATA NAME.
  233. * FORTRAN - INTEGER.
  234. *
  235. SPACE 4,20
  236. *** DAYFILE MESSAGES.
  237. *
  238. * TAF FUNCTION CODE NOT VALID.
  239. * TAF CANNOT PROCESS THE REQUEST ISSUED BECAUSE
  240. * IT IS AN UNRECOGNIZABLE FUNCTION CODE. THIS IS
  241. * AN INTERNAL ERROR.
  242. *
  243. *
  244. * TAF TWO OUTSTANDING REQUEST.
  245. * TAF RECIEVED ANOTHER REQUEST FROM A USER PROGRAM
  246. * BEFORE THE PREVIOUS REQUEST WAS SATISFIED. THIS
  247. * IS AN INTERNAL ERROR.
  248. *
  249. *
  250. * TAF SUBSYSTEM BUSY.
  251. * TAF WAS BUSY AND COULD NOT ACCEPT THE BATCH REQUEST.
  252. *
  253. *
  254. * TAF/CRM FUNCTION CODE NOT VALID.
  255. * *TAF/CRM* CANNOT PROCESS THE REQUEST ISSUED BECAUSE
  256. * IT IS AN UNRECOGNIZABLE FUNCTION CODE. THIS
  257. * IS AN INTERNAL ERROR.
  258. *
  259. *
  260. * TAF USER NOT VALID FOR TAF ACCESS.
  261. * BATCH USER WAS NOT VALIDATED TO USE *TAF*.
  262. *
  263. *
  264. * TAF USER NAME ACTIVE.
  265. * SOME OTHER BATCH OR TERMINAL JOB IS CURRENTLY
  266. * ACCESSING *TAF/CRM* UNDER THIS USER NAME.
  267. *
  268. *
  269. * TAF DATA NOT WITHIN UCP FL.
  270. * TAF CANNOT READ (WRITE) DATA FROM USER PROGRAM
  271. * BECAUSE THE ADDRESS SPECIFIED IS OUTSIDE THE
  272. * *UCP* (USER CONTROL POINT) *FL* (FIELD LENGTH).
  273. *
  274. *
  275. * TAF/CRM TAF STATUS ERROR XXXX IN FUNCTION YYYYYYY.
  276. * AN TAF-STATUS ERROR CODE NNN WAS RETURNED TO
  277. * THE PROGRAM FROM FUNCTION XXXXXXX.
  278. *
  279. *
  280. * TAF/CRM CRM STATUS ERROR XXXX IN FUNCTION YYYYYYY.
  281. * AN CRM-STATUS ERROR CODE NNN WAS RETURNED TO
  282. * THE PROGRAM FROM FUNCTION XXXXXXX.
  283. *
  284. * TAF USER CONFLICT IN ACCESS TYPE.
  285. * BATCH JOB TRIED TO ACCESS AS INTERACTIVE.
  286. *
  287. * TAF ERROR CODE NOT DEFINED.
  288. * *BAAML* COULD NOT FIND PROPER ERROR CODE.
  289. *
  290. * TAF RECOVERY REQUEST ERROR.
  291. * TAF DETECTED AN ERROR IN THE RECOVERY REQUEST.
  292. *
  293. * BATCH CONCURRENCY DISABLED.
  294. * TAF WAS NOT INITIALIZED WITH BATCH CONCURRENCY
  295. * ENABLED.
  296. *
  297. * TAF/CRM DATA MANAGER NOT LOADED IN TAF.
  298. * THE CRM DATA MANAGER WAS NOT LOADED WHEN
  299. * TAF WAS INITIALIZED.
  300. SPACE 4,10
  301. *** OPERATOR MESSAGES.
  302. *
  303. * TAF IDLE (GO OR DROP).
  304. * ACCESS TO *TAF* DENIED BECAUSE IT IS IDLING DOWN.
  305. *
  306. * TAF SUBSYSTEM NOT PRESENT (GO OR DROP).
  307. * THE *TAF* SUBSYSTEM WAS NOT PRESENT WHEN A BATCH
  308. * JOB TRIED TO CONNECT TO IT.
  309. SPACE 4,10
  310. ** FCTM - FUNCTION CODE TABLE ERROR.
  311. *
  312. * *FCTM* IS A MACRO THAT IS USED TO BUILD A TABLE
  313. * FOR PROCESSING THE RESPONSE FROM *TAF/CRM*.
  314. *
  315. * ENTRY FCTM MSG,RUT,DSP,ERC
  316. * MSG - MESSAGE TO BE ISSUED.
  317. * RUT - ROUTINE TO DO THE PROCESSING.
  318. * DSP - DISPLAY MESSAGE TO PROPER DAYFILE.
  319. * ERC - ERROR CODE RESPONSE.
  320.  
  321.  
  322. FCTM MACRO MSG,RUT,DSP,ERC
  323. VFD 18/MSG,18/RUT,6/DSP,18/ERC
  324. FCTM ENDM
  325. SPACE 4,10
  326. *** COMMON DECKS.
  327.  
  328.  
  329. *CALL COMCMAC
  330. *CALL COMKTRN
  331. *CALL COMKTDM
  332. *CALL COMKIPR
  333. LIST X
  334. *CALL COMKFLD
  335. *CALL COMKTSC
  336. BEGNX BSS 0
  337. *CALL COMKCRM
  338. *CALL COMKTER
  339. ORG BEGNX DO NOT RESERVE SPACE FOR *TAF/CRM* TABLES
  340. QUAL SCP
  341. *CALL COMSSCP
  342. QUAL SSD
  343. *CALL COMSSSD
  344. QUAL
  345. LIST -X
  346. TITLE SUB-FUNCTION FOR *CRM* CALLS.
  347. SPACE 4,10
  348. **** ASSEMBLY CONSTANTS.
  349.  
  350.  
  351. TCHL EQU 10 NUMBER OF CHARACTERS IN A WORD
  352.  
  353. TMKL EQU 255 MAXIMUN LENGTH OF A KEY IN CHARACTERS
  354.  
  355. TMKW EQU 24 MAXIMIN LENGTH OF A KEY IN WORDS
  356.  
  357. THRL EQU 2 LENGTH OF PACKET HEADER
  358. EJECT
  359. CLOSE SPACE 4,15
  360. ** CLOSE - CLOSE A FILE.
  361. *
  362. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  363. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  364. * (X1) = ADDRESS OF FIRST PARAMETER.
  365. *
  366. * EXIT *TAF* AND *CRM* STATUS RETURNED.
  367. *
  368. * USES X - 7.
  369. * B - 2.
  370. *
  371. * CALLS PRT, RQS, RTS.
  372.  
  373.  
  374. CLOSE SUBR ENTRY/EXIT
  375. SB2 TPCLL MAXIMUM NUMBER OF PARAMETERS
  376. SX7 TRCL CLOSE SUB-FUNCTION CODE
  377. RJ PRT PRESET
  378. RJ RQS ISSUE *TAF/CRM* REQUEST
  379. RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  380. EQ CLOSEX RETURN
  381. DBCOMIT SPACE 4,15
  382. ** DBCOMIT - MARK END OF UPDATE SEQUENCE.
  383. *
  384. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  385. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  386. * (X1) = ADDRESS OF FIRST PARAMETER.
  387. *
  388. * EXIT FUNCTION COMPLETE.
  389. *
  390. * USES X - 1, 2, 7.
  391. * A - 1, 2, 7.
  392. * B - 2.
  393. *
  394. * CALLS PRT, DCF.
  395.  
  396.  
  397. DBCOMIT SUBR ENTRY/EXIT
  398. SB2 TPDCL MAXIMUM NUMBER OF PARAMETERS
  399. SX7 TRDC SUB-FUNCTION CODE
  400. RJ DCF PROCESS REQUEST
  401. EQ DBCOMITX RETURN
  402. DBEGIN SPACE 4,15
  403. ** DBEGIN - DESIGNATE A DATA BASE AS RECOVERABLE.
  404. *
  405. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  406. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  407. * (X1) = ADDRESS OF FIRST PARAMETER.
  408. *
  409. * EXIT FUNCTION COMPLETE AND STATUS RETURNED.
  410. *
  411. * USES X - 1, 2, 7.
  412. * A - 1, 2, 7.
  413. * B - 2.
  414. *
  415. * CALLS PRT, RQS, RTT.
  416.  
  417.  
  418. DBEGIN SUBR ENTRY/EXIT
  419. SB2 TPDBL MAXIMUM NUMBER OF PARAMETERS
  420. SX7 TRDB SUB-FUNCTION CODE
  421. RJ PRT PRESET
  422. RJ RQS ISSUE *TAF/CRM* REQUEST
  423. SA2 TPKT+THRL+TPTS TAF-STATUS FROM AAMI
  424. ZR X2,DBN1 IF NO ERRORS
  425. BX1 X2
  426. RJ RTT ISSUE ERROR MESSAGE
  427. DBN1 SX7 B6-TPDBL NUMBER OF PARAMTERS
  428. NG X7,DBEGINX IF NOT ENOUGH PARAMTERS
  429. SA2 A1+TPTS ADDRESS TO PUT TAF-STATUS
  430. SA1 TPKT+THRL+TPTS TAF-STATUS
  431. BX7 X1
  432. SA7 X2 SET TAF-STATUS
  433. EQ DBEGINX RETURN
  434. DBFREE SPACE 4,15
  435. ** DBFREE - ROLLBACK ALL UPDATES TO A FILE.
  436. *
  437. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  438. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  439. * (X1) = ADDRESS OF FIRST PARAMETER.
  440. *
  441. * EXIT FUNCTION COMPLETE AND STATUS RETURNED.
  442. *
  443. * USES X - 1, 2, 7.
  444. * A - 1, 2, 7.
  445. * B - 2.
  446. *
  447. * CALLS PRT, DCF.
  448.  
  449.  
  450. DBFREE SUBR ENTRY/EXIT
  451. SB2 TPDFL MAXIMUM NUMBER OF PARAMETERS
  452. SX7 TRDF SUB-FUNCTION CODE
  453. RJ DCF PROCESS REQUEST
  454. EQ DBFREEX RETURN
  455. DBSTAT SPACE 4,15
  456. ** DBSTAT - FIND LAST BEGIN/COMMIT SEQUENCE.
  457. *
  458. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  459. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  460. * (X1) = ADDRESS OF FIRST PARAMETER.
  461. *
  462. * EXIT FUNCTION COMPLETE AND STATUS RETURNED.
  463. *
  464. * USES X - 1, 2, 3, 7.
  465. * A - 2, 3, 7.
  466. * B - 2.
  467. *
  468. * CALLS PRT, RQS, RTT.
  469.  
  470.  
  471. DBSTAT SUBR ENTRY/EXIT
  472. SB2 TPDSL MAXIMUM NUMBER OF PARAMETERS
  473. SX7 TRDS SUB-FUNCTION CODE
  474. RJ PRT PRESET
  475. SX7 B6-TPDSL PARAMETERS
  476. NG X7,DBS1 IF NOT ENOUGH PARAMETERS
  477. SA2 A1+TPPI PREVIOUS DBCOMIT STATUS
  478. SA2 X2 VALUE
  479. BX7 X2
  480. SA7 TPKT+THRL+TPPI PREVIOUS DBCOMIT STATUS
  481. DBS1 RJ RQS ISSUE *TAF/CRM* REQUEST
  482. SA2 TPKT+THRL+TPTS TAF-STATUS FROM AAMI
  483. ZR X2,DBS2 IF NO ERRORS
  484. BX1 X2
  485. RJ RTT ISSUE ERROR MESSAGE
  486. DBS2 SX7 B6-TPDSL MINIMUM NUMBER OF PARAMETERS
  487. NG X7,DBSTATX IF NOT ENOUGH PARAMETERS
  488. SA3 TPKT+THRL+TPCI DBSTAT FROM *TAF/CRM*
  489. SA2 A1+TPCI DBSTAT ADDRESS
  490. BX7 X3
  491. SA7 X2
  492. SA3 TPKT+THRL+TPTS TAF-STATUS
  493. SA2 A1+TPTS TAF-STATUS ADDRESS
  494. BX7 X3
  495. SA7 X2
  496. SA3 TPKT+THRL+TPPI DBSTAT FROM *TAF/CRM*
  497. SA2 A1+TPPI DBSTAT ADDRESS
  498. BX7 X3
  499. SA7 X2
  500. EQ DBSTATX RETURN
  501. DELETE SPACE 4,15
  502. ** DELETE - DELETE A RECORD.
  503. *
  504. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  505. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  506. * (X1) = ADDRESS OF FIRST PARAMETER.
  507. *
  508. * EXIT FUNCTION COMPLETED AND ADDRESS RETURNED.
  509. *
  510. * USES X - 7.
  511. * A - 7.
  512. * B - 2, 4.
  513. *
  514. * CALLS CKF, PRT, RQS, RTS.
  515.  
  516.  
  517. DELETE SUBR ENTRY/EXIT
  518. SB2 TPDEL MAXIMUM NUMBER OF PARAMETERS
  519. SX7 TRDE SUB-FUNCTION CODE
  520. RJ PRT PRESET
  521. SX7 B6-TPDEL MINIMUM NUMBER OF PARAMETERS
  522. NG X7,DEL1 IF NOT ENOUGH PARAMETERS
  523. SB4 0 SET NO MAJOR KEY-LENGTH
  524. SB2 TPDK INDEX TO KEY-AREA IN PATAMERER LIST
  525. RJ CKF CHECK AND TRANSFER KEY
  526. NZ X7,DEL2 IF KEY-OFFSET ERROR
  527. DEL1 RJ RQS ISSUE *TAF/CRM* REQUEST
  528. DEL2 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  529. EQ DELETEX RETURN
  530. FLOCK SPACE 4,15
  531. ** FLOCK - LOCK A FILE.
  532. *
  533. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  534. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  535. * (X1) = ADDRESS OF FIRST PARAMETER.
  536. *
  537. * EXIT FUNCTION COMPLETE AND STATUS RETURNED.
  538. *
  539. * USES X - 7.
  540. * B - 2.
  541. *
  542. * CALLS PRT, RQS, RTS.
  543.  
  544.  
  545. FLOCK SUBR ENTRY/EXIT
  546. SB2 TPLFL MAXIMUM NUMBER OF PARAMETERS
  547. SX7 TRLF SUB-FUNCTION CODE
  548. RJ PRT PRESET
  549. RJ RQS ISSUE *TAF/CRM* REQUEST
  550. RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  551. EQ FLOCKX RETURN
  552. LOCK SPACE 4,15
  553. ** LOCK - LOCK RECORD.
  554. *
  555. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  556. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  557. * (X1) = ADDRESS OF FIRST PARAMETER.
  558. *
  559. * EXIT FUNCTION COMPLETE AND STATUS RETURNED.
  560. *
  561. * USES X - 1, 2, 7.
  562. * A - 1, 2, 7.
  563. * B - 2, 4.
  564. *
  565. * CALLS PRT, RQS, CKF, RTT.
  566.  
  567.  
  568. LOCK SUBR ENTRY/EXIT
  569. SB2 TPLCL MAXIMUM NUMBER OF PARAMETERS
  570. SX7 TRLC SUB-FUNCTION CODE
  571. RJ PRT PRESET
  572. SX7 B6-TPLCL MINIMUM NUMBER OF PARAMETERS
  573. NG X7,LOK1 IF NOT ENOUGH PARAMETERS
  574. SB2 TPKL INDEX FOR KEY-NAME TO PARAMETER LIST
  575. SB4 0 SET NO MAJOR-KEY-LENGTH
  576. RJ CKF CHECK AND TRANSFER KEY
  577. NZ X7,LOK2 IF KEY-OFFSET ERRORS
  578. LOK1 RJ RQS ISSUE *TAF/CRM* REQUEST
  579. LOK2 SA2 TPKT+THRL+TPTS TAF-STATUS FROM AAMI
  580. ZR X2,LOK3 IF NO ERRORS
  581. BX1 X2
  582. RJ RTT ISSUE ERROR MESSAGE
  583. LOK3 SX7 B6-TPPI MINIMUM NUMBER OF PARAMETERS
  584. NG X7,LOCKX IF NOT ENOUGH PARAMETERS
  585. SA2 A1+TPTS ADDRESS TO RETURN DBSTAT
  586. SA1 TPKT+THRL+TPTS TAF-STATUS FROM DBSTAT
  587. BX7 X1
  588. SA7 X2 TAF-STATUS TO PROGRAM
  589. EQ LOCKX RETURN
  590. OPEN SPACE 4,15
  591. ** OPEN - OPEN DATA BASE.
  592. *
  593. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  594. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  595. * (X1) = ADDRESS OF FIRST PARAMETER.
  596. *
  597. * EXIT FUNCTION COMPLETE AND STATUS RETURNED.
  598. *
  599. * USES X - 7.
  600. * B - 2.
  601. *
  602. * CALLS PRT, RQS, RTS.
  603.  
  604.  
  605. OPEN SUBR ENTRY/EXIT
  606. SB2 TPOPL MAXIMUM NUMBER OF PARAMETERS
  607. SX7 TROP SUB-FUNCTION CODE
  608. RJ PRT PRESET
  609. RJ RQS ISSUES *TAF/CRM* REQUEST
  610. RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  611. EQ OPENX RETURN
  612. READ SPACE 4,15
  613. ** READ - READ BY KEY.
  614. *
  615. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  616. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  617. * (X1) = ADDRESS OF FIRST PARAMETER.
  618. *
  619. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  620. *
  621. * EXIT READ FUNCTIN COMPLETE AND STATUS RETURNED.
  622. *
  623. * USES X - 7.
  624. * B - 2.
  625. *
  626. * CALLS RAD.
  627.  
  628.  
  629. READ SUBR ENTRY/EXIT
  630. SB2 TPRDL MAXIMIM NUMBER OF PARAMETERS
  631. SX7 TRRD SUB-FUNCTION CODE
  632. RJ RAD PROCESS READ AND READL FUNCTIONS
  633. EQ READX RETURN
  634. READL SPACE 4,15
  635. ** READL - READ AND LOCK RECORD.
  636. *
  637. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  638. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  639. * (X1) = ADDRESS OF FIRST PARAMETER.
  640. *
  641. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  642. *
  643. * USES X - 7.
  644. * B - 2.
  645. *
  646. * CALLS RAD.
  647.  
  648.  
  649. READL SUBR ENTRY/EXIT
  650. SB2 TPRLL MAXIMUM PARAMETERS FOR READ
  651. SX7 TRRL SUB-FUNCTION CODE
  652. RJ RAD PROCESS READ AND READL FUNCTIONS
  653. EQ READLX RETURN
  654. READM SPACE 4,15
  655. ** READM - READ BY MAJOR KEY.
  656. *
  657. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  658. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  659. * (X1) = ADDRESS OF FIRST PARAMETER.
  660. *
  661. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  662. *
  663. * USES X - 0, 7.
  664. * B - 2.
  665. *
  666. * CALLS RDM.
  667.  
  668.  
  669. READM SUBR ENTRY/EXIT
  670. SB2 TPRML MAXIMUM NUMBER OF PARAMETERS
  671. SX7 TRRM SUB-FUNCTION CODE
  672. SX0 TRRM SET SWITCH FOR CALL BY READM
  673. RJ RDM PROCESS READM FUNCTION
  674. EQ READMX RETURN
  675. READNL SPACE 4,15
  676. ** READNL - READ NEXT RECORD WITH LOCK.
  677. *
  678. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  679. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  680. * (X1) = ADDRESS OF FIRST PARAMETER.
  681. *
  682. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  683. *
  684. * USES X - 0, 7.
  685. * B - 2.
  686. *
  687. * CALLS RDM.
  688.  
  689.  
  690. READNL SUBR ENTRY/EXIT
  691. SX7 TRRO SUB-FUNCTION CODE
  692. SB2 TPROL MAXIMUM NUMBER OF PARAMETERS
  693. SX0 0 INDICATE NOT CALLED BY READM
  694. RJ RDM PROCESS READNL FUNCTION
  695. EQ READNLX RETURN
  696. READN SPACE 4,15
  697. ** READN - READ NEXT RECORD.
  698. *
  699. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  700. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  701. * (X1) = ADDRESS OF FIRST PARAMETER.
  702. *
  703. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  704. *
  705. * USES X - 0, 7.
  706. * B - 2.
  707. *
  708. * CALLS RDM.
  709.  
  710.  
  711. READN SUBR ENTRY/EXIT
  712. SB2 TPRNL MAXIMUM NUMBER OF PARAMETERS
  713. SX7 TRRN SUB-FUNCTION CODE
  714. SX0 0 INDICATE NOT CALLED BY READM
  715. RJ RDM PROCESS READN FUNCTION
  716. EQ READNX RETURN
  717. REWIND SPACE 4,15
  718. ** REWIND - REWIND FILE.
  719. *
  720. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  721. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  722. * (X1) = ADDRESS OF FIRST PARAMETER.
  723. *
  724. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  725. *
  726. * USES X - 7.
  727. * B - 2.
  728. *
  729. * CALLS PRT, RQS, RTS.
  730.  
  731.  
  732. REWIND SUBR ENTRY/EXIT
  733. SB2 TPRPL MAXIMUM NUMBER OF PARAMETERS
  734. SX7 TRRP SUB-FUNCTION CODE
  735. RJ PRT PRESET
  736. RJ RQS ISSUE *TAF/CRM* REQUEST
  737. RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  738. EQ REWINDX RETURN
  739. REWRITE SPACE 4,15
  740. ** REWRITE - REWRITE RECORD.
  741. *
  742. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  743. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  744. * (X1) = ADDRESS OF FIRST PARAMETER.
  745. *
  746. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  747. *
  748. * USES X - 7.
  749. * B - 2.
  750. *
  751. * CALLS WRR.
  752.  
  753.  
  754. REWRITE SUBR ENTRY/EXIT
  755. SB2 TPRWL MAXIMUM NUMBER OF PARAMETER
  756. SX7 TRRW SUB-FUNCTION
  757. RJ WRR REWRITE RECORD
  758. EQ REWRITEX RETURN
  759. SKIPBL SPACE 4,15
  760. ** SKIPBL - SKIP BACKWARD LOGICAL RECORDS.
  761. *
  762. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  763. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  764. * (X1) = ADDRESS OF FIRST PARAMETER.
  765. *
  766. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  767. *
  768. * USES X - 7.
  769. * B - 2.
  770. *
  771. * CALLS SKP.
  772.  
  773.  
  774. SKIPBL SUBR ENTRY/EXIT
  775. SB2 TPSBL MAXIMUM NUMBER OF PARAMETERS
  776. SX7 TRSB SUB-FUNCTION CODE
  777. RJ SKP PROCESS SKIP FUNCTION
  778. EQ SKIPBLX RETURN
  779. SKIPFL SPACE 4,15
  780. ** SKIPFL - SKIP FORWARD LOGICAL RECORDS.
  781. *
  782. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  783. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  784. * (X1) = ADDRESS OF FIRST PARAMETER.
  785. *
  786. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  787. *
  788. * USES X - 7.
  789. * B - 2.
  790. *
  791. * CALLS SKP.
  792.  
  793.  
  794. SKIPFL SUBR ENTRY/EXIT
  795. SB2 TPSFL MAXIMUM NUMBER OF PARAMETERS
  796. SX7 TRSF SUB-FUNCTION FOR *TAF/CRM*
  797. RJ SKP PROCESS SKIP FUNCTION
  798. EQ SKIPFLX RETURN
  799. START SPACE 4,15
  800. ** START - POSITION A FILE AT OR AFTER A GIVEN KEY.
  801. *
  802. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  803. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  804. * (X1) = ADDRESS OF FIRST PARAMETER.
  805. *
  806. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  807. *
  808. * USES X - 1, 2, 3, 7.
  809. * A - 2, 3, 7.
  810. * B - 4.
  811. *
  812. * CALLS CKF, PRT, RQS, RTS.
  813.  
  814.  
  815. START SUBR ENTRY/EXIT
  816. SB2 TPSTL MAXIMUM NUMBER OF PARAMETERS
  817. SX7 TRST SUB-FUNCTION CODE
  818. RJ PRT PRESET
  819. SX1 B6-TPSTF REQUIRED NUMBER OF PPARAMETERS
  820. NG X1,SRT2 IF NOT ENOUGH PARAMETERS
  821. SA2 A1+TPSR RELATION-OPERATOR
  822. SB4 0
  823. SA2 X2 VALUE OF RELATION-OPERATOR
  824. BX7 X2
  825. SX1 B6-TPSM PARAMETERS
  826. SA7 TPKT+THRL+TPSR RELATION-OPERATOR TO PACKET
  827. NG X1,SRT1 IF END OF PARAMETERS
  828. SA2 A1+TPSO KEY-IDENTIFIER
  829. SA2 X2 VALUE
  830. BX7 X2
  831. SA7 TPKT+THRL+TPSO KEY-IDENTIFIER TO PACKET
  832. ZR X1,SRT1 IF END OF PARAMETERS
  833. SA2 A1+TPSM MAJOR-KEY-INDEX
  834. SA2 X2
  835. BX7 X2
  836. SB4 X2+
  837. SA7 TPKT+THRL+TPSM MAJOR-KEY-LENGTH TO PACKET
  838. SRT1 SB2 TPSK KEY-AREA INDEX
  839. RJ CKF TRANSFER KEY
  840. NZ X7,SRT3 IF KEY-OFFSET ERROR
  841. SRT2 RJ RQS ISSUE *TAF/CRM* REQUEST
  842. SRT3 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  843. SX2 B6-TPSTF REQUIRED PARAMETER
  844. NG X2,STARTX IF NOT ENOUGH PARAMETERS
  845. ZR X2,STARTX IF END OF PARAMETERS
  846. SA2 A1+TPSF KEY-STATUS ADDRESS
  847. SA3 TPKT+THRL+TPSF KEY-STATUS
  848. BX7 X3
  849. SA7 X2
  850. EQ STARTX RETURN
  851. UNFLOCK SPACE 4,15
  852. ** UNFLOCK - UNLOCK FILE.
  853. *
  854. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  855. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  856. * (X1) = ADDRESS OF FIRST PARAMETER.
  857. *
  858. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  859. *
  860. * USES X - 7.
  861. * B - 2.
  862. *
  863. * CALLS PRT, RQS, RTS.
  864.  
  865.  
  866. UNFLOCK SUBR ENTRY/EXIT
  867. SB2 TPUFL MAXIMUM NUMBER OF PARAMETERS
  868. SX7 TRUF SUB-FUNCTION CODE
  869. RJ PRT PRESET
  870. RJ RQS ISSUE *TAF/CRM* REQUEST
  871. RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  872. EQ UNFLOCKX RETURN
  873. UNLOCK SPACE 4,15
  874. ** UNLOCK - UNLOCK RECORD.
  875. *
  876. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  877. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  878. * (X1) = ADDRESS OF FIRST PARAMETER.
  879. *
  880. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  881. *
  882. * USES X - 1, 2, 7.
  883. * A - 1, 2, 7.
  884. * B - 2, 4.
  885. *
  886. * CALLS PRT, CKF, RQS, RTT.
  887.  
  888. UNLOCK SUBR ENTRY/EXIT
  889. SB2 TPUCL MAXIMUM NUMBER OF PARAMETERS
  890. SX7 TRUC SUB-FUNCTION CODE
  891. RJ PRT PRESET
  892. SX7 B6-TPUCL CHECK NUMBER OF PARAMETERS
  893. NG X7,UNL1 IF NOT ENOUGH PARAMETERS
  894. SB2 TPKL KEY POSITION
  895. SB4 0 SET NO MAJOR-KEY-LENGTH
  896. RJ CKF TRANSFER KEY
  897. NZ X7,UNL2 IF KEY-OFFSET ERRORS
  898. UNL1 RJ RQS ISSUE *TAF/CRM* REQUEST
  899. UNL2 SA2 TPKT+THRL+TPTS TAF-STATUS FROM AAMI
  900. ZR X2,UNL3 IF NO ERRORS
  901. BX1 X2
  902. RJ RTT ISSUE ERROR MESSAGE
  903. UNL3 SX7 B6-TPPI MINIMUM NUMBER OF PARAMETERS
  904. NG X7,UNLOCKX IF NOT ENOUGH PARAMETERS
  905. SA2 A1+TPTS ADDRESS TO RETURN DBSTAT
  906. SA1 TPKT+THRL+TPTS TAF-STATUS FROM DBSTAT
  907. BX7 X1
  908. SA7 X2 TAF-STATUS TO PROGRAM
  909. EQ UNLOCKX RETURN
  910. WRITE SPACE 4,15
  911. ** WRITE - WRITE RECORD.
  912. *
  913. * ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  914. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  915. * (X1) = ADDRESS OF FIRST PARAMETER.
  916. *
  917. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  918. *
  919. * USES X - 7.
  920. * B - 2.
  921. *
  922. * CALLS WRR.
  923.  
  924.  
  925. WRITE SUBR ENTRY/EXIT
  926. SB2 TPWRL MAXIMUM NUMBER OF PARAMETERS
  927. SX7 TRWR SUB-FUNCTION CODE
  928. RJ WRR WRITE A RECORD
  929. EQ WRITEX RETURN
  930. TITLE UTILITIES FOR *CRM* FUNCTIONS.
  931. CKF SPACE 4,20
  932. ** CKF - CHECK KEY FIELD LENGTH.
  933. *
  934. * ENTRY (TSA1) = POINTER TO PARAMETER LIST.
  935. * (A1) = ADDRESS OF PARAMETER LIST.
  936. * (B2) = INDEX OF PARAMETER LIST FOR KEY-NAME.
  937. * (B3) = INDEX OF PACKET FOR KEY-NAME ADDRESS.
  938. * (B4) = MAJOR-KEY-LENGTH IF NON-ZERO.
  939. *
  940. * EXIT (TPKT+15) = KEY.
  941. * (X7) - ZERO, NO ERRORS.
  942. * (X7) - NON-ZERO, IF ERROR IN KEY-OFFSET.
  943. *
  944. * USES X - 1, 2, 3, 6, 7.
  945. * A - 2, 3, 6, 7.
  946. * B - 2, 4.
  947. *
  948. * MACRO GETFLC.
  949. *
  950. * CALL MST.
  951.  
  952.  
  953. CKF SUBR ENTRY/EXIT
  954. SA3 A1+B2 KEY-NAME ADDRESS
  955. SA2 A3+B1 KEY-OFFSET
  956. SA2 X2 VALUE OF KEY-OFFSET
  957. SX3 X3 ADDRESS ONLY
  958. ZR X2,CKF3 IF KEY-OFFSET ZERO
  959. NG X2,CKF3 IF KEY-OFFSET IS NEGATIVE
  960. SX1 TCHL NUMBER OF CHARACTERS IN A WORD
  961. BX7 X1
  962. BX6 X2
  963. IX6 X6/X7 NUMBER OF WORDS TO KEY-NAME
  964. IX7 X6+X3 ADDRESS PLUS NUMBER OF WORDS
  965. IX1 X1*X6 NUMBER OF CHARACTERS TO KEY-OFFSET
  966. IX2 X2-X1 KEY-OFFSET
  967. SX6 B1
  968. SA7 TPKT+THRL+B2 KEY-NAME ADDRESS
  969. SA6 A7+B1 SET KEY-OFF TO ONE FOR *TAF/CRM*
  970. SB2 X2 KEY-OFFSET FOR MOVE
  971. SX3 X7+ KEY-NAME ADDRESS FOR MOVE
  972. GETFLC CKFA FIELD LENGTH OF JOB
  973. SA2 CKFA MEMORY VALUE
  974. MX1 12 MASK FOR FIELD CENTRAL MEMORY
  975. BX2 X2*X1
  976. SX7 X7+TMKW ADDRESS OF KEY-NAME PLUS KEY
  977. LX2 17-59 POSITION FIELD LENGTH
  978. IX7 X7-X2 SUBTRACT KEY-NAME PLUS KEY SIZE
  979. NE B4,CKF1 IF NOT MAJOR-KEY-LENGTH
  980. SB4 TMKL MAXIMUM LENGTH OF KEY
  981. CKF1 NG X7,CKF2 IF KEY-NAME ADDRESS NOT TO LARGE
  982. SB4 TCHL REDUCE KEY MOVE TO ONE WORD
  983. CKF2 SB5 TKEY ADDRESS TO TRANSFER KEY
  984. SA2 X3 KEY-NAME TRANSFER
  985. SB2 B2-B1
  986. RJ MST MOVE KEY INTO PACKET
  987. BX7 X7-X7 SET NO ERRORS
  988. EQ CKFX RETURN
  989.  
  990. CKF3 SX7 TERQ INVALID KEY-OFFSET
  991. SA7 TPKT+THRL+TPCS *TAF/CRM* ERROR STATUS SET
  992. EQ CKFX RETURN
  993.  
  994.  
  995. CKFA BSSZ 1 FIELD LENGTH OF PROGRAM
  996. CWS SPACE 4,15
  997. ** CWS - CALCULATE *WSA* LENGTH.
  998. *
  999. * ENTRY (A1) = PARAMETER LIST ADDRESS.
  1000. *
  1001. * EXIT (LWRA) = *LWA* OF LAST *WSA*.
  1002. * (LWRB) = MASK FOR LAST *WSA*.
  1003. * (LWRC) = CONTENTS OF *LWA* OF *WSA*.
  1004. *
  1005. * USES X - 2, 3, 5, 6, 7.
  1006. * A - 2, 3, 6, 7.
  1007. * B - 4.
  1008.  
  1009.  
  1010. CWS SUBR ENTRY/EXIT
  1011. SX7 0
  1012. SX5 TCHL NUMBER OF CHARACTER IN A WORD
  1013. SA3 A1+TPWL WSA-LENGTH ADDRESS
  1014. SA7 LWRB VALUE OF MASK MUST BE ZERO
  1015. SA2 A3-B1 WSA-NAME ADDRESS
  1016. SA3 X3 VALUE OF LENGTH
  1017. SX6 X2
  1018. BX7 X3 VALUE OF WSA-LENGTH
  1019. SA6 TPKT+THRL+TPWS ADDRESS OF WSA INTO PACKET
  1020. PX5 X5 PACK CHARACTERS IN WORD
  1021. SA7 A6+B1 LENGTH OF WSA INTO PACKET
  1022. PX7 X7 PACK WSA-LENGTH
  1023. NX5 X5 NORMALIZE VALUE
  1024. FX7 X7/X5 DIVIDE LENGTH BY 10
  1025. UX7 B4,X7 UNPACK LENGTH IN WORDS
  1026. SX5 TCHL RESTORE CHARACTERS IN WORD
  1027. LX7 X7,B4 ADJUST LENGTH IN WORDS
  1028. SB4 X7 ADJUST WORD COUNT
  1029. SA2 X6+B4 ADDRESS AND VALUE OF LAST WORD
  1030. IX6 X5*X7 NUMBER OF CHARACTERS IN LAST WORD
  1031. BX7 X2 VALUE OF LAST WORD
  1032. IX5 X3-X6 NUMBER OF CHARACTERS IN LAST WORD
  1033. ZR X5,CWSX IF END ON WORD BOUNDRY
  1034. SX6 A2+ ADDRESS OF LAST WORD
  1035. SA7 LWRC VALUES OF LAST WORD
  1036. SA6 LWRA ADDRESS OF LAST WORD
  1037. LX7 X5,B1 THE NEXT LINES OF CODE WILL MULTIPLY BY 6
  1038. MX2 1
  1039.  
  1040. * THE NEXT LINES OF CODE WILL MULITIPLY THE NUMBER IN
  1041. * X5 BY 6. THE VALUES IN X5 WILL BE 1 THROUGH 9 WILL
  1042. * RESULT IN VALUSE OF 6 THROUGH 56 RESPECTIVELY.
  1043.  
  1044. LX5 X7,B1
  1045. SB4 X5-1
  1046. SB4 B4+X7
  1047. AX7 X2,B4 FORM MASK
  1048. BX7 -X7
  1049. SA7 LWRB SAVE MASK
  1050. EQ CWSX RETURN
  1051. DCF SPACE 4,15
  1052. ** DCF - DBCOMIT AND DBFREE PROCESSOR.
  1053. *
  1054. * ENTRY (B2) - NUMBER FOR PARAMETERS.
  1055. * (X7) - VALUE OF SUBFUNCTION.
  1056. *
  1057. * EXIT FUNCTION PROCESSED AND STATUS RETURNED.
  1058. *
  1059. * USES X - 1, 2, 7.
  1060. * A - 2, 7.
  1061. *
  1062. * CALLS PRT, RTT.
  1063.  
  1064.  
  1065. DCF SUBR ENTRY/EXIT
  1066. RJ PRT PRESET
  1067. SX7 0 CLEAR OUT LFN IN PACKET AREA
  1068. SA7 TPKT+THRL+TPSX CLEARED
  1069. RJ RQS ISSUE *TAF/CRM* REQUEST
  1070. SA2 TPKT+THRL+TPSX TAF-STATUS FROM AAMI
  1071. ZR X2,DCF1 IF NO ERRORS
  1072. BX1 X2
  1073. RJ RTT ISSUE ERROR MESSAGE
  1074. DCF1 SX7 B6-TPDCL NUMBER OF PARAMETERS
  1075. NG X7,DCFX IF NOT ENOUGH PARAMETERS
  1076. SA2 TPKT+THRL+TPSX TAF-STATUS
  1077. BX7 X2
  1078. SA7 X1 SET TAF-STATUS
  1079. EQ DCFX RETURN
  1080. LWR SPACE 4,15
  1081. ** LWR - LAST WORD AND RECORD LENGTH RESTORED.
  1082. *
  1083. * ENTRY (LWRB) = MASK FOR LAST WORD.
  1084. * (LWRA) = ADDRESS OF LAST WORD.
  1085. * (LWRC) = VALUE OF LAST WORD.
  1086. * (TPKT+7) = RECORD LENGTH OF READ.
  1087. * (A1) = POINTER TO PARAMETER LIST.
  1088. *
  1089. * (B2) = LENGTH TO PACKET HEADER
  1090. *
  1091. * EXIT RECORD LENGTH AND LAST WORD OF RECORD AREA
  1092. * RESTORED.
  1093. *
  1094. * USES X - 2, 3, 4, 6.
  1095. * A - 2, 3, 4, 6.
  1096. *
  1097. * NOTE (LWRA), (LWRB), AND (LWRC) ARE CONSECUTIVE
  1098. * LOCATIONS.
  1099.  
  1100.  
  1101. LWR SUBR ENTRY/EXIT
  1102. SA3 TPKT+THRL+TPRL NUMBER OF CHARACTERS FROM PACKET
  1103. SA2 A1+TPRL RECORD LENGTH
  1104. ZR X3,LWRX IF NO RECORD RETURNED
  1105. BX6 X3
  1106. SA6 X2 LENGTH OF RECORD READ
  1107. SA3 LWRA ADDRESS OF LAST WORD OF RECORD
  1108. SA2 A3+B1 MASK FOR LAST WORD IN RECORD
  1109. SA4 A2+B1 VALUE OF LAST WORD
  1110. SA3 X3+
  1111. ZR X2,LWRX IF END ON WORD BOUNDRY
  1112. BX4 X2*X4 LAST WORD
  1113. BX3 -X2*X3 CHARACTERS TO TRANSFER
  1114. BX6 X3+X4 VALUE OF OLD LAST WORD PLUS NEW
  1115. SA6 A3 RESTORE LAST WORD OF RECORD
  1116. EQ LWRX RETURN
  1117.  
  1118.  
  1119. LWRA BSSZ 1 ADDRESS OF LAST WORD OF WORKING STORAGE
  1120. LWRB BSSZ 1 MASK OF LAST WORD IN WORD STORAGE
  1121. LWRC BSSZ 1 VALUE OF LAST WORD IN RECORD
  1122. MST SPACE 4,15
  1123. ** MST - TO MOVE THE KEY TO PACKET AREA.
  1124. *
  1125. * ENTRY (B2) = CHARACTER POSITION OF GOOD DATA.
  1126. * (B5) = ADDRESS TO RECIEVE TEXT.
  1127. * (A2) = ADDRESS OF DATA STRING TO TRANSFER.
  1128. * (X2) = FIRST WORD OF DATA.
  1129. * (B4) = TOTAL NUMBER OF CHARACTERS TO TRANSFER.
  1130. *
  1131. * EXIT DATA TRANSFERED COMPLETE.
  1132. * (B6) - RESTORED TO NUMBER OF PARAMETERS.
  1133. *
  1134. * USES X - 1, 2, 3, 6, 7.
  1135. * A - 2, 6.
  1136. * B - 2, 3, 4, 5, 6.
  1137.  
  1138.  
  1139. MST2 MX1 1
  1140. LX7 X1,B4 SHIFT TO FORM MASK
  1141. LX1 X7,B1
  1142. BX1 X1*X7
  1143. BX6 X1*X6
  1144. SA2 TNPR NUMBER OF PARAMETERS IN CALL
  1145. SA6 B5
  1146. SB6 X2+ RESTORE NUMBER OF PARAMETERS
  1147.  
  1148. MST SUBR ENTRY/EXIT
  1149. SB3 B2+B2 CHANGE CHARACTER COUNT TO BIT COUNT
  1150. SB2 B3+B3
  1151. SB2 B2+B3
  1152. SB3 B4+B4 CHANGE NUMBER OF CHARACTERS
  1153. SB4 B3+B3
  1154. SB4 B4+B3
  1155. SB4 -B4 CHANGE TO MINUS BIT COUNT
  1156. SB3 B2-60
  1157. MX1 1
  1158. LX7 X1,B3
  1159. LX1 X7,B1
  1160. BX1 X1*X7
  1161. LX2 B2 POSITION STRING BEGINNING
  1162. BX3 X1*X2
  1163. BX6 X3
  1164. SB6 B3-B2
  1165. LT B3,B4,MST2 IF LAST WORD
  1166. MST1 SA2 A2+B1
  1167. LX2 B2
  1168. BX6 -X1*X2
  1169. BX6 X3+X6
  1170. BX3 X1*X2
  1171. GE B4,B6,MST2 IF LAST WORD
  1172. SB4 B4-B6
  1173. SA6 B5 STORE FIRST/NEXT WORD
  1174. SB5 B5+B1
  1175. EQ MST1 CONTINUE MOVE
  1176. MTS SPACE 4,15
  1177. ** MTS - TO MOVE TEXT TO STRING.
  1178. *
  1179. * ENTRY (A1) = ADDRESS TO TRANSMIT DATA.
  1180. * (X1) = FIRST DATA TO TRANSMIT.
  1181. * (A2) = ADDRESS TO RECIEVE DATA.
  1182. * (B2) = CHARACTER POSITION.
  1183. * (B4) = NUMBER OF CHARACTERS TO TRANSMIT.
  1184. *
  1185. * EXIT DATA TRANSFERED.
  1186. *
  1187. * USES X - 0, 2, 3, 4, 6, 7.
  1188. * A - 2, 6.
  1189. * B - 2, 3, 4.
  1190.  
  1191.  
  1192. MTS2 SA2 A6+1 FETCH RESERVED FIELD
  1193. MTS3 SB2 B4-60 REMAINING BITS TO TRANSFER
  1194. MX0 1
  1195. SB2 -B2
  1196. AX7 X0,B2
  1197. LX0 X7,B1
  1198. BX0 X0*X7
  1199. BX6 X0*X6 MERGE NEW RESERVED FIELD
  1200. BX2 -X0*X2
  1201. BX6 X2+X6
  1202. SA6 A2+ SET FIRST/LAST STRING WORD
  1203.  
  1204. MTS SUBR ENTRY/EXIT
  1205. SB3 B2-B1 CHANGE CHARACTERS TO BITS
  1206. SB3 B3+B3
  1207. SB2 B3+B3
  1208. SB2 B3+B2 STARTING BIT POSITION TO TRANSFER
  1209. SB3 B4+B4 CHANGE CHARACTERS TO BITS
  1210. SB4 B3+B3
  1211. SB4 B3+B4 NUMBER OF BITS TO TRANSFER
  1212. SB4 -B4 NEGATIVE BITS
  1213. SB3 B2-60
  1214. MX0 1
  1215. AX7 X0,B2
  1216. LX0 X7,B1
  1217. BX0 X0*X7
  1218. AX1 B3 POSITION TEXT
  1219. BX4 -X0*X1
  1220. BX3 X0*X1
  1221. SA1 A1+B1 FETCH NEXT WORD OF TEXT
  1222. BX6 X0*X2
  1223. BX6 X4+X6
  1224. SB4 B4-B3
  1225. PL B4,MTS3 IF MOVE IS COMPLETE
  1226. SA6 A2 STORE FIRST STRING WORD
  1227. MTS1 AX1 B3
  1228. BX4 -X0*X1
  1229. BX6 X3+X4
  1230. BX3 X0*X1
  1231. SB4 B4+60
  1232. PL B4,MTS2 IF MOVE IS COMPLETED
  1233. SA1 A1+B1
  1234. SA6 A6+B1 STORE NEXT STRING WORD
  1235. EQ MTS1 CONTINUE MOVE
  1236. PRT SPACE 4,20
  1237. ** PRT - PRESET PACKET AND HEADER WORDS.
  1238. *
  1239. * ENTRY (A1) = ADDRESS TO PARAMETER LIST.
  1240. * (X1) = ADDRESS OF FIRST PARAMETER.
  1241. * (X7) = SUB-FUNCTION CODE.
  1242. *
  1243. * EXIT (TSA1) = ADDRESS OF PARAMETER LIST.
  1244. * (RQSB) = HEADER WORD SET FOR *TAF/CRM*.
  1245. * (TPKT) = INITIALIZED TO ZERO.
  1246. * (TPKT+2) = VALUE OF FIRST PARAMETER.
  1247. * (TNPR) = NUMBER OF PARAMETERS.
  1248. * (TFCD) = NAME CURRENT SUB-FUNCTION.
  1249. * (A1) = ADDRESS TO PARAMETER LIST.
  1250. * (X1) = ADDRESS OF FIRST PARAMETER.
  1251. * (B1) = 1.
  1252. * (B6) = NUMBER OF PARAMETERS.
  1253. *
  1254. * USES X - 2, 6, 7.
  1255. * A - 2, 6, 7.
  1256. * B - 1, 6.
  1257.  
  1258.  
  1259. PRT SUBR ENTRY/EXIT
  1260. SA2 PRTA+X7 FUNCTION NAME OF CALLING
  1261. SB1 1
  1262. BX6 X2
  1263. SB6 BUFE-1-TPKT LAST ADDRESS MINUS THE STARTING ADDRESS
  1264. SA6 TFCD SET FUNCTION CODE NAME
  1265. SX6 0
  1266. PRT1 SA6 TPKT+B6 CLEAR CELLS
  1267. SB6 B6-1
  1268. PL B6,PRT1 IF NOT LAST CELL
  1269. SX6 A1+
  1270. SA2 X1+ VALUE OF FIRST
  1271. SA6 TSA1 SAVE PARAMETER LIST ADDRESS
  1272. BX6 X2
  1273. SB6 B0
  1274. SA6 TPKT+THRL+TPFN FIRST PARAMETER VALUE
  1275. PRT2 SA2 A1+B6 NEXT PARAMETER ADDRESS
  1276. ZR X2,PRT3 IF END OF PARAMETER LIST
  1277. SB6 B6+B1 PARAMETER COUNT
  1278. LT B6,B2,PRT2 IF NOT MAXIMUM PARAMETERS
  1279. PRT3 SX6 B6 PARAMETER COUNT
  1280. SX2 B6
  1281. LX7 35-11 POSITION SUB-FUNCTION
  1282. LX2 23-5 POSITION COUNT
  1283. SA6 TNPR SET NUMBER OF PARAMETER PASSED
  1284. BX7 X2+X7 MASK SUB-FUNCTION AND PARAMETER COUNT
  1285. PX7 X7 PUT FUNCTION CODE INTO POSITION
  1286. SA7 RQSB HEADER WORD (TPKT+1) FOR *TAF/CRM* CALL
  1287. EQ PRTX RETURN
  1288.  
  1289. PRTA DATA C*CLOSE*
  1290. DATA C*DELETE*
  1291. DATA C*LOCK*
  1292. DATA C*FLOCK*
  1293. DATA C*OPEN*
  1294. DATA C*READ*
  1295. DATA C*READL*
  1296. DATA C*READM*
  1297. DATA C*READN*
  1298. DATA C*READNL*
  1299. DATA C*REWIND*
  1300. DATA C*REWRITE*
  1301. DATA C*SKIPBL*
  1302. DATA C*SKIPFL*
  1303. DATA C*UNLOCK*
  1304. DATA C*UNFLOCK*
  1305. DATA C*WRITE*
  1306. DATA C*START*
  1307. DATA C*DBEGIN*
  1308. DATA C*DBCOMIT*
  1309. DATA C*DBFREE*
  1310. DATA C*DBSTAT*
  1311. RTT SPACE 4,20
  1312. RAD SPACE 4,20
  1313. ** RAD - READ AND READL PROCESSOR.
  1314. *
  1315. * ENTRY (X2) = MAXIMUM PARAMTER COUNT.
  1316. * (X7) = SUB-FUNCION CODE.
  1317. *
  1318. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  1319. *
  1320. * USES X - 1, 2, 3, 7.
  1321. * A - 1, 2, 3, 7.
  1322. * B - 2, 4.
  1323. *
  1324. * CALLS CWS, CKF, PRT, RQS, RTS, RKA, LWR.
  1325.  
  1326.  
  1327. RAD SUBR ENTRY/EXIT
  1328. RJ PRT PRESET
  1329. SX7 B6-TPRDF REQUIRED NUMBER OF PARAMETERS
  1330. NG X7,RAD2 IF NOT ENOUGH PARAMETERS
  1331. RJ CWS CALCULATE LENGTH OF RECORD
  1332. SX7 B6-TPRK PARAMETERS REQUIRED FOR KEY-IDENTIFIER
  1333. NG X7,RAD1 IF END OF PARAMETER LIST
  1334. SA2 A1+TPRO KEY-IDENTIFIER
  1335. SA2 X2 VALUE OF KEY-IDENTIFIER
  1336. BX7 X2
  1337. SA7 TPKT+THRL+TPRO KEY-IDENTIFER INTO PACKET
  1338. SX2 B6-TPRLL
  1339. NG X2,RAD1 IF END OF PARAMETER LIST
  1340. SA3 A1+TPRR ADDRESS OF KEY-AREA-LENGTH
  1341. SA2 A3-B1 ADDRESS OF KEY-AREA
  1342. SA3 X3 VALUE
  1343. SX7 X2+ ADDRESS OF KEY-AREA
  1344. SA7 TPKT+THRL+TPRK KEY-AREA ADDRESS TO PACKET
  1345. BX7 X3
  1346. SA7 A7+B1 KEY-AREA-LENGTH INTO PACKET
  1347. RAD1 SB2 TPKA KEY-AREA
  1348. SB4 0 SET NO MAJOR-KEY-LENGTH
  1349. RJ CKF CHECK FIELD LENGTH AND MOVE KEY
  1350. NZ X7,RAD3 IF KEY-OFFSET ERROR
  1351. RAD2 RJ RQS ISSUE *TAF/CRM* REQUEST
  1352. RAD3 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  1353. SA2 TPKT+THRL+TPCS *TAF/CRM* STATUS
  1354. NZ X2,RADX IF ERROR RETURN
  1355. RJ LWR RESTORE LAST WORD AND RECORD LENGTH
  1356. SX2 B6-TPRDF REQUIRED NUMBER OF PARAMETERS
  1357. NG X2,RADX IF LESS THEN REQUIRED
  1358. ZR X2,RADX IF END OF LIST
  1359. SA3 TPKT+THRL+TPRDF KEY-STATUS RESULTS
  1360. SA2 A1+TPRDF KEY-STATUS ADDRESS
  1361. BX7 X3
  1362. SA7 X2 SET KEY-STATUS
  1363. SX2 B6-TPRDL PARAMETERS REQUIRED FOR LOCK STATUS
  1364. NG X2,RAD4 IF END OF PARAMETER LIST
  1365. SA2 TPKT+THRL+TPLB
  1366. SA3 A1+TPLB LOCK STATUS ADDRESS
  1367. BX7 X2
  1368. SA7 X3 RETURN LOCK STATUS
  1369. RAD4 SX3 B6-TPRLL PARAMETERS REQUIRED FOR KEY-AREA
  1370. NG X3,RADX IF END OF PARAMETER LIST
  1371. SA2 A1+TPRK KEY-AREA ADDRESS
  1372. RJ RKA RETURN KEY-AREA
  1373. EQ RADX RETURN
  1374. RDM SPACE 4,20
  1375. ** RDM - READM/READNL/READN PROCESSOR.
  1376. *
  1377. * ENTRY (B2) = MAXIMUM NUMBER OF PARAMETERS.
  1378. * (X0) = NONZERO IF CALLED BY READM FUNCTION.
  1379. * (X7) = SUB-FUNCTION CODE.
  1380. *
  1381. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  1382. *
  1383. * USES X - 1, 2, 3, 6, 7.
  1384. * A - 1, 2, 3, 6, 7.
  1385. * B - 2, 4.
  1386. *
  1387. * CALLS CWS, CKF, PRT, RKA, RQS, RTS.
  1388.  
  1389.  
  1390. RDM SUBR ENTRY/EXIT
  1391. RJ PRT PRESET
  1392. SX1 B6-TPRL PARAMETERS REQUIRED FOR *CWS*
  1393. NG X1,RDM2 IF NOT ENOUGH PARAMETERS
  1394. RJ CWS WSA-NAME AND WSA-LENGTH
  1395. SB4 0 SET NO MAJOR-KEY-LENGTH
  1396. SX1 B6-TPRNF REQUIRED NUMBER OF PARAMETERS
  1397. NG X1,RDM2 IF NOT ENOUGH PARAMETERS
  1398. SA2 A1+TPKW KEY-AREA ADDRESS
  1399. SA3 A2+B1 KEY-AREA-LENGTH ADDRESS
  1400. SX7 X2 ADDRESS OF KEY-AREA
  1401. SA3 X3 VALUE OF KEY-AREA-LENGTH
  1402. SX6 X3 VALUE
  1403. SA7 TPKT+THRL+TPKW KEY-AREA ADDRESS TO PACKET
  1404. SA6 TPKT+THRL+TPLN VALUE OF KEY-AREA-LENGTH
  1405. ZR X1,RDM2 IF END OF PARAMETERS
  1406. ZR X0,RDM2 IF CALLED BY READN OR READNL
  1407. SX1 B6-TPRMF PARAMETERS REQUIRED FOR READM
  1408. NG X1,RDM2 IF NOT PARAMETERS FOR READM
  1409. SA2 A1+TPMM ADDRESS OF MAJOR-KEY-LENGTH
  1410. SA2 X2+ VALUE OF MAJOR-KEY-LENGTH
  1411. SB4 X2
  1412. BX7 X2
  1413. SA7 TPKT+THRL+TPMM MAJOR-KEY-LENGTH INTO PACKET
  1414. ZR X1,RDM1 IF END OF PARAMETER LIST
  1415. SX1 B6-TPRDL PARAMETERS REQUIRED FOR KEY-IDENTIFIER
  1416. NZ X1,RDM1 IF NO KEY-IDENTIFIER
  1417. SA3 A1+TPMO ADDRESS OF KEY-IDENTIFIER
  1418. SA3 X3 VALUE
  1419. BX7 X3
  1420. SA7 TPKT+THRL+TPMO VALUE OF KEY-IDENTIFIER INTO PACKET
  1421. RDM1 SB2 TPYM INDEX TO PARAMETER LIST FOR KEY-NAME
  1422. RJ CKF CHECK AND TRANSFER KEY INTO PACKET
  1423. NZ X7,RDM3 IF KEY-OFFSET ERRORS
  1424. RDM2 RJ RQS ISSUE *TAF/CRM* REQUEST
  1425. RDM3 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  1426. SX7 B6-TPRNF REQUIRED NUMBER OF PARAMETERS
  1427. SA2 TPKT+THRL+TPCS *CRM* STATUS
  1428. NG X7,RDMX IF NOT ENOUGH PARAMETERS
  1429. NZ X2,RDMX IF ERROR RETURN
  1430. RJ LWR LAST WORD OF RECORD AND RECORD LENGTH
  1431. NZ X0,RDM4 IF NOT CALLED BY READN OR READNL
  1432. ZR X7,RDM6 IF END OF PARAMETER LIST
  1433. SA3 TPKT+THRL+TPRNF KEY-STATUS RESULTS
  1434. SA2 A1+TPRNF ADDRESS OF KEY-STATUS FOR READN OR READNL
  1435. BX7 X3 KEY-STATUS
  1436. SA7 X2 SAVE KEY-STATUS
  1437. SX2 B6-TPRNL
  1438. NG X2,RDM6 IF END OF PARAMETER LIST
  1439. SA3 TPKT+THRL+TPLA GET LOCK STATUS
  1440. SA2 A1+TPLA LOCK STATUS ADDRESS
  1441. EQ RDM5 PROCESS LOCK STATUS
  1442.  
  1443. RDM4 SX7 B6-TPRMF REQUIRED PARAMETERS FOR READM
  1444. NG X7,RDMX IF NOT ENOUGH PARAMETERS
  1445. ZR X7,RDM6 IF NOT KEY-STATUS
  1446. SA3 TPKT+THRL+TPMS KEY-STATUS FROM PACKET
  1447. SA2 A1+TPMS ADDRESS OF KEY-STATUS
  1448. BX7 X3 KEY-STATUS
  1449. SA7 X2 SAVE KEY-STATUS
  1450. SX2 B6-TPRML PARAMETERS REQUIRED FOR LOCK STATUS
  1451. NG X2,RDM6 IF END OF PARAMETER LIST
  1452. SA3 TPKT+THRL+TPLC LOCK STATUS
  1453. SA2 A1+TPLC GET LOCK STATUS ADDRESS
  1454. RDM5 BX7 X3
  1455. SA7 X2+
  1456. RDM6 SA2 A1+TPKW KEY-AREA ADDRESS
  1457. RJ RKA RETURN KEY-AREA
  1458. EQ RDMX RETURN
  1459. RKA SPACE 4,15
  1460. ** RKA - RETURN KEY-AREA.
  1461. *
  1462. * ENTRY (TPKT) = RESULTS OF *TAF/CRM* REQUEST.
  1463. * (A1) = POINTER TO PARAMETER LIST.
  1464. * (A2) = POINTER TO KEY-AREA ADDRESS.
  1465. * (X2) = ADDRESS OF KEY-AREA.
  1466. *
  1467. * EXIT KEY-AREA (PRIMARY KEY) PROCESSED.
  1468. *
  1469. * USES X - 1, 2, 3, 7.
  1470. * A - 1, 2, 3.
  1471. * B - 2, 3, 4, 6.
  1472. *
  1473. * CALLS MTS.
  1474.  
  1475.  
  1476. RKA SUBR ENTRY/EXIT
  1477. SA1 A1+TPWS WORKING-STORGE-ADDRESS (WSA)
  1478. SB2 X1 ADDRESS OF WSA
  1479. SB3 X2 ADDRESS OF KEY-AREA
  1480. EQ B2,B3,RKAX IF SAME ADDRESS RETURN
  1481. SX1 TCHL LENGTH OF WORD IN CHARACTERS
  1482. SA3 TPKT+THRL+TPRL RECORD LENGTH FROM PACKET
  1483. SA2 A2+B1 KEY-AREA-LENGTH ADDRESS
  1484. SA2 X2 VALUE
  1485. SX7 X1-1 LENGTH OF WORD MINUS ONE (1)
  1486. SB4 X2+ LENGTH OF KEY-AREA IN CHARACTERS
  1487. GT B3,B2,RKA1 IF KEY-AREA ADDRESS IS BELOW WSA
  1488.  
  1489. * KEY-AREA ADDRESS IS ABOVE WORKING-STORAGE ADDRESS.
  1490.  
  1491. IX2 X2+X7 ROUND UP CHARACTERS
  1492. IX2 X2/X1 CHANGE CHARACTERS TO WORDS
  1493. SB6 X2+B3 KEY-AREA ADDRESS PLUS KEY-AREA-LENGTH
  1494. SB6 B6-1 ADJUST FOR INDEX
  1495. LT B6,B2,RKA2 IF KEY-AREA DOES NOT GO INTO RECORD
  1496. SX1 TCHL LENGTH OF WORD IN CHARACTERS
  1497. SX3 B2-B3 DIFFERENCE IN KEY-AREA AND WSA
  1498. IX3 X3*X1 NUMBER OF CHARACTERS
  1499. SB4 X3+ ADJUSTED KEY-LENGTH
  1500. EQ RKA2 GO MOVE PART OF KEY
  1501.  
  1502. * KEY-AREA ADDRESS IS BELOW WORKING-STORAGE ADDRESS.
  1503.  
  1504. RKA1 IX3 X3+X7 ROUND UP CHARACTERS OF RECORD LENGTH
  1505. IX3 X3/X1 NUMBER OF WORD
  1506. SB6 X3 NUMBER OF WORD MINUS ONE (1)
  1507. SB6 B2+B6 END OF RECORD AREA
  1508. SB6 B6-B1 ADJUST ADDRESS
  1509. LE B3,B6,RKAX IF KEY-AREA IS IN RECORD AREA
  1510.  
  1511. RKA2 SB2 B1 STARTING POSITION
  1512. SA2 B3 KEY-AREA ADDRESS
  1513. SA1 TKEY KEY-AREA IN PACKET
  1514. RJ MTS TRANSFER KEY TO KEY-AREA
  1515. EQ RKAX RETURN
  1516. RTS SPACE 4,20
  1517. ** RTS - RETURN STATUS CODES.
  1518. *
  1519. * ENTRY (TPKT+2) = TAF STATUS RETURNED.
  1520. * (A1) = POINTER TO PARAMETER LIST.
  1521. * (X1) = ADDRESS OF FIRST PARAMETER.
  1522. * (B6) = NUMBER OF PARAMETERS.
  1523. *
  1524. * EXIT *TAF* AND *CRM* STATUS SET IN PROGRAM.
  1525. * (A1) = POINTER TO ADDRESS LIST.
  1526. * (X1) = ADDRESS OF FIRST PARAMETER.
  1527. *
  1528. * USES X - 1, 2, 3, 6.
  1529. * A - 1, 2, 3, 6.
  1530. *
  1531. * MACROS MESSAGE.
  1532. *
  1533. * CALLS COD, RTT, SNM.
  1534.  
  1535.  
  1536. RTS SUBR ENTRY/EXIT
  1537. SA1 TPKT+THRL+TPTS VALUE OF TAF-STATUS FROM TAF
  1538. ZR X1,RTS1 IF NO ERROR
  1539. RJ RTT TAF-STATUS CODE
  1540. RTS1 SA1 TPKT+THRL+TPCS VALUE OF CRM-STATUS FROM AAMI
  1541. ZR X1,RTS2 IF STATUS OF ZERO
  1542. RJ COD CONVERT ERROR CODE TO DISPLAY
  1543. MX3 24 MASK FOR ERROR CODE
  1544. SB2 1RX REPLACEMENT CHARACTER
  1545. BX1 X3*X4 ERROR CODE
  1546. SB3 RTCB ASSEMBLY AREA
  1547. SB5 -RTCA FWA OF MESSAGE
  1548. RJ SNM SET NAME IN MESSAGE
  1549. SA1 TFCD FUNCTION CODE NAME
  1550. SB2 1RY REPLACEMENT CHARACTER
  1551. SB5 RTCB FWA OF MESSAGE
  1552. RJ SNM SET NAME IN MESSAGE
  1553. MESSAGE RTCB,0,R
  1554. RTS2 SA1 TSA1 RESTORE ADDRESS TO PARAMETER LIST
  1555. SA1 X1+
  1556. LE B6,B1,RTSX IF NOT ENOUGH PARAMETERS
  1557. SA3 TPKT+THRL+TPTS VALUE OF TAF-STATUS FROM AAMI
  1558. SA2 A1+TPTS
  1559. BX6 X3
  1560. SA6 X2 STORE TAF-STATUS
  1561. SX3 B6-TPOPL PARAMETERS FOR *TAF/CRM* STATUS
  1562. NG X3,RTSX IF END OF PARAMETER LIST
  1563. SA2 A1+TPCS ADDRESS OF CRM-STATUS
  1564. SA3 TPKT+THRL+TPCS CRM-STATUS FROM AAMI
  1565. BX6 X3
  1566. SA6 X2
  1567. EQ RTSX RETURN
  1568.  
  1569. RTCA DATA C* TAF/CRM CRM STATUS XXXXB IN FUNCTION YYYYYYY.*
  1570. RTCB BSSZ *+1-RTCA ASSEMBLY AREA FOR *SNM*
  1571. RTT SPACE 4,15
  1572. ** RTT - RETURN TAF-STATUS.
  1573. *
  1574. * ENTRY (X1) - TAF-STATUS FORM *TAF/CRM* REQUEST (TPKT).
  1575. * (RTTB) - LOCATION TO PUT MESSAGE ERROR CODE.
  1576. * (RTTC) - LOCATION TO PUT FUNCTION NAME.
  1577. * (TFCD) - NAME OF FUNCTION.
  1578. *
  1579. * EXIT - ERROR MESSAGE ISSUED TO DAYFILE.
  1580. * (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
  1581. * WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
  1582. * (X1) = ADDRESS OF FIRST PARAMETER.
  1583. *
  1584. * USES X - 1, 2, 3, 5, 6.
  1585. * A - 1, 2, 3, 6.
  1586. *
  1587. * MACROS MESSAGE, ABORT.
  1588. *
  1589. * CALLS CDD, SNM.
  1590.  
  1591.  
  1592. RTT SUBR ENTRY/EXIT
  1593. SX5 X1-TTENL FATAL ERROR STATUS FROM AAMI
  1594. RJ CDD CONVERT TO DECIMAL DISPLAY CODE
  1595. MX3 24 MASK FOR ERROR CODE
  1596. SB2 1RX REPLACEMENT CHARACTER
  1597. BX1 X3*X4 ERROR CODE
  1598. SB3 RTCB ASSEMBLY AREA
  1599. SB5 -RTTA FWA OF MESSAGE
  1600. RJ SNM SET NAME IN MESSAGE
  1601. SA1 TFCD FUNCTION CODE NAME
  1602. SB2 1RY REPLACEMENT CHARACTER
  1603. SB5 RTCB FWA OF MESSAGE
  1604. RJ SNM SET NAME IN MESSAGE
  1605. MESSAGE RTCB,0,R
  1606. SA1 TSA1 RESTORE PARAMETER LIST ADDRESS
  1607. SA1 X1+
  1608. NG X5,RTTX IF NOT A FATAL ERROR
  1609. ABORT ABORT DUE TO FATAL *TAF/CRM* ERRORS
  1610.  
  1611. RTTA DATA C* TAF/CRM TAF STATUS XXXX IN FUNCTION YYYYYYY.*
  1612. RQS SPACE 4,20
  1613. ** RQS - REQUEST *TAF/CRM* SUBSYSTEM.
  1614. *
  1615. * ENTRY (RQSA) = HEADER WORD ONE.
  1616. * (RQSB) = HEADER WORD TWO.
  1617. * (TPKT) = FUNCTION PARAMETERS.
  1618. *
  1619. * EXIT (TPKT) = RESULTS FROM *TAF/CRM*.
  1620. *
  1621. * USES X - 1, 2, 6, 7.
  1622. * A - 1, 2, 6, 7.
  1623. * B - 4.
  1624. *
  1625. * MACROS CALLSS, ABORT, MESSAGE, RECALL.
  1626.  
  1627.  
  1628. RQS SUBR ENTRY/EXIT
  1629. RQS1 SA1 RQSA FIRST WORD OF HEADER
  1630. SA2 RQSB SECOND HEADER WORD FOR *TAF/CRM*
  1631. BX7 X1
  1632. BX6 X2
  1633. SA7 TPKT FIRST WORD OF PACKET AREA
  1634. SA6 A7+B1 *UPC* INTERFACE WORD
  1635. CALLSS /SSD/TRSI,TPKT,R *UCP* CALL TO TAF VIA MONITOR
  1636. RQS2 SA1 A7 CHECK FOR RESPONSE
  1637. LX1 59-0 RESPONSE IN BIT (0)
  1638. NG X1,RQS3 IF CALL TO *TAF/CRM* COMPLETE
  1639. RECALL
  1640. EQ RQS2 IF COMPLETE NOT SET
  1641.  
  1642. RQS3 SX2 7776B MASK FOR ERRORS
  1643. LX1 0-0-59+0 SHIFT RESPONSE
  1644. SB4 B0 TABLE INCREMENT COUNT TO ZERO
  1645. BX2 X1*X2
  1646. ZR X2,RQS5 IF NO ERRORS
  1647. RQS4 SA1 RQSS+B4 SUBSYSTEM ERROR CODES
  1648. SX7 X1
  1649. IX7 X2-X7 SUBTRACT CODES
  1650. SB4 B4+1 INCREMENT TABLE INDEX
  1651. ZR X7,RQS7 IF MATCH OF ERROR CODES
  1652. ZR X1,RQS11 IF END OF TABLE
  1653. EQ RQS4 LOOK AT NEXT
  1654.  
  1655. RQS5 SA1 TPKT+1 LOOK AT SECOND WORD OF HEADER FOR ERRORS
  1656. MX2 -12 MASK FOR ERROR CODES
  1657. BX2 -X2*X1 MASK OFF RESPONSE
  1658. ZR X2,RQS1 IF NO RESPONSE
  1659. RQS6 SA1 RQST+B4 LOOK AT ALL ERROR CODES
  1660. SX7 X1
  1661. IX7 X7-X2 SUBTRACT OFF ERROR CODES
  1662. SB4 B4+1 INCREMENT TABLE INDEX
  1663. ZR X7,RQS7 IF MATCH OF ERROR CODES
  1664. ZR X2,RQS11 IF NO MATCH OF ERROR CODES
  1665. EQ RQS6 GET NEXT ERROR CODE
  1666.  
  1667. RQS7 LX1 17-59 SHIFT ADDRESS OF MESSAGE
  1668. SX2 X1 ADDRESS OF MESSAGE
  1669. LX1 17-41-17+59 ADDRESS OF ROUTINE
  1670. SB4 X1
  1671. ZR X2,RQS8 IF NOT ERROR MESSAGE
  1672. MX7 -6 MASK FOR DISPLAY DAYFILE
  1673. LX1 5-23-17+41 SHIFT DISPLAY MESSAGE AREA
  1674. BX7 -X7*X1 MASK OFF DISPLAY VALUE
  1675. MESSAGE X2,X7,R ISSUE ERROR MESSAGE
  1676. RQS8 SA1 TSA1 RESTORE TO PARAMETER LIST ADDRESS
  1677. SA1 X1+
  1678. JP B4 GO TO ROUTINE FOR PROCESSING
  1679.  
  1680. RQS9 SA1 0 LOCATION ZERO OF *CP* RA+0
  1681. SX7 1
  1682. LX7 12-0 SHIFT *PAUSE* BIT
  1683. BX7 X1+X7
  1684. SA7 0 SET IN RA+0
  1685. RQS10 RECALL RECALL BEFOR RETRY
  1686. SA1 B0 RA+0
  1687. LX1 59-12 SHIFT TO POSITION FOR TEST
  1688. NG X1,RQS10 IF *PAUSE* BIT NOT CLEARED
  1689. EQ RQS1 *GO* ENTERED REISSUE REQUEST
  1690.  
  1691. RQS11 MESSAGE RQML,0,R TAF ERROR NOT DEFINED
  1692. RQS12 ABORT TERMINATE PROCESSING
  1693.  
  1694.  
  1695. RQSA VFD 24/0LTAF,12/0,6/40,4/0,2/3,11/0,1/0
  1696. RQSB BSSZ 1 SECOND WORD OF HEADER
  1697.  
  1698.  
  1699. * ERROR MESSAGES FOR *RQS* FROM *TAF/CRM*.
  1700.  
  1701.  
  1702. RQST EQU * SECOND HEADER WORD ERROR CODE
  1703. FCTM ,RQSX,,JSRC REQUEST COMPLETE
  1704. FCTM RQMA,RQS9,0,JSNU *TAF* SUBSYSTEM NOT UP
  1705. FCTM RQMB,RQS1,1,JSTB *TAF* SUBSYSTEM BUSY
  1706. FCTM RQMJ,RQS12,0,JSND SUBSYSTEM NOT DEFINED AS *SCP*
  1707. FCTM RQMI,RQS9,0,JSTI *TAF* DEFINED - *TAF* IDLE
  1708. FCTM RQMD,RQS12,0,JSNV USER NOT VALID FOR *TAF* ACCESS
  1709. FCTM RQME,RQS12,0,JSUA USER NAME ACTIVE
  1710. FCTM RQMK,RQS12,0,JSAT CONFLICT IN ACCESS TYPE
  1711. FCTM RQMG,RQS12,0,JSFL DATA NOT WITHIN *UCP* FL
  1712. FCTM RQMF,RQS12,0,JSOR TWO OUTSTANDING REQUEST
  1713. FCTM RQMC,RQS12,0,JSFC *TAF* FUNCTION CODE NOT VALID
  1714. FCTM RQMM,RQS12,0,JSRE RECOVERY REQUEST ERROR
  1715. FCTM RQMN,RQS12,0,JSDC BATCH CONCURRENCY DISABLED
  1716. FCTM RQMO,RQS12,0,JSNC TAF/CRM DATA MANAGER NOT IN TAF
  1717. CON 0 END OF LIST
  1718.  
  1719.  
  1720. RQSS EQU * FIRST HEADER WORD ERROR CODES
  1721. FCTM RQMA,RQS9,0,/SCP/ES1 SUBSYSTEM NOT PRESENT
  1722. FCTM RQMB,RQS1,1,/SCP/ES2 SUBSYSTEM BUSY
  1723. FCTM RQMJ,RQS12,0,/SCP/ES3 SSID INCORRECT
  1724. CON 0 END OF LIST
  1725.  
  1726.  
  1727. RQMA DATA C* TAF NOT PRESENT (GO OR DROP).*
  1728.  
  1729. RQMB DATA C* TAF SUBSYSTEM BUSY. *
  1730.  
  1731. RQMC DATA C* TAF FUNCTION CODE NOT VALID.*
  1732.  
  1733. RQMD DATA C* TAF USER NOT VALID FOR TAF ACCESS.*
  1734.  
  1735. RQME DATA C* TAF USER NAME ACTIVE.*
  1736.  
  1737. RQMF DATA C* TAF TWO OUTSTANDING REQUESTS.*
  1738.  
  1739. RQMG DATA C* TAF DATA NOT WITHIN UCP FL.*
  1740.  
  1741. RQMI DATA C* TAF IDLE (GO OR DROP).*
  1742.  
  1743. RQMJ DATA C* TAF SUBSYSTEM NOT DEFINED AS A SCP.*
  1744.  
  1745. RQMK DATA C* TAF USER CONFLICT IN ACCESS TYPE.*
  1746.  
  1747. RQML DATA C* TAF ERROR CODE NOT DEFINED.*
  1748.  
  1749. RQMM DATA C* TAF RECOVERY REQUEST ERROR.*
  1750.  
  1751. RQMN DATA C* BATCH CONCURRENCY DISABLED.*
  1752.  
  1753. RQMO DATA C* TAF/CRM DATA MANAGER NOT LOADED IN TAF.*
  1754. SKP SPACE 4,15
  1755. ** SKP - SKIP FUNCTION PROCESSOR.
  1756. *
  1757. * ENTRY (B2) = NUMBER OF PARAMETERS.
  1758. * (X7) = SUB-FUNCTION CODE.
  1759. *
  1760. * EXIT FUNCTION COMPETED AND STATUS RETURNED.
  1761. *
  1762. * USES X - 2, 7.
  1763. * A - 2, 7.
  1764. * B - 2.
  1765. *
  1766. * CALLS PRT, RQS, RTS.
  1767.  
  1768.  
  1769. SKP SUBR ENTRY/EXIT
  1770. RJ PRT PRESET
  1771. SB2 TPSBL NUMBER OF PARAMETERS
  1772. LT B6,B2,SKP1 IF NOT ENOUGH PARAMETERS
  1773. SA2 A1+TPCT COUNT ADDRESS
  1774. SA2 X2 VALUE OF COUNT
  1775. BX7 X2
  1776. SA7 TPKT+THRL+TPCT PUT COUNT IN PACKET
  1777. SKP1 RJ RQS ISSUE *TAF/CRM* REQUEST
  1778. RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  1779. EQ SKPX RETURN
  1780. WRR SPACE 4,15
  1781. ** WRR - WRITE AND REWRITE A RECORD.
  1782. *
  1783. * ENTRY (B2) - MAXIMUM NUMBER OF PARAMETERS.
  1784. * (X7) - FUNCTION CODE.
  1785. *
  1786. * EXIT FUNCTION COMPLETED AND STATUS RETURNED.
  1787. *
  1788. * USES X - 1, 2, 3, 7.
  1789. * A - 1, 2, 3, 7.
  1790. * B - 2, 4.
  1791. *
  1792. * CALLS CKF, MTS, PRT, RQS, RTS.
  1793.  
  1794.  
  1795.  
  1796. WRR SUBR ENTRY/EXIT
  1797. RJ PRT PRESET
  1798. SB2 TPWRF PARAMETERS NEEDED
  1799. LT B6,B2,WRR2 IF NOT ENOUGH PARAMETERS
  1800. SA3 A1+TPWR ADDRESS OF RECORD LENGTH
  1801. SA2 A1+TPWS ADDRESS OF WSA-NAME
  1802. SX7 X2
  1803. SA3 X3 VALUE OF RECORD LENGTH
  1804. SA7 TPKT+THRL+TPWS STORE ADDRESS INTO PACKET
  1805. BX7 X3
  1806. SB4 TPWRL NUMBER OF PARAMETERS NEEDED FOR KEY-AREA
  1807. SA7 TPKT+THRL+TPWR RECORD LENGTH INTO PACKET
  1808. EQ B6,B2,WRR1 IF END OF PARAMETER LIST
  1809. LT B6,B4,WRR1 IF NO KEY-AREA AND KEY-AREA-LENGTH
  1810. SA3 A1+TPWY ADDRESS OF KEY-AREA-LENGTH
  1811. SA2 A1+TPWX ADDRESS OF KEY-AREA
  1812. SX7 X2 ADDRESS OF KEY-AREA
  1813. SA3 X3 VALUE OF KEY-AREA-LENGTH
  1814. SA7 TPKT+THRL+TPWX KEY-AREA ADDRESS INTO PACKET
  1815. BX7 X3
  1816. SA7 TPKT+THRL+TPWY KEY-AREA-LENGTH INTO PACKET
  1817. WRR1 SB2 TPWK PARAMETER POSITION OF KEY-AREA
  1818. SB4 0 SET NO MAJOR KEY
  1819. RJ CKF CHECK AND TRANSFER KEY INTO PACKET
  1820. NZ X7,WRR3 IF KEY-POSITION ERRORS
  1821. WRR2 RJ RQS ISSUE *TAF/CRM* REQUEST
  1822. WRR3 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
  1823. SA2 TPKT+THRL+TPCS *TAF/CRM* STATUS
  1824. NZ X2,WRRX IF ERROR
  1825. SB2 TPRWL MINIMUM NUMBER OF PARAMETERS
  1826. LE B6,B2,WRRX IF NO KEY-AREA AND KEY-AREA-LENGTH
  1827. SA3 A1+TPWY ADDRESS OF KEY-AREA-LENGTH
  1828. SA2 A1+TPWX ADDRESS OF KEY-AREA
  1829. SA3 X3 VALUE OF KEY-AREA-LENGTH
  1830. SB2 B1 KEY-POSITION
  1831. SA2 X2 ADDRESS OF KEY-AREA
  1832. SB4 X3 NUMBERS OF CHARACTERS TO MOVE
  1833. SA1 TKEY ADDRESS OF KEY IN PACKET
  1834. RJ MTS MOVE KEY TO KEY-AREA
  1835. EQ WRRX RETURN
  1836. COMMON SPACE 4,10
  1837. ** COMMON DECKS.
  1838.  
  1839.  
  1840. *CALL COMCSYS
  1841. *CALL COMCCDD
  1842. *CALL COMCCOD
  1843. *CALL COMCSNM
  1844. COMMON SPACE 4,65
  1845. ** COMMON WORK STORAGE.
  1846. *
  1847. *T W+0 24/ RSS, 12/ RIN, 6/ WC, 4/ RCD, 2/ R, 11/ ES, 1/ C
  1848. *
  1849. * RSS = RESERVED FOR *TAF* USE; = THE CHARACTERS "TAF".
  1850. * RIN = RESERVED FOR INSTALLATION.
  1851. * WC = WORD COUNT (COUNT-1) OF REQUEST PACKET.
  1852. * RCD = RESERVED FOR OPERATING SYSTEM.
  1853. * R = RETURN CODE.
  1854. * ES = ERROR STATUS.
  1855. * C = COMPLETE BIT, SET TO ZERO (0) BY OBJECT-TIME
  1856. * PRIOR TO FUNCTION OR MACRO CALL.
  1857. *
  1858. *T, W+1 6/ FC, 18/ ADDR, 6/ AC, 30/ 0
  1859. *
  1860. * FC = *TAF/CRM* FUNCTION CODE
  1861. * ADDR = ADDRESS WITHIN THE CALLING OBJECT-TIME, WHERE
  1862. * *TAF* IS TO WRITE THE RESPONSE PACKET.
  1863. * AC = PARAMETER COUNT (NUMBER OF PARAMETER PASSED).
  1864. *
  1865. * W+2 6O/ FILE NAME OR UBEGIN-ID FOR REQUEST
  1866. * TAF-STATUS FOR DBCOMIT/DBSTAT/DBFREE REQUEST
  1867. *
  1868. *
  1869. * W+3 60/ TAF-STATUS
  1870. *
  1871. * W+4 60/ KEY-NAME FOR SKIP REQUEST OR CRM-STATUS
  1872. *
  1873. * W+5 60/ COUNT FOR SKIP REQUEST OR
  1874. * KEY-NAME FOR DELETE REQUEST OR
  1875. * KEY-OFFSET FOR LOCK REQUEST OR
  1876. * WSA-NAME
  1877. *
  1878. * W+6 60/ KEY-OFFSET FOR DELETE REQUEST OR
  1879. * RECORD LENGTH FOR WRITE REQUEST OR
  1880. * WSA-LENGTH
  1881. *
  1882. * W+7 60/ KEY-NAME FOR WRITE REQUEST OR
  1883. * RECORD LENGTH
  1884. *
  1885. * W+10 60/ KEY-AREA FOR READM/READN/READNL REQUEST OR
  1886. * KEY-NAME
  1887. *
  1888. * W+11 60/ KEY-AREA-LENGTH FOR READM REQUEST OR
  1889. * KEY-AREA-LENGTH FOR READN REQUEST OR
  1890. * KEY-AREA-LENGTH FOR READNL REQUEST OR
  1891. * KEY-OFFSET
  1892. *
  1893. * W+12 60/ KEY-NAME FOR READM REQUEST
  1894. * MAJOR-KEY-LENGTH FOR START
  1895. * KEY-AREA-LENGTH FOR WRITE
  1896. * KEY-STATUS
  1897. *
  1898. * W+13 60/ KEY-OFFSET FOR READM REQUEST OR
  1899. * KEY-IDENTIFIER FOR READ/READL REQUEST OR
  1900. * LOCK STATUS FOR READN
  1901. *
  1902. * W+14 60/ MAJOR-KEY-LENGTH FOR READM REQUEST OR
  1903. * KEY-AREA FOR READ/READL REQUEST
  1904. *
  1905. * W+15 60/ KEY-STATUS FOR READM REQUEST OR
  1906. * KEY-AREA-LENGTH FOR READ/READL REQUEST
  1907. *
  1908. * W+16 60/ KEY-IDENTIFIER FOR READM REQUEST OR
  1909. * LOCK STATUS FOR READ
  1910. *
  1911. * W+17 60/ LOCK STATUS FOR READM
  1912. *
  1913. * W+20 60/ KEY
  1914. *
  1915. *
  1916. *
  1917. *
  1918. * W+52
  1919.  
  1920. USE BUFFERS
  1921.  
  1922.  
  1923. BUFA BSS 0 STARTING ADDRESS OF LITERAL AREA
  1924. BEGIN BSSN BUFA START OF BUFFER AREA
  1925. TNPR BSSN 1 MAXIMUM NUMBER OF PARAMETER FOR FUNCTION
  1926. TFCD BSSN 1 NAME OF CALLING FUNCTION
  1927. TSA1 BSSN 1 PARAMETER LIST ADDRESS
  1928. TPKT BSSN 43 PACKET TO AND FROM *TAF/CRM*
  1929. TKST EQU TPKT+THRL+TPSF KEY STATUS FOR PACKET AREA
  1930. TKEY EQU TPKT+16 KEY AREA OF REQUEST PACKET
  1931. BUFE BSSN 0 END OF BUFFER AREA
  1932. END BSSN
  1933. ORG BUFE
  1934.  
  1935.  
  1936. END