Trailing-Edge
-
PDP-10 Archives
-
bb-bt99e-bb
-
cblio.c07
There is 1 other file named cblio.c07 in the archive. Click here to see a list.
INS 4/2 ;07C1
;JSM 09-NOV-83 [1103] On Fake Read for SMU Retain on TOPS-10, check for
; EOF Return and don't cause program failure if so.
;JEH 08-NOV-83 [1102] Determine TOPS-20 monitor level and if < 5.0,
; skip all read unrestricted code - not implemented
;JM/RF 25-OCT-83 [1100] SMU with relative file gets race condition,
; record not written to disk but gets
; invalid key error.
;JEH 24-OCT-83 [1077] If dynamic access and REWRITE, update pointers
; so READ NEXT can work
;JBB 22-AUG-83 [1075] Prevent multi-level ISAM file from missing records
; when using START, READ NEXT sequences
;RLF/JM 21-APR-83 [1065] Make FREE RECORD KEY work for SMU after RETAIN NEXT
DEL 29/3 ;07C2
;[D1007] IFNDEF TOPS2X,<TOPS2X==0> ; [667] THIS CODE HAS NOT BEEN TESTED YET
TOPS2X==TOPS20 ;[1007] TURN ON TOPS2X FOR VERSION 5
INS 51/5 ;07C3
EXTERN SU.T1 ;[1065] SMU, CARRY RRT ENTRY ADDR HERE
REP 11/7 ;07C4
WIT
IFN TOPS20, <
MOVEI AC1,.SCOUNT ;[1102]
GETAB ;[1102] SEE WHICH VERSION WE'RE RUNNING UNDER
ERJMP [ CAIN AC1,GTABX1 ;[1102] DOES THIS TABLE EXIST
SKIPA AC2,[-1] ;[1102] NO - SAY VERSION 4.1
SETZM AC2 ;[1102] SAY V 5
MOVEM AC2,MNTR5## ;[1102] STORE IT
JRST .+1] ;[1102]
>; END TOPS20
REP 41/45 ;07C5
OPNC3A: SKIPN F.WSMU(I16) ; SKIP IF SIMULTANEOUS UPDATE
WIT
OPNC3A: ;[1066]
IFN TOPS20,< ;[1066]
TXNE AC13,DV.MTA ;[1066] IS IT AN MTA
TLNN FLG1,MSTNDR ;[1066] AND MONITOR IS LABELING?
SKIPA ;[1066] NO
JRST OPNC3C ;[1066] YES, OPEN FILE USING FILOP
> ;[1066]
SKIPN F.WSMU(I16) ;[1066] SKIP IF SIMULTANEOUS UPDATE
REP 2/46 ;07C6
IFN TOPS2X,<
WIT
IFN TOPS20, <
SKIPGE MNTR5## ;[1102] IF NOT AT LEAST V5.0 OF MONITOR,
JRST OPNC40 ;[1102] NO UNRESTRICTED READ
REP 7/46 ;07C7
>
WIT
OPNC40: ;[1102]
>; END TOPS20 ;[1102]
REP 60/47 ;07C8
TXNN AC13,DV.MTA ;[561] MTA??
WIT
TXNE AC13,DV.MTA ;[561][1066] MTA??
TLNE FLG1,MSTNDR ;[1066] MTA IS UNLABELED TAPE?
REP 15/49 ;07C9
IFN TOPS2X,<
TLNE FLG,OPNOUT ;[1007][667] IF OPEN READ ONLY OR
>
WIT
IFN TOPS20,<
SKIPL MNTR5 ;[1102] NO UNRESTRICTED READ
TLNE FLG,OPNOUT ;[1007][667] IF OPEN READ ONLY OR
>; END TOPS20 ;[1102]
REP 13/50 ;07C10
SKIPN F.WSMU(I16) ; SIMULTANEOUS UPDATE?
IFN TOPS2X,<
TLNN FLG,OPNOUT ;[1007] [667] OR OPEN READ ONLY
TRNA ;[667] YES
>
JRST OPNI21 ; NO
IFE TOPS20,<
WIT
IFN TOPS20,<
SKIPL MNTR5 ;[1102] IF (AT LEAST V5.0
TLNE FLG,OPNOUT ;[1102] AND READ ONLY) OR
SKIPE F.WSMU(I16) ;[1102] SIMULTANEOUS UPDATE
TRNA ;[1102] THEN SKIP
JRST OPNI21 ;[1102] ELSE ON TO OPNI21
>; END TOPS20
IFE TOPS20,<
SKIPN F.WSMU(I16) ;[1102] SIMULTANEOUS UPDATE?
JRST OPNI21 ;[1102] NO
REP 14/61 ;07C11
IFN TOPS2X,<
WIT
IFN TOPS20, <
SKIPGE MNTR5 ;[1102] IF MONITOR NOT AT LEAST V5.0,
JRST OPNLO2 ;[1102] DIDN'T DO THE LOOKUP
REP 22/61 ;07C12
>
WIT
OPNLO2: ;[1102]
>; END TOPS20
REP 133/64 ;07C13
IFE TOPS2X,<
TRO AC0,OF%THW ; [431] THAWED I.E. SIMULTANEOUS UPDATE
>
IFN TOPS2X,<
SKIPN F.WSMU(I16) ;[667] SIMULTANEOUS UPDATE?
WIT
SKIPL MNTR5 ;[1102] IF NOT AT LEAST V5.0,
JRST OCPT11 ;[1102] NO UNRESTRICTED READ DEFINED
TRO AC0,OF%THW ; [431] THAWED I.E. SIMULTANEOUS UPDATE
JRST OCPT12 ;[1102]
OCPT11: SKIPN F.WSMU(I16) ;[1102][667] SIMULTANEOUS UPDATE?
REP 141/64 ;07C14
>
MOVEM AC0,CP.BK3 ; [431] INIT AC2 OPENF BITS
WIT
OCPT12: MOVEM AC0,CP.BK3 ; [1102] [431] INIT AC2 OPENF BITS
INS 176/64 ;07C15
TXNE AC13,DV.MTA ; [1066] IS IT A LABELED MTA?
PUSHJ PP,OCP1A ; [1066] YES, GO SET UP ATTR. BLOCK
INS 211/64 ;07C16
IFN TOPS20,< ;[1066]
;[1066] This routine is used to set up the attribute block for the GTJFN jsys.
;[1066] The GTJFN call uses the attribute block when opening system labeled
;[1066] tapes. The format is set to D if the RECORDING MODE IS ASCII or
;[1066] if the RECORDING MODE IS STANDARD-ASCII.
OCPTFO: ASCIZ/FORMAT:D/ ;[1066]
OCP1A: PUSH PP,AC0 ;[1066]
HRRZ AC0,D.RFLG(I16) ;[1066] Get information flag
TXNN AC0,SASCII ;[1066] Recording mode ASCII ?
JRST OCP1B ;[1066] No, exit
HRRI AC0,.GJATR-.GJJFN ;[1066] Get number of words
HRRM AC0,GJ.BLK##+.GJF2 ;[1066] Set up number of extra
;[1066] words in GTJFN block
TXO AC0,GJ%XTN+GJ%FOU ;[1066] Set GJ%XTN in GTJFN block
TXZ AC0,GJ%SHT ;[1066]
MOVEM AC0,GJ.BLK+.GJGEN ;[1066]
HRROI AC0,GJ.ATR## ;[1066]
MOVEM AC0,GJ.BLK+.GJATR ;[1066] GTJFN points to attribute block
MOVEI AC0,2 ;[1066]
HRRM AC0,GJ.ATR ;[1066] Set number of words in attr.
MOVE AC0,[POINT 7,OCPTFO] ;[1066] Setup byte pointer in attribute
MOVEM AC0,GJ.ATR+1 ;[1066] block
MOVE AC0,[.NULIO,,.NULIO] ;[1066]
MOVEM AC0,GJ.BLK+.GJSRC ;[1066]
HRRZI AC0,GJ.BLK ;[1066]
MOVEM AC0,CP.BLK+1 ;[1066]
OCP1B: POP PP,AC0 ;[1066]
POPJ PP, ;[1066]
>;END IFN TOPS20 ;[1066]
INS 23/75 ;07C17
REP 74/95 ;07C18
OPNCKP: SKIPN M7.00 ;IS IT 7.00 OR LATER?
POPJ PP, ;NO
WIT
OPNCKP:
; SKIPN M7.00 ;[1100] IS IT 7.00 OR LATER?
; POPJ PP, ;[1100] NO
INS 8/150 ;07C19
CAIE AC0,%FAM.D ;[1077] IF DYNAMIC, COULD NEED SEQ POINTERS
REP 14/150 ;07C20
RANXI0: TLNE FLG,RANFIL ;[273] IF A RANDOM FILE
WIT
RANXI0: SKIPN F.WSMU(I16) ;[1065] SIMULTANEOUS UPDATE?
JRST RNXI0A ;[1065] NO
MOVE AC2,SU.T1## ;[1065] GET RRT ENTRY
HLLZ AC3,1(AC2) ;[1065] IS RETAIN NEXT
TLNN AC3,400000 ;[1065] FLAG ON?
JRST RNXI0A ;[1065] NO.
MOVE AC1,F.RACK(I16) ;[1065] IF SO, WE NEED TO GET
MOVE AC3,(AC1) ;[1065] THE KEY AND
MOVEM AC3,2(AC2) ;[1065] PUT IT IN THE RRT.
RNXI0A: ;[1065]
TLNE FLG,RANFIL ;[273] IF A RANDOM FILE
REP 103/159 ;07C21
POPJ PP, ;[605] RETURN
WIT
JRST SETLRW ;[1075] [605] GO UPDATE LRW
REP 33/188 ;07C22
GBDER: MOVE AC0,[E.MINP+E.FIDA+E.BDAT] ;ERROR NUMBER
WIT
GBDER: ;[1103]
IFE TOPS20,< ;[1103] TOPS-10 ONLY EOF ERROR FLAG TO TEST
SKIPE SU.FRF ;[1103] DOING FAKE READ, I.E. SMU RETAIN?
PUSHJ PP,GBDEOF ;[1103] YES, GO TEST FOR EOF FLAG FROM IN UUO
JRST GBDER1 ;[1103] TEST IS FALSE, RETURN +1
PUSHJ PP,CLRDS ;[1103] TEST IS TRUE, RETURN +2, GO CLEAR STATUS
JRST GETB0F ;[1103] AND GO RETURN BLOCK = 0, WHICH IS OK
GBDER1: ;[1103]
> ;[1103] END IFE TOPS20
MOVE AC0,[E.MINP+E.FIDA+E.BDAT] ;ERROR NUMBER
INS 39/188 ;07C23
;[1103] TEST TOPS-10 EOF ERROR FLAG FROM IN UUO
IFE TOPS20,< ;[1103]
GBDEOF: ;[1103]
PUSH PP,AC2 ;[1103] SAVE CHANNEL INFO FROM IN UUO CALL
XCT UGETS. ;[1103] DO A GETSTS UUO ON CHANNEL
TXNE AC2,IO.ERR ;[1103] REPORTING A REAL I-O ERROR?
JRST GBDEO1 ;[1103] YES, RETURN +1
TXNE AC2,IO.EOF ;[1103] EOF FLAG SET FOR IN UUO?
AOS -1(PP) ;[1103] YES, SET UP TO RETURN +2
GBDEO1: ;[1103]
POP PP,AC2 ;[1103] RESTORE CHANNEL INFO
POPJ PP, ;[1103] AND RETURN
> ;[1103] END IFE TOPS20
REP 23/206 ;07C24
IFE TOPS20,<
SKIPE M7.00 ;IF 7.00
JRST PPOPJ ;RIB UPDATE WILL BE DONE BY MONITOR
>
WIT
;IFE TOPS20,< ;[1100, don't let monitor control update]
; SKIPE M7.00 ;[1100] IF 7.00
; JRST PPOPJ ;[1100] RIB UPDATE WILL BE DONE BY MONITOR
;> ;[1100]
REP 33/206 ;07C25
IFE TOPS20,<
SKIPE M7.00 ;IF 7.00
JRST PPOPJ ;RIB UPDATE WILL BE DONE BY MONITOR
>
WIT
;IFE TOPS20,< ;[1100, don't let control update]
; SKIPE M7.00 ;[1100] IF 7.00
; JRST PPOPJ ;[1100] RIB UPDATE WILL BE DONE BY MONITOR
;> ;[1100]
SUM 252991