From: jeremy@sw.oz.au (Jeremy Fitzhardinge)
Subject: Re: VCS processor (was Re: Game machine processors)
Organization: Softway Pty Ltd
Date:  4 Jan 93 11:14:42 GMT

In <1i63h4INN7tu@uniwa.uwa.edu.au> john@gu.uwa.edu.au (John West) writes:
>Any other evil hardware hacks in production machines? Things that really
>should never have been done?

Well, since you mentioned them, the Sinclair machines are a bountiful source
of such goo.

The Sinclair Spectrum has a chip known as the ULA (Uncommitted Logic Array
- some programmable device that never seemed to have its own real name)
which does pretty much everything the Z80 doesn't, like video.  When the
ULA is pumping out video, and the CPU wants to use the 16k block with
video memory in it, the ULA stops it.  How?  Not by interrupting it,
not by adding wait states - it just turns off the CPU's clock (derived
from the video clock in a fashion that seems to insure maximum possible
amounts of digital hash in the video output).

This was OK until I tried to put a 8MHz Z80H into the machine.  I could
never work out how to make sure my 8MHz clock could be turned off by the
ULA, since the necessary signals never came out pins.  In retrospect,
any number of things could have been done, but it didn't seem worth
the effort.

Also, Sinclair machines always had production line "red wire" to
patch hardware faults.  The revision 1 (A?) Spectrum boards had a 74ls
chip on its own small PCB flying on wire to correct a timing problem.
The revision 2 (b?) boards had a transistor across the CPU to fix some
other probem with chip selection.

The real mess was the "Interface One" adapter.  Every one I ever saw
had a meter or so of patch wire, and a few transistors and resistors
scattered around amongst the cut tracks.

And while we're here, how about some "software where hardware should
have been" tales?  OK, Sure!

The IF-1 has an interface for the MicroDrive (100 feet of sliced
videotape in a continious loop inside a box half the size of a matchbox),
the network (very slow token-ringish thing), and a serial port (could
be made to work with RS232, but not really standard).  All three bits
of hardware were driven with pure CPU bit bashing.  For the microdrive
this meant that if you hit NMI or reset while it was writing, then it
would leave the head energised and keep the tape rotating, but without
modulation.  Data?  Where?

The problem was worse for the serial and network ports however. There was
no interrupts used in the machine apart from the 50Hz frame interrupt,
so you had to poll the serial port or network continiously if you wanted
to use them.  Off course, full-duplex was not supported by the ROM code,
and very hard to do anyway.

Also, there was a Sinclair tradition of flashing the screeb border colour
whenever hardware was being polled or used.  That meant that tape reads
would flash red/cyan for headers and blue/yellow for data (but at >50Hz,
so there were stripes - sctually at the freq of the sound on the tape),
and the Interface One ports would flash black/white when they are used.
It made assembling off MicroDrive very painful at 3am.

Note the transition from present to past tense.  Sweet memories turn
bitter on comtemplation.

	J

>John West
>--
>For the humour impaired: Insert a :-) after every third word

Newsgroups: alt.folklore.computers
Subject: Re: Apple IIGS being discontinued Dec 1992