RE: [stella] Help (Timing problems?)

Subject: RE: [stella] Help (Timing problems?)
From: Nicolás Olhaberry <nolh@xxxxxxxxxxxxx>
Date: Wed, 11 Aug 1993 04:58:12 -0300
----- Original Message -----
From: Wade Brown
To: stella@xxxxxxxxxxx
Sent: Thursday, August 09, 2001 10:18 PM
Subject: Re: [stella] Help (Timing problems?)

> Maybe someone out there has a link to a better opcode ref - If so I (and
the list, no doubt) would sure appreciate hearing about it.

I´ve download from I-don´t-remember-where a fairly complete documentation
for the SY6500, which for what I know, is equivalent to the 6502. I had been
using it for a while without any problem (be sure to ignore the SY65C02
part, it
has newer features which aren´t available on the 6502). If you can´t find it
on the web, let me know and I will email it to you.

You can also try with the assembly language chapter from the C64 manual, but
I don´t know if it can be found online, anyway it won´t tell you much
more than the SY6500 documentation.

>>    bcc .inXBounds
>>    lda #RIGHT_BOUND
>>    .byte $2c       ;       opcode for bit.w, this hides the next
instruction                 <-- I don't understand? (Wade)
>>    lda #LEFT_BOUND
>>    sta Player1X

I will try to explain this, but I know my english will fail me, sorry.

.byte $2c is a directive for the compiler, not an opcode, so it won´t be
interpreted as one, and simply $2C will be written to the binary in that

 When this code is executed, $2C will be fetched, which is the value for the
opcode BIT in absolute addressing mode.

That mode needs two bytes of data to determine a memory location, so, the
next instruction lda #LEFT_BOUND (since it´s two bytes long), will be
considered data, instead of being executed. Notice that when bcc
outOfLeftBound: is taken, lda #LEFT_BOUND will be executed.

The purpose of this, is to save ROM space, because just one more byte allows
you to store the left or the right bound on Player1X .



Archives (includes files) at
Unsub & more at

Current Thread