On Thursday 22 November 2007 00:28:24 Tony Duell wrote:
The problem is that there are few good books on
computer operation (and
plenty of very bbad ones). I learnt a lot from the Philips P850 CPU
techncial manual, and more from the PDP8/e and PDP11/45 manuals and
printsets. But trying to understand those is really starting at the deep
end.
I think my "lightbulb moment" was with the SC/MP processor, really. Among a
pile of junk that my Dad had salvaged from stuff getting binned at work was a
manual for a Sinclair MK14. I never saw the board, but I still have the
manual.
Now, this looked like an interesting little project, so I set out to find as
much as I could about it. The answer turned out to be "not much" - this was
well before the Internet was such a pervasive thing. A few scattered
articles in old copies of Wireless World, and the manual. And that was about
it.
I had a very old (mentions drums and discrete transistor logic, and how modern
integrated circuit techniques will soon be able to pack as many as 10 or 20
gates into a package no larger than a shilling), which mentioned the concept
of a function decoder mesh. Hmm, I thought. Ok, so there must be a pattern.
Now I knew from reading the Z80 opcodes in the back of my ZX Spectrum manual
that there was a clear pattern - these bits meant "select a register", and so
on. So I thought to myself, right, if I make a table of the opcodes in
binary, there's only 256 of them at most, so it shouldn't take long, and then
I might see the pattern.
So then I sat down for an evening of quietish contemplation with the new PWEI
album (Now for a Feast) and a glass or two of wine and a big fat A4 pad and
some graph paper "appropriated" from the Maths classroom, and got to work.
Before long I'd written out all the opcodes, worked out the binary patterns,
and started to group them together. Aha! Now we're getting somewhere, I can
see how *that* bit controls what the ALU is doing, *that* bit says whether
it's a jump or an ALU instruction, and so on. Thus was Friday night spent,
and I still have those random jottings and carefully-drawn tables.
Saturday dawned wet and windy, so a nice day for staying inside. By teatime,
I had a slow-but-workable SC/MP emulator, written in Turbo Pascal on an
Amstrad PCW8256. Sunday was spent writing stuff to deal with the I/O
(terribly slow). Then I lost interest in it, and found a greater interest in
the girl sitting two desks over in my English class, as is often the way with
teenagers. Heigh-ho.
I still have it kicking around on 3" disks. I must dig the Amstrad out of the
attic some time and see if they still work.
Gordon