hth313 / Calypsi-tool-chains

Overview of the Calypsi tool chain and open source support packages
16 stars 0 forks source link

support for the o65 output format #38

Open ProxyPlayerHD opened 2 months ago

ProxyPlayerHD commented 2 months ago

the o65 file format is basically a miniature version of ELF. it supports 2 segments (text and data) and full relocation. it was originally created to allow 6502 based OSes to load programs without having to compile/assemble them for any specific memory region, as they can easily be relocated at runtime. (unlike CP/M for the 8080 for example) that's also why they didn't just use ELF, because ELF is a lot more difficult to parse for an 8-bit system. later it also started getting used for other CPUs like the 65816, Z80, 8080, 80286, 6800 and compatibles, etc. it could also be used for the 68000.

so yea that's why i would like to see it being supported by the linker as an output format. it's actively being used (also meaning that then Calypsi C can be used to write applications for OSes like GeckOS, LUNIX, FUZIX, etc), and while it's more complex than raw binary or PGZ, it allows for full relocation without being as complex as ELF. so it's just a nice middle ground.

hth313 commented 2 months ago

I added a ticket about it, but the list is rather long at this point.

I have done a couple of similar output format, for AmigaOS and TOS, but they appear to have gained any real use. Some Apple IIgs people expressed interest in having executable file format support, but when I mentioned that they would need to provide some active board support project from their community for me to consider it, the interest seemed to vanish.

I suspect the OSes you mentioned also would need board support to be included, so I wonder what the plan is with that?

ProxyPlayerHD commented 2 months ago

not entirely sure about board support. the OSes are mainly for either custom made SBCs or existing retro systems. so the potential amount of board is basically infinite. (unlike something like PGZ for the F256 for example, which is like 1 format for 1 board). and o65 itself is very OS-independent (similar to ELF) which is why i think it would make for a nice addition regardless of actual OS support....