;
; PAGE6 Code - Always resident - turns ROM on and off, makes
; real call to CIOV.  All data buffers stay out in real RAM.
; Version intercepts interrupts and sends them to ROM
;
CIOVF:	jsr	romon	;Enable OS
	jsr	$E456	;ROM CIOV
	jsr	romoff	;Enable EMAX
	rts		;
	;
	;ROM Off
	;
romoff:	php ! pha
	lda	#0
	sta	portb	;load with ROM off
	pla ! plp
	rts
romofv	= romoff+3
	;
	;ROM On
	;
romon:	php ! pha
	lda	#0
	sta	portb
	pla ! plp
	rts
romonv	= romon+3
	;
	;ROM on before going to DUP
	;
DUPSYS:	dw	dupr
dupr:	jsr	xreset
	jsr	romon
	jmp	($000A)
	;
	;Interrupt interceptors
	;  RESET
VFFFE:	pha
	jsr	romon
	lda	#high vfffa2
	pha
	lda	#low vfffa2
	pha
	pha		;fake ccs
VFFFE1:	jmp	0
	;  IRQ
VFFFC:	pha
	jsr	romon
	lda	#high vfffa2
	pha
	lda	#low vfffa2
	pha
	pha		;fake ccs
VFFFC1:	jmp	0
	;  NMI
VFFFA:	pha
	jsr	romon
	lda	#high vfffa2
	pha
	lda	#low vfffa2
	pha
	pha		;fake ccs
VFFFA1:	jmp	0
vfffa2:	jsr	romoff
	pla
	rti
	;
	;For CIO to find the device names
	;
PRINTD:	db  'P:',EOL
EDXEP:	db  'E:',EOL
KNAM:	DB  'K:',EOL
D1DEF:	DB  'D1:',EOL
CDEV:	DB  'D:EMAX.INI',EOL	; Device for command input
D$SPAC:	db  '         '
	;
	;XIO code conversion - for compat w/ diff OSs
	;
XIOTAB:	db	32,33,34,35,36,39	;MYDOS
;
;end of PAGE6.ASM
