speaking of 1541..

From: Christopher Phillips (shrydar_at_jaruth.com)
Date: 2005-04-25 07:22:08

Does anyone know how you would retry a job that never even reports an 
error?
I occasionally get stuck forever in the 'ldy buffer0jq:bmi wait' loop 
in doJob, below.

I've executed the code in 0x500 with a M-E command from the c64.

christopher
--



drivecode:
	*= $0500
drivestart:
	sei
	cld

	lda #0
	sta port1b
	
readNextBlock
	lda tk
	beq sbNoRead

	jsr ledOn
	jsr readBlock
	jsr ledOff	

...

tk:	.byt 18
se:	.byt 1

; reads block pointed to by tk,se
readBlock:
	lda #jobRead
	ldx tk
	ldy se
	;jmp doJob

doJob:	php			; returns nonzero Y on failure
	stx buffer0tk
	sty buffer0se
	ldx #20    ; try counter
	cli
	.(
jobtry:
	sta buffer0jq
wait	ldy buffer0jq
	bmi wait
	cpy #$01
	beq jobOK
	dex
	bne jobtry
jobOK:	plp
	rts
	.)
	
ledOn:	lda #$08
	ora port2b
	bne boo
ledOff:	lda #$f7
	and port2b
boo
	sta port2b
	rts	


       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.