24-12-2021, 12:02 PM
In the early 1980s I was working for MIchael Cox Electronics designing vision mixers. We decided to design our first MPU controlled mixer, a big jump from what went before. I wasn't very involved with the MPU side but it was a small team so we all knew what was going on. Prototyping was with a Nascom 2. We extended the address and data buses using buffers and severla yards of ribbon cable so we could write to our hardware in a memory map. That worked better than it had any right to do.
We designed a board for the Z80 and its peripherals. We used a DMA chip to write to all our hardware duing the vertical blanking interval (yes I know about double buffering but it was significant extra cost and space back then). Everything was written in assembler using a Tektronix microprocessor development system that used 8" floppies. The Tek system could do everything from code editing to CPU emulation with breakpoints.
None of us was very software orientated so a few of us learned almost from scratch. I was mainly doing analogue video hardware design but had to work very closely with the guys doing the software. Everything was hand coded in assembler. The design was very deterministic. First part of each field was spent communicating with the control desk (which had its own Z80 etc) and creating what we called the "intermediate image". This was a logical representation of the state of the mixer for that field. At a fixed point in each field the software performed translation from the intermediate image into the hardware image. Finally in the field interval the hardware image was sent by DMA to the hardware, a process we called "fast transfer". We somehow kludged the DMA into working twice as fast as its nominal spec. That was out of necessity.
I suppose we could have used a CPM based dev system. We started before the first IBM PC.
If we want a Z80 now there's a freely available FPGA implementation: https://opencores.org/projects/a-z80 I suspect the same goes for many other older MPUs and CPUs.
We designed a board for the Z80 and its peripherals. We used a DMA chip to write to all our hardware duing the vertical blanking interval (yes I know about double buffering but it was significant extra cost and space back then). Everything was written in assembler using a Tektronix microprocessor development system that used 8" floppies. The Tek system could do everything from code editing to CPU emulation with breakpoints.
None of us was very software orientated so a few of us learned almost from scratch. I was mainly doing analogue video hardware design but had to work very closely with the guys doing the software. Everything was hand coded in assembler. The design was very deterministic. First part of each field was spent communicating with the control desk (which had its own Z80 etc) and creating what we called the "intermediate image". This was a logical representation of the state of the mixer for that field. At a fixed point in each field the software performed translation from the intermediate image into the hardware image. Finally in the field interval the hardware image was sent by DMA to the hardware, a process we called "fast transfer". We somehow kludged the DMA into working twice as fast as its nominal spec. That was out of necessity.
I suppose we could have used a CPM based dev system. We started before the first IBM PC.
If we want a Z80 now there's a freely available FPGA implementation: https://opencores.org/projects/a-z80 I suspect the same goes for many other older MPUs and CPUs.
www.borinsky.co.uk Jeffrey Borinsky www.becg.tv







