Veronica 6502 computer reaches Hello World stage

veronica-hello-world

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.

15 thoughts on “Veronica 6502 computer reaches Hello World stage

    1. 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

  1. 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.

    1. I was thinking mode X made most sense, but then many LCDs won’t do it now, it was a bit of an unofficial hack on CRTs and I did come across the odd one that wouldn’t synch it.

      1. 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).

    1. 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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s