Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0125/init.lst
There are 3 other files named init.lst in the archive. Click here to see a list.
INIT - INITIALIZE GT40	MACRO %53A(1152) 11:37  1-Feb-81 Page 1
INIT	MAC	13-Apr-76 06:27	

						TITLE	INIT - INITIALIZE GT40
						INTERN	INIT
						;
						; THIS SUBROUTINE TRANSFERS A MACRO/11
						; PROGRAM TO THE GT40 VIA THE GT40
						; BOOTSTRAP. NOTE THAT THIS IS AN
						; ENCODED SIX BIT TRANSFER
						;
						EXTERN	SNDCHR
						;
			000000		T0=0
			000001		T1=1
			000016		L=16
			000017		P=17
	000000'	44 07 0 00 000020'	BYTEP:	POINT	7,PROGRM
	000001'	000000	000000		SAVET1:	EXP	0				; TEMP. STORAGE
						;
	000002'	334 00 0 00 000000 	INIT:	SKIPA					; F40 AND
	000003'	261 17 0 00 000016 		PUSH	P,L			; FORTRAN-10 COMPATIBLE
	000004'	201 16 0 00 000017'		MOVEI	L,ARGBLK		; SET UP ARG. POINTER
	000005'	201 01 0 00 000377 		MOVEI	T1,^D255		; 255 BYTES TO SEND
	000006'	134 00 0 00 000000'	LOOP:	ILDB	T0,BYTEP		; GET THE NEXT BYTE
	000007'	202 00 0 00 000015'		MOVEM	T0,CHAR			; AND SAVE IN ARGUMENT
	000010'	202 01 0 00 000001'		MOVEM	T1,SAVET1		; SAVE COUNT REGISTER
	000011'	260 17 0 00 000000*		PUSHJ	P,SNDCHR		; SEND THE CHARACTER
	000012'	200 01 0 00 000001'		MOVE	T1,SAVET1		; RESTORE COUNT
	000013'	367 01 0 00 000006'		SOJG	T1,LOOP			; LOOP FOR ALL BYTES
	000014'	263 17 0 00 000000 		POPJ	P,			; RETURN TO FORTRAN
	000015'	000000	000000		CHAR:	EXP	0
	000016'	777777	000000			XWD	-1,0			; ARGUMENT BLOCK
	000017'	000000	000015'		ARGBLK:	EXP	CHAR
						PAGE
INIT - INITIALIZE GT40	MACRO %53A(1152) 11:37  1-Feb-81 Page 1-1
INIT	MAC	13-Apr-76 06:27	

						; THE MACRO/11 HANDLER (GT40 RESIDENT)
						;
	000020'	766457	546200		PROGRM:	EXP	766457546200
	000021'	100 100 100 100 100 		ASCII	'@@@@@@@@PB(@E0?1!U\O<BUT '
	000022'	100 100 100 120 102 
	000023'	050 100 105 060 077 
	000024'	061 041 125 134 117 
	000025'	074 102 125 124 040 
	000026'	103 067 102 130 130 		ASCII	'C7BXX@@P+7BV8@0@+;@/\IY C'
	000027'	100 100 120 053 067 
	000030'	102 126 070 100 060 
	000031'	100 053 073 100 057 
	000032'	134 111 131 040 103 
	000033'	100 042 077 134 102 		ASCII	'@"?\B=0%^@@HP=0%X@L@@@%C7'
	000034'	075 060 045 136 100 
	000035'	100 110 120 075 060 
	000036'	045 130 100 114 100 
	000037'	100 100 045 103 067 
	000040'	102 125 100 100 100 		ASCII	'BU@@@1C7BT(@0@@CTLK%A @JA'
	000041'	061 103 067 102 124 
	000042'	050 100 060 100 100 
	000043'	103 124 114 113 045 
	000044'	101 040 100 112 101 
	000045'	120 070 103 075 060 		ASCII	'P8C=0$:@ANP0 +;A/\IL@CA"='
	000046'	044 072 100 101 116 
	000047'	120 060 040 053 073 
	000050'	101 057 134 111 114 
	000051'	100 103 101 042 075 
	000052'	040 103 060 111 125 		ASCII	' C0IUE@O\IM CW@_\IG CA"?\'
	000053'	105 100 117 134 111 
	000054'	115 040 103 127 100 
	000055'	137 134 111 107 040 
	000056'	103 101 042 077 134 
	000057'	102 060 063 124 101 		ASCII	'B03TA@@TC0IUH@O\IG @@@LBU'
	000060'	100 100 124 103 060 
	000061'	111 125 110 100 117 
	000062'	134 111 107 040 100 
	000063'	100 100 114 102 125 
	000064'	124 060 103 067 102 		ASCII	'T0C7BQP@R0C_"8#;?XC@%8+;0'
	000065'	121 120 100 122 060 
	000066'	103 137 042 070 043 
	000067'	073 077 130 103 100 
	000070'	045 070 053 073 060 
	000071'	104 124 100 077 060 		ASCII	'DT@?0E !0C@QPC?G9BN>=>K#O'
	000072'	105 040 041 060 103 
	000073'	100 121 120 103 077 
	000074'	107 071 102 116 076 
	000075'	075 076 113 043 117 
	000076'	057 075 040 110 134 		ASCII	'/= H\@% @@@P@F@E0?W @@@@@'
	000077'	100 045 040 100 100 
	000100'	100 120 100 106 100 
	000101'	105 060 077 127 040 
	000102'	100 100 100 100 100 
						PAGE
INIT - INITIALIZE GT40	MACRO %53A(1152) 11:37  1-Feb-81 Page 1-2
INIT	MAC	13-Apr-76 06:27	

						; MACRO/11 SOURCE (GTLOAD.P11)
					;	.TITLE	GTLOAD GT40 LOAD HANDLER
					;CHAR=%0
					;CSUM=%1
					;BYTECT=%2
					;LOADDR=%3
					;SP=%6
					;PC=%7
					;	;
					;GTIS=175610	; GT40 INPUT STATUS
					;GTIB=175612	; GT40 INPUT BUFFER
					;GTOS=175614	; GT40 OUTPUT STATUS
					;GTOB=175616	; GT40 OUTPUT BUFFER
					;	;
					;	; THIS IS THE GT40 RESIDENT HANDLER DURING
					;	; A LOAD. THIS PROGRAM WOULD BE LOADED
					;	; BY THE GT40 BOOTSTRAP (A SIX BIT LOADER)
					;	; THIS IS AN EIGHT HANDLER SO TRANSFER
					;	; IS SPEEDED UP. THE SECOND ADVANTAGE OF
					;	; THIS HANDLER IS THAT IT RETURNS INFORMATION
					;	; ABOUT EACH BLOCK, ALLOWING THE HOST (I.E. PDP 10)
					;	; BETTER MONITORING OF BLOCK TRANSFERS
					;	;
					;	.=37534			; FOR 8K GT40
					;	;
					;START:	MOV	#START,SP		; SET UP STACK
					;READY:	MOVB	#'R,CHAR		; 'R'
					;	JSR	PC,SEND			; FOR READY
					;GETBLK:	CLR	CSUM			; CLEAR THE CHECKSUM
					;	JSR	PC,GET			; GET THE FIRST BYTE
					;	DEC	CHAR			; IF NOT A 1 THEN
					;	BNE	GETBLK			; LOOK FOR START
					;	JSR	PC,GET			; GET THE SECOND BYTE
					;	TSTB	CHAR			; IF NOT A NULL THEN
					;	BNE	GETBLK			; LOOK FOR START
					;	;
					;	; START PROCESSING A VALID BLOCK
					;	;
					;	JSR	PC,GET			; GET LOW ORDER BYTE COUNT
					;	MOV	CHAR,BYTECT		; AND SAVE
					;	JSR	PC,GET			; GET HIGH ORDER BYTE COUNT
					;	SWAB	CHAR			; MAKE HIGH ORDER
					;	BIS	CHAR,BYTECT		; FORM COMPLETE BYTE COUNT
					;	JSR	PC,GET			; GET LOW ORDER LOAD ADDRESS
					;	MOV	CHAR,LOADDR		; AND SAVE
					;	JSR	PC,GET			; GET HIGH ORDER LOAD ADDRESS
					;	SWAB	CHAR			; MAKE HIGH ORDER
					;	BIS	CHAR,LOADDR		; FORM COMPLETE LOAD ADDRESS
					;	;
					;	; IF BYTECT > 6 THEN INTERMEDIATE BLOCK
					;	; IF BYTECT = 6 THEN LAST BLOCK
					;	; IF BYTECT < 6 THEN ERROR
					;	;
					;	SUB	#6,BYTECT		; UPDATE BYTE COUNT
					;	BLT	ERROR			; BAD COUNT
INIT - INITIALIZE GT40	MACRO %53A(1152) 11:37  1-Feb-81 Page 1-3
INIT	MAC	13-Apr-76 06:27	

					;	BEQ	LAST			; LAST BLOCK
					;	;
					;	; PROCESS INTERMEDIATE BLOCK
					;	;
					;NORMAL:	JSR	PC,GET			; GET THE NEXT BYTE
					;	MOVB	CHAR,(LOADDR)+		; SAVE THE BYTE, INCREMENT ADDRESS
					;	DEC	BYTECT			; DECREMENT THE BYTE COUNT
					;	BGT	NORMAL			; AND LOOP FOR ENTIRE BLOCK
					;	JSR	PC,GET			; GET THE CHECKSUM
					;	TSTB	CSUM			; IS CHECKSUM ZERO
					;	BEQ	READY			; IF SO CONTINUE WITH NEXT BLOCK
					;	;
					;	; CHECKSUM ERROR OR BAD BYTE COUNT
					;	;
					;ERROR:	MOVB	#'E,CHAR		; 'E'
					;	JSR	PC,SEND			; FOR ERROR
					;	BR	GETBLK			; TRY THE BLOCK AGAIN
					;	;
					;LAST:	JSR	PC,GET			; GET THE CHECKSUM
					;	TSTB	CSUM			; WAS IT GOOD ?
					;	BNE	ERROR			; CHECKSUM ERROR
					;	;
					;	; SELF START OR HALT
					;	;
					;	BIT	#1,LOADDR		; EVEN ADDRESS ?
					;	BEQ	TRANSF			; YES
					;	MOVB	#'H,CHAR		; IF ODD THEN 'H'
					;	JSR	PC,SEND			; FOR HALT
					;	HALT
					;TRANSF:	MOVB	#'S,CHAR		; EVEN ADDRESS SO 'S'
					;	JSR	PC,SEND			; FOR SELF-START
					;	JMP	@LOADDR			; START USERS PROGRAM
						PAGE
INIT - INITIALIZE GT40	MACRO %53A(1152) 11:37  1-Feb-81 Page 1-4
INIT	MAC	13-Apr-76 06:27	

					;	.PAGE
					;GET:	TSTB	@#GTIS			; TEST STATUS - READY ?
					;	BPL	GET			; WAIT UNTIL READY
					;	MOVB	@#GTIB,CHAR		; GET THE CHARACTER
					;	BIC	#177400,CHAR		; CLEAR THE TOP BYTE
					;	ADD	CHAR,CSUM		; AND ADD INTO CHECKSUM
					;	RTS	PC			; RETURN TO CALLER
					;	;
					;SEND:	BIC	#177400,CHAR		; CLEAR TOP BYTE OF CHARACTER
					;	MOVB	CHAR,@#GTOB		; SEND THE CHARACTER
					;WAIT:	TSTB	@#GTOS			; WAIT UNTIL CHARACTER
					;	BPL	WAIT			; HAS BEEN SENT
					;	RTS	PC			; RETURN TO CALLER
					;	;
					;	.END	START
						END

NO ERRORS DETECTED

PROGRAM BREAK IS 000103
CPU TIME USED 00:00.372

17P CORE USED
INIT - INITIALIZE GT40	MACRO %53A(1152) 11:37  1-Feb-81 Page S-1
INIT	MAC	13-Apr-76 06:27		SYMBOL TABLE

ARGBLK		000017'		
BYTEP		000000'		
CHAR		000015'		
INIT		000002'	int	
L		000016		
LOOP		000006'		
P		000017		
PROGRM		000020'		
SAVET1		000001'		
SNDCHR		000011'	ext	
T0		000000		
T1		000001