Trailing-Edge
-
PDP-10 Archives
-
custsupcuspmar86_bb-x130b-sb
-
l680.pal
There are 8 other files named l680.pal in the archive. Click here to see a list.
/L680 *680 LOADER* VERSION-0
/ADDRESSES: 7777 START ADDRESS
/ 7755 (1 BELOW RIM) 680 LINE# (NOT TTY#) FOR PDP-10 LOAD
/SWITCHES: BIT0=1: LOAD FROM ASR-33
/ =0: LOAD FROM DA-10 (PDP-10)
/
/HALTS ON TRAILER WITH CHECKSUM IN AC (SHOULD BE 0)
/CONTINUE WILL READ AND IGNORE REST OF TAPE
/
/EXAMPLE OF PDP-10 LOAD:
/ASSUME: 680 LINE # 0 = TTY20
/ DESIRED FILE IS ON THE DISK NAMED 'X680.BIN'
/AT 680: 'STOP'
/ SWITCHES _ 7777
/ 'LOAD ADDRESS'
/ SWITCHES _ 3777
/ 'START'
/AT PDP-10 TTY: .ASSIGN TTY20
/ -
/ TTY20 ASSIGNED
/ --------------
/ .R PIP
/ -
/ *TTY20:/I_D:X680.BIN
/ -
/AT 680: SHOULD HALT WITH AC = 0
/ (AC NOT 0 INDICATES CHECKSUM ERROR--
/ AFTER READING TRAILER (BELOW), REPEAT THE LOAD.)
/ 'CONTINUE' TO EMPTY THE PDP-10 BUFFER (OF TRAILER ETC.)
/ 'STOP' AFTER A FEW SECONDS OR WHEN PIP RETURNS A *
/
/AT PDP-10 TTY: *^C
/ ---
/ .DEASSIGN TTY20
/ -
/
/
/TO CHANGE TTY# USED, DEPOSIT CORRESPONDING LINE# IN 7775 BEFOR 'START'
/E.G. IN EXAMPLE ABOVE TTY23 MAY BE USED IF 7755 _ 3.
/
/
/NOTE---DIFERENCES BETWEEN L680 AND STANDARD BINARY LOADER:
/ 1. DOESNT HANDLE RUBOUT OR FIELD-CHANGE
/ 2. 'CONTINUE' AFTER 'HALT' DOESNT LOAD ANOTHER TAPE.
DAISKP=6371 /DA-10 IOT'S
DARED2=6362
DARED3=6372
DAOSKP=6361
DAOCLR=6351
DALOD2=6364
DALOD3=6374
*7626 /L680 LOWEST ADDRESS
INIT, OSR CLA /SELECT DEVICE ACCORDING TO SWITCHES
SPA CLA
TAD KJMP2
TAD KJMP1
DCA CHAR0
START, KCC
DCA CKSUM /INIT CKSUM
DCA TEMCS
JMS WORD /EAT LEADER
JMP .-1
LOOP1, SNL /ADDRESS OR DATA?
JMP LOOP2 /DATA
DCA LOC /ADDRESS
JMS WORD /GET NEXT WORD
JMP STOP /TRAILER--STOP (ERROR SINCE LAST WD NOT CKSUM)
JMP LOOP1
LOOP2, DCA TEM1 /SAVE THIS WORD & LOOK AHEAD FOR CKSUM
JMS WORD /IS NEXT WORD TRAILER?
JMP STOP /YES--LAST WORD WAS CHECKSUM--DONT STORE IT
DCA TEM2 /NO---STORE LAST WORD
TAD TEM1
DCA I LOC
ISZ LOC / BUMP LOC.CTR.
KNOP, NOP
TAD TEM2 / AND PROCESS THIS WORD
JMP LOOP1
STOP, CLA /HERE ON TRAILER
TAD TEM1 /GET CHECKSUM WORD
CIA
TAD CKSUM /DISPLAY DIFFERENCE IN LIGHTS
HLT
STOP2, CLA /EAT ANYTHING THAT REMAINS
JMS CHAR
JMP STOP2
/SUBROUTINE TO BUILD WORD FROM 2 CHARACTERS
/NON-SKIP RETURN IF TRAILER/LEADER (CHANNEL 8 PUNCHED)
/SKIP RETURN OTHERWISE WITH AC=ASSEMBLED WORD,
/ LINK=1 IF NEW ADDRESS (CHANNEL 7 OF 1ST CHAR.)
WORD, 0
JMS CHAR /GET 1ST CHAR
DCA TEMW
TAD K200 /8TH CHAN. PUNCHED?
AND TEMW
SZA CLA
JMP I WORD /YES--NON-SKIP RETURN
JMS CHAR /NO---GET 2ND CHAR
DCA TEMC
TAD CKSUM /ACCUMULATE CHECKSUM
TAD TEMCS
DCA CKSUM
TAD TEMC /AND PARTIAL SUM
TAD TEMW
DCA TEMCS
TAD TEMW /ASSEMBLE WORD
CLL RTL /LEAVING 7TH CHAN. OF 1ST CHAR IN LINK
RTL
RTL
TAD TEMC
ISZ WORD /SKIP RETURN
JMP I WORD
/SUBROUTINE TO GET NEXT CHAR
CHAR, 0
CHAR0, NOP /***MODIFIED FOR DEVICE SELECTION
CHAR1, DAOCLR /PDP-10 (DA-10)
TAD TTY /SEND XMIT FLEAG TO PDP-10
DALOD2
CLA
DALOD3
DAOSKP /WAIT FOR PDP-10 TO TAKE IT
JMP .-1
DAISKP /WAIT FOR PDP-10 TO SEND NEXT CHAR
JMP .-1
DARED2 /RIGHT LINE NUM?
CIA
TAD TTY
SZA
STA /NO---FORCE 'JMP CHAR0' BELOW TO IGNORE THIS
DARED3 /YES--GET CHAR
SPA /IS IT MODEM CONTROL?
KJMP1, JMP CHAR1 /YES--IGNORE IT THEN
JMP I CHAR /NO---RETURN
CHAR2, KSF /ASR-33 PAPER TAPE
JMP .-1
KRB
JMP I CHAR
CKSUM, 0
LOC, 0
K200, 200
KJMP2, CHAR2-CHAR1
TEMCS, 0
TEM1, 0
TEM2=WORD
TEMC=CHAR
TEMW, 0
*7755
TTY, 0 /LINE NUMBER
*7756 /RIM LOADER
*7777
JMP INIT
$