Re: Who uses o65 for what?

From: Gabor Lenart (
Date: 2005-03-30 16:43:44

On Wed, Mar 30, 2005 at 10:10:04AM +0200, fachat wrote:
> I would like to make a small survey about who is using the o65 file format 
> for what purpose. Before I am going to make some incompatible changes, I
> should know what features are actually used and must thus be considered
> "compatible". 

First of all, I strongly beleive that .o65 format should remain as
simple as possible! I mean, let's say create new format specification
with advanced features, like multiple segment support, and much more ...
Now I think you SHOULD introduce something called 'profiles', which
is an implementation subset of the WHOLE feature set. I mean, we should
create a 'minimal profile' which can be implemented as simple as the current
format or even more simplier (if possible!). Of course we have got 
'multisegment profile' for example. Or even stripped down profiles more
stupid that the v1.2 format for simplier tasks. Since a given software
like an OS for Commodore will use its own profiled format, it's not a problem.
For development almost everyone uses bigger systems now, like ca65 running
on some UNIX system or such. So there is _NO_ problem to implement a more
complex .o65 handling scheme in development tools (many different profiles),
because most development tools running on much decent hw than the target
system :) The program itself running eg on a Commodore will use its own
profile only (I guess) so that program needs to implement only those features
in the loader, so there is no more complexity here. I think it would be
the best possible solution since we have a format which is not too complex
for a GIVEN task, however it's complex enough when we speaking about 
DEVELOPMENT and not actually the USAGE of an existing object. Sorry my
English is quite poor I don't know you got the idea I've tried to describe
with my English knowledge :)
> If you are using o65, could you please answer these short questions?


> 1) What are you using o65 for?
>    E.g.: main executable format for system xyz, object file format for linking, ...

Executable format for my own experiments, object format for the kernel loader
which links needed kernel objects for a given system together and then
using it as minimalistic OS kernel.
> 2) For what CPUs are you using the format?

6502:  cross-platform software developments for systems use 6502 or
       compatible CPU: the software itself is loaded by the arch.dependent
       loader which loads .o65 format executables, and also provides a
       stupid HAL (hardware abstraction layer) to allow to use architecture
       independent programs.

Z80:   developments for Enterpirse-128: it's a very nice computer with
       4MByte address space: Z80 64K address space is divided into 4 pages
       you can map any of the 256 segments of 4Mbyte Enterprise address
       space to any of the 4 Z80 pages. Optimized for low paging
       changing freq. since it has got price (doing the IO to the Dave
       "MMU" register). Multiple segment support would be nice in the
       future because we can create programs even in 1MByte size when
       using multiple segments.

80286: prototype OS for Intel 286 16 bit protected mode.
       since in the point view of addressable space withing eg code or data
       is limited to maxmimum of 64K, .o65 can be natural soluition even
       for this system. However multiple segment support would be nice
       because you can do this with chaning CS register

> 3) What special features are you using?
>    E.g.: late binding, exported globals, simple file format, 

No special features at the moment :( However I've got plans I've describes
before, which requires additional features.
> 4) What special features are you not using?

Read the last point :)

- Gábor

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.