[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: killing time in 6502 assembly



    John Iannetta gave the following example of a routine that gives a delay of
over 2E602 centuries:

    LDA #$00
    TAX
L   STA $1000,X
    INX
    BNE L
00  INC $1000,X
    JSR R
01  BNE 00
    INC $1000,X
    JSR R
02  BNE 01
    INC $1000,X
    JSR R
03  BNE 02
    ...
    ...
    ...
    INC $1000,X
    JSR R
FF  BNE FE
    INC $1000,X
    JSR R
    BNE FF
R   RTS

    John goofed; the addresses in page $1000 must all be different.  The
correct routine is:

    LDA #$00
    TAX
L   STA $1000,X
    INX
    BNE L
00  INC $1001,X
    JSR R
01  BNE 00
    INC $1002,X
    JSR R
02  BNE 01
    INC $1003,X
    JSR R
03  BNE 02
    ...
    ...
    ...
    INC $10FE,X
    JSR R
FF  BNE FE
    INC $10FF,X
    JSR R
    BNE FF
R   RTS

    John, you should be more careful when you transcribe your notes.  And don't
blame your mistakes on the enfeebled, dilapidated, decrepit, CompuServe
Newsserver.  After all, CompuServe DID increase its fiscal 1999 Newsserver
budget grom $19.95 to $29.95.

-- 
When backing up your hard drive, shift into reverse gear S M O O T H L Y.

                      John