[prev in list] [next in list] [prev in thread] [next in thread]
List: classiccmp
Subject: Re: Introduction
From: Oliver Lehmann <lehmann () ans-netz ! de>
Date: 2008-05-30 21:27:18
Message-ID: 20080530232718.8a536ca6.lehmann () ans-netz ! de
[Download RAW message or body]
Roger Holmes wrote:
> Three MMUs seems a bit weird. I last programmed a Z8001 in 1979 so
> maybe things have changed between then and when your machine was
> built. If I remember correctly, the Z8010 MMU mapped 64 of the 128
> segments, you could have one MMU and address 64 chunks of up to 64k
> in the 16MB address range. With two MMUs you could access all 128
> chunks. Are the MMUs set up for different processes, or are they
> divided into instruction and data accesses or some other way?
The system has three MMUs because it may also run non-segmented software
even if it is a segmenting processor by having some hardware (break
registers, comperators, logic) in front of the 3 MMUs. Having this, the
system can work in 3 different modes:
(1) Operating system segmented (CPU works in system mode):
all 3 segments Code, Data and Stack are managed by MMU1, MMU2,
MMU3 and the break registers are not activated
(2) User process notsegmented (CPU works in normal-mode, segment number
63):
MMU1 handles the code-segment, MMU2 the data-segment and MMU3 the
stack-segment. the break regster is active and stears the data or
stack MMU
(3) User process segmented (CPU works in normal-mode):
MMU2 and MMU3 are used to address all the 128 memory segments which
may be code, data or stack segments. MU2 manages the segments 0...63,
MMU3 the segments 64...127.
> I think you would have to be lucky to get your C code to use exactly
> the same registers as the original object code. Are you sure it was
> originally C or could it have been assembly code?
Some parts C, some parts assembly. The assembly code was easy to get back
because it was just dissassembling + some comments ;)
Ok - disassembly was easy after I got a decent disassembler - the first
object generated originaly out of ASM code I disassembled by hand reading
the hexdump - this took hours which made me searching harder for a Z8001
disassembler ;) The C parts are a bit harder... actual status:
http://pofo.de/P8000/kernel.php
--
Oliver Lehmann
http://www.pofo.de/
http://wishlist.ans-netz.de/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic