Google
 

Trailing-Edge - PDP-10 Archives - bb-kl11c-bm_tops20_v6_1_atpch1_16 - autopatch/cobddt.c15
There are 2 other files named cobddt.c15 in the archive. Click here to see a list.
 REP 26/1	;15C1
	EDIT==47
 WIT
	EDIT==50
 INS 58/2	;15C2
	;.AUTOPATCH 12
	;.NOEDIT
	;.ENDA
	;.AUTOPATCH 13
	;.NOEDIT
	;.ENDA
	;.AUTOPATCH 14
	;.NOEDIT
	;.ENDA
	;.AUTOPATCH 15
	;.EDIT	50	Fix some handling of subscripts.
	;		PAM,5-NOV-86,SPR:10-35348
	;		A:SRC	COBDDT
	;.ENDA
 INS 23/8	;15C3
	DTOCH:	POINT 15,7(DT),17	;[50] Higher level OCCURS
	DTPOP:				;[50]
	DTBRO:	POINT 15,2(DT),17	;[50] Father/Brother link
 REP 41/59	;15C4

 WIT
 REP 42/72	;15C5

 WIT
 REP 32/73	;15C6

 WIT
 REP 53/74	;15C7

 WIT
 REP 107/78	;15C8

 WIT
 REP 4/103	;15C9

 WIT

 REP 4/132	;15C10
		LDB	DT,[POINT 15,DTSUBW+1(DT),17]
 WIT
		LDB	DT,DTOCH	;[50] Get next higher OCCURS
 REP 8/132	;15C11
	SUBSCA:	LDB	T3,DTUSAG	;GET USAGE
		CAIN	T3,%US.IN	;INDEX?
		MOVEI	T3,D1MODE+1	;USE COMP
		HLRZ	T2,BYPTRS-1(T3)	;SKELETON BYTE POINTER
		TRZ	T2,770077	;JUST LEAVE BYTE SIZE
		TLO	W2,(T2)		;PUT BYTE SIZE IN
 WIT
	SUBSCA:	PUSHJ	PP,SUBSCK	;[50] Get usage mode in T1, check for COMP
		HLRZ	T2,BYPTRS-1(T1)	;[50] Get prototype byte pointer
		TRZ	T2,770077	;JUST LEAVE BYTE SIZE
		TLO	W2,(T2)		;PUT BYTE SIZE IN
		;Remember that top level usage is in T1 -- preserve it for SUBSIZ
 REP 25/132	;15C12
		LDB	T2,[POINT 15,DTSUBW+1(DT),17]
 WIT
		LDB	T2,DTOCH	;[50] Get next higher OCCURS
 REP 31/132	;15C13
		JRST	SUBSCA		; [34] LOOP
 WIT
		JRST	SUBSC1		;[50] Loop
 INS 2/134	;15C14
	; XCT table with current DATAB mode in T5, Grandfather's mode in T1
 REP 7/134	;15C15
		MOVEI	T2,6		;4 1-WORD COMP
		MOVEI	T2,^D12		;5 2-WORD COMP
		MOVEI	T2,6		;6 COMP-1
		MOVEI	T2,6		;7 INDEX
		PUSHJ	PP,SUBSZC	;10 COMP-3
		MOVEI	T2,^D12		;11 COMP-2
 WIT
		PUSHJ	PP,SUBSZ2	;[50] 4 1-WORD COMP
		PUSHJ 	PP,SUBSZ3	;[50] 5 2-WORD COMP
		PUSHJ	PP,SUBSZ2	;[50] 6 COMP-1
		PUSHJ	PP,SUBSZ2	;[50] 7 INDEX
		PUSHJ	PP,SUBSZC	;[50] 10 COMP-3
		PUSHJ	PP,SUBSZ3	;[50] 11 COMP-2
 REP 27/134	;15C16

 WIT

	SUBSZ2:	MOVEI	T2,6		;[50] Assume Grandfather is SIXBIT
		CAIN	T1,%US.D7	;[50] Grandfather ASCII?
		MOVEI	T2,5		;[50] Yes, 5 chrs per word
		CAIN	T1,%US.EB	;[50] EBCDIC?
		MOVEI	T2,4		;[50] Yes, 4 chars/word
		POPJ	PP,		;[50] Done

	SUBSZ3:	PUSHJ	PP,SUBSZ2	;[50] Get bytes per word
		LSH	T2,1		;[50] Double it
		POPJ	PP,		;[50] Return.

 INS 33/134	;15C17

	SUBSCK:	LDB	T1,DTUSAG	;[50] Get item's usage
		CAIN	T1,%US.C3	;[50] If it's COMP-3, his father
		SKIPA	T1,[EXP %US.EB]	;[50]  must be EBCDIC
		CAIG	T1,%US.DS	;[50] Is item display?
		POPJ	PP,		;[50]  Yes, we are done
		PUSH	PP,DT		;[50] Save DATAB pointer
		PUSHJ	PP,LNKGFA	;[50] Find the Grandfather
		LDB	T1,DTUSAG	;[50] Get his usage
		CAILE	T1,%US.DS	;[50] Display?
		MOVEI	T1,%US.D6	;[50] No, pretend it is SIXBIT
		POP	PP,DT		;[50] Restore DATAB pointer
		POPJ	PP,		;[50] Return with usage in T1

	LNKGFA:	LDB	T1,DTPOP	;[50] Get Father/Brother link
		JUMPE	T1,CPOPJ	;[50] No links, should be top level
		HRRZ	DT,T1		;[50] Create new DATAB pointer
		ADD	DT,@%DT		;[50] 
		JRST	LNKGFA		;[50] Follow Father/Brother chain

 REP 41/135	;15C18

 WIT
 REP 38/136	;15C19

 WIT
 REP 44/137	;15C20

 WIT
 REP 40/138	;15C21

 WIT
 REP 38/139	;15C22

 WIT
 REP 30/140	;15C23

 WIT
 REP 81/141	;15C24

 WIT

 REP 41/142	;15C25

 WIT
 REP 18/144	;15C26

 WIT

 REP 62/146	;15C27

 WIT
 REP 60/147	;15C28

 WIT
 REP 76/148	;15C29

 WIT
 REP 42/149	;15C30

 WIT
 REP 56/150	;15C31

 WIT

 SUM 123562