; MaxcAltoCode.mu -- top-level microprogram for Maxc2 Alto

;	Last modified April 13, 1978  2:33 PM

#AltoConsts23.mu;
#EmulatorDefs.mu;

; The reset locations of the tasks:

!17, 20, Emulator, , , , , ImpTask, , , MRT, , , , , , , RunMI;


; Dummy emulator task, for silent boot:

Emulator: SWMODE;
	:START;


; Trap handler and dispatcher for instructions that trap into
; the RAM.  In the following predefinition, the tags correspond
; to opcodes 60000, 60400, 61000, 61400, ... 77400.
; Note that opcodes 60000, 60400, 61000, 64400, 65000, 67000, and 77400
; cannot be used since control never gets to the RAM for these).

; 61400	GetFrame
; 62000	Return
; 62400	BcplUtility
; 63000	SetBLV
; 66000	MaxcMemOp
; 70000	ConvTo32
; 70400	ConvTo36
; 71000	ConvFrom32
; 71400	ConvFrom36

!37,40, TrapDispatch, , , GetFrame, Return, BcplUtility, SetBLV, ,
	 , , , , MaxcMemOp , , , ,
	ConvTo32, ConvTo36, ConvFrom32, ConvFrom36, , , , ;


; Control comes here with the instruction LCY 8 in XREG
TRAP1:	T←37;
	L←XREG AND T;
TrapDispatch:
	SINK←LREG, BUS, TASK;
	:TrapDispatch;


; Instruction to set the Boot Locus Vector from AC0:

SetBLV:	RMR← AC0, :Emulator;


#MaxcMemory.mu;
#MaxcImp.mu;
#MaxcImpConv.mu;
#GetFrame.mu;
#BcplUtil.mu;