Atom 2k18 ?

discussion of games, software, hardware & emulators relating to the Acorn Atom and Acorn System machines.
User avatar
marcusjambler
Posts: 745
Joined: Mon May 22, 2017 11:20 am
Location: Bradford
Contact:

Re: Atom 2k18 ?

Post by marcusjambler » Sat Sep 07, 2019 6:29 pm

I'm interested in a board please

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Sun Sep 08, 2019 9:08 am

IMHO there is already enough interest in a new MK2 board so I will start working on it. After I return from the ABUG in September I will order the boards. Perhaps there is more interest when people see it working at the meeting. The price per board will go down if there are more ordered.

It's also possible that I release the gember files so that one of you can order and distribute them in the UK. That seems quicker and cheaper to me compared to me ordering and posting the boards to the Netherlands and forward them to the UK.
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

Retrogadgets
Posts: 8
Joined: Mon Jul 22, 2019 3:19 pm
Location: Sheffield, UK
Contact:

Re: Atom 2k18 ?

Post by Retrogadgets » Tue Sep 10, 2019 6:50 pm

Hi. I would be interested in ordering the boards. I use jlcpcb and very reasonably priced.
Regards
Frank

Retrogadgets
Posts: 8
Joined: Mon Jul 22, 2019 3:19 pm
Location: Sheffield, UK
Contact:

Re: Atom 2k18 ?

Post by Retrogadgets » Tue Sep 10, 2019 6:52 pm

I'm in the UK.

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Tue Sep 10, 2019 8:26 pm

Retrogadgets wrote:
Tue Sep 10, 2019 6:50 pm
Hi. I would be interested in ordering the boards. I use jlcpcb and very reasonably priced.
Regards
Frank
JLCPCB made also the first batch and the quality of this multi-layer board is perfect.
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8914
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Wed Sep 11, 2019 10:35 am

Roland,

Continuing the reset discussion from here:
viewtopic.php?p=247588#p247588
(as it's Atom FPGA 2K18 specific)

I've rebuild the design Atom FPGA 2K18 with the latest commits (that last change was your work on adding Interrupts to the UART).

I've reprogrammed my FPGA.

For me, it always powers up as expected:
- original character set
- mouse pointer disabled

Here's the .mcs file if you would like to try it:
AtomFpga_Atom2K18.zip
(249.43 KiB) Downloaded 12 times
One question: doe you have C24 fitted or not? It should not make any difference as there is an internal power up reset. It's actually recommended to remove this capacitor, because the there are times when the FPGA pulls reset low. I don't have it fitted.

Dave

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Wed Sep 11, 2019 10:56 am

Hi Dave,

I will try your .mcs soon. And yes, in my Atom 2k18 is C24 fitted. I copied that from the original Atom and Atom 2k15 design but I didn't realize that it could influence the reset behaviour of the Atom 2k18.

I will first try your bitstream and if the problem does not disappear I will remove that capacitor too.

Greetings,
Roland
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8914
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Wed Sep 11, 2019 1:10 pm

roland wrote:
Wed Sep 11, 2019 10:56 am
I will first try your bitstream and if the problem does not disappear I will remove that capacitor too.
As I said, I don't think C24 is the problem, as I've temporarily tried fitting it and still cannot reproduce the bug.

It's still best to remove C24, as it's quite a big load for the FPGA to discharge when it needs to drive the bus reset, and consequently you will end up with slow edges.

See the discussion here:
viewtopic.php?p=236701#p236701

Dave
Last edited by hoglet on Wed Sep 11, 2019 3:36 pm, edited 1 time in total.

Retrogadgets
Posts: 8
Joined: Mon Jul 22, 2019 3:19 pm
Location: Sheffield, UK
Contact:

Re: Atom 2k18 ?

Post by Retrogadgets » Wed Sep 11, 2019 6:01 pm

Hi
I need numbers for a collective order of the Atom 2k18 from jlcpcb for interested parties in the UK.

Regards
Frank

User avatar
marcusjambler
Posts: 745
Joined: Mon May 22, 2017 11:20 am
Location: Bradford
Contact:

Re: Atom 2k18 ?

Post by marcusjambler » Wed Sep 11, 2019 9:33 pm

holds hand up for a UK board :D

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Wed Sep 11, 2019 9:40 pm

Dave,

I have installed your mcs file and I haven't seen the bug yet. I will keep an eye on it to see if it happens again.

Greetings,
Roland
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

Retrogadgets
Posts: 8
Joined: Mon Jul 22, 2019 3:19 pm
Location: Sheffield, UK
Contact:

Re: Atom 2k18 ?

Post by Retrogadgets » Thu Sep 12, 2019 8:57 pm

Retrogadgets wrote:
Wed Sep 11, 2019 6:01 pm
Hi
I need numbers for a collective order of the Atom 2k18 from jlcpcb for interested parties in the UK.

Regards
Frank
3 interested partis at the moment
Initial costs for 5 boards £14.51 plus £7.00 shipping to UK. Roughly £4.45 each Inc shipping.

User avatar
hoglet
Posts: 8914
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Thu Sep 12, 2019 9:06 pm

Retrogadgets wrote:
Thu Sep 12, 2019 8:57 pm
3 interested partis at the moment
Initial costs for 5 boards £14.51 plus £7.00 shipping to UK. Roughly £4.45 each Inc shipping.
Do you realize it's a 4-layer board?

I would expect the total price to be more like £40-£50 (+Shipping +Duty +VAT)

Dave
Last edited by hoglet on Thu Sep 12, 2019 9:13 pm, edited 3 times in total.

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Thu Sep 12, 2019 9:26 pm

Indeed, I paid about €100 for five boards after getting a partial refund of taxes :evil:
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

Retrogadgets
Posts: 8
Joined: Mon Jul 22, 2019 3:19 pm
Location: Sheffield, UK
Contact:

Re: Atom 2k18 ?

Post by Retrogadgets » Mon Sep 16, 2019 7:14 pm

hoglet wrote:
Thu Sep 12, 2019 9:06 pm
Retrogadgets wrote:
Thu Sep 12, 2019 8:57 pm
3 interested partis at the moment
Initial costs for 5 boards £14.51 plus £7.00 shipping to UK. Roughly £4.45 each Inc shipping.
Do you realize it's a 4-layer board?

I would expect the total price to be more like £40-£50 (+Shipping +Duty +VAT)

Dave
Yes would be more like £50.95 for 5 piece's of 4 layer board Inc shipping to UK.

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Mon Sep 16, 2019 8:36 pm

Just a small status update: I have worked out all mistakes, errors, faults and improvements into a MK2 design of the board. This design is now under revision and inspection by Hoglet. I expect to release the KiCad files next week after the ABUG meeting.
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8914
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Tue Sep 24, 2019 4:05 pm

A while ago Roland had a nice idea about adding debug support to Atom 2k18:
roland wrote:
Fri Mar 15, 2019 9:32 am
That is great news, it frees a pin that I need for my last excellent feature: debug mode. I'll explain that:
Debugging seems hard for me when most of the logic is in the FPGA. We have almost all CPU signals available at PL6/7 except for the data bus. I want to use a special debug mode that opens the buffer of the data bus continuously and set the data direction from FPGA to the outside world. That makes the data bus also available on PL6/7. There is one problem however: no read operations from the VIA are allowed because the VIA and buffer will clash and at the end one of them will die (probably the VIA). So in debug mode the VIA will be disabled. Another small issue is that the three resistors are outside of the buffers and in debug mode the CPU cannot see them. This can easily be solved by also adding three resistors at the B-side of the 74LVC245.

Debug mode can be started by pressing the two buttons at the FPGA mode and then reset the FPGA (third button on the board).

In short will debug mode look like (pseudo code):

Code: Select all


on_reset:
  if (button1 == pressed and button2 == pressed then
    debug_mode == "on"
  else
    debug_mode == "off"
  end if

if (debug_mode) == "on" then
   cs_via = '1';
   cs_buf = '0';
   buf_dir = '1';
else 
  buf_dir = rw;
  cs_buf = address_in(#b100,#bcff);
  cs_via = address_in(#b800,#b80f);
end if

And we can hook up a logic analyzer or scope to PL6/7 \:D/


Great idea, isn't it :mrgreen:
I've just had a go at implementing this.

I wanted to try for the minimal setup which is just 10 wires connecting to the FX2 Logic Analyzer board (left to right):
- D7..D0
- Phi2
- GND

Here are some photos:
IMG_1760.JPG
IMG_1759.JPG
IMG_1758.JPG
In this configuration, none of the control signals (like Sync, RnW, nRST) are available to the decoder, so the 6502 core has to be completely cycle accurate. If there are any differences, then the decoder will temporarily loose sync and produce an incorrect instruction trace.

Before trying to use the logic analyzer, you need to enable debug mode in AtomFpga 2K18. This changes the operation of the internal and external data bus buffers so that what appears on the PL6/7 data bus is as close as possible to what you would see directly on the data pins of a real 6502. Debug mode is currently enabled when the bar LED is in the "knight rider" pattern. So it can be selected by pressing the buttons on the FPGA board, or by doing ?#BFE0=1.

For reference, here are some of the commands I used...

The capture command:

Code: Select all

sudo fx2pipe2 -d=1d50:608d -a >data.bin
The decode command:

Code: Select all

./decode6502 -d1 --vecrst=A2FF3F --phi2= --sync= --rst= --rnw= -h -i -s -y data.bin > data.log
Here's the familiar start of the Atom reset code:

Code: Select all

???? :          : RESET !!       : 3 : A=?? X=?? Y=?? SP=?? N=? V=? D=? I=1 Z=? C=?
FF3F : A2 17    : LDX #17        : 2 : A=?? X=17 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=C2 X=17 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=C2 X=17 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=C2 X=16 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=C2 X=16 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=78 X=16 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=78 X=16 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=78 X=15 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=78 X=15 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=FC X=15 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=FC X=15 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=FC X=14 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=FC X=14 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=38 X=14 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=38 X=14 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=38 X=13 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=38 X=13 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=FC X=13 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=FC X=13 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=FC X=12 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=FC X=12 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=7C X=12 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=7C X=12 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=7C X=11 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=7C X=11 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=FB X=11 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=FB X=11 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=FB X=10 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=FB X=10 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=EE X=10 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=EE X=10 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=EE X=0F Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=EE X=0F Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=C2 X=0F Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=C2 X=0F Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=C2 X=0E Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=C2 X=0E Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=AC X=0E Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=AC X=0E Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=AC X=0D Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=AC X=0D Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=C2 X=0D Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=C2 X=0D Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=C2 X=0C Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=C2 X=0C Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=AC X=0C Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=AC X=0C Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=AC X=0B Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=AC X=0B Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=FA X=0B Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=FA X=0B Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=FA X=0A Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=FA X=0A Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=E5 X=0A Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=E5 X=0A Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=E5 X=09 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=E5 X=09 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=F9 X=09 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=F9 X=09 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=F9 X=08 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=F9 X=08 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=6E X=08 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=6E X=08 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=6E X=07 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=6E X=07 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=FE X=07 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=FE X=07 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=FE X=06 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=FE X=06 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=94 X=06 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=94 X=06 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=94 X=05 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=94 X=05 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=FE X=05 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=FE X=05 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=FE X=04 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=FE X=04 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=52 X=04 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=52 X=04 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=52 X=03 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=52 X=03 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=F8 X=03 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=F8 X=03 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=F8 X=02 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=F8 X=02 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=EF X=02 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=EF X=02 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=EF X=01 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=EF X=01 Y=?? SP=?? N=0 V=? D=? I=1 Z=0 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=A0 X=01 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=A0 X=01 Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF47 : CA       : DEX            : 2 : A=A0 X=00 Y=?? SP=?? N=0 V=? D=? I=1 Z=1 C=?
FF48 : 10 F7    : BPL FF41       : 3 : A=A0 X=00 Y=?? SP=?? N=0 V=? D=? I=1 Z=1 C=?
FF41 : BD 9A FF : LDA FF9A,X     : 4 : A=00 X=00 Y=?? SP=?? N=0 V=? D=? I=1 Z=1 C=?
FF44 : 9D 04 02 : STA 0204,X     : 5 : A=00 X=00 Y=?? SP=?? N=0 V=? D=? I=1 Z=1 C=?
FF47 : CA       : DEX            : 2 : A=00 X=FF Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF48 : 10 F7    : BPL FF41       : 2 : A=00 X=FF Y=?? SP=?? N=1 V=? D=? I=1 Z=0 C=?
FF4A : 9A       : TXS            : 2 : A=00 X=FF Y=?? SP=FF N=1 V=? D=? I=1 Z=0 C=?
FF4B : 8A       : TXA            : 2 : A=FF X=FF Y=?? SP=FF N=1 V=? D=? I=1 Z=0 C=?
FF4C : E8       : INX            : 2 : A=FF X=00 Y=?? SP=FF N=0 V=? D=? I=1 Z=1 C=?
FF4D : 86 EA    : STX EA         : 3 : A=FF X=00 Y=?? SP=FF N=0 V=? D=? I=1 Z=1 C=?
FF4F : 86 E1    : STX E1         : 3 : A=FF X=00 Y=?? SP=FF N=0 V=? D=? I=1 Z=1 C=?
FF51 : 86 E7    : STX E7         : 3 : A=FF X=00 Y=?? SP=FF N=0 V=? D=? I=1 Z=1 C=?
FF53 : A2 33    : LDX #33        : 2 : A=FF X=33 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=33 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=32 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=32 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=32 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=31 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=31 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=31 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=30 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=30 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=30 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=2F Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=2F Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=2F Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=2E Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=2E Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=2E Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=2D Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=2D Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=2D Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=2C Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=2C Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=2C Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=2B Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=2B Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=2B Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=2A Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=2A Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=2A Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=29 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=29 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=29 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=28 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=28 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=28 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=27 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=27 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=27 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=26 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=26 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=26 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=25 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=25 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=25 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=24 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=24 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=24 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=23 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=23 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=23 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=22 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=22 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=22 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=21 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=21 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=21 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=20 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=20 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=20 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=1F Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=1F Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=1F Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=1E Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=1E Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=1E Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=1D Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=1D Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=1D Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=1C Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=1C Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=1C Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=1B Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=1B Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=1B Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=1A Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=1A Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=1A Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=19 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=19 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=19 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=18 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=18 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=18 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=17 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=17 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=17 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=16 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=16 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=16 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=15 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=15 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=15 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=14 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=14 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=14 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=13 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=13 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=13 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=12 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=12 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=12 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=11 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=11 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=11 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=10 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=10 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=10 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=0F Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=0F Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=0F Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=0E Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=0E Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=0E Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=0D Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=0D Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=0D Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=0C Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=0C Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=0C Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=0B Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=0B Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=0B Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=0A Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=0A Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=0A Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=09 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=09 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=09 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=08 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=08 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=08 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=07 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=07 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=07 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=06 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=06 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=06 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=05 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=05 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=05 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=04 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=04 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=04 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=03 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=03 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=03 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=02 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=02 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=02 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=01 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=01 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=01 Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF58 : CA       : DEX            : 2 : A=FF X=00 Y=?? SP=FF N=0 V=? D=? I=1 Z=1 C=?
FF59 : 10 FA    : BPL FF55       : 3 : A=FF X=00 Y=?? SP=FF N=0 V=? D=? I=1 Z=1 C=?
FF55 : 9D EB 02 : STA 02EB,X     : 5 : A=FF X=00 Y=?? SP=FF N=0 V=? D=? I=1 Z=1 C=?
FF58 : CA       : DEX            : 2 : A=FF X=FF Y=?? SP=FF N=1 V=? D=? I=1 Z=0 C=?
FF59 : 10 FA    : BPL FF55       : 2 : A=FF X=FF Y=?? SP=FF N=1 V=? D=? I=1 Z=0 C=?
FF5B : A9 0A    : LDA #0A        : 2 : A=0A X=FF Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF5D : 85 FE    : STA FE         : 3 : A=0A X=FF Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF5F : A9 8A    : LDA #8A        : 2 : A=8A X=FF Y=?? SP=FF N=1 V=? D=? I=1 Z=0 C=?
FF61 : 8D 03 B0 : STA B003       : 4 : A=8A X=FF Y=?? SP=FF N=1 V=? D=? I=1 Z=0 C=?
FF64 : A9 07    : LDA #07        : 2 : A=07 X=FF Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF66 : 8D 02 B0 : STA B002       : 4 : A=07 X=FF Y=?? SP=FF N=0 V=? D=? I=1 Z=0 C=?
FF69 : 2C 01 B0 : BIT B001       : 4 : A=07 X=FF Y=?? SP=FF N=0 V=1 D=? I=1 Z=0 C=?
FF6C : 50 11    : BVC FF7F       : 2 : A=07 X=FF Y=?? SP=FF N=0 V=1 D=? I=1 Z=0 C=?
FF6E : AD FE BF : LDA BFFE       : 4 : A=00 X=FF Y=?? SP=FF N=0 V=1 D=? I=1 Z=1 C=?
FF71 : 29 10    : AND #10        : 2 : A=00 X=FF Y=?? SP=FF N=0 V=1 D=? I=1 Z=1 C=?
FF73 : F0 0A    : BEQ FF7F       : 3 : A=00 X=FF Y=?? SP=FF N=0 V=1 D=? I=1 Z=1 C=?
FF7F : 20 D1 F7 : JSR F7D1       : 6 : A=00 X=FF Y=?? SP=FD N=0 V=1 D=? I=1 Z=1 C=?
The first issue I hit was the instruction trace was loosing sync quite a lot. After some digging, it seems we are using an old version of the T65 core that has a few bugs that affect cycle accuracy. This was easily fixed, and I updated to the latest version (as used in ElectronFpga and BeebFpga). This fixed the first issue.

The second issue was it took me quite a few attempts to get the data bus buffers correctly enabled and pointing in the right direction for all the different cases. This is more complicated than you might think, because there are really two sets of data bus buffers, one inside the FPGA and the other outside the FPGA. This effectively segments the data bus into three sections, and we have devices on each of them.

The third issue was it seems to be important to only enable the buffers when phi2 is high. If you don't do this, there are occasional errors when the bus changes from read to write. This is not unexpected, and is regarded as goot practice in the 6502 world.

As far as testing, I've been able to capture an error free trace of the full Dorman test suite at 1MHz. I tried at 2MHz and there were a few errors that I could not explain. So for now consider this only supported at 1MHz.

Everything has been pushed to github:
https://github.com/hoglet67/AtomFpga/commits/master

Dave
Last edited by hoglet on Tue Sep 24, 2019 5:55 pm, edited 4 times in total.

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Wed Sep 25, 2019 10:10 am

NIce work Dave, will this also work with the Openbench Logic Sniffer?
Is there a special reason why you did not output the address bus and other control signals as well? With the address bus and address bus you can use triggers before the capturing starts.
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8914
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Wed Sep 25, 2019 10:51 am

roland wrote:
Wed Sep 25, 2019 10:10 am
NIce work Dave, will this also work with the Openbench Logic Sniffer?
Yes, it will work with any logic analyzer that can do synchronous capture off the falling edge of Phi2.
roland wrote:
Wed Sep 25, 2019 10:10 am
Is there a special reason why you did not output the address bus and other control signals as well? With the address bus and address bus you can use triggers before the capturing starts.
It was a design decision early on to allow the 6502 decoder to work with as few signals as possible. This was so you could get a complete trace using a check 16-bit USB logic analyzer. This costs < £10 so everyone should have one!

If you have a 32-bit logic analyzer there's nothing stopping you connecting up the address bus. Connecting sync as well does allow it to synchronize to the instruction stream more quickly. So normally I would also connect Sync and RnW as well. But it works fine without these.

What I like about the cheap USB logic analyzer is it will stream data indefinitely. So the capture file for the 2 minute Dorman test was 120 million samples (240MB). It takes about 1 minute for the decoder to process this, but that's fine. The logic sniffer has much less memory, and is not able to stream.

The decoder try to infer the values of all the registers, so to start off with they will all be shown as unknown (??). As soon as a value is loaded into a register, then from that point on it's value will be known. The only one that's tricky is the stack pointer, because TXS is quite rare. Because of this, I normally start a trace by with a reset, or from the Basic command line, as both of these reset the stack. If you use triggers to start the capture at a particular address, then probably the stack pointer will remain unknown. That can make it harder to spot certain types of stack related bug.

Dave

User avatar
hoglet
Posts: 8914
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Tue Oct 01, 2019 11:26 am

hoglet wrote:
Tue Sep 24, 2019 4:05 pm
As far as testing, I've been able to capture an error free trace of the full Dorman test suite at 1MHz. I tried at 2MHz and there were a few errors that I could not explain. So for now consider this only supported at 1MHz.
I did a bit more investigation yesterday of the reasons for unreliable capture and found three seperate issues:

1. There was a bug in the 8255 VHDL model where the clock enable input was not connected to anything. So it was effectively being clocked at 32MHz, meaning things could change part way through the 6502 bus cycles. The particular problem affecting the logic analyzer traces was the nFS input from the VDG (bit 7 of #B002). If this changed at just the wrong time, the 6502 would sample the new value and the logic analyzer would sample the old value. This caused the two to get out of step, hence the errors. It's now fixed and pushed to github. With this change, 1MHz and 2MHz capture is error free.

2. At 4MHz whole blocks of data were occasionally getting dropped. You could see this in the Dorman tests where it would appear to skip forward a few hundred instructions. This appears to be a problem with my elderly Ubuntu 18.04 system, because capturing directly to a SSD drive fixes it.

3. At 8MHz there are still large numbers of errors.

The logic analyzer is using "Slave FIFO asynchronous write mode" with Phi2 being used as the write signal.

The FX2LP data sheet has the following timing diagram for this mode:
fx2lp_async_write.png
At 8MHz, Phi2 (connected to SLWR) is high for ~60ns and then low for ~60ns. So actually we are operating just outside the limit of the FX2LP device.

There is another mode, called "Slave FIFO synchronous write mode", which allows a faster clock to be used:
fx2lp_sync_write.png
But a few things make this mode difficult for us to use:
1. The sample clock must be between 5MHz and 48MHz
2. The active clock edge is the rising edge (so Phi2 would need to be inverted)
3. A seperate write signal is needed

The only way I can think of using this mode is if we changed how some of the signals on the bus operated when in debug mode. For example, we could output a the 32MHz master clock and a carefully timed write signal. But I'm not sure this is worth the trouble, just to get debug output at 8MHz working. Very little code *has* to be run at 8MHz.

Dave

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Tue Oct 01, 2019 2:06 pm

I don't mind if you use the Phi2 signal for 32MHz output and R/W for the write signal. There are no on-board devices that uses these except for the 6522 VIA. However, that one does not work at all @ 8MHz (at least in my setup).

I just don't know if I like the selection of the debug mode ... I like to switch on the night rider leds regularly because it's a nice demo effect. Maybe it's better to enable the debugging mode when the address bus is displayed on the leds.

BTW ... the Linux terminal runs best at 8 MHz (but that's the only program so far) :)

Good analytic work by the way =D>
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8914
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Tue Oct 01, 2019 2:18 pm

roland wrote:
Tue Oct 01, 2019 2:06 pm
I don't mind if you use the Phi2 signal for 32MHz output and R/W for the write signal. There are no on-board devices that uses these except for the 6522 VIA. However, that one does not work at all @ 8MHz (at least in my setup).
I just found that it is possible to use "Slave FIFO Synchronous Write Mode" with the falling edge of the Phi2. You need to do the following:
- Connect Phi2 up to the IFCLK pin
- Use the following command: fx2pipe -d=1d50:608d -ifclk=xi > data.bin

This works at 4MHz and 8MHz.

Using this mode @ 8MHz is much more reliable - althouugh there are sometimes errors when reading from AtoMMC which I don't understand.
roland wrote:
Tue Oct 01, 2019 2:06 pm
I just don't know if I like the selection of the debug mode ... I like to switch on the night rider leds regularly because it's a nice demo effect. Maybe it's better to enable the debugging mode when the address bus is displayed on the leds.
I can easily change this. I'll do that next. Edit: It's done!

Dave
Last edited by hoglet on Tue Oct 01, 2019 2:29 pm, edited 1 time in total.

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Sun Oct 06, 2019 11:59 am

roland wrote:
Mon Sep 16, 2019 8:36 pm
Just a small status update: I have worked out all mistakes, errors, faults and improvements into a MK2 design of the board. This design is now under revision and inspection by Hoglet. I expect to release the KiCad files next week after the ABUG meeting.
Well, Hoglet has reviewed the board and electrically it is expected to be all right. However, there are some issues with the screw holes and notches of the board. I will try to solve this in the next couple of days.
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Mon Oct 07, 2019 7:15 pm

I have finished the boards. The last issues seem to be solved. I repositioned the notches and screw holes and printed them on paper. Then I placed a blank Atom board over the printed layout. The holes and notches matched very close. So I am now pretty sure that the board will fit in an Atom case.

I have uploaded all the KiCad files to Github: https://github.com/AtomicRoland/FPGAtom.git

The gerber files are in the attached zip file, KiCad exports for the layout and the schematic diagram are in the pdf's.
Attachments
FPGAtom-20191007.zip
Gerber files, ready for production.
(978.59 KiB) Downloaded 17 times
FPGAtom-mk2-pcb.pdf
PCB layout files, just for illustrative purposes.
(610.98 KiB) Downloaded 23 times
FPGAtom-mk2-sch.pdf
The FPGAtom MK2 schematic diagram.
(450.79 KiB) Downloaded 21 times
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
oss003
Posts: 3181
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atom 2k18 ?

Post by oss003 » Mon Oct 07, 2019 7:24 pm

Hi Roland,

I noticed that the VGA output has 2x red, 2x green and 2x blue. Does this mean that you can have more colours?

Greetings
Kees

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Mon Oct 07, 2019 7:35 pm

Not at the moment, but according to your suggestion we might use these outputs for changing colours in the future. Now we have 6 colour bits, so the number of physical colours can be extended to 64.

Due to the hardware limitations of the emulated 6847 we are still restricted to the maximum of four logical colours. However, if there is a very clever VHDL wizard able to add more colour bits per pixel then we might have more logical colours. There are two banks of video ram so in theory the second bank can also hold two bits per pixel and then each pixel can have 16 different colours out of a palette of 64 colours. But that is way out of reach for me at the moment :(
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

Retrogadgets
Posts: 8
Joined: Mon Jul 22, 2019 3:19 pm
Location: Sheffield, UK
Contact:

Re: Atom 2k18 ?

Post by Retrogadgets » Fri Dec 27, 2019 6:28 pm

My finances are a bit stretched at moment.
But my expected bill to pay is the attached.
Attachments
Screenshot_2019-12-27-18-25-52.png
Board price shipping and customs chargr

User avatar
roland
Posts: 3627
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Fri Dec 27, 2019 7:21 pm

Great, we can use some more species of the Atom2k18 :lol:
How many did you order (I guess five....) ?
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

Retrogadgets
Posts: 8
Joined: Mon Jul 22, 2019 3:19 pm
Location: Sheffield, UK
Contact:

Re: Atom 2k18 ?

Post by Retrogadgets » Fri Dec 27, 2019 11:58 pm

roland wrote:
Fri Dec 27, 2019 7:21 pm
Great, we can use some more species of the Atom2k18 :lol:
How many did you order (I guess five....) ?
Yes the price is for five, although I haven't ordered yet.

Volhout
Posts: 8
Joined: Mon Dec 30, 2019 6:15 pm
Contact:

Re: Atom 2k18 ?

Post by Volhout » Tue Dec 31, 2019 8:30 am

Hi 2k18 designers and builders.

Ive been snooping around this forum for some hours, and my old memories came back. Ive not been 10 years away, but more like 30. Years ago i was member of the atom club, region Twente in Netherlands.
With the memories, the desire to join you guys in your neverending quest to keep the remaining atoms alive...although...if i look into threads like this, only the white plastic body remains loyal to it's roots.

And that i can understand. Time goes on...

But how to get my hands on that precious piece of white plastic.... i have seen retrobrighted atoms on offer for over 600 pounds. What is my best re-entry in this world? I guess there may be more like me, that would love to solder together a kit, or even build one from a pcb and order the parts. But the plastic and keyboard make the first step a giant step. And honestly...the plastics are key to the nostagia....

Please advise in the way forward.

Volhout.

P.s. Can somone explain why the 2 bus buffers where reverted from HCT to LS parts. Ist that to avoid pullups? You could have used a single 74lvc16244 with bus hold function.

Post Reply