[comp.arch] Building a FORTH machine

paul-s@obelix.liu.se (Paul Svensson) (05/02/87)

		** Greetings net'ers! **

 Our computer club, LYSATOR, has an old DataSAAB Flexible Central
Processing Unit, an asynchronous, triplet decoupled, six-cabinet
mainframe from the early seventies.  Currently the only microcode
we've got is for D23, an emulation of a batch machine from the mid
sixties.  In short, lots of fun hardware, but no fun software.
 Therefore i'm now out looking for (pointers to):

::	Smart multiplication and division algorithms, to implement
	in microcode.  The hardware has	a kind of barrel shifter,
	witch does shifting, masking and part-word insertion in
	one microinstruction.  Could such a beast be useful ?

::	Some way of cacheing (sp?) the FORTH stacks, so that the
	microcoded interpreter don't have to access main storage
	all the time.

::	Ideas on (why not) implementing some kind of virtual memory
	without (much) hardware support.

::	Literature on implementing FORTH.


FYI; A few facts about the FCPU:

The FCPU (really FCPU-1) itself occupies two cabinets.
 The CPU is fully asynchronous, and consists three parts:
  A control unit, with 6K 64bit RAM for microcode.
  An arithmetic unit, with 16 64bit registers, ALU, shifter &c.
  A memory access unit that extracts and stores 8, 16, 24, 32, 40,
  48 or 64 bit words in main storage.
Approximately 512K Bytes of RAM occupies another two cabinets.
 Memory chips contain 1 K bit each (I've forgotten the type number).
IO control and drivers also fill two cabinets.
 The IO cabinets really are D22 (DataSAAB 1966 model), just
 for compatibilty. This means 24 bit word data for IO.
 The word length of 24 bits, used in D22, is only for
 compatibility with D21 (DataSAAB 1962 model).
 There are no ICs, but only transistors, in the IO cabinets.
 There are buffer units between the IO cabinets and
 the disks (100 M Byte Control Data Corp. -- We don't run
 any of them). Buffering is used, because the IO cabinets
 are too slow -- not the disks.
People here think we must be crazy keeping it.
 Maybe we are.
-- 
#include <stddiscl.h>
==============================================================
Paul Svensson			paul-s@obelix.liu.se
} i }a { e |		...!mcvax!enea!liuida!obelix!paul-s