
DISKIN:		lda	#'1'
		sta	DDEVIC
		lda	DSKTIM		; time-out for FORMAT
		ldx	DCOMND
		cpx	#'!'
		beq	@1
		lda	#7		; otherwise: 7 seconds
@1:		sta	DTIMLO

		ldx	#%01000000	; set bit 7 if WRITE, otherwise bit 6
		lda	DCOMND
		cmp	#'P'		; "put" command? (WRITE/NO VERIFY)
		beq	@2
		cmp	#'W'		; "write" command?
		bne	@3
@2:		ldx	#%10000000

@3:		cmp	#'S'		; "status" command?
		bne	@4

		; STATUS command:

		lda	#<DVSTAT
		sta	DBUFLO
		lda	#>DVSTAT
		sta	DBUFHI
		ldy	#<4
		lda	#>4
		beq	@5		; jmp @5

@4:		ldy	DSCTLN
		lda	DSCTLN+1

@5:		stx	DSTATS
		sty	DBYTLO
		sta	DBYTHI
		jsr	SIOV
		bpl	@6
		rts

@6:		lda	DCOMND
		cmp	#'S'
		bne	@7

		jsr	@11
		ldy	#2
		lda	(BUFADR),Y
		sta	DSKTIM

@7:		lda	DCOMND
		cmp	#'!'
		bne	@10
		jsr	@11
		ldy	#$FE
@8:		iny
		iny
@9:		lda	(BUFADR),Y
		cmp	#$FF
		bne	@8
		iny
		lda	(BUFADR),Y
		iny
		cmp	#$FF
		bne	@9
		dey
		dey
		sty	DBYTLO
		lda	#0
		sta	DBYTHI
@10:		ldy	DSTATS
		rts

@11:		lda	DBUFLO
		sta	BUFADR
		lda	DBUFHI
		sta	BUFADR+1
		rts
