How many computers?

From: Kevan Heydon <kevan_at_heydon.org>
Date: Tue Jul 21 12:40:00 1998

Another follow up about the Graduate boot process...

 OK, in short, it works like this... (apologies in
 advance for being a bit vague, or even inaccurate on
 a few points - it's been well over a decade since I
 worked on the Graduate...)

 When powered on and booted, the Graduate asserts the
 NMI on the BBC Micro 1MHz bus. Thanks to an
 undocumented feature placed in the MOS by Paul Bond,
 if the 1MHz bus NMI is active when the BBC Micro is
 switched on, the MOS does a JSR to &FE00 (I think -
 the 1MHz data page).

 256 bytes of the Graduate's 6502 ROM is paged into
 here, and the code wedges into the BBC Micro "call
 this OSBYTE on boot" call (I think). This is called
 several times on boot, and the Graduate allows the
 BBC Micro to completely boot, before using the
 bootstrap it copied into memory to copy over yet
 more 6502 assembler into BBC memory to act as the
 "client" for keyboard and screen operations.

 (The 6502 Graduate ROM can be paged into the 1MHz
 bus "data" space 256 bytes at a time by poking a
 register in the 1MHz bus "address" space. The
 other communication goes over the TAP, which was
 used to exchange the screen and keyboard data etc.
 Used a protocol sort of like the Torch Z80 "tube"
 calls, I think, but don't ask me more than that -
 I'll have to find the notes...)

 And if you thought the Graduate DFS was cr*p, it's
 because I developed it after each normal working day
 (8am - 4pm Torch, 4.30pm - midnight Data Technologies,
 go home, get up at 6am again...) over about six weeks
 and since it was not a sideways ROM, it had to
 execute entirely in 256 byte pages on the 1MHz bus.
 It's a miracle it worked at all (even if I do say so
 myself :-) )

--
Kevan
Old Computer Collector: http://www.heydon.org/kevan/collection/
Received on Tue Jul 21 1998 - 12:40:00 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:31:01 BST