[comp.arch] Emulating an 8088 on a bit-slice

jrj@eagle.ukc.ac.uk (J.R.Jeff) (07/29/88)

Hi, can anyone advise, give opinions or suggestions to the
following problem(s):

I intend to emulate an Intel 8088 on a bit-slice processor.

On my left-hand side I have the 8088 spec, on my right the
AmD 2900 bit-slice spec (say).  In the middle is me trying to 
figure out if I can meet all the 8088 spec through microcoding 
the bit-slice.  The AmD spec that I am reading does not say 
that there is an AmD supplied motherboard into which I plug my
slices to form a 16-bit processor, but I assume that something 
like that is possible.

In the perfect world, the motherboard + slices would then be an 
8088 processor minus an 8088 instruction set (which I would 
microcode).  

In practice, this is not true for I find that the 8088 possesses 
additional features such as:

    -	numerous control bus control lines (HOLD, HLDA, READY,
	WR etcetera)

    -	Interrupt inputs (NMI, INTR)

    -	multiplexed pins (data/address and others)

    -	3-state data/address lines

    -	20 bit addressing

    -	would additional instruction decoding hardware be advised
	since the 8088 instruction set is not fixed format?

    -	and LOTS more problems!!

Am I mad to attempt such a venture?  Will I have to implement the 
out-going bus control lines with line driver hardware driven by 
microprogram bits or would the motherboard already provide that 
feature with general purpose I/O lines closely coupled to the 
computer control unit?  I want to control the outside world.

How about the in-coming control lines?  How do I sense them?  I
see that I can use CONDITIONAL BRANCH statements (for example) to 
react to a condition but get the impression that all the conditions 
going into the branch control unit come exclusively from the ALU and
not the outside world.  I want to be able to react to the outside
world.

Do any of these problems evaporate by using a newer generation 
(and hopefully more featured) bit-slice?

(How) Am I wrong?   Is my approach wrong?

Any references to anybody having done similar work?

The reasons for emulating an 8088 processor (or other member
of the family) is to equip an IBM-PC with a supplemented
instruction set.

Supplementing the 808xx instruction set by way of an emulated
co-processor also exposes similar problems.

I am a software engineer being dictated to by hardware.


I would greatly appreciate any comments.

Thank you!

John


---
	John Jeff				Computing Lab
	jrj@ukc.ac.uk				University of Kent
	jrj@ukc.UUCP				Canterbury
	...!mcvax!ukc!jrj			Kent CT2 7NF
						UK
	Phone: +44 227 764000 ext 3822
---