Text preview for : MBoot.asm_Sep78.pdf part of xerox MBoot.asm Sep78 xerox mesa 4.0_1978 listing Mesa_4_Microcode MBoot.asm_Sep78.pdf



Back to : MBoot.asm_Sep78.pdf | Home

MBoot.asm 2-Sep-78 17:21:64 Page 1


ALTO MESA BOOT LOADER - MBoot.asm
LOADED ALMOST ANYWHERE AND EXECUTED
R. Johnsson - 20 Feb 76
Last edited March 20, 1978 6:40 PM
. TITL BOOT
.TXTM B
.ENT MBOOT
.ENT SwatFlag
.SREL
MBOOT: BOOT
SwatFlag: BREAK
.NREL
.GET "Mesa-NovaDefs.asm"


;ACO is pointer to argument list
BOOT: MOV 0 2
LOA 3 0,2 POINTER TO BOOTMAP RECORD
LOA 0 0,3 SN1
STA 0 DCB1+snl
STA 0 DCB2+snl
LOA 0 1,3
STA 0 OCB1+sn2
STA 0 DCB2+sn2
LOA 0 5,3 first page
STA 0 DCB2+pagenumber
NEG 0 0 -1
COM 0 0
STA 0 OCB1+pagenumber
LOA 0 C6
ADO 3 0
STA 0 PGPTR
LOA 0 1,2
STA 0 OCB1+diskaddress
LOA 0 2,2 initial State
STA 0 currentState
BLTLOOP;
LOA 0 C3
ADD 0 2
LOA 0 0,2
MOV 0 0 SNR
JMP DOlT
LOA 1 1,2
LOA 3 2,2
BLT do some BLTs
JMP BLTLOOP
C3: 3
DOlT:
DIR ; NO MORE INTERRUPTS
SUB 0 0 ;CLEAR SOME LOCATIONS
LOA 2 PAGEl ; POINTER TO PAGE 1 LOCATIONS
STA 0 OISP,2 ; DISPLAY OFF
STA 0 IWW,2 ;WAKEUPS WAITING
; JSR .+1 ;RELOCATE CURSOR POINTERS
;CURFIX: LOA 1 POCURSORM1
ADD 3 1
STA 1 POCURSORM1
LOA 1 PMCURSORMl
ADO 3 1
STA 1 PMCURSORMl
LOA 0 PCURSORMl
LOA 1 PMCURSORM1
LOA 3 CN16
BLT ;SAVE OLD CURSOR
LOA 0 PMCURSORMl
LOA 1 CURENO
LOA 3 CN16
MBoot. asm 2-Sep-78 17:21:54 Page 2


BLT ;INSERT MESA CURSOR
NOW FIXUP THE ADDRESSES IN THE DISK BLOCKS
JSR .+1
F: MOV 3 1 ADDR OF FIXUP TO ACl
LOA 2 DCB2 OFFSET OF FIRST DCB IS IN SECOND
LOA 3 DCBl AND VICE VERSA
ADD 1 2
ADD 1 3 THE FIXUPS
STA 2 DCBl
STA 3 DCBl
NOW FIX THE HEADER AND LABEL ADDRESSES
LOA 0 3 2
ADD 1 0
STA 0 3 2
LOA 0 4 2
ADD 1 0
STA 0 4 2
LOA 0 3 3
ADD 1 0
STA 0 3 3
LOA 0 4 3
ADD 1 0
STA 0 4 3
START THE DISK AND JUMP INTO LOOP
LOA 0 @PGPTR pick up first data address
STA 0 data 2 STORE IT IN DeB
STA 2 @PDBLK
JMP ADVANCE


DCBl AND DCB2 ARE THE DISK CONTROL BLOCKS
layout of disk command block
next = 0
status .. 1
command .. 2
header = 3
label