小弟是6502初學者,想請教各位前輩,6502的delay time 有公式或參照表嗎,假使我設計一個延遲350us的副程式:這樣寫對嗎,還是有較準確的公式,麻煩各位前輩賜教 感謝!!
DELAY_350us:
DELAY_LOP:
NOP
NOP
NOP
DEC A
BNE DELAY_LOP
RTS
[求助]請問如何自行設計delay time
可以这样:
其中在NC机型中
_AutoClose = $0401
_WatchDog = $03f6
简单说明一下:程式的入参是 X与Y,分别为要延迟毫秒数(0.001秒)的低八位与高八位。
比如要延迟 900ms,可以这样:
ldx #<900
ldy #>900
jsr _Delay
另外这个程式只能精确到毫秒(其实不是很精确)如果要更精确的话,需要其它方法。
_Delay: ;入参 x,y
STX $80
STY $81
LSR $81
ROR $80
LSR $81
ROR $80
_DelayLoop1
LDA $80
ORA $81
BNE _DelayLabel1
RTS
_DelayLabel1
LDA #$04
STA $3e
LDA $3f
STA $82
_DelayLoop2
LDA #$00
STA _WatchDog
STA _AutoClose
LDA #$04
STA $3e
LDA $3f
CMP $82
BEQ _DelayLoop2
LDA $80
BNE _DelayLabel2
DEC $81
_DelayLabel2
DEC $80
JMP _DelayLoop1