Z8000 Assembler anyone?

jwsmobile jws at jwsss.com
Fri Nov 13 15:55:02 CST 2015

Putting things at an absolute address requires putting things into 
segments that are handle by the linker or loader (depending on what era 
you are working in).

the linker may place the output of your assembler into different 
segments.  They may be set up to be relocatable at run time (most OSs 
insist on this feature).

Once you are dealing with either a debugger or loader, or OS you have to 
find out how to get that segment assigned to the space you desire in the 
absolute addressing space.

Usually the assembler will have directives to direct things to I/O or 
such depending on the architecture.

I'd use this info to see if you have any luck figuring out what you need 
to do.

you didn't mention whether this is a cross assembly tool, or if you have 
a working Z8000 OS with the tool.

Others may infer that by knowing more about the things you refer to.  
however working Z8000 systems running an OS are a bit rare these days.


On 11/13/2015 12:06 PM, Oliver Lehmann wrote:
> Hi,
> I found out so far, that %3e00.... means, that the data is put on
> segment 62 (0x3e). Regarding to the Z8000 ASM handbook, segmented
> adresses are notated as <<segment>>offset, so in my case
> <<62>>%F600 - but of course it does not work and the assembler
> yields and error :(
> Oliver Lehmann <lehmann at ans-netz.de> wrote:
>> Hi,
>> is someone on the list able to write Z8000 PLZ/ASM code? I have an
>> the following source:
>>   u module
>>   $segmented
>>   $abs %3E00F600
>>     global
>>   _u array [%572 byte]
>>   end u
>> The problem is, that it is vital that _u has to be located absolute
>> on the virtual memory address 0x3E00F600. The problem is now, that
>> the while the object is compiled, _u is available on 0x0100f600 and
>> I have no clue why.....

More information about the cctech mailing list