cdc:nos2.source:opl871:aaml
Table of Contents
AAML
Table Of Contents
- [00026] AAML - ADVANCED ACCESS METHODS LIBRARY.
- [00263] RTN - RETURN ADDRESS FOR ENTRY POINTS.
- [00284] TASK INTERFACE ROUTINES.
- [00286] CLOSE - CLOSE FILE.
- [00301] DBCOMIT - DATA BASE COMMIT REQUEST.
- [00314] DBEGIN - DATA BASE BEGIN REQUEST.
- [00327] DBFREE - DATA BASE FREE REQUEST.
- [00340] DBSTAT - DATA BASE STATUS REQUEST.
- [00353] DELETE - DELETE RECORD.
- [00368] LOCK - LOCK RECORD.
- [00382] FLOCK - LOCK FILE.
- [00396] OPEN - OPEN FILE FOR TASK.
- [00410] READ - READ BY KEY.
- [00426] READL - READ BY KEY WITH LOCK.
- [00442] READM - READ BY MAJOR KEY.
- [00458] READN - READ NEXT RECORD.
- [00473] READNL - READ NEXT RECORD WITH LOCK.
- [00489] REWIND - REWIND FILE.
- [00503] REWRITE - REWRITE RECORD.
- [00518] SKIPBL - SKIP BACKWARD LOGICAL RECORDS.
- [00532] SKIPFL - SKIP FORWARD LOGICAL RECORDS.
- [00546] UNLOCK - UNLOCK RECORD.
- [00560] UNFLOCK - UNLOCK FILE.
- [00574] WRITE - WRITE RECORD BY KEY.
- [00590] START - SET STARTING POSITION.
- [00605] REQUEST ROUTINE.
- [00607] ISR - ISSUE REQUEST.
- [00645] TRTN - TABLE OF RETURN ADDRESS FOR REQUESTS.
Source Code
- AAML.txt
- IDENT AAML
- SST
- ENTRY CLOSE
- ENTRY DBCOMIT
- ENTRY DBEGIN
- ENTRY DBFREE
- ENTRY DBSTAT
- ENTRY DELETE
- ENTRY LOCK
- ENTRY FLOCK
- ENTRY OPEN
- ENTRY READ
- ENTRY READL
- ENTRY READM
- ENTRY READN
- ENTRY READNL
- ENTRY REWIND
- ENTRY REWRITE
- ENTRY SKIPBL
- ENTRY SKIPFL
- ENTRY START
- ENTRY UNLOCK
- ENTRY UNFLOCK
- ENTRY WRITE
- SYSCOM B1
- TITLE AAML - ADVANCED ACCESS METHODS LIBRARY.
- *COMMENT AAML - ADVANCED ACCESS METHODS LIBRARY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- AAM SPACE 4,10
- ***** AAM - ADVANCED ACCESS METHODS.
- *
- * G. W. PROPP. 78/08/07.
- * L. E. LOVETT. 80/05/01.
- *
- * AAM IS AN USER LIBRARY INTERFACE FOR COBOL5 AND FORTRAN TASKS
- * MAKING ADVANCED ACCESS METHOD CYBER RECORD MANAGER REQUESTS
- * OF THE TRANSACTION FACILITY. DECK *AAML* IS PLACED ON THE
- * TRANSACTION USER LIBRARY CALLED *TRANLIB*. THE COBOL5
- * *ENTER* VERB AND THE FORTRAN *CALL* STATEMENT INTERFACE USER
- * TASKS TO THE TRANSACTION FACILITY.
- *
- * AAML HAS BEEN MODIFIED TO PROVIDE TASK LEVEL
- * INTERFACE TO THE TRANSACTION FACILITY FOR
- * DATA BASE RECOVERY CALLS.
- *
- *** THE REQUESTS FOR *TAF CMR* ARE AS FOLLOWS -
- *
- * TO CLOSE A FILE FOR A TASK -
- * ENTER CLOSE USING FILE,TSTAT,CSTAT.
- * CALL CLOSE(FILE,TSTAT,CSTAT).
- *
- * TO COMMIT AN UPDATE SEQUENCE -
- * ENTER DBCOMIT USING TSTAT.
- * CALL DBCOMIT(TSTAT)
- *
- * TO BEGIN AN UPDATE SEQUENCE -
- * ENTER DBEGIN USING UBID,TSTAT.
- * CALL DBEGIN(UBID,TSTAT)
- *
- * TO FREE AN UPDATE SEQUENCE -
- * ENTER DBFREE USING TSTAT.
- * CALL DBFREE(TSTAT)
- *
- * TO OBTAIN STATUS OF UPDATE SEQUENCE(S) -
- * ENTER DBSTAT USING PBID,TSTAT,CBID.
- * CALL DBSTAT(PBID,STAT,CBID)
- *
- * TO DELETE A RECORD -
- * ENTER DELETE USING FILE,TSTAT,CSTAT,KEYA,KEYP.
- * CALL DELETE(FILE,TSTAT,CSTAT,KEYA,KEYP)
- *
- * TO LOCK A RECORD -
- * ENTER LOCK USING FILE,TSTAT,KEYA,KEYP.
- * CALL(FILE,TSTAT,KEYA,KEYP).
- *
- * TO LOCK A FILE -
- * ENTER FLOCK USING FILE,TSTAT.
- * CALL FLOCK(FILE,TSTAT).
- *
- * TO OPEN A FILE FOR A TASK -
- * ENTER OPEN USING FILE,TSTAT,CSTAT.
- * CALL OPEN(FILE,TSTAT,CSTAT).
- *
- * TO READ A RECORD BY KEY -
- * ENTER READ USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,KEYP-
- * ,FSTAT,ALTKEY,KEYR,KEYL-.
- * CALL READ(FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,KEYP-,FSTAT
- * ,ALTKEY,KEYR,KEYL-).
- *
- * TO READ A RECORD BY KEY WITH LOCK -
- * ENTER READL USING FILE TSTAT,CSTAT,WSA,WSAL,RL,KEYA,KEYP-
- * ,FSTAT,ALTKEY,KEYR,KEYL-.
- * CALL READL(FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,KEYP-,FSTAT
- * ,ALTKEY,KEYR,KEYL-).
- *
- * TO READ A RECORD BY MAJOR KEY -
- * ENTER READM USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,
- * KEYL,KEYA,KEYP,MKEYL-,FSTAT,ALTKEY-.
- * CALL READM(FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,
- * KEYL,KEYA,KEYP,MKEYL-,FSTAT,ALTKEY-).
- *
- * TO READ NEXT RECORD -
- * ENTER READN USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL-
- * ,FSTAT-.
- * CALL READN(FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL-,FSTAT-).
- *
- * TO READ NEXT RECORD WITH LOCK -
- * ENTER READNL USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL-
- * ,FSTAT-.
- * CALL READNL(FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL-,FSTAT-).
- *
- * TO REWIND A FILE -
- * ENTER REWIND USING FILE,TSTAT,CSTAT.
- * CALL REWIND(FILE,TSTAT,CSTAT).
- *
- * TO REWRITE A RECORD -
- * ENTER REWRITE USING FILE,TSTAT,CSTAT,WSA,RL,KEYA,KEYP.
- * CALL REWRITE(FILE,TSTAT,CSTAT,WSA,RL,KEYA,KEYP).
- *
- * TO SKIP A LOGICAL RECORD BACKWARD -
- * ENTER SKIPBL USING FILE,TSTAT,CSTAT,COUNT.
- * CALL SKIPBL(FILE,TSTAT,CSTAT,COUNT).
- *
- * TO SKIP A LOGICAL RECORD FORWARD -
- * ENTER SKIPFL USING FILE,TSTAT,CSTAT,COUNT.
- * CALL SKIPFL(FILE,TSTAT,CSTAT,COUNT).
- *
- * TO SET THE STARTING POSITION -
- * ENTER START USING FILE,TSTAT,CSTAT,REL,KEYA,KEYP-,FSTAT
- * ,ALTKEY,MKEYL-.
- * CALL START(FILE,TSTAT,CSTAT,REL,KEYA,KEYP-,FSTAT,ALTKEY
- * ,MKEYL-).
- *
- * TO UNLOCK A RECORD -
- * ENTER UNLOCK USING FILE,TSTAT,KEYA,KEYP.
- * CALL UNLOCK(FILE,TSTAT,KEYA,KEYP).
- *
- * TO UNLOCK A FILE -
- * ENTER UNFLOCK USING FILE,TSTAT.
- * CALL UNFLOCK(FILE,TSTAT).
- *
- * TO WRITE A RECORD -
- * ENTER WRITE USING FILE,TSTAT,CSTAT,WSA,RL,KEYA,KEYP-,KEYR
- * ,KEYL-.
- * CALL WRITE(FILE,TSTAT,CSTAT,WSA,RL,KEYA,KEYP-,KEYR,KEYL-).
- *
- * PARAMETERS ENCLOSED IN - - ARE OPTIONAL.
- *
- *** THE PARAMETERS FOR *TAF CRM* REQUESTS ARE DEFINED BELOW -
- *
- * FILE FILE NAME SELECTED BY DATA BASE ADMINISTRATOR. THE
- * FILE NAME MUST BEGIN ON A WORD BOUNDARY AND CONSIST OF
- * 2-7 CHARACTERS WITH BLANK OR BINARY ZERO FILL.
- * COBOL5 - 01 LEVEL DATA NAME.
- * FORTRAN - INTEGER.
- *
- * TSTAT TRANSACTION FACILITY STATUS. SEE DECK *COMKTER* .
- * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
- * FORTRAN - INTEGER.
- *
- * CSTAT *CRM* STATUS.
- * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
- * FORTRAN - INTEGER.
- *
- * WSA WORKING STORAGE AREA LARGE ENOUGH TO CONTAIN RECORD.
- * COBOL5 - 01 LEVEL DATA NAME.
- * FORTRAN - INTEGER ARRAY.
- *
- *
- * WSAL WORKING STORAGE AREA LENGTH IN CHARACTERS.
- * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
- * FORTRAN - INTEGER.
- *
- * KEYR KEY RETURN AREA LARGE ENOUGH TO CONTAIN PRIMARY KEY
- * COBOL5 - 01 LEVEL DATA NAME.
- * FORTRAN - INTEGER.
- *
- * KEYL KEY RETURN AREA LENGTH IN CHARACTERS.
- * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
- * FORTRAN - INTEGER.
- *
- * MKEYL MAJOR KEY LENGTH IN CHARACTERS.
- * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
- * FORTRAN - INTEGER.
- *
- * KEYP KEY CHARACTER POSITION WITH RESPECT TO *KEYA*. *KEYP*
- * STARTS AT ONE FOR FIRST CHARACTER OF *KEYA*.
- * COBOL5 - 01 COMPUTATIONAL-1 DATA NAME.
- * FORTRAN - INTEGER.
- *
- * KEYA KEY AREA. THIS IS A DATA NAME CONTAINING THE KEY
- * VALUE.
- * COBOL5 - 01 LEVEL DATA NAME.
- * FORTRAN - INTEGER.
- *
- * RL RECORD LENGTH IN CHARACTERS. ON AN INPUT REQUEST
- * THE TRANSACTION FACILITY RETURNS THE LENGTH. ON
- * OUTPUT THE TASK MUST SPECIFY THE LENGTH.
- * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
- * FORTRAN - INTEGER.
- *
- * COUNT COUNT OF LOGICAL RECORDS TO SKIP.
- * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA ANME.
- * FORTRAN - INTEGER.
- *
- * UBID USER SUPPLIED BEGIN IDENTIFIER.
- * ON A DBEGIN REQUEST THE USER SUPPLIES A 5 CHARACTER
- * BEGIN IDENTIFIER.
- * COBOL5 - 01 LEVEL ALPHANUMERIC DATA NAME.
- * FORTRAN - INTEGER.
- *
- * PBID BEGIN IDENTIFIER OF THE (LAST) SUCCESSFULLY
- * COMPLETED UPDATE SEQUENCE. ON A DBSTAT REQUEST THE
- * TRANSACTION FACILITY WILL RETURN THIS IDENTIFIER
- * IN THE UPPER 30 BITS OF THE WORD, THE LOWER 30 BITS
- * REMAIN UNCHANGED.
- * COBOL5 - 01 LEVEL ALPHANUMERIC DATA NAME.
- * FORTRAN - INTEGER.
- *
- * CBID BEGIN IDENTIFIER OF THE CURRENT UPDATE SEQUENCE.
- * ON A DBSTAT REQUEST THE TRANSACTION FACILITY WILL
- * RETURN THIS IDENTIFIER IN THE UPPER 30 BITS OF THE
- * WORD, THE LOWER 30 BITS REMAIN UNCHANGED.
- * COBOL5 - 01 LEVEL ALPHANUMERIC DATA NAME.
- * FORTRAN - INTEGER.
- *
- * REL CODE GOVERNING POSITION RELATIVE TO GIVEN KEY AFTER
- * OPERATION.
- * VALUES EQ, GE, GT.
- * COBOL5 - 01 LEVEL DATA NAME.
- * FORTRAN - INTEGER DISPLAY CODE LEFT JUSTIFIED.
- *
- * FSTAT FILE POSITION INFORMATION.
- * RETURNED VALUES 0.
- * 1 NOT ON KEY.
- * 10B END OF KEY.
- * 100B END OF INFORMATION.
- * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
- * FORTRAN - INTEGER.
- *
- * ALTKEY ORDINAL OF ALTERNATE KEY FOR OPERATION
- * VALUES -1 NO CHANGE FROM CURRENT.
- * 0 PRIMARY KEY.
- * N ALTERNATE KEY N.
- * COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
- * FORTRAN - INTEGER.
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMKTAF
- *CALL COMKIPR
- *CALL COMKTDM
- *CALL COMCMAC
- *CALL COMKFLD
- BEGINT BSS 0
- LIST X
- *CALL COMKCRM
- SPACE 4,10
- ORG BEGINT DO NOT RESERVE SPACE FOR *TAF CRM* TABLES
- LIST -X
- ** RTN - RETURN ADDRESS FOR ENTRY POINTS.
- * *RTN* GENERATES RETURN ADDRESS FOR ROUTINE ISSUING
- * *CRM* REQUEST. THE MACRO ALSO ENSURES THE RETURN
- * ADDRESS IS POSITIONED CORRECTLY IN THE TABLE OF
- * RETURN ADDRESSES.
- *
- * ENTRY CODE = TASK REQUEST CODE.
- * RETN = ENTRY POINT TO PROCESS TASK REQUEST.
- * (.1) = RETURN ADDRESS TABLE COUNTER.
- *
- * EXIT RETURN ADDRESS *RETN* IS PLACED IN TABLE.
- * (.1) = (.1) + 1.
- PURGMAC RTN
- RTN MACRO CODE,RETN
- ERRNZ .1-CODE IF REQUEST CODE NOT IN ORDER
- VFD 12/0,18/RETN
- .1 SET .1+1
- ENDM
- TITLE TASK INTERFACE ROUTINES.
- CLOSE SPACE 4,10
- ** CLOSE - CLOSE FILE.
- *
- * ENTRY ENTER CLOSE USING FILE,TSTAT,CSTAT.
- * CALL CLOSE(FILE,TSTAT,CSTAT).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- VFD 42/0LAAML,18/CLOSE IDENTIFY DECK
- CLOSE SUBR ENTRY/EXIT
- SX1 TRCL CLOSE FILE FOR TASK
- EQ ISR ISSUE REQUEST
- SPACE 4,10
- ** DBCOMIT - DATA BASE COMMIT REQUEST.
- *
- * ENTRY ENTER DBCOMIT USING TSTAT.
- * CALL DBCOMIT(TSTAT)
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- DBCOMIT SUBR ENTRY/EXIT
- SX1 TRDC DATA BASE COMMIT REQUEST
- EQ ISR ISSUE REQUEST
- SPACE 4,10
- ** DBEGIN - DATA BASE BEGIN REQUEST.
- *
- * ENTRY ENTER DBEGIN USING UBID,TSTAT.
- * CALL DBEGIN(UBID,TSTAT)
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- DBEGIN SUBR ENTRY/EXIT
- SX1 TRDB DATA BASE BEGIN REQUEST
- EQ ISR ISSUE REQUEST
- SPACE 4,10
- ** DBFREE - DATA BASE FREE REQUEST.
- *
- * ENTRY ENTER DBFREE USING TSTAT.
- * CALL DBFREE(TSTAT)
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- DBFREE SUBR ENTRY/EXIT
- SX1 TRDF DATA BASE FREE REQUEST
- EQ ISR ISSUE REQUEST
- SPACE 4,10
- ** DBSTAT - DATA BASE STATUS REQUEST.
- *
- * ENTRY ENTER DBSTAT USING PBID,TSTAT,CBID.
- * CALL DBSTST(PBID,TSTAT,CBID)
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- DBSTAT SUBR ENTRY/EXIT
- SX1 TRDS DATA BASE STATUS REQUEST
- EQ ISR ISSUE REQUEST
- DELETE SPACE 4,10
- ** DELETE - DELETE RECORD.
- *
- * ENTRY ENTER DELETE USING FILE,TSTAT,CSTAT,KEYA,KEYP.
- * CALL DELETE(FILE,TSTAT,CSTAT,KEYA,KEYP).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- DELETE SUBR ENTRY/EXIT
- SX1 TRDE DELETE RECORD
- EQ ISR ISSUE REQUEST
- LOCK SPACE 4,10
- LOCK SPACE 4,10
- ** LOCK - LOCK RECORD.
- *
- * ENTRY ENTER LOCK USING FILE,TSTAT,KEYA,KEYP.
- * CALL(FILE,TSTAT,KEYA,KEYP).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- LOCK SUBR ENTRY/EXIT
- SX1 TRLC LOCK RECORD
- EQ ISR ISSUE REQUEST
- FLOCK SPACE 4,10
- ** FLOCK - LOCK FILE.
- *
- * ENTRY ENTER FLOCK USING FILE,TSTAT.
- * CALL FLOCK(FILE,TSTAT).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- FLOCK SUBR ENTRY/EXIT
- SX1 TRLF LOCK FILE
- EQ ISR ISSUE REQUEST
- OPEN SPACE 4,10
- ** OPEN - OPEN FILE FOR TASK.
- *
- * ENTRY ENTER OPEN USING FILE,TSTAT,CSTAT.
- * CALL OPEN(FILE,TSTAT,CSTAT).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- OPEN SUBR ENTRY/EXIT
- SX1 TROP OPEN FILE FOR TASK
- EQ ISR ISSUE REQUEST
- READ SPACE 4,10
- ** READ - READ BY KEY.
- *
- * ENTRY ENTER READ USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,
- * KEYP-,FSTAT,ALTKEY-.
- * CALL READ(FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,KEYP-,
- * FSTAT,ALTKEY-).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- READ SUBR ENTRY/EXIT
- SX1 TRRD READ BY KEY
- EQ ISR ISSUE REQUEST
- READL SPACE 4,10
- ** READL - READ BY KEY WITH LOCK.
- *
- * ENTRY ENTER READL USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,
- * KEYP-,FSTAT,ALTKEY-.
- * CALL READL(FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,KEYP-
- * ,FSTAT,ALTKEY-).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST
- *
- * USES X - 1.
- READL SUBR ENTRY/EXIT
- SX1 TRRL READ BY KEY WITH LOCK
- EQ ISR ISSUE REQUEST
- READM SPACE 4,10
- ** READM - READ BY MAJOR KEY.
- *
- * ENTRY ENTER READM USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,
- * KEYRL,KEYA,KEYP,MKEYL-,FSTAT,ALTKEY-.
- * CALL READM(FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYRL,
- * KEYA,KEYP,MKEYL-,FSTAT,ALTKEY-).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- READM SUBR ENTRY/EXIT
- SX1 TRRM READ BY MAJOR KEY
- EQ ISR ISSUE REQUEST
- READN SPACE 4,10
- ** READN - READ NEXT RECORD.
- *
- * ENTRY ENTER READN USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,
- * KEYL-,FSTAT-.
- * CALL READN(FILE,TSTAT,CSTAT,WSA,RL,KEYR,KEYL-,FSTAT-).
- *
- * ENIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- READN SUBR ENTRY/EXIT
- SX1 TRRN READ NEXT RECORD WITHOUT LOCK
- EQ ISR ISSUE REQUEST
- READNL SPACE 4,10
- ** READNL - READ NEXT RECORD WITH LOCK.
- *
- * ENTRY ENTER READNL USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,
- * KEYL-,FSTAT-.
- * CALL READNL(FILE,TSTAT,CSTAT,WSA,RL,KEYR,KEYL-
- * ,FSTAT-).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- READNL SUBR ENTRY/EXIT
- SX1 TRRO READ NEXT RECORD WITH LOCK
- EQ ISR ISSUE REQUEST
- REWIND SPACE 4,10
- ** REWIND - REWIND FILE.
- *
- * ENTRY ENTER REWIND USING FILE,TSTAT,CSTAT.
- * CALL REWIND(FILE,TSTAT,CSTAT).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST
- *
- * USES X - 1.
- REWIND SUBR ENTRY/EXIT
- SX1 TRRP REWIND FILE
- EQ ISR ISSUE REQUEST
- REWRITE SPACE 4,10
- ** REWRITE - REWRITE RECORD.
- *
- * ENTRY ENTER REWRITE USING FILE,TSTAT,CSTAT,WSA,RL,KEYA,
- * KEYP.
- * CALL REWRITE(FILE,TSTAT,CSTAT,WSA,RL,KEYA,KEYP).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- REWRITE SUBR ENTRY/EXIT
- SX1 TRRW REWRITE RECORD
- EQ ISR ISSUE REQUEST
- SKIPBL SPACE 4,10
- ** SKIPBL - SKIP BACKWARD LOGICAL RECORDS.
- *
- * ENTRY ENTER SKIPBL USING FILE,TSTAT,CSTAT,COUNT.
- * CALL SKIPBL(FILE,TSTAT,CSTAT,COUNT).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- SKIPBL SUBR ENTRY/EXIT
- SX1 TRSB SKIP LOGICAL RECORDS BACKWARD
- EQ ISR ISSUE REQUEST
- SKIPFL SPACE 4,10
- ** SKIPFL - SKIP FORWARD LOGICAL RECORDS.
- *
- * ENTRY ENTER SKIPFL USING FILE,TSTAT,CSTAT,COUNT.
- * CALL SKIPFL(FILE,TSTAT,CSTAT,COUNT).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- SKIPFL SUBR ENTRY/EXIT
- SX1 TRSF SKIP FORWARD LOGICAL RECORD
- EQ ISR ISSUE REQUEST
- UNLOCK SPACE 4,10
- ** UNLOCK - UNLOCK RECORD.
- *
- * ENTRY ENTER UNLOCK USING FILE,TSTAT,KEYA,KEYP.
- * CALL UNLOCK(FILE,TSTAT,KEYA,KEYP).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- UNLOCK SUBR ENTRY/EXIT
- SX1 TRUC UNLOCK RECORD
- EQ ISR ISSUE REQUEST
- UNFLOCK SPACE 4,10
- ** UNFLOCK - UNLOCK FILE.
- *
- * ENTRY ENTER UNFLOCK USING FILE,TSTAT.
- * CALL UNFLOCK(FILE,TSTAT).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- UNFLOCK SUBR ENTRY/EXIT
- SX1 TRUF UNLOCK FILE
- EQ ISR ISSUE REQUEST
- WRITE SPACE 4,10
- ** WRITE - WRITE RECORD BY KEY.
- *
- * ENTRY ENTER WRITE USING FILE,TSTAT,CSTAT,WSA,RL,KEYA,
- * KEYP-,KEYR,KEYL-.
- * CALL WRITE(FILE,TSTAT,CSTAT,WSA,RL,KEYA,KEYP-,KEYR
- * ,KEYL-).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- WRITE SUBR ENTRY/EXIT
- SX1 TRWR WRITE RECORD BY KEY
- EQ ISR ISSUE REQUEST
- START SPACE 4,20
- ** START - SET STARTING POSITION.
- *
- * ENTRY ENTER START USING FILE,TSTAT,CSTAT,REL,KEYA,KEYP-
- * ,FSTAT,ALTKEY,MKEYL-.
- *
- * CALL START(FILE,TSTAT,CSTAT,REL,KEYA,KEYP-,FSTAT
- * ,ALTKEY,MKEYL-).
- *
- * EXIT TO *ISR* TO ISSUE REQUEST.
- *
- * USES X - 1.
- START SUBR ENTRY/EXIT
- SX1 TRST SET STARTING POSITION
- EQ ISR ISSUE REQUEST
- TITLE REQUEST ROUTINE.
- ISR SPACE 4,10
- ** ISR - ISSUE REQUEST.
- *
- * ENTRY (X1) = REQUEST CODE.
- * (A1) = ADDRESS OF REQUEST PARAMETERS.
- *
- * USES X - 0, 1, 2, 6, 7.
- * A - 2.
- * B - 1, 7.
- *
- * EXIT (B1) = 1.
- *
- * CALLS SYS=.
- ISR SB1 1
- * DETERMINE RETURN ADDRESS OF CALLER.
- SX2 X1 COMPUTE WORD INDEX INTO *TRTN* TABLE
- LX1 59-0 DETERMINE LOWER OR UPPER TABLE ENTRY
- AX2 1 DIVIDE BY 2
- SA2 X2+TRTN
- NG X1,ISR1 IF UPPER ENTRY
- LX2 30
- ISR1 SX0 X2 RETURN ADDRESS
- * SET UP REQUEST.
- SX6 3RAAM
- SX7 A1 PARAMETER ADDRESS
- LX6 59-17
- BX6 X7+X6
- LX1 23-5+1 REQUEST CODE
- BX6 X6+X1
- RJ =XSYS= ISSUE REQUEST
- SB7 X0 RETURN ADDRESS
- JP B7 RETURN
- TRTN SPACE 4,10
- ** TRTN - TABLE OF RETURN ADDRESS FOR REQUESTS.
- * TWO RETURN ADDRESS ARE PACKED PER WORD TO SAVE CORE.
- * THE TABLE MUST BE IN ASCENDING ORDER ACCORDING
- * TO REQUEST CODE GIVEN IN *COMKCRM*.
- *
- *T 12/0,18/ RTN1,12/0,18/ RTN2
- *
- * RTN1 - ODD REQUEST CODE RETURN ADDRESS.
- * RTN2 - EVEN REQUEST CODE RETURN ADDRESS.
- .1 SET 0 REQUEST CODE SEQUENCE COUNTER
- TRTN BSS 0 TABLE OF RETURN ADDRESS FOR REQUESTS
- RTN TRCL,CLOSE
- RTN TRDE,DELETE
- RTN TRLC,LOCK
- RTN TRLF,FLOCK
- RTN TROP,OPEN
- RTN TRRD,READ
- RTN TRRL,READL
- RTN TRRM,READM
- RTN TRRN,READN
- RTN TRRO,READNL
- RTN TRRP,REWIND
- RTN TRRW,REWRITE
- RTN TRSB,SKIPBL
- RTN TRSF,SKIPFL
- RTN TRUC,UNLOCK
- RTN TRUF,UNFLOCK
- RTN TRWR,WRITE
- RTN TRST,START
- RTN TRDB,DBEGIN
- RTN TRDC,DBCOMIT
- RTN TRDF,DBFREE
- RTN TRDS,DBSTAT
- ERRNZ .1-.TREQL IF ALL TASK REQUESTS NOT IN TABLE
- END
cdc/nos2.source/opl871/aaml.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator