perm filename BOOT.PAL[KL,SYS]3 blob
sn#259024 filedate 1977-01-21 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .SBTTL DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
C00004 00003 $DS
C00006 ENDMK
Cā;
.SBTTL DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
.IF DF BOOASB
;LOAD DSKDMP BOOTSTRAP
LDBOOT: MOV #L10ADR+2,R3 ;SETUP BLOCK START ADDRESS POINTER
CLR (R3)
MOVB LDCNT+1,(R3) ;HI-BYTE OF LDCNT IS ADR BITS 18 & 19
MOV LDADR,-(R3) ;SETUP ADR BITS 20-35
TST LDZBLK ;IS IT A Z LINE?
BEQ LDBDAT ;NO, LOAD DATA
MOV (R3)+,BOOTBG ;STARTING ZERO ADDRESS (LOW 16 BITS)
MOV (R3),BOOTBG+2 ; HIGH TWO BITS (18 AND 19)
CLR R1
MOV #LDATA,R2
MOVB LDCNT,R3
1$: ADD (R2)+,R1 ;ACCUMULATE TOTAL # WORDS TO ZERO
DEC R3
BNE 1$
MOV R1,R2
SL R1,1
ADD R2,R1 ;TIMES 3 IS NUMBER OF PDP-11 WORDS
CMP R1,#BOOTSZ
BLE 2$ ;BRANCH IF SMALL ENOUGH
PMSG <?BOOT TOO LONG>
JMP $CNTLC
2$: MOV #BOOTBF,R1
MOV #BOOTSZ,R2
3$: CLR (R1)+
DEC R2
BNE 3$ ;CLEAR OUT THE BOOT BUFFER
LDBLD2: JMP LLD2 ;DO NEXT LINE
LDBDAT: MOVB LDCNT,R0 ;WC
BEQ LDBXFR ;WC=0 MEANS TRANSFER BLOCK
MOV #LDATA,R1
MOV LDADR,R2
SUB BOOTBG,R2 ;GET OFFSET FROM START OF BUFFER
MOV R2,R3
SL R2,2
SL R3,1
ADD R3,R2 ;TIMES 6 GIVES BYTE OFFSET FROM BOOTBF
ADD #BOOTBF,R2
5$: MOV (R1)+,(R2)+ ;COPY A WORD
DEC R0
BNE 5$
BR LDBLD2
LDBXFR: MOV (R3)+,BOOTSA
MOV (R3),BOOTSA+2 ;SAVE AWAY STARTING ADDRESS
JMP LDDONE
;$DS
;COPY DSKDMP BOOT INTO PDP-10 AND START IT
$DS: TTITRM
TST BOOTSA
BNE 2$
TST BOOTSA+2
BNE 2$
PMSG <?DSKDMP BOOT NOT LOADED - USE LD>
JMP $CNTLC
2$: CMP PEBITS,#36
BEQ 3$
CMP PEBITS,#37
BEQ 3$
PMSG <BAD PARITY ENABLES, TYPE PE 36 FIRST>
JMP $CNTLC
3$: CMP CLKDFL+4,#17
BEQ 4$
PMSG <WARNING! SOME CACHES DISABLED - TYPE CE 17 TO ENABLE ALL\>
4$: MOV #L10ADR+2,R3
MOV BOOTBG+2,(R3)
MOV BOOTBG,-(R3)
MOV #BOOTWD,R2 ;NUMBER OF PDP-10 WORDS IN BUFFER
MOV #BOOTBF,R4
MRESET
SM
1$: MOV R3,R1
MOV R4,R0
DPOSVR
BCS DSVER
INC (R3) ;STAY IN SAME 64K SECTION
ADD #6,R4 ;NEXT PDP-10 WORDS WORTH
DEC R2
BNE 1$
MOV #PGOADR,R4
MOV BOOTSA,(R4)+
MOV BOOTSA+2,(R4)
MOV #2,PGOCTL
JMP $$GO ;START IT UP
DSVER: PMSG <DEPOSIT/EXAMINE ERROR IN DS>
JMP $CNTLC
.ENDC ;IF DF BOOASB