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