This is a *long* way off, but I've started working on an FPGA-based 'Atari QF', with which I intend to support VBXE. I'll formally announce the project some time over xmas, and set up a web-page blog etc., but I've been thinking about doing this for years, and I'm finally getting off my backside and doing something
- The design will be completely self-contained within one of the Zynq boards available from http://www.myirtech....list.asp?id=502(hopefully the '010 version at $99/£73, but it may need the '020 at $119/£88. All the complexity is contained within this high-speed module, so the PCB work for ports etc. will be much easier to (a) design and (b) manufacture. For "easier", also read "cheaper".
- Output to HDMI, goal is to drive 1080p (1920x1080), but this might be a stretch for the Zynq's SERDES outputs. May have to drop that down a bit. The video framebuffer will be in DDR so not accessible to the 6502
- ANTIC will be implemented to behave as it usually does, pulling data from the BlockRAM-based 128k machine-RAM, pushing it over DDR to the framebuffer, and scaling by (assuming 1080p) 6 horizontally and 5 vertically per pixel, to fit 320x200 onto a 1080p display, with a little black letterboxing at the top and bottom. I don't *think* (at the moment) I'll need to implement GTIA. I *think* doing ANTIC will be sufficient.
- POKEY etc. implemented as cores on-chip.
- The goal is also to put real Atari joystick, SIO, Cartridge, PBI etc. ports on the snap-on PCB that the module will mount to. All of these are simple wire-ups, so a double-layer PCB ought to be sufficent.
- Obviously there'll be a 'run at 1.79 MHz' and 'run as fast as possible' option, for different use-cases.
- I'm also planning on incorporating a hardware version of the Apple ][ "sweet 16" opcodes, to speed up 16-bit code. You'd have to enable it first though.
But why "QF", I can (totally not) hear you asking... Well...
- If you take 'X' and 'S', treat the alphabet as numbers, add them together and "wrap around from Z to A", you get Q. Doing the same for 'L' and 'T' you get 'F'.
- If you can put a 6502 in an FPGA, there's no reason why you couldn't put a 68k...
- So once the XL is up and running, the next thing will be to add in a 68k and implement the ST on the same hardware at the same time.
- The XL's video out will then (when in ST mode) be available as a GEM window, with integer scaling.
- File management can happen between the ST <--> XL. I might even link them via midi, so they can talk to each other.
- Networking is an option on the ST, and I think there's even a web-browser
- A goal for this version is to use one of the Arm cores as a GEM accelerator - so the "graphics" would run at 667 MHz, and all the ST would need to do is set up parameters and call it's TRAP to draw lines, arcs, circles etc. I could even try doing something similar for 'basic' on the XL.
- I can make a play on the Motorola naming scheme, and call it the 'QoldFire'.
So where am I now. Well, as I said at the start, there's a *long* way to go, I haven't even bought the zynq board yet. I have started on the 6502 core, and I'm maybe about 1/3 of the way through getting a cycle-accurate CPU design in place that understands RDY and HALT. I realise I could speed things up by using other people's cores, and this is certainly not the first XL clone on an FPGA, but one of the goals for the whole project is to learn more about the practicalities of FPGA design, and there's nothing quite like actually *doing it* to do that.
Anyway, thought I'd chime in because vbxe will very definitely be part of the ANTIC implementation (the native framebuffer will be 16-bits per pixel at full screen res, so it won't be a perfect match but it ought to be pretty good).
Oh yeah, one other thing. With the implementation of two computers, I'm going to be needing a pretty specialised keyboard, so it'll probably be a custom cherry-keys one somewhat along the lines of this and since we're in pie-in-the-sky land now, there's no reason this oughtn't be portable, so once it's all finally done on the desktop, I'll be planning to link up an LCD display (the high-speed module has LCD-out lines that are driven in the same way as the HDMI), put in my custom keyboard, and have a combined XL/ST portable.
Well, if you're going to shoot for the sky...
Edited by Spaced Cowboy, Fri Dec 1, 2017 5:13 PM.