







ENTRY	umode + cstartProlog

	LDCT	fixup  DZ D=CSH  OR  RAMF B=R1  DECCA		// upper
	CONT	DZ D=BR, prcache  OR  HLDCA
	CJS	savecregs  DZ D=CSH  OR  RAMF B=R0	// lower
	CONT	DZ D=BR, regarea+5  OR  ALDCA
	CJS	getpregs  AB A=R0  SUBR CIN  RAMF B=R1
	CONT	DA D=BR, 2 A=R1  ADD  RAMD B=R1
	CONT	DZ D=BR, pswapbase+r0  OR  ALDCA
	CJS	loadpregs
	CONT	INCCA
	CJP	NZ, restart  ZQ  ADD CIN
	CONT	DZ D=BR, prinst  OR  HLDIR		/* Prolog inst set */
	CJS	fillIr0  AB A=R0 B=R0  SUBR  QREG
	LDCT	cfexit

// Fall through to fetch first instruction

ENTRY	copymode + 0
ENTRY	copymode + untr0
copyFetch:
	CONT	DZ RTR1  OR  RAMA A=ir0  B=ir0  LDIR
copyFetch1:
	CJV	NZ  DA D=BR,3 A=pc  AND
copyFetch2:
	CONT	ZB  ADD CIN  RAMA A=sp B=pc  ALDCA

	CONT	ZA A=pc  OR  RAMD B=ir0
	CONT	ZB  OR  RAMD B=ir0
	CONT	ZA A=ir0  OR  LVAR
	CONT	D=TB  LBR  ADDR
	CJS	RFLT, rcache  AB A=R0 B=R0 SUBR  QREG  LOCK
	LDCT	cfexit  ZB  SUBR  RAMF B=pc  RD
	CONT	ZB  ADD CIN  RAMF B=pc
	CONT	DZ D=BUS  OR  RAMF B=ir0  LDIR
	CJV	NINT  DZ RTR1  OR  RAMA A=ir0 B=ir0
	CJP	NLC, intexit
	CONT	DZ D=BR, cstartProlog  OR  LDIR

fixup:
	JUMP	noop  ZB  AND  HLDCA
	CONT	ZB  AND  HLDIR
