.EQU	killCode,	 1
.EQU	noQueueBit,	 9
.EQU	kioTrap,	 6
.EQU	kioResult,	16
.EQU	kcsCode,	26
.EQU	JIODone,	0x08FC
.GLOBAL RDiskSig
.GLOBAL RDiskDBGNamePos
.GLOBAL RDiskDBGDisPos
.GLOBAL RDiskDBGDisByte
.GLOBAL RDiskCDRNamePos
.GLOBAL RDiskCDRDisPos
.GLOBAL RDiskCDRDisByte

dc.l	0x00000000, 0x00000000, 0x00000000, 0x00000000
dc.l	0x00000000, 0x00000000, 0x00000000, 0x00000000

RDiskSig:
.ascii	"\5RDisk\0"
.align 4
RDiskDBGDisPos:
dc.l 0x00000031
RDiskCDRDisPos:
dc.l 0x00012CAF
RDiskDBGNameAddr:
dc.l 0x4088002A
RDiskCDRNameAddr:
dc.l 0x40892C96
RDiskDBGDisByte:
dc.b 0x44
RDiskCDRDisByte:
dc.b 0x44
RDiskRAMRequired:
.ascii	"16"

.align 4
DOpen:
	movem.l		%A0-%A1, -(%SP)
	bsr			RDOpen
	movem.l		(%SP)+, %A0-%A1
	rts

DClose:
	movem.l		%A0-%A1, -(%SP)
	bsr			RDClose
	movem.l		(%SP)+, %A0-%A1
	rts

DPrime:
	movem.l		%A0-%A1, -(%SP)
	bsr			RDPrime
	movem.l		(%SP)+, %A0-%A1
	bra.b		IOReturn

DControl:
	movem.l		%A0-%A1, -(%SP)
	bsr			RDCtl
	movem.l		(%SP)+, %A0-%A1
	cmpi.w		#killCode, kcsCode(%A0)
	bne.b		IOReturn
	rts

DStatus:
	movem.l		%A0-%A1, -(%SP)
	bsr			RDStat
	movem.l		(%SP)+, %A0-%A1

IOReturn:
	move.w		kioTrap(%A0), %D1
	btst		#noQueueBit, %D1
	beq.b		Queued

NotQueued:
	tst.w		%D0
	ble.b		ImmedRTS
	clr.w		%D0

ImmedRTS:
	move.w		%D0, kioResult(%A0)
	rts

Queued:
	move.l		JIODone, -(%SP)
	rts
