Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99e-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