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

0 Members and 1 Guest are viewing this topic.

Offline dnotq

  • Contributor
  • Posts: 18
  • Country: us
Re: For a vintage computer project, which processor is easier to use?
« Reply #100 on: August 24, 2017, 06:00:05 am »
I skimmed the thread before posting, but missed if "easier to use" was clarified?  Easy in terms of interfacing the CPU, programming, existing software availability and tools?

The 8-bit CPUs like the Z80, 6502, etc. are probably the easiest to interface due to the limited data and address bus.  There is also a lot of information and books available for building systems based on the classic 8-bit CPUs.

The 8088/8086 are fine as long as you promise to *not* make a PC or XT clone. ;-)  Make a unique system, it will be way more fun.  You have to demux the address / data bus though, so extra glue logic right off the bat just to start interfacing the CPU.  Well documented though, and lots of software tools.

The Z80 is fast and the 6809 is probably the most advanced 8-bit CPU ever.  I find both require getting your head around the architecture to program them with any kind of efficiency.  But once you master their assembly language, they are very powerful.  Interfacing is straight forward, and there are tons of example systems out there for reference, books, info, etc.

The 6502 is nice to program, so I have been told.  Probably decent tools available and used in a lot of classic computers.

The TMS-9900, TMS-9995, and TMS-99105 seem to borrow heavily from the PDP-11 and have a nice assembly language.  There are compilers available, albeit limited.  Those CPUs also have a memory-based register file, which is interesting and good for fast task-switching (if that is important).  Interfacing is straight forward, but they have a strange I/O implementation called the "CRU".  TI seemed to be experimenting with a lot of ideas with that CPU family.

The 68000 is a nice CPU with a nice assembly language, like the TMS-9900 family it is very orthogonal (IIRC).  Certainly there are tools and software.  What is really nice about the 68000 is the large flat address space, with a decent size physical address bus.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 1294
  • Country: nz
  • Currently at SiFive, previously Samsung R&D
Re: For a vintage computer project, which processor is easier to use?
« Reply #101 on: August 24, 2017, 11:52:16 am »
I skimmed the thread before posting, but missed if "easier to use" was clarified?  Easy in terms of interfacing the CPU, programming, existing software availability and tools?

I agree this was never really clarified.

Quote
The Z80 is fast and the 6809 is probably the most advanced 8-bit CPU ever.  I find both require getting your head around the architecture to program them with any kind of efficiency.  But once you master their assembly language, they are very powerful.  Interfacing is straight forward, and there are tons of example systems out there for reference, books, info, etc.

The Z80 was much easier to interface than the 8080, but the 8085 was easier again.

As for the 6809, yes easy to work with electrically and the nicest "8 bit" CPU. In fact, once you get past documentation differences and look at the actual opcodes and their encodings, you find that there is not a lot of difference between the 6809 and the 8088. Both have eight registers, with a (slightly different) mix of 8 and 16 bit. Both have opcodes to select secondary pages with more opcodes. Even the 6809 indexed addressing mode byte is very similar to the 8088 mod/rm byte. Perhaps the biggest difference is that the 6809 allows only a register as the destination of arithmetic, not  the memory operand. (except inc/dec/inv/neg/clr).  The 6809 is a good fit for high level programming languages and an easy target for compilers.

Quote
The 6502 is nice to program, so I have been told.  Probably decent tools available and used in a lot of classic computers.

No, it's awful. By far its best feature was that it was ten times cheaper than anything else at the time it was introduced. And it was a little bit pipelined, so it ran as fast as the memory would permit. It's extremely lacking in registers, so the easy way to program it is to treat Zero Page as 256 registers (or 128 16 bit registers, as you'll want quite a few as pointers, at least). In many programs that lets you put all the local variables of your various functions in more or less dedicated "registers" so you don't need to worry about stack. Which is fortunate as the support for a C-style stack is non-existent -- there's 256 bytes for function return addresses, and you can stash a register there temporarily (push/pop) within a function, but that's it. Recursive, reentrant, or position independent code is incredibly painful (all of them are trivial on the 6809). Because you're constantly shuffling things between Zero Page and the actual registers you need a lot of instructions to do anything and the code density is awful by modern standards -- even for 8 bit calculations, but (more than) doubly so for 16 bit calculations. Something like X->a = Y->b + Z->c needs seven instructions and thirteen bytes of code and 26 clock cycles for an 8 bit field (clc; ldy #b; lda ($Y),y; ldy #c; adc ($Z),y; ldy #a; sta ($X),y). Just awful. X->a = Y->a + Z->a is better at five instructions and nine bytes and 22 clock cycles. But not much.
 

Offline fourtytwo42

  • Frequent Contributor
  • **
  • Posts: 823
  • Country: gb
  • Interested in all things green/ECO
Re: For a vintage computer project, which processor is easier to use?
« Reply #102 on: August 24, 2017, 06:02:04 pm »
I am very sorry to go off at a slight tangent OP but when I was a lad "vintage computers" didn't have a processor chip as that didn't exist ;D The earliest machines I was involved with were built using IC gates BUT a friend of mine worked on those built with transistors (no IC's at all). So the modern day appreciation of "vintage computer" often makes me laugh.........sorry..
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 1294
  • Country: nz
  • Currently at SiFive, previously Samsung R&D
Re: For a vintage computer project, which processor is easier to use?
« Reply #103 on: August 24, 2017, 07:52:46 pm »
I am very sorry to go off at a slight tangent OP but when I was a lad "vintage computers" didn't have a processor chip as that didn't exist ;D The earliest machines I was involved with were built using IC gates BUT a friend of mine worked on those built with transistors (no IC's at all). So the modern day appreciation of "vintage computer" often makes me laugh.........sorry..

Those aren't something you can buy from a catalogue, obviously, which seemed to be what the OP was asking about.

You could emulate them in an FPGA. And rather a small one. And at 100x their original clock speed.
 
The following users thanked this post: fourtytwo42

Offline technix

  • Super Contributor
  • ***
  • Posts: 3265
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: For a vintage computer project, which processor is easier to use?
« Reply #104 on: August 25, 2017, 08:30:08 pm »
I am very sorry to go off at a slight tangent OP but when I was a lad "vintage computers" didn't have a processor chip as that didn't exist ;D The earliest machines I was involved with were built using IC gates BUT a friend of mine worked on those built with transistors (no IC's at all). So the modern day appreciation of "vintage computer" often makes me laugh.........sorry..

Those aren't something you can buy from a catalogue, obviously, which seemed to be what the OP was asking about.

You could emulate them in an FPGA. And rather a small one. And at 100x their original clock speed.
If I am interested in this type of computers I would try write one in VHDL and put it into a FPGA instead of cooking up a massive circuit board for it. (Hey I am even trying to consolidate the glue logic on those older computers into a few CPLD chips...) Although for a long term project it may be fun (and expensive) to implement a transistor-only computer (probably using a lot of MOSFETs in CMOS configuration instead of the more common BJTs and diodes, just to keep the power draw in check...)
 

Offline fourtytwo42

  • Frequent Contributor
  • **
  • Posts: 823
  • Country: gb
  • Interested in all things green/ECO
Re: For a vintage computer project, which processor is easier to use?
« Reply #105 on: August 26, 2017, 11:47:38 am »
There is a free project somewhere with an entire spark written in VHDL, and it runs, I tried it many years ago while evaluating different FPGA's There is one here http://vlsicad.eecs.umich.edu/BK/Slots/cache/www.gaisler.com/products/leon2/leon.html
« Last Edit: August 26, 2017, 05:19:12 pm by fourtytwo42 »
 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3265
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: For a vintage computer project, which processor is easier to use?
« Reply #106 on: August 27, 2017, 06:56:13 pm »
Project update.

For this project I am going to stick to 80C88 and CPLD. However I will not build the system with a lot of MS-DOS compatibility (so I can place stuff in more convenient places. And a lot of modern stuff I want to implement really does not play nice with DOS.)

Here are the features I have decided to give the system:

* Processor complex: 80C88 CPU + 8087 FPU
* RAM: AS7C4096 = 512KB SRAM
* ROM: AT28C256 = 32kB EEPROM
* Bus complex: MAX 7000S series CPLD + 82C59 PIC + 82C53 PIT + 82C37 DMA
* Display: HD44780-based character display, mapped to I/O port.
* Input: USB keyboard and mouse.
* Sound: Direct DAC output with DMA (similar to Covox Speech Thing or Disney Sound Source)
* Connectivity: 1x CH375 USB OTG on I/O port, 1x CH376 USB Host (4 ports via USB Hub) on I/O port, 1x W5100 Ethernet in memory map, 1x 16C550 UART on I/O port, 1x 82C51 UART on I/O port.
* Storage: 1x microSD card slot over CH376.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf