The screenshot on the right shows [Quinn Dunki’s] computer project displaying a Hello World program. Well, it’s only showing the word Hello right now, but the concept is the same. This proves that native 6502 code is running on the processor and reliably outputting data through its VGA hardware. That’s a welcome achievement after watching so much work go into this project.
But with anything this complex you can’t expect to make progress without finding bugs. And this step in the journey had a pretty big one in store for [Quinn]. After writing the assembly code and loading it into the machine she was dismayed to find that there were dropped characters all over the place. Now she shows a screenshot and says it’s easily recognizable as a race condition — proving she has a bigger brain than us.
The problem is a pair of uninterruptible processes running on the same AVR chip (part of the GPU she built). They are fighting with each other for control of the processor cycles and she fixed it by making the daughter board seen in the image above. It moves one of the time-critical processes out of that single AVR chip to fix the issue by using an IDT7200L FIFO SRAM chip.
I have a fondness for retrocomputing and have been following this effort. It is great to see it continuing.
I have a fondness for Quinn and have been following…
“Brain! Did I type that out?”
Brain: “You sure did!!”
I found this “beast”(6502) in a lot of devices 15 – 20 years ago … This project can be used for computer history class.
That’s kind of the point…
Youtube video of Veronica printing “Hello World”:
http://www.youtube.com/watch?v=q5Ezyzsu0lU
Quinn, please marry me!
Maybe it’s the 8bit connection, after all there was a decade from 1980ish that if you went into a computer or electronics store, any demo machine that had BASIC in ROM and had had any kid aged between 7 and 17 near it in the last 10 minutes, would be doing that exact same thing….
… unless you were a proto-geek who had learned a poke buzz/crash code, then it would be doing that locked up, making a funny noise, and you couldn’t ctrl-break into it, had to be power cycled… which would have been kind of trivial, but some displays were set up so you couldn’t tamper with the plugs or anything, so it meant 5 mins of digging for the exasperated sales staff… :-D
Reminds me of the Atari 8-bit Antic chip, it halts the 6502. The XL uses a 6502C (has a halt pin). Amiga extends the concept with fast/slow RAM. I think the ST uses faster RAM with odd/even cycles for CPU/video.
I wonder if ModeX will be implemented (each byte address corresponds to 4 bytes of video RAM), ideal for the excessively 8-bit 6502.
What I meant is that standard VGA has 256MB of RAM, but only 64K is CPU addressable. There’s a mode where 1 byte -> 4 bytes of VRAM, any 4 pix selected by latches. A must on screens larger than 320×200, it also allowed 32-bit VRAM to VRAM doing 8-bit I/O.
FYI: Windows 9x boot logo is a ModeX 320×400 screen, but, I agree with you about not implementing it. (back then, a typo fried my CRT ability to multi-sync).
I never noticed before. Now I cannot unsee.
OHELLOHELLOHELLOHELLOHELL
MindWurm awayyyyyy!!!!
Fitting, since I spent quite a bit of time yelling that during this process. Quite a few other four letter words as well.
ive been following this project just so i know what chips i need to add to my inventory for awesomeness’ sake.
The 7200 is definitely on my “must-stock” list now, and I bought a few for the parts bin. It’s crazy-cool. You can even daisy-chain them both in width AND depth, if you need a longer FIFO, or a wider bit channel.