A Better 65C265 Board
Re: A Better 65C265 Board
(I think there's still some minority of FPGAs which can contain their own configuration, but most of them read from an SPI EEPROM at power-up. So, it's a two-chip solution, or maybe an N+1 chip solution if multiple FPGAs share an EEPROM. Anyone could sell pre-programmed EEPROMs which turn some particular FPGA into some particular VLSI function. And if were still in the realm of through-hole I can see that working: a 40-pin DIP which does a VIC-II-like thing or a SID-like thing. But surface mount is an extra barrier to fitting FPGAs into the hobby/kit part of the market. The modules you can get, or could get, which put an FPGA into a DIL socket, were pretty expensive for this market.)
Oh, and the F18A page reminds me of another wrinkle: FPGAs take some 100ms to configure, so they are not quite there at power-on unless you have quite a long power on reset time constant.
Oh, and the F18A page reminds me of another wrinkle: FPGAs take some 100ms to configure, so they are not quite there at power-on unless you have quite a long power on reset time constant.
Re: A Better 65C265 Board
whartung wrote:
The dearth of progress on the other projects is telling in that either the folks doing them aren't determined, or the market is shallow to not make it worth getting invested in.
This all started as a vanity project for me about a year ago, I put it on hold through last summer for many reasons but I'm at it now in-between some other work... But - the future? I've no idea. I do (now) have a solid road-map for it, I also have people interested in buying kits - which I didn't envisage, so what do I do? Do I make a 6502 kit for early adopters, then an '816 kit making sure it's backward compatible? It's a weird situation, but it seems there is a market for stuff like this, if somewhat a somewhat niche one.
whartung wrote:
I don't know if any of them are using "kickstarter" like funding, something I've always been basically very wary of.
whartung wrote:
The "retro" market for a incompatible device has to compete with other small computers (i.e. the Rasp Pi), for more money, and less functionality.
whartung wrote:
Quote:
Adding memory mapped video is never easy and probably requires an FPGA to act as a memory controller and video generator, otherwise you need a much bigger PCB and a load of discrete chips as Oneironaut has shown.
I had that when I wrote my BASIC interpreter - the first thing a lot of people asked me was along the likes of "what are the pokes" - there are none on a Linux system which seemed to disappoint - why poke a number into something to set cursor position when there is a command to do it (was my reply). At the end of the day I do "pixel poke" into an SDL framebuffer. (in the C interpreter thats running the BASIC) It's fast enough to run a 10fps raycaster on a Pi from a BASIC program... But that's not something you can do with a tile/sprite type of graphics chip - unless you can tell the chip to draw a line. Trivial in reality - so my "black box" graphics idea is win-win from my point of view - it's a GPU on a 6502..
whartung wrote:
The issue with these chips, is that you inevitably "put linux" on them, and any charm they had beyond being a board that's 2x3 inches in size is lost
whartung wrote:
Personally, for a retro machine, I think memory mapped video is a requirement. BALL=113: POKE 32768, BALL is just fundamental to the feel. Having "raw" access to the display in contrast to making API calls across a channel. Just not the same. Otherwise, you're just using something akin to a smart terminal (IMHO).
Anyway, enough from me for now
Cheers,
-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
Re: A Better 65C265 Board
drogon wrote:
Depends on what type of project you mean.
Quote:
This all started as a vanity project for me about a year ago, I put it on hold through last summer for many reasons but I'm at it now in-between some other work... But - the future? I've no idea. I do (now) have a solid road-map for it, I also have people interested in buying kits - which I didn't envisage, so what do I do? Do I make a 6502 kit for early adopters, then an '816 kit making sure it's backward compatible? It's a weird situation, but it seems there is a market for stuff like this, if somewhat a somewhat niche one.
Quote:
I don't think it does compete - the Pi is for kids, and us oldies who like to tinker, but who doesn't wan't a real 6502 on their desk? Look at the response 8-bit Dave has had so-far, but also - look at the Foenix project - it never had quite the same response and the forums are very quiet, although the board is technically superior!
Pis have become a universal teaching tool. The Pis success has been extraordinary, I don't know if there's many bare metal "look, Pi with BASIC in ROM" style implementations, or if they have any popularity at all.
Quote:
It's back to the "pixel pokers" vs. those who want tiles/sprites. Also resolution - no-one seems to want composite video these days - that was limited to about 320x240 or so - make that 4-bit colour and you need almost 40KB of RAM and without hardware assist, doing a simple screen clear takes noticable time.
Maybe that's what that F18 thing did.
Quote:
I had that when I wrote my BASIC interpreter - the first thing a lot of people asked me was along the likes of "what are the pokes" - there are none on a Linux system which seemed to disappoint - why poke a number into something to set cursor position when there is a command to do it (was my reply).
Quote:
You don't have to though. There are some good "bare metal" frameworks for the Pi now.
Re: A Better 65C265 Board
cbmeeks wrote:
Has already been done. The F18A is a 100% cycle accurate, DROP-IN replacement for the TMS9918. Also has new enhancements like extra layers and scrolling, built in GPU, etc.
Re: A Better 65C265 Board
…and now my head is swirling with visions of an ARM microcontroller slaved to a couple of EDO DRAMs and some discrete logic to act as a RAMDAC…
Re: A Better 65C265 Board
Would there be any interest in a small add-on board containing FPGA, pre-programmed config flash, audio/video, and maybe some RAM ? Something like the gameduino, but aimed at 6502/65816 hardware (bus compatible, 5V I/O and 100 mil pin headers). That would allow any hobbyist to add on audio/video, without having to worry about FPGA dragons.
Last edited by Arlet on Fri Feb 22, 2019 6:39 pm, edited 1 time in total.
-
White Flame
- Posts: 704
- Joined: 24 Jul 2012
Re: A Better 65C265 Board
I don't understand the repeated focus on VGA. Isn't HDMI well supported on modern FPGAs now, in terms of both direct TDMS output signals and hdl libraries? Does it bring that much complexity over VGA, assuming a fixed output resolution/framerate on either? Plus, HDMI should be backwards compatible to DVI for "older" monitors.
Separately, I'm from the C64 era of kids. The fun of the machine, and the fun that Mr 8bit talks about is about programming a machine with simple-to-use interactive color graphics and sound. It entices you to see what sort of interesting-looking things you can do, and invites incredibly high levels of interactive and iterative programming within that feedback loop. Even the very simplest of programs (eg, move square with cursor keys) are colorful and rewardingly interactive. Yeah, most of what you make might be game-like, but then there's the demoscene which takes it to the extreme and has nothing to do with gaming. As long as it's actually creative and explorative in computing, as opposed to just "download and play" as a consumption device, it's a great space to explore with an enticing hook.
Separately, I'm from the C64 era of kids. The fun of the machine, and the fun that Mr 8bit talks about is about programming a machine with simple-to-use interactive color graphics and sound. It entices you to see what sort of interesting-looking things you can do, and invites incredibly high levels of interactive and iterative programming within that feedback loop. Even the very simplest of programs (eg, move square with cursor keys) are colorful and rewardingly interactive. Yeah, most of what you make might be game-like, but then there's the demoscene which takes it to the extreme and has nothing to do with gaming. As long as it's actually creative and explorative in computing, as opposed to just "download and play" as a consumption device, it's a great space to explore with an enticing hook.
Re: A Better 65C265 Board
> I don't understand...
It's a common phrase, and I've used it myself. To anyone who doesn't share the same generation, the same imprinting, the same fixations, some preferences can seem difficult to understand. The key is that these are not logical preferences: there is no rationale. It's what you grew up with, it's what you prefer.
It's a common phrase, and I've used it myself. To anyone who doesn't share the same generation, the same imprinting, the same fixations, some preferences can seem difficult to understand. The key is that these are not logical preferences: there is no rationale. It's what you grew up with, it's what you prefer.
Re: A Better 65C265 Board
The big problem with HDMI/DVI is that it's hard to drive from hand-built hardware, requiring signalling frequencies well into the hundreds of MHz - for that reason, support among FPGAs is not really helpful, because FPGAs are not friendly to a hand-built system. VGA is hard enough to be getting on with, but is at least an achievable goal.
A related format, however, is DPI - Display Parallel Interface, which may actually be easier to drive than VGA (because you get to skip the DACs). A standard, well-documented converter module from DPI to DVI/HDMI or even DisplayPort would be useful in this context. There are LCD modules out there which accept DPI signals directly, too.
A related format, however, is DPI - Display Parallel Interface, which may actually be easier to drive than VGA (because you get to skip the DACs). A standard, well-documented converter module from DPI to DVI/HDMI or even DisplayPort would be useful in this context. There are LCD modules out there which accept DPI signals directly, too.
Re: A Better 65C265 Board
whartung wrote:
Pis have become a universal teaching tool. The Pis success has been extraordinary, I don't know if there's many bare metal "look, Pi with BASIC in ROM" style implementations, or if they have any popularity at all.
The issue with bate-metal in a moden thing like a Pi is that there is just so much hardware - setup an Apple II from power on - well, poke a few registers to set the right video mode, clear the keyboard input latch, clear the screen, beep and off you go. On the Pi... Well, the GPU boots, does "stuff", loads more stuff from SD, does more stuff, loads more stuff from SD, takes the ARM out of reset - then your ARM code has to do more stuff like setup the MMU, cache, oh, you want keyboard input, well, there's this USB thing, so off you go, write a USB driver. Oh, you want disk? Well, there's this SD card thing, so off you go and write an SD card driver, and so on.
Now.. I think most of this has now been done - I wish I had time to look, and I will - soon. I probably could get my own BASIC to run that way - all I really need is keyboard and mouse input (optional) A filesystem would be nice, but... For video well I use a library called SDL 1.3.. And what that gives me is a block of memory for me to poke pixels into and an "update" command that effectively copies the shadow framebuffer into the real one.
Under Linux you still have access to the real framebuffer - try this: Go into console mode (Somethingl ike Ctrl+Alt+F2) and login. Try this:
Code: Select all
sudo dd if=/dev/urandom of=/dev/fb0 bs=1K count=32SDL hides some of that and provides some nice colour translations, but to change my BASIC from using SDL to poking pixels - well, 1 line of code. (ok, mayde 3 or 4 lines, but relatively trivial). So all I need is most of a standard C library and some extra bare-metal goodness (ie. usb keyboard) and off I go... I do sprites purely in software because - the Pi GPUI - here be dragons...
whartung wrote:
Sure. But someone clever could do a bare metal Pi that boots to BASIC, that lets you "poke" to the screen buffer. When that happens, a VM Page fault can update the "real" screen, or the underlying system snapshots the "retro" frame buffer to the the "real" frame buffer every VBLANK.
I would like to think I could port/re-write my BASIC for the 6502, but I fear it would take too long. However I have a cunning plan and it might not even involve C.
Cheers,
-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
Re: A Better 65C265 Board
The nearest equivalent of "Pi with BASIC in ROM" that I'm aware of is to run RiscOS Nano on a Pi.
Re: A Better 65C265 Board
Indeed, RISC OS springs to mind (do you mean Pico rather than Nano?) If by 'bare metal' we mean 'not Linux' then that meets the mark. If 'bare metal' means 'no operating system' then we'd need to decide what degree of operating system is necessary for, or present in, Basic. Perhaps we mean 'boot to single application' or even just 'boot very rapidly'. As RISC OS Pico lacks the desktop - it boots to Basic - maybe for some that's enough to call it bare metal.
I'm reminded of the time back in the day when I first repartitioned my hard drive and installed Linux as an alternate boot. At that moment it becomes clear that the personality of the computer is all about what it boots into. The same machine running Windows, or Linux, was a world of difference. This was something I surely knew already, intellectually, but that was the point that I felt it. And so it is with the Pi: the storage you have is an SD card, and if you swap that out and run RISC OS, or PiTubeDirect, or even just a variety of Linux distributions, you should come to feel that it's what on the card that matters - it's not the Pi itself.
I'm reminded of the time back in the day when I first repartitioned my hard drive and installed Linux as an alternate boot. At that moment it becomes clear that the personality of the computer is all about what it boots into. The same machine running Windows, or Linux, was a world of difference. This was something I surely knew already, intellectually, but that was the point that I felt it. And so it is with the Pi: the storage you have is an SD card, and if you swap that out and run RISC OS, or PiTubeDirect, or even just a variety of Linux distributions, you should come to feel that it's what on the card that matters - it's not the Pi itself.
Re: A Better 65C265 Board
White Flame wrote:
I don't understand the repeated focus on VGA.
Lots of VGA monitors/LCDs still around. VGA-> HDMI I think is a simple adapter. VGA->Display Port as well.
It's not a quality thing, just handiness thing.
Much like USB now. PS/2 connectors are getting rare today. My most recent cheap keyboard purchase doesn't have the connector. It's all USB.
USB offers this [ ] much capability, and the keyboard uses [], but that's the way it is. 1.5-12Mbps interface for a keyboard. If only I could type that fast lol.
Re: A Better 65C265 Board
drogon wrote:
The issue with bate-metal in a moden thing like a Pi is that there is just so much hardware - setup an Apple II from power on - well, poke a few registers to set the right video mode, clear the keyboard input latch, clear the screen, beep and off you go. On the Pi... Well, the GPU boots, does "stuff", loads more stuff from SD, does more stuff, loads more stuff from SD, takes the ARM out of reset - then your ARM code has to do more stuff like setup the MMU, cache, oh, you want keyboard input, well, there's this USB thing, so off you go, write a USB driver. Oh, you want disk? Well, there's this SD card thing, so off you go and write an SD card driver, and so on.
Quote:
Now.. I think most of this has now been done - I wish I had time to look, and I will - soon. I probably could get my own BASIC to run that way - all I really need is keyboard and mouse input (optional) A filesystem would be nice, but... For video well I use a library called SDL 1.3.. And what that gives me is a block of memory for me to poke pixels into and an "update" command that effectively copies the shadow framebuffer into the real one.
Quote:
SDL hides some of that and provides some nice colour translations, but to change my BASIC from using SDL to poking pixels - well, 1 line of code. (ok, mayde 3 or 4 lines, but relatively trivial). So all I need is most of a standard C library and some extra bare-metal goodness (ie. usb keyboard) and off I go... I do sprites purely in software because - the Pi GPUI - here be dragons...
So, you know, the Gameduino, or your layer on top of SDL -- not really different.
Re: A Better 65C265 Board
whartung wrote:
Sure that can work. I think for a retro micro, you just need to interpolate some, since a 2-4Mhz 6502 trying to keep up with a VGA sized color frame buffer just isn't going to work vs "poking" character memory, or some other type of proxy frame buffer.
whartung wrote:
Quote:
SDL hides some of that and provides some nice colour translations, but to change my BASIC from using SDL to poking pixels - well, 1 line of code. (ok, mayde 3 or 4 lines, but relatively trivial). So all I need is most of a standard C library and some extra bare-metal goodness (ie. usb keyboard) and off I go... I do sprites purely in software because - the Pi GPUI - here be dragons...
So, you know, the Gameduino, or your layer on top of SDL -- not really different.
And that could be extended to peek and poke, but you might as well call those plot a pixel, read a pixel. (unless the graphics processor is running in a text-only mode displaying PETSCII or Teletext ... ) then the graphics processor can do anything you care to program it to do - like all the usual stuff like lines, points, geometric shapes, polygons, filled, open, writing text, scrolling, changing the font, sprites and what not.
Poking pixels from BASIC - this will be slower than poking into local RAM (time taken to copy the commands & data over the 8-bit bus), drawing a line from BASIC - faster because it's not 6502 assembler doing Bresenham, but the ARM on the Pi.
I guess the question is then: Is it "retro"? To which the answer could be "yes - we did it that way back in 1981 when the TI99/4A was released", or yes, but you're doing too much, make the 6502 calculate Bressenham or mid-point circle, etc., or "no - you're using a Pi".
I'm going to call it "retro style"
-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/