Author Topic: For a vintage computer project, which processor is easier to use?  (Read 28580 times)

0 Members and 1 Guest are viewing this topic.

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
I have some vintage computer projects on the sketch boards for a while, but I am still undecided which to pursue first. Which of the two would be easier to use in your opinion: Intel 8088 + Intel 8087, or Motorola MC68HC000? Aspect to be consider includes the simplicity of the system design, and availability of compilers, tools, libraries and existing programs.

I don't have a lot of discrete 74HC logic at my disposal, thus I have to resort to the use of CPLD devices (EPM7032 and EPM7128) for glue logic. I am not very good at HDL, and the PLD devices aren't very big, thus the glue logic should be minimal. (Does anyone know anything about 5V FPGA preferably by Altera/Intel? That may allow me to build more complex glue logic down the road, like a programmable peripheral address decoder or a memory management unit)

I am not that keen on coding everything in assembler, so availability of some kind of ISO C compiler is almost a must, and the ability to write startup code in as little assembler as possible is a bonus point. I trust the optimizer of a modern compiler much more than the one of an older compiler. Also the toolchain should be free and preferably open source. My software work platform is Linux and macOS so Windows-only tools are out of consideration.
 

Offline DaJMasta

  • Super Contributor
  • ***
  • Posts: 2289
  • Country: us
    • medpants.com
Re: For a vintage computer project, which processor is easier to use?
« Reply #1 on: July 07, 2017, 06:24:46 am »
What about something like a Z80 based one?  I remember a single board computer with probably less than a dozen chips in a pretty small form factor and it's of similar vintage/speed.

If you're willing to delve into FPGAs, there's also the option of making a soft core entirely inside one - not the same if you're looking for a nice hardware project, but it could be a pretty good alternative for complete emulation.
 

Offline C

  • Super Contributor
  • ***
  • Posts: 1346
  • Country: us
Re: For a vintage computer project, which processor is easier to use?
« Reply #2 on: July 07, 2017, 07:11:49 am »
Have you studied ether of the two?

I see the 8088 as an 8-bit computer stretched to a 16-bit instruction set and a 1 meg address space, Segmented memory.
From a software side try to create an array with more then 64k of data

68000 is 32-bit with a 16-bit external bus. The big cripple was that the 68 pin chip needed more pins to get 8 more address lines out of chip.
The 68000 was also built to have many 68000's connected to a bus
Better hardware & better software.

Think of Why the Z80 & 68000 are still taught in collage classes.
 
 

Online Benta

  • Super Contributor
  • ***
  • Posts: 5840
  • Country: de
Re: For a vintage computer project, which processor is easier to use?
« Reply #3 on: July 07, 2017, 07:20:44 am »
Due to its asynchronous external bus, the 68000 needs more glue than the others. On the other hand, it is far more flexible when it comes to mixing peripherals and memories of different speeds.

 

Elf

  • Guest
Re: For a vintage computer project, which processor is easier to use?
« Reply #4 on: July 07, 2017, 07:52:04 am »
I have a similar project on my list, with more extensive use of an FPGA for the rest of the system. These are not on your list of chips, but perhaps worth looking at:
  • WDC 65C02 (same arch. as Apple II, NES, etc.) or 65C816 (Apple IIgs, derivative used in SNES)
  • Zilog Z84C00 (same arch as Kaypro, TRS-80, etc. Sort of similar to Gameboy)
The same old architectures from the mid-70s, all suitably "vintage," but are still in production and are available in modern surface mount packages. The WDC products work at 3.3V, which solves your FPGA voltage issue. Zilog's Z80 successors, the Z180 and eZ80, also have 3.3V parts available and support the Z80 instruction set with extensions.

All have free C compilers from the vendor (WDC Tools, ZDS) and plenty of learning material available. I found the following books useful:
 

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: For a vintage computer project, which processor is easier to use?
« Reply #5 on: July 07, 2017, 09:06:08 am »
Have you studied ether of the two?

I see the 8088 as an 8-bit computer stretched to a 16-bit instruction set and a 1 meg address space, Segmented memory.
From a software side try to create an array with more then 64k of data

68000 is 32-bit with a 16-bit external bus. The big cripple was that the 68 pin chip needed more pins to get 8 more address lines out of chip.
The 68000 was also built to have many 68000's connected to a bus
Better hardware & better software.

Think of Why the Z80 & 68000 are still taught in collage classes.
I have studied both of them. My university used 8088/8087 as the platform though...

8088/8087 have the benefit of more software available - I can create some environment that runs vanilla MS-DOS and get a lot of software running there, since the IBM PC XT architecture is fairly open and can be replicated on a DIY system, and I can even add some PC AT features like the DS12C887 RTC. Some PC XT compatible graphics and sound system would be difficult to design though, but I think I can make it work using some dual port SRAM and a Cortex-M4F GPU. ISO C targeting 8088 are older though - I don't think there is a compiler supporting full C99.

68000 have the benefit of better software support - for example the full GNU toolchain is still available. However I have trouble gluing the memory and other peripherals to the CPU. And I don't think there are ready made software for a custom 68000 system. Is 2MB SRAM + 64kB EEPROM enough for a 68000 system?
 

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: For a vintage computer project, which processor is easier to use?
« Reply #6 on: July 07, 2017, 09:07:19 am »
What about something like a Z80 based one?  I remember a single board computer with probably less than a dozen chips in a pretty small form factor and it's of similar vintage/speed.

If you're willing to delve into FPGAs, there's also the option of making a soft core entirely inside one - not the same if you're looking for a nice hardware project, but it could be a pretty good alternative for complete emulation.
I have considered Z80 but is there any ISO C compiler for it?

For FPGAs, I am not good in HDL. I do have a FPGA dev kit but I have very little clue how to get a soft core on it.
 

Offline dexters_lab

  • Supporter
  • ****
  • Posts: 1890
  • Country: gb
Re: For a vintage computer project, which processor is easier to use?
« Reply #7 on: July 07, 2017, 09:18:10 am »
always had a soft spot for the 68k after my time with the atari st & tt

there are plenty of low ic count single board designs for the 68k like the "Flight 68k Training System", i recently sold one on ebay for £43 so they don't cost much and could be a good starting point for your own design.

Offline C

  • Super Contributor
  • ***
  • Posts: 1346
  • Country: us
Re: For a vintage computer project, which processor is easier to use?
« Reply #8 on: July 07, 2017, 10:04:09 am »
68000 have the benefit of better software support - for example the full GNU toolchain is still available. However I have trouble gluing the memory and other peripherals to the CPU. And I don't think there are ready made software for a custom 68000 system. Is 2MB SRAM + 64kB EEPROM enough for a 68000 system?

The memory is very easy
 If you think about an 8-bit memory board. You are just using two with a common address bus. Separate data bus & control bus for each memory board
Very easy to do. You can easily connect a Z80 to this memory also. A Z80's A0 selects which board of the two.

The HP Pascal compiler that HP used internally to create operating systems, compilers & assemblers, If I remember correct was 200k
The system I used back in early 1980's worked fine with 512k
HP9826 HP9826
Hp had a lot of systems based on 68000, some single user like 9826 some multi=user.

The custom in-house system had many CPU boards on VME bus with local bus on cpu board and local expansion connector.

As I said, The 68000 was designed to run many CPU's on a bus with very powerful IO

You could learn a lot pushing one to limits unlike other CPU's listed in thread.
 

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: For a vintage computer project, which processor is easier to use?
« Reply #9 on: July 07, 2017, 03:14:54 pm »
always had a soft spot for the 68k after my time with the atari st & tt

there are plenty of low ic count single board designs for the 68k like the "Flight 68k Training System", i recently sold one on ebay for £43 so they don't cost much and could be a good starting point for your own design.
What is the 68681 and 68230 doing there? Are CMOS variants available for those if they are important for SRAM-based system? For the glue logic it is doable in EPM7032.
 

Offline colorado.rob

  • Frequent Contributor
  • **
  • Posts: 419
  • Country: us
Re: For a vintage computer project, which processor is easier to use?
« Reply #10 on: July 07, 2017, 03:47:14 pm »
Also, take a look at http://sdcc.sourceforge.net/

Quote
SDCC is a retargettable, optimizing Standard C (ANSI C89, ISO C99, ISO C11) compiler suite that targets the Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based MCUs (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A, TLCS-90) and STMicroelectronics STM8. Work is in progress on supporting the Microchip PIC16 and PIC18 targets. It can be retargeted for other microprocessors.
 

Offline dexters_lab

  • Supporter
  • ****
  • Posts: 1890
  • Country: gb
Re: For a vintage computer project, which processor is easier to use?
« Reply #11 on: July 07, 2017, 04:05:09 pm »
always had a soft spot for the 68k after my time with the atari st & tt

there are plenty of low ic count single board designs for the 68k like the "Flight 68k Training System", i recently sold one on ebay for £43 so they don't cost much and could be a good starting point for your own design.
What is the 68681 and 68230 doing there? Are CMOS variants available for those if they are important for SRAM-based system? For the glue logic it is doable in EPM7032.

they are a UART, Parallel IO and timers, there was a training program with that board so i expect small projects to do with serial, parallel and general purpose i/o using them as part of the training

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: For a vintage computer project, which processor is easier to use?
« Reply #12 on: July 07, 2017, 04:33:36 pm »
always had a soft spot for the 68k after my time with the atari st & tt

there are plenty of low ic count single board designs for the 68k like the "Flight 68k Training System", i recently sold one on ebay for £43 so they don't cost much and could be a good starting point for your own design.
What is the 68681 and 68230 doing there? Are CMOS variants available for those if they are important for SRAM-based system? For the glue logic it is doable in EPM7032.

they are a UART, Parallel IO and timers, there was a training program with that board so i expect small projects to do with serial, parallel and general purpose i/o using them as part of the training
I have 16C550 for UART. The parallel I/O can be problematic though (and that is one thing I don't want to waste CPLD logic elements on.)
 

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: For a vintage computer project, which processor is easier to use?
« Reply #13 on: July 07, 2017, 04:34:23 pm »
Also, take a look at http://sdcc.sourceforge.net/

Quote
SDCC is a retargettable, optimizing Standard C (ANSI C89, ISO C99, ISO C11) compiler suite that targets the Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based MCUs (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A, TLCS-90) and STMicroelectronics STM8. Work is in progress on supporting the Microchip PIC16 and PIC18 targets. It can be retargeted for other microprocessors.
I don't have the best experiences with SDCC though...
 

Offline C

  • Super Contributor
  • ***
  • Posts: 1346
  • Country: us
Re: For a vintage computer project, which processor is easier to use?
« Reply #14 on: July 07, 2017, 04:35:33 pm »
As I stated MEMORY is EASY
Start with two static rams 8-bits wide.

the CPU works with
8-bit value 
 Which byte is selected by A0 You have controls to read/write to only one memory chip.

16-bit Value
  You have two possible ways in memory,
Data is aligned in which read/write 16-bits, use both chips at same time.
Data is UN-aligned hardware does two 8-bit reads or writes.

32-bit value
  You have two 16-bit operations or 8,16,8 operation.

A0 is in UDS, LDS and with these two signals allow all of the above where one chip or both is used.

You have an address valid signal(AS) and a data valid(DS)

The 68000 works from a NO memory state.
Where Z80 and other chips like this assume all memory is fast and exists, you need a slow down signal. Most have no way of signaling NO Memory.
68000 works from no memory and times out when no memory exists. The signal is now a speed up(DTACK).
This is not a new Idea, The PDP-11 and others used it. Makes having a very long bus very easy. Makes connecting two backplanes with a cable easy. Less distance from CPU is faster.

 

Offline colorado.rob

  • Frequent Contributor
  • **
  • Posts: 419
  • Country: us
Re: For a vintage computer project, which processor is easier to use?
« Reply #15 on: July 07, 2017, 05:14:22 pm »
I don't have the best experiences with SDCC though...
I've never used it myself (not exactly true, but it has been a *very* long time).  What sort of problems did you run into?
 

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: For a vintage computer project, which processor is easier to use?
« Reply #16 on: July 07, 2017, 05:45:01 pm »
It appeared to me that a lot of you prefers MC68HC000 over Intel 8088. Please keep in mind that *existing software* is also a metric in my consideration. If I built a retro computer using 8088 I can build it in the style of an IBM PC XT compatible with some AT features, complete with a compatible BIOS. This will allow vanilla MS-DOS as well as a good selection of existing DOS programs to work, including games. Heck my system even have a FPU for the most demanding titles.

I am not familiar with the 68000-based systems (they are virtually nonexistent in China) so is there any open standards comparable to IBM PC?
 

Offline technixTopic starter

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: For a vintage computer project, which processor is easier to use?
« Reply #17 on: July 07, 2017, 05:50:44 pm »
The 68000 works from a NO memory state.
Where Z80 and other chips like this assume all memory is fast and exists, you need a slow down signal. Most have no way of signaling NO Memory.
68000 works from no memory and times out when no memory exists. The signal is now a speed up(DTACK).
This is not a new Idea, The PDP-11 and others used it. Makes having a very long bus very easy. Makes connecting two backplanes with a cable easy. Less distance from CPU is faster.
For the 8088 since I am generating the clock from the chipset CPLD anyway I can clock scale as I see fit. A clock prescaler with a read/write configuration register isn't that hard to implement.
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: For a vintage computer project, which processor is easier to use?
« Reply #18 on: July 07, 2017, 05:59:03 pm »
If I built a retro computer using 8088 I can build it in the style of an IBM PC XT compatible with some AT features, complete with a compatible BIOS. This will allow vanilla MS-DOS as well as a good selection of existing DOS programs to work, including games. Heck my system even have a FPU for the most demanding titles.



 

Offline C

  • Super Contributor
  • ***
  • Posts: 1346
  • Country: us
Re: For a vintage computer project, which processor is easier to use?
« Reply #19 on: July 07, 2017, 06:06:12 pm »
In my book the 8088/8086 was not a good system. I think it's a waste of time to learn poor hardware. For software you could use an IBM PC XT emulator. Again Software foundation is bad.

And you are comparing the 8088/8086 to what could be a multi-user and multi-CPU system.
If you build your boards correctly. the extra boards could all be used.
You would have a multi-CPU system.

Want to play or work with fancy then replace the 68000 with a 68010. This lets you run many operating systems at same time on one CPU

So a lot of old poor XT code VS learning great hardware. If you want copycat then use the VME bus.
 
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: For a vintage computer project, which processor is easier to use?
« Reply #20 on: July 07, 2017, 06:18:56 pm »
about x86, a friend some time ago wrote

Quote
Within a couple of months, the license of the original i486 drops, and you are free to re-implement it without a license from Intel, so what I am going to do aims to recreate it as an open platform, with an aim for making it viable for embedded work.

I still wonder WHY? x86 is an ugly architecture, and we have Quark and Edison to play with x86-binaries, so ... I can't really understand.

A dude on hackday made a "GameBoyAdv"-like console (well, it's the "shell-like version"), using one of those 486-embedded boards, an Oled LCD, and a battery, and he said that it makes sense since he wants to use x86 binaries (gameconsole emulators?) which don't happen to have a decent opensource equivalent.

I can't find the hackaday topic atm, but it's there :-//

edit:
found! here it is!

« Last Edit: July 07, 2017, 07:56:38 pm by legacy »
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8515
  • Country: us
    • SiliconValleyGarage
Re: For a vintage computer project, which processor is easier to use?
« Reply #21 on: July 07, 2017, 06:19:27 pm »
4004  or, for a real challenge : mc14500 ( a 1 bit cpu)
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: For a vintage computer project, which processor is easier to use?
« Reply #22 on: July 07, 2017, 06:21:50 pm »
4004  or, for a real challenge : mc14500 ( a 1 bit cpu)

LOL, 8008 basic  :D :D :D
(
edit:
a dude actually made it
the code size is 722 bytes)
« Last Edit: July 07, 2017, 07:10:17 pm by legacy »
 

Offline Bruce Abbott

  • Frequent Contributor
  • **
  • Posts: 627
  • Country: nz
    • Bruce Abbott's R/C Models and Electronics
Re: For a vintage computer project, which processor is easier to use?
« Reply #23 on: July 07, 2017, 07:44:58 pm »
Please keep in mind that *existing software* is also a metric in my consideration.
What *existing software* do you want to run? If it's pre-compiled MSDOS applications then you will need to reproduce an entire IBM PC, either at the hardware level or using a custom BIOS to interface to your non-standard hardware (with reduced compatibility). If you are happy to recompile source code then you have more flexibility, but then the CPU choice also becomes less of an issue.

Quote
If I built a retro computer using 8088 I can build it in the style of an IBM PC XT compatible with some AT features, complete with a compatible BIOS. This will allow vanilla MS-DOS as well as a good selection of existing DOS programs to work, including games.
I think you may be underestimating the amount of work required to produce a sufficiently XT compatible machine, particularly for games.

My first PC was an actual IBM, but it was not compatible with a lot of PC software because it was an IBM JX. For me it was an excellent choice because I had the technical reference manuals and a desire to learn the PC architecture inside and out. The incompatibilities taught me a lot because I had find out why they occurred and fix them - including hacking into games, writing drivers and making my own hardware. However if you don't want to do that it could be a nightmare.

The 8088 seems attractive due to its low pin count and compatibility with Intel peripherals, but needs a lot of specific support hardware to become a fully functional XT. And in the end all you have is another crappy XT clone. What's the fun in that?

An interesting bit of history - Why the IBM PC Used an Intel 8088

"For IBM it was extremely different because this was a project where they let a supplier -- a partner, whatever you call us -- shape the definition of the machine and provide fundamental elements of the machine. When they first came to us, their concept was to do an 8-bit computer. And the project was more notable because they were going to do it so quickly and use an outside company....The novel thing was: could you work with outsiders, which in this case was mostly ourselves but also Intel, and do it quickly? And the key engineer on the project, Lou Eggebrecht, was fast-moving. Once we convinced IBM to go 16-bit (and we looked at 68000 which unfortunately wasn't debugged at the time so decided to go 8086), he cranked out that motherboard in about 40 days." - Bill Gates.

Basically, IBM decided to use the 8088 because it was cheap, and they just wanted something to compete with other 8 bitters. If they had picked the much more powerful 68000 they might still have a hold on the PC market today. As it was they realized their mistake (and tried to correct it with the PS/2 line) too late.
 
Quote
I am not familiar with the 68000-based systems (they are virtually nonexistent in China) so is there any open standards comparable to IBM PC?
Compared to the PC not as much, but if you want to run existing PC software (including games) you need full PC compatibility anyway so any other standards are irrelevant.

OTOH why limit yourself to recreating a boring PC? Be adventurous, learn new stuff, try doing something everybody else hasn't done before!

Quote
I am not that keen on coding everything in assembler, so availability of some kind of ISO C compiler is almost a must, and the ability to write startup code in as little assembler as possible is a bonus point.
Few of us code everything in assembler (I am one of the exceptions) but 68000 machine code is much easier to work with than 8086. Orthogonal instruction set, no segment registers, few instructions to learn, powerful easy to remember opcodes and neat looking code. Compared to Intel it's a dream. Why don't you try it?

Quote
My software work platform is Linux and macOS so Windows-only tools are out of consideration.
MacOS was originally 68000, and Linux is based on Unix which the 68k instruction set is particularly well suited to. It may be more familiar than you think...

Motorola 68000

"the 68000 became the dominant CPU for Unix-based workstations including Sun workstations and Apollo/Domain workstations, and also was used for mass-market computers such as the Apple Lisa, Macintosh, Amiga, and Atari ST. The 68000 was used in Microsoft Xenix systems, as well as an early NetWare Unix-based Server."

Notable systems
The original Apple Macintosh and early successors use the 68000 processor as their CPU.
The original Apollo Computer workstations, DN100, DN400 and DN600 use two 68000 processors as main CPU.
The 1981 SUN workstation and its subsequent commercial spinoff the 1982 Sun-1 workstation used the 68000 as their CPU.
The Sega Genesis game console uses a 68000 processor (clocked at 7.67 MHz, 15/7 of the NTSC video colorburst frequency) as its main CPU and the Sega CD attachment for it uses another 68000 (clocked at 12.5 MHz).
SNK's Neo Geo.
The Commodore Amiga 1000, 2000, 500, 600 and CDTV use the 68000 processor as their CPU.[24]
The Atari ST computers use the 68000 processor, initially with a clock speed of 8 MHz, and later switchable to 16 MHz in the Mega STe.
CDTV, the world's first compact disc based multimedia platform, uses the 68000 processor as its CPU.[25]
The TI-89 Graphing Calculator uses the 68000 processor at 10, 12, or 16 MHz, depending on the calculator's hardware version.
The CP System uses the 68000 processor at 10 MHz;

 
 
« Last Edit: July 07, 2017, 07:47:50 pm by Bruce Abbott »
 

Offline Bruce Abbott

  • Frequent Contributor
  • **
  • Posts: 627
  • Country: nz
    • Bruce Abbott's R/C Models and Electronics
Re: For a vintage computer project, which processor is easier to use?
« Reply #24 on: July 07, 2017, 07:56:31 pm »
68000 works from no memory and times out when no memory exists.
Unless you ground DTACK.

DTACK Grounded
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf