Google
 

Trailing-Edge - PDP-10 Archives - BB-L014E-BM - autopatch/isam.c05
There are 2 other files named isam.c05 in the archive. Click here to see a list.
 REP 28/1	;05C1
	EDIT==203
 WIT
	EDIT==206
 DEL 32/1	;05C2

 INS 6/2	;05C3
	;.COMPONENT ISAM
 REP 9/2	;05C4
	;.EDIT  203	PRINT KEY VALUE FOR DUP OR KEYS OUT OF ORDER MSG
	;		LEM,22-JAN-82,SPR:NONE
	;		A:SRC ISAM
 WIT
	;.EDIT  200	RESTORE .FBSIZE TO + INFINITY FOR COBOL-20
	;		HAM/JM,11-SEP-81,SPR:NONE
	;		A:SRC ISAM
	;
	;;.EDIT	201	DEVELOPMENT EDIT - SENT OUT WITH AUTOPATCH TAPE 5
	;
 REP 17/2	;05C5
	;.EDIT	201	DEVELOPMENT EDIT
	;
	;.EDIT  200	RESTORE .FBSIZE TO + INFINITY FOR COBOL-20
	;		HAM/JM,11-SEP-81,SPR:NONE
 WIT
	;.EDIT  203	PRINT KEY VALUE FOR DUP OR KEYS OUT OF ORDER MSG
	;		LEM,22-JAN-82,SPR:NONE
 INS 24/2	;05C6
	;.AUTOPATCH 5
	;
	;.EDIT	201	ALLOW A CONTROL-Z TO EXIT UTILITY
	;		DMN/RJD,21-JUL-82,SPR:20-18049
	;		A:SRC ISAM
	;
	;.EDIT	204	PRINT RECORD CONTENT FOR KEYS OUT OF ORDER MSG AND
	;;		RECORD TOO SHORT MSG.
	;		RLF,30-APR-82,SPR 20-17583
	;		A:SRC ISAM
	;
	;.EDIT	205	DISPLAY ERROR MSG ACCORDING TO BIT SETTINGS OF FILE
	;;		STATUS.
	;		RLF,20-MAY-82,SPR 10-32566
	;		A:SRC ISAM
	;
	;.EDIT	206	DO NOT DISPLAY COMMA AFTER LAST ERROR MESSAGE GENERATED
	;		SMI, 16-SEP-82,SPR 10-33058
	;		A:SRC ISAM
	;
	;.ENDA
 INS 4/23	;05C7
		SETZM	RECCNT		; [204] INITIALIZE RECORD COUNT.
 INS 7/28	;05C8

 REP 23/28	;05C9


 WIT
		AOS	RECCNT		; [204] UPDATE RECORD COUNT.
 INS 9/34	;05C10
		PUSHJ	PP,TYPREC	; [204] TYPE OUT ERROR RECORD.
 DEL 59/39	;05C11

 INS 151/54	;05C12
		PUSHJ	PP,TYPREC	;[204] TYPE OUT RECORD.
 INS 156/54	;05C13

 INS 179/54	;05C14
		PUSH	PP,TC		;[205] SAVE STATUS.
		MOVE	TA,TC		;[205] GET STATUS BITS
		PUSHJ	PP,FILSTS	;[205] AND CHECK FOR ERROR.
		POP	PP,TC		;[205] GET BACK STATUS.
 INS 209/54	;05C15
	;FILSTS TYPES OUT ERROR ON DISK OR TAPE WHEN FILE STATUS BITS ARE SET
	FILSTS:	MOVE	TB,TA			;[205] GET STATUS BITS
		ANDI	TB,IO.ERR!IO.EOT	;[205] CHECK ONLY THESE BITS.
		CAIN	TB,0			;[205] ANY ERROR?
		POPJ	PP,			;[205] NO.
		TYPE	( STATUS BITS SHOW CAUSE AS )	;[205] YES.
		MOVSI	TD,-.FILLN		;[205] SET POINTER.
		SKIPA				;[206] SKIP PRINTING COMMA FIRST TIME
	FILBIT:	TYPE	(,)			;[206] PRINT A COMMA
		HRRZ	TC,FILERR(TD)		;[205][206] GET ONE BIT
		TDZN	TB,TC			;[205] IS IT SET?
		  JRST	FILAOB			;[205] NO.
		HLRZ	TA,FILERR(TD)		;[205] YES,GET ADDRESS OF
		TYPEA	((TA))			;[205] ERROR AND TYPE.
	FILAOB:	SKIPE	TB			;[205] MORE BITS SET?
		AOBJN	TD,FILBIT		;[205] YES,LOOP.
		TYPE	(.)			;[206] TYPE A PERIOD AFTER LAST ERROR
		POPJ	PP,			;[205] ALL DONE.
	FILERR:	[ASCIZ\ DEVICE WRITE-LOCKED\],,IO.IMP	;[205][206] BIT-18 
		[ASCIZ\ HARDWARE DEVICE ERROR\],,IO.DER	;[205][206] BIT-19
		[ASCIZ\ HARD DATA PARITY ERROR\],,IO.DTE	;[205][206] BIT-20
		[ASCIZ\ QUOTA EXCEEDED OR BLOCK TOO LARGE\],,IO.BKT ;[205][206] BIT-21
		[ASCIZ\ PHYSICAL END OF TAPE ENCOUNTERED\],,IO.EOT  ;[205][206] BIT-25
	.FILLN==.-FILERR				;[205] ERROR MESSAGES.

 INS 24/56	;05C16

 INS 14/57	;05C17


	;TYPE OUT THE ERROR RECORD

	TYPREC:	TYPE	(error record number   );[204] THIS ROUTINE
					;[204] TYPES OUT THE ERROR RECORD.
		MOVE	TE,RECCNT	;[204] GET RECORD COUNT AND
		PUSHJ	PP,PUTDC1	;[204] CONVERT TO DECIMAL.
		TYPE	(
	record contains:   )
		MOVE	OP,RECPTR	;[204] SET RECORD POINTER
		MOVEI	OM,AS.MOD	;[204] SET UP OUTPUT MODE.
		MOVE	TE,@CNVPTI(IM)	;[204] AND READY FOR
		MOVEM	TE,CONVRT	;[204] CONVERSION.
		SKIPG	IM		;[204] 6-BIT?
		JRST	TYP67		;[204] YES.
		CAIE	IM,EB.MOD	;[204] EBCDIC?
		JRST	TYP77		;[204] IT'S ASCII.
		JRST	TYP67		;[204] IT'S EBCDIC

	TYP67:	ILDB	CH,OP		;[204] GET ONE CHARACTER
		LDB	CH,CONVRT	;[204] FROM RECORD
		TYPEC	CH		;[204] AND DISPLAY ON TTY
		SOJN	OC,TYP67	;[204] ALL DONE?
		POPJ	PP,		;[204] YES, GET OUT.
	TYP77:	ILDB	CH,OP		;[204] GET ONE CHARACTER.
		TYPEC	CH		;[204] OUTPUT TO TTY.
		SOJN	OC,TYP77	;[204] ALL DONE?
		POPJ	PP,		;[204] YES.


 INS 11/58	;05C18
		CAIN	CH,32		;[201] TEST FOR ^Z FROM TTY
		JRST	CZED		;[201] IT WAS, JUST EXIT
 INS 43/58	;05C19
	CZED:	EXIT	1,		;[201] EXIT
		JRST	START		;[201] IN CASE USER TYPES CONTINUE
 INS 53/75	;05C20
	RECCNT:	BLOCK	1	; [204] RECORD COUNT FOR INPUT FILE
 SUM 74145