/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 $