.NLIST .INCLUDE /ASCII.MAC/ .INCLUDE /HWDF.MAC/ .INCLUDE /DSMAC.MAC/ .INCLUDE /MYMAC.MAC/ .LIST MODULE NAME=, VER=<001>, COMM=, TYPE= .NLIST .INCLUDE /DDPCM.MAC/ .LIST FROM MONITR IMPORT DTBEG$, DTEND$, START .ASECT .=^O<0> .ENABL LSB PROCEDURE BOTBEG BEGIN RESET GOTO GMEMSZ END BOTBEG .ASSUME . EQ <^O<4>> .WORD V4F, 0 PROCEDURE GMEMSZ BEGIN LET R0 := #^O<0> LET SP := #^O<20000> LET R1 := #^O<7> ;^O<160000/20000> REPEAT LET R2 := (R0) LET R0 := R0 + SP LET R1 := R1 - #^O<1> UNTIL RESULT IS LE V4F: $GOTO BOOTMV END GMEMSZ PROCEDURE BOOTMV BEGIN LET R0 := R0 - #^O<374> LET R1 := #DESCR LET R2 := (R1)+ + (R1)+ ; 1460+0 IF R2 HI R0 THEN HALT END LET R5 := (R1) ; 34 LET R4 := -(R1) ; 0 LET R3 := - -(R1) ; 1460 -> 176320 LET R1 := #BOOT LET SP := R0 REPEAT LET (R0)+ := (R1)+ UNTIL R1 HI #^O LET R2 := #TCCM JMP (SP) $GOTO BOOT END BOOTMV PROCEDURE BOOT BEGIN REPEAT REPEAT REPEAT LET (R2) := #^O ; Read block number reverse REPEAT UNTILB (R2) MI #0 UNTIL TCST-TCCM(R2) MI #0 REPEAT LET (R2) := #^O ; Read block number REPEAT UNTILB (R2) MI #0 UNTIL #1 LE TCDT-TCCM(R2) UNTIL RESULT IS GE LET TCBA-TCCM(R2) := R4 ; 0 LET TCWC-TCCM(R2) := R3 ; 1460 words 3140 bytes - from block #1 - 4 blocks LET (R2) := #TCRDA$!TCDO$ REPEAT UNTIL #TCERR$!TCRDY$ SET.IN (R2) UNTIL RESULT IS PL LET (R2) := #TCSST$!TCDO$ ; Stop selected transport RESET JMP (R5) BOTEND: END BOOT B.LKW <<1000-.>/2> .=.-^O<3*2> DESCR: .WORD DTEND$/2 ; Size in words .WORD DTBEG$ ; Load address .WORD START ; Start address END TCBOOT .END BOTBEG