Trailing-Edge
-
PDP-10 Archives
-
bb-bt99h-bb
-
dbs10.f05
There are 10 other files named dbs10.f05 in the archive. Click here to see a list.
;VERSION 5A COMMENT
;
; THIS WAS EDIT 435 FOR DBMS VERSION 5.
;
;SYMPTOM:
;
; WITH EDIT 420 INSTALLED AN ERROR-STATUS CODE OF 961 AND
; THE MESSAGE "?DBSXWX EXCEPTION WHILE PROCESSING AN EXCEP-
; TION ARE RECEIVED WHILE OPENING WITH A PRE-ALLOCATED AND
; ZEROED JOURNAL UNDER AN UPDATING USAGE MODE IN DBMS-10.
;
;DIAGNOSIS:
;
; IF A DBMS JOURNAL FILE ALREADY EXISTS ON THE USER'S
; [P,PN], DBCS EXPECTS THAT IT ALREADY CONTAINS VALID
; JOURNAL LABEL AND LABEL PAGE HEADER INFORMATION, IN-
; CLUDING A VALID LABEL PAGE NUMBER. WITH A PRE-ALLOCATED
; AND ZEROED JOURNAL THIS IS NOT THE CASE, AS IN FACT THE
; JOURNAL LABEL PAGE NUMBER IS 0. WHEN DBCS THEN SUBTRACTS
; 1 FROM THE 0 IT ARRIVES AT A NEGATIVE JOURNAL PAGE NUMBER,
; WHICH IT THEN SENDS TO THE FOLLOWING FILOP UUO, WHICH
; DOES A USETO. EDIT 420 NEVER ADDRESSED THE PROBLEM OF
; THE JOURNAL LABEL PAGE NUMBER OF 0. HOWEVER, IT IS A
; VALID EDIT AND SHOULD BE RETAINED.
;
;CURE:
;
; INSTALL EDIT 543 TO TEST FOR A JOURNAL LABEL PAGE NUMBER
; OF 0 WHILE OPENING. IF IT IS 0, ALSO CHECK THE REST OF
; THE JOURNAL LABEL AND ITS HEADER TO SEE IF THEY CONTAIN
; ALL ZEROES. IF THESE ARE NOT ZERO THEN GIVE AN ERROR-
; STATUS CODE OF 961 ON THE OPEN. IN OTHER WORDS, YOU ARE
; NOT SUPPOSED TO START OFF WITH JUNK IN YOUR PRE-ALLOCATED
; AND ZEROED JOURNAL. THE USER SHOULD TERMINATE THE RUN-UNIT
; IN THE EVENT OF A 961 ERROR-STATUS CODE AND CHECK OUT HIS
; RUN ENVIRONMENT.
;
;NOTE ***** THIS EDIT APPLIES TO DBMS10 V5A ONLY
;THE RECOMMENDED FILENAME FOR THIS EDIT IS 543.FIX. THE LINES
;.EDIT THRU .ENDE SHOULD BE TYPED INTO THAT FILE
;
; APPLY THIS EDIT TO DBS10.REL
;
;THE EDIT CAN BE INSERTED USING THE FOLLOWING COMMANDS:
;
; FOR A COBOL-68 DBMS SYSTEM...
;
; R MAKLIB
; *DBS10.REL=DBS10.REL,543.FIX/F
; *LIBOL.543=LIBOL.REL/M:DBMIO,DBS10.REL/R:DBMIO
; *LIBOL.543=LIBOL.543/INDEX
;
; R LINK
; *LIBSHR,LIBOL.543/SEARCH/GO
;
; SAVE LIBO12
;
;
; FOR A COBOL-74 DBMS SYSTEM...
;
; R MAKLIB
; *DBS10.REL=DBS10.REL,543.FIX/F
; *C74LIB.543=C74LIB.REL/M:DBMIO,DBS10.REL/R:DBMIO
; *C74LIB.543=C74LIB.543/INDEX
;
; R LINK
; *C74SHR,C74LIB.543/SEARCH/GO
;
; SAVE C74O12
;
; FOR FORTRAN DBMS SYSTEMS...
;
; R MAKLIB
; *DBS10.REL=DBS10.REL,543.FIX/F
; *FORLIB.543=FORLIB.REL/M:DBMIO,DBS10.REL/R:DBMIO
; *FORLIB.543=FORLIB.543/INDEX
;
; R LINK
; *FORLIB.543/INCLUDE:FOROTS,FORLIB.543/SEARCH/GO
;
; SAVE FOROTS
;
;************************************************************
;
.EDIT 543
.NAME JSM
.MODULE DBMIO
.INSERT JPTO.O+2,BEFORE,<SUBI 1,1>
;THE THREE COMPARE INSTRUCTIONS BELOW MAKE SURE
;THAT WE ARE DOING A "USETO" ON THE OPEN WITH A JRN
;PAGE NUMBER OF 0. THIS IS THE ONLY SITUATION IN
;WHICH A DBMS JOURNAL FILE CAN HAVE A LABEL PAGE
;NUMBER OF 0, AND THEN ONLY IF IT IS PRE-ALLOCATED
;AND ZEROED. THE SKIPE INSTRUCTION REPRESENTS OUR
;ATEMPT TO PROTECT THE USER FROM CLOBBERING A
;PRE-EXISTING FILE OF SOME OTHER MANUFACTURE, WHICH
;HE MAY HAVE INDICATED AS HIS JOURNAL INADVERTENTLY.
CAIE R1,0 ;IS JRN LABEL PAGE NO = 0?
JRST .+14 ; NO -- DO SUBTRACTION
MOVEI R0,11 ;SET UP TO TEST FOR OPEN
CAME R0,400(X) ;ARE WE DOING OPEN? (400=VERBID)
JRST .+11 ; NO -- DO SUBTR -- JRN PAGE NO SHOULD
; BE OK
CAMN X,TAP ;ABOUT TO DO "USETO" FILOP?
JRST .+7 ; NO -- "USETI"; JRN PAGE NO SHOULD BE OK
HRLI JP,-30 ;SET UP AC10 AS AOBJN PTR TO SCAN JRN
; LABEL PAGE AND HEADER
SKIPE R0,0(JP) ;TEST A WORD
PUSHJ P,XC.UAJ## ;NOT 0 - GIVE ERROR-STATUS 961, ETC
AOBJN JP,.-2 ;GO BACK TO TEST NEXT WORD
SUBI JP,34 ;FINISHED SCAN SUCCESSFULLY, RESTORE AC10
JRST .+2 ;DON'T DO THE SUBTRACTION
.ENDI
.ENDE