Jump to content

Post your Seventies/Eighties Personal Retro Dream Computer Here


Kalvan
 Share

Recommended Posts

David Murray's Commander X16 is a perfect slice of computing counterfactual, the higher performance followup to the Commodore 64 the 128 should have been but sadly really wasn't.  The only things it would have been missing would have been if VERA had been fully backward compatible with VIC II and SID code and modes, and the Yamaha YM2151 was replaced by a YM3562, YM2412, or YM2203, since in OTL Yamaha refused to allow Tramiel to put the OPM in the Atari ST for love or money!

But this is not what this thread is about.  We have a vast majority of fora on this site for this excellent piece of 8-bit computer engineering, and once it comes on sale, I plan to buy one, a VGA monitor, a pair of new Super Nintendo compatible game pads, some sort of LOGO, LISP, or Action interpreter/compiler, some sort of mouse (will the SNES mouse work with GEOS, or are we stuck with a PS/2 mouse?) and give the whole shooting match to my nephew for his 11th birthday.

No, this thread is for those who wish to share their visions for the sort of computer plausibly from that era that they would have wished were produced, using, if possible, the same limitations that were imposed on the development of the Commander X16.  Specifically, that whenever possible, currently available hard silicon is used for the final product, and FPGAs are kept to a strict minimum.

Because I'm starting this thread, I'll go first.

I wish to turn the graphics concepts from the Atari Advanced Engineering Division and Atari Semiconductor Group into a tangible computing product.  Specifically, I would like to create a hypothetical ca-1987-1992 hardware revision with roughly 32 SILVER Object Generators (from the Rainbow Chipset) and 192 PENNY Sprite engines(from the Omni Chipset), using the HEATHER Display Adapter and VIVIAN Video MMU/DMA.  For the CPU, I plan to use a Microchip Technologies PIC32 (The MIPS R2000 was introduced in 1985, featuring roughly half the transistor count of the Motorola 68020 and Intel 80386 while breaking no new ground in transistor, gate, or switch design.  It was only expensive because it was rare.) clocked at an arbitrarily low speed.  I choose this chip because, while the Atari Advanced Engineering made every attempt to make the design CPU agnostic, it was quite clear that a 65xx architecture chip simply lacks the necessary register count to make efficient use of these chips.  The reason I'm not going with a Motorola 680X0 or 6809 derivative is that Freescale has ceased production of the 68000-based Coldfire and Dragonball microcontrollers, and Renaisis will only sell H8 series chips to existing legacy customers, insisting that new customers buy into their Super H and ARM-based lines.

For the sound stack, I plan to use either a 65816 or a 65C265 microcontroller as a sound CPU, and for actual sound chips a QuadPOKEY (POKEYMax, with an ASIC version in the final production version), AMY, a Yamaha YM2414, and a Seta X1-010

Essentially, this is the spec I would like to have:

CPU: MIPS R3000+MIPS R3010 FPU, 21 MHz, Optional 30 MHz version
System RAM: 1.5 MB, Expandable to 8 MB, or up to 2 GB via expansion cards
GPU: HEATHER II (Display Controller/Video Data Selector) + VIVIAN (Video MMU/DMA) + x2 QUARTER (32 SILVER Object generators and 192 PENNY Sprite engines total) Capable of displaying a maximum of 65,536 Colors on screen AT 640X480 out of a master palette of 715,264, With a maximum resolution of 960x720 (256 colors). Optional Texas Instruments TMS32010 DSP+TMS32015 Video FPU
VideoRAM: 1.5 MB, Expandable to 8 MB, or by video card
Sound CPU: Western Design Center 65816 or 65C265
Sound Chip: QuadPOKEY, Yamaha YM2414 (FM Synthesis Chip, 8 channels, 4 operators each, eight possible waveforms)+YM3014 DAC, AMY II (Sixteen Channels Additive Synthesis, Eight Operators Each), Seta X1-010
O.S. BSD Kernel Based, C and BASH Shells, SNOW GUI

I'm willing to compromise on the GUI.  Something more like Awesome, DWM, or Xnomad might work better.  And I don't know whether to adopt HEATHER's color encoding scheme (it's based off of the NTSC colorburst cycle) or stick with an RGB or Magenta-Yellow-Cyan method.

The biggest question is whether or not all of this would fit in a DE Nano for prototyping, or whether I should wait for an FPGAArcade Replay Board2?

Edited by Kalvan
  • Like 2
Link to comment
Share on other sites

I want to contribute to this thread, but my idea of a personal "dream computer" is also very much "Retro++" and not constrained to existing tech.

For instance, as much as I like programming for the 65C02, and would want to use the 65816 as a starting point, I would also want to expand the native word size to 16 bits and the native address size to 32 bits. Reason being to expand the instruction set such that all the registers are general-purpose and can be used for indexing, as well as adding a stack-relative addressing mode to ops. It just needs more than 8 bits for the opcodes by that point.

Other niceties, though I guess these could be seen as memory-mapped hardware peripherals, would be a 16x16=32 bit hardware multiplier/math co-processor, and a DMA controller.

On the video side, I'd be very much inspired by a mix between the VERA and the SNES' PPU. Ditto the audio, between the VERA and YM chip, but with a dedicated sound CPU acting on its own memory.

And, granted, this isn't so much seventies/eighties as very-late eighties, definitely fist-bumping the nineties.

  • Like 1
Link to comment
Share on other sites

X16 as is with a significantly faster CPU (just pinch the one from the Mega65 ....) and a half decent version of BASIC would be fine.

All else being equal ; 16 bit rather than 8 bit data width ; enough memory space to dump the pipe between Vera and the CPU. Not too complex as to be reasonably easily produced at low cost, so a cheap board could be produced for £75ish tops.

Emulatable properly - a problem with "sling everything at it" designs, in the X16 for example, pixel level collision is easy in hardware and a nightmare in software.

 

  • Like 1
Link to comment
Share on other sites

12 hours ago, StephenHorn said:

For instance, as much as I like programming for the 65C02, and would want to use the 65816 as a starting point, I would also want to expand the native word size to 16 bits and the native address size to 32 bits. Reason being to expand the instruction set such that all the registers are general-purpose and can be used for indexing, as well as adding a stack-relative addressing mode to ops. It just needs more than 8 bits for the opcodes by that point.

This sounds an awful lot like a 68000 at this point.

Link to comment
Share on other sites

57 minutes ago, kelli217 said:

This sounds an awful lot like a 68000 at this point.

Yeah, that's been pointed out to me on the unofficial Discord group, and I'd wondered if I'd end up describing something like the 68000. Goes to show that my actual experience and knowledge of programming for older hardware is pretty slim. But then, my only other experiences with assembly programming were a tiny bit of trying to learn x86 assembly and VGA programming from the Michael Abrash Black Book a few years back, and before that was just some MIPS assembly for a computer architecture class at uni back in either '02 or '03.

65C02 has been fun to learn. Just wishing to ease the edges where it ends up feeling clumsy.

After all, if I wanted to adc stack,4, that's at least a tsx; adc $0104, x; which is going to cost 6 cycles when it really should cost 3, and trashes the x register besides. If I need to preserve x, that's another 7 cycles (phx, and later plx to restore it), and needing to account for the x register being pushed onto the stack, so the stack offset ends up feeling counterintuitive.

Link to comment
Share on other sites

I'm pretty much on Paul's bandwagon here.  I like the X16, but I'd like it to run a structured language as its "OS"/immediate mode, at a reasonable speed.

But, also, I'm kind of wishing for a Stereo Dual SID setup instead of the Yamaha + PSG + PCM.  But since the SwinSID is expensive, well...

 

Edited by rje
Link to comment
Share on other sites

3 hours ago, StephenHorn said:

Yeah, that's been pointed out to me on the unofficial Discord group, and I'd wondered if I'd end up describing something like the 68000. Goes to show that my actual experience and knowledge of programming for older hardware is pretty slim. But then, my only other experiences with assembly programming were a tiny bit of trying to learn x86 assembly and VGA programming from the Michael Abrash Black Book a few years back, and before that was just some MIPS assembly for a computer architecture class at uni back in either '02 or '03.

65C02 has been fun to learn. Just wishing to ease the edges where it ends up feeling clumsy.

After all, if I wanted to adc stack,4, that's at least a tsx; adc $0104, x; which is going to cost 6 cycles when it really should cost 3, and trashes the x register besides. If I need to preserve x, that's another 7 cycles (phx, and later plx to restore it), and needing to account for the x register being pushed onto the stack, so the stack offset ends up feeling counterintuitive.

I... honestly don't know how to do the same thing on the 68K. So I can't tell you whether it would be faster or easier. I just know that it has 8 32-bit data registers D0-D7 that serve as accumulators or index registers, and 8 32-bit address registers A0-A7 of which A7 serves as the stack pointer.

I don't know if MOVE A7,D0 would move the stack pointer's address into the data register, or the data stored at that address into the data register. It's been a long time since I read the reference manual.

Link to comment
Share on other sites

11 hours ago, kelli217 said:

I... honestly don't know how to do the same thing on the 68K. So I can't tell you whether it would be faster or easier. I just know that it has 8 32-bit data registers D0-D7 that serve as accumulators or index registers, and 8 32-bit address registers A0-A7 of which A7 serves as the stack pointer.

I don't know if MOVE A7,D0 would move the stack pointer's address into the data register, or the data stored at that address into the data register. It's been a long time since I read the reference manual.

from memory its parenthesised on data read.

  • Like 1
Link to comment
Share on other sites

15 hours ago, rje said:

I'm pretty much on Paul's bandwagon here.  I like the X16, but I'd like it to run a structured language as its "OS"/immediate mode, at a reasonable speed.

But, also, I'm kind of wishing for a Stereo Dual SID setup instead of the Yamaha + PSG + PCM.  But since the SwinSID is expensive, well...

 

It's not just that. It's too slow, or too limited to run a runtime - you either lose too much CPU time in the runtime, or if you generate 6502 code it's horribly inefficient for many things. It's fast enough but you just use too many bytes doing simple things like 16 bit arithmetic, adding two non zero page is 19 bytes and even for zero page its 13 bytes.

For some things like say Action! it didn't matter too much because much of the data was 8 bit, which a 6502 is more efficient with. But because of the expansion of VERA there's a lot of 16 bit data in there. There are several excellent modern compilers which attack the CPU in various ways, but the core problem really is still there. So Michael extended the OS with all these 16 bit registers, which I can see the rationale behind, but it just isn't a 16 bit machine.

Link to comment
Share on other sites

The 80's version of me really wanted one thing, cross platform compatibility.... Not possible with the different architectures of the era, but one could dream. 🙂

Anyway... At it's most basic, my dream computer would have been a 16-bit machine, with a TI-99/4A style expansion system (not the daisy-chain, I really liked TI's PEB concept for the 99/4A), and a Commodore logo on the case.

The idea of an "upgradeable" computer really appealed to me. Not just adding peripherals, but having different config options, CPU/Video/RAM/ROM options. Being able to drop in a faster or better core components, something we take for granted today, really wasn't a thing back then. You wanted a better computer, you bought one.

I think that's why I made the jump to "IBM clones" so easily during the 80386/80486 era. You really could build your own machine. I would loved to have seen that much earlier.

 

Edited by Strider
Link to comment
Share on other sites

15 hours ago, desertfish said:

What are your thoughts about the SWEET16 virtual machine that the old Apple's had in ROM i believe , @paulscottrobson?  Doesn't make the CPU itself 16 bit ofcourse but at least provided a compact way to write 16-bit code, didn't it?

Apart from issues with its copyright, Sweet16 is great (as is most of the stuff Woz does), and it'd make a pretty good runtime. The only problem with it is that its 10 times slower than the assembler equivalent. Woz was amazing at making something out of nothing - Apple colour, the disk drive and so on, but a 6502 is still a 6502. The UCSD P-System has the same problem but its worse.

Link to comment
Share on other sites

12 hours ago, Strider said:

The idea of an "upgradeable" computer really appealed to me. Not just adding peripherals, but having different config options, CPU/Video/RAM/ROM options. Being able to drop in a faster or better core components, something we take for granted today, really wasn't a thing back then. You wanted a better computer, you bought one.

Software almost always went for the lowest common denominator though. Some Spectrum games used the extra memory to save on loading, used the AY chip for sound as an alternative, but I don't know if there was ever a machine that wouldn't run on the basic 48k machine. There were a few 16k games at the start, most famously JetPac perhaps. Problem is, once you produced something that had to have some upgrade you limited the market.

The ZX80/ZX81/Vic20 did have games that only ran with expansion, but only because the default had so little.

  • Like 1
Link to comment
Share on other sites

@paulscottrobson This is very true.

What made me wish for a computer with upgrade or hardware config options back then was the fact that some games ran and looked different depending on the system you played it on. Since it had to be coded for each of it's target platforms configuration and/or limitations. I just thought it would have been cool to have one computer you could swap out parts to get the performance and look you wanted, or to play games meant for newer hardware than you had. Of course, this was back before I fully understood how it all worked, that there were no real "standards" like we have today, everyone pretty much did their own thing.

As much as I love retro computing, I truly am thankful that we have the standards we have today, and pretty much everyone follows them.

🙂

 

Link to comment
Share on other sites

Mine is pretty much early-mid or even late 90s, but I'll give it a try (I'll say "custom" and "optional" tad too much, so be warned)

CPU: Intel Pentium Pro at 200 Mhz (can be upgraded to Pentium II OverDrive) plus NexGen Nx587 FPU; Intel 286 at 16 Mhz (sound CPU)

RAM: 32MB

Sound RAM: 8MB

GPU: Custom video card named "Advanced Video Alternative System" or "AVAS" (24-bit RGB, text, tile and bitmap modes, inter-sprite collision detection, 12 layers, up to 256 sprites - everything from 4x4 to 256x256, 2.5MB VRAM (can be upgraded to 32.5 MB VRAM), transparency support, SuperFX-like co-processor for 3D rendering, but around 45% better, on par with PS1, optional texture RAM (from 1 to 16MB)

Sound: 2x YM2610B (with YM3012 DAC), custom stereo SID-based sound chip ("SID For Sophisticated Purposes" or "SFSP", 12 channels (pulse, white noise, triangle, sawtooth), with more waveforms like periodic static and reverse sawtooth, and pseudo-FM functions),  Seta X1-010,  custom 4-channel 5.1 surround ADPCM at 48.7kHz sampling rate, optional custom speech synthesizer card

PS/2 compatible keyboard and mouse

SVGA, S-Video, SCART and Composite output and an RF modulator

OS: Custom UNIX graphical operating system with C shells, OpenGL and custom GUI and an advanced codec that supports Unicode, GIF, MP4, JPG, PNG, SVG, MP3, WAV, SWF, etc., and an optional USB devices and flash support.

Media: Custom cartridge, CD-ROM drive with VCD support (can be upgraded with DVD-ROM drive and expansion card with RPC1 firmware or even Blu-Ray/BD-ROM expansion card as the time passes into 2000s (with no regional encoding, playback of all discs possible), optional LaserDisc drive for LD-ROM and playback from LaserVision discs. (with an advanced ADC)

SNES gamepads and Atari joysticks

 

Welp, I just made a Silicon Graphics competitor...

Edited by xanthrou
Link to comment
Share on other sites

I often tell people it was the 70's and 80's tech that sparked my love of computers, but the 90's is when I really dove in with both feet and never looked back. Once you could really go out, buy all the parts, and go home and build yourself a computer. I loved my 80's machines, but once you could do it all yourself, I never bought a computer again. Of course, I was lucky enough to live in an area with several computer shops and a warehouse store that sold all the parts you could ever want. Good times. haha

  • Like 1
Link to comment
Share on other sites

  • Super Administrators

I love "Blinkenlights" computers, and I love the Altair 8800. 

I'd like to think that a mid-80s Altair would still be rocking the blue chassis, but be running the MSX operating system. An MSX2+ or TurboR machine with the Altair light and switch panel would be amazing....

MSX is the most underrated computer system of the 80s, and it's a shame it didn't do better in the market. I've only scratched the surface with it, but I love what I've seen of the platform. I have a pretty well configured instance on my MiSTer, but the lack of decent PC emulation support has made give up on MSX for now.

 

 

  • Like 1
Link to comment
Share on other sites

It's kind of hard for me to decide what this should be like since it seems to me that the 80s are a transition era.  You have the 8-bit computers like the Commodore 64 in the early 80s and at the end of the 80s you have the 486, which for me is hardly a retro computer since almost every modern personal computer is an extension of that.  So old x86 hardware is of no interest to me.  What I would really like is something that would let me do all the basics while still being simple enough to fully understand.

CPU: 68020@25MHz with 68882@25MHz
System RAM: 3 GB with zero wait states
GPU: 1024x768 64k colors.  I haven't come up with a realistic set of other capabilities but I think displaying that resolution and bit depth is reasonable.
VideoRAM: 8 MB on the GPU
Sound:  As with the GPU, I don't have a good idea of exactly what I want or what would be possible, but given the computational power available I think full 44.1khz PCM audio playback is reasonable.
O.S. Support for something like NetBSD, but also good bare metal support in the firmware.
Firmware: Something based on Forth like Open Firmware

As far as actually producing this, it seems like something that's reasonable to build today with a little help from some FPGAs.  The 68020 CPUs are still being manufactured, so even though they're expensive they're easy to get.  Given the slow CPU speed SDR DRAM would be fast enough to have zero wait states, so that wouldn't be hard to get either although it would require a simple FPGA or CPLD controller.  The GPU would almost certainly have to be an FPGA, but if the requirements are simple enough that wouldn't be insurmountable.  I'm not sure what the best way to go about implementing the audio is, but I think it wouldn't be complicated.  The real difficulty would be in the software.

  • Like 1
Link to comment
Share on other sites

  • 1 year later...
On 2/10/2021 at 5:08 AM, Kalvan said:

David Murray's Commander X16 is a perfect slice of computing counterfactual, the higher performance followup to the Commodore 64 the 128 should have been but sadly really wasn't.  The only things it would have been missing would have been if VERA had been fully backward compatible with VIC II and SID code and modes, and the Yamaha YM2151 was replaced by a YM3562, YM2412, or YM2203, since in OTL Yamaha refused to allow Tramiel to put the OPM in the Atari ST for love or money!

But this is not what this thread is about.  We have a vast majority of fora on this site for this excellent piece of 8-bit computer engineering, and once it comes on sale, I plan to buy one, a VGA monitor, a pair of new Super Nintendo compatible game pads, some sort of LOGO, LISP, or Action interpreter/compiler, some sort of mouse (will the SNES mouse work with GEOS, or are we stuck with a PS/2 mouse?) and give the whole shooting match to my nephew for his 11th birthday.

No, this thread is for those who wish to share their visions for the sort of computer plausibly from that era that they would have wished were produced, using, if possible, the same limitations that were imposed on the development of the Commander X16.  Specifically, that whenever possible, currently available hard silicon is used for the final product, and FPGAs are kept to a strict minimum.

Because I'm starting this thread, I'll go first.

I wish to turn the graphics concepts from the Atari Advanced Engineering Division and Atari Semiconductor Group into a tangible computing product.  Specifically, I would like to create a hypothetical ca-1987-1992 hardware revision with roughly 32 SILVER Object Generators (from the Rainbow Chipset) and 192 PENNY Sprite engines(from the Omni Chipset), using the HEATHER Display Adapter and VIVIAN Video MMU/DMA.  For the CPU, I plan to use a Microchip Technologies PIC32 (The MIPS R2000 was introduced in 1985, featuring roughly half the transistor count of the Motorola 68020 and Intel 80386 while breaking no new ground in transistor, gate, or switch design.  It was only expensive because it was rare.) clocked at an arbitrarily low speed.  I choose this chip because, while the Atari Advanced Engineering made every attempt to make the design CPU agnostic, it was quite clear that a 65xx architecture chip simply lacks the necessary register count to make efficient use of these chips.  The reason I'm not going with a Motorola 680X0 or 6809 derivative is that Freescale has ceased production of the 68000-based Coldfire and Dragonball microcontrollers, and Renaisis will only sell H8 series chips to existing legacy customers, insisting that new customers buy into their Super H and ARM-based lines.

For the sound stack, I plan to use either a 65816 or a 65C265 microcontroller as a sound CPU, and for actual sound chips a QuadPOKEY (POKEYMax, with an ASIC version in the final production version), AMY, a Yamaha YM2414, and a Seta X1-010

Essentially, this is the spec I would like to have:

CPU: MIPS R3000+MIPS R3010 FPU, 21 MHz, Optional 30 MHz version
System RAM: 1.5 MB, Expandable to 8 MB, or up to 2 GB via expansion cards
GPU: HEATHER II (Display Controller/Video Data Selector) + VIVIAN (Video MMU/DMA) + x2 QUARTER (32 SILVER Object generators and 192 PENNY Sprite engines total) Capable of displaying a maximum of 65,536 Colors on screen AT 640X480 out of a master palette of 715,264, With a maximum resolution of 960x720 (256 colors). Optional Texas Instruments TMS32010 DSP+TMS32015 Video FPU
VideoRAM: 1.5 MB, Expandable to 8 MB, or by video card
Sound CPU: Western Design Center 65816 or 65C265
Sound Chip: QuadPOKEY, Yamaha YM2414 (FM Synthesis Chip, 8 channels, 4 operators each, eight possible waveforms)+YM3014 DAC, AMY II (Sixteen Channels Additive Synthesis, Eight Operators Each), Seta X1-010
O.S. BSD Kernel Based, C and BASH Shells, SNOW GUI

I'm willing to compromise on the GUI.  Something more like Awesome, DWM, or Xnomad might work better.  And I don't know whether to adopt HEATHER's color encoding scheme (it's based off of the NTSC colorburst cycle) or stick with an RGB or Magenta-Yellow-Cyan method.

The biggest question is whether or not all of this would fit in a DE Nano for prototyping, or whether I should wait for an FPGAArcade Replay Board2?

Sorry for necroposting, but for an optional GPU, I would also add TMS34010 CPU/GPU for video.

For extra sound, I'd also add a YM3812 to enhance the sound and Intel i8232 as a coprocessor to supplement the 65816 sound CPU.

Edited by xanthrou
  • Thanks 1
Link to comment
Share on other sites

The CX16 with a bus mastering 65816 card with a 1MB SRAM on the card, the host memory space in $000000-$00BFFF, a switch between the host memory space and a 16KB segment out of the bottom 64KB of the card RAM (depending on whether the 65816 is in native or emulation mode), and the card RAM appearing in $010000-$0FFFFF.

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

Please review our Terms of Use