z00m128 / sjasmplus

Command-line cross-compiler of assembly language for Z80 CPU.
http://z00m128.github.io/sjasmplus/
BSD 3-Clause "New" or "Revised" License
383 stars 54 forks source link

support for ZX80/ZX81 ".o"/".p" file output #239

Open ped7g opened 2 months ago

ped7g commented 2 months ago

as mentioned in #232 the virtual device "NOSLOT64K" is good enough, but having support for .p files would be also nice.

file formats description: https://k1.spdns.de/Develop/Projects/zasm/Info/O80%20and%20P81%20Format.txt

Probably to be done first in macros as proof of concept (and maybe stay like it as I expect little of added value by integrating them into sjasmplus binary, the performance boost is not important for these small files, but the flexibility of adjusting macros over fixing sjasmplus binary may be better value, even with the inconvenience of having to include the macro definitions file.

TODO:

possible contributors to get this going: @maziac @stevexyz

stevexyz commented 2 months ago

I did a simple port of an "hello world" program found here https://sinclairzxworld.com/viewtopic.php?t=2267

Is surely not optimized but might be used for the "Hello World" purpose

Compiled with "./sjasmplus --outprefix=. --sld helloworld.asm --lst=helloworld.lst --raw=helloworld.p" and tested ok on zesarux

Let me add that for a "real program" experienced programmers would use - expecially for the 1k version - more "condensed" ways of loading and starting the assembler and depending on the type of program to be implemented

helloworldzx81.zip

maziac commented 2 months ago

I found 2 references:

They implement a very similar approach for p File creation for other assemblers.

maziac commented 2 months ago

Hi @ped7g, what is the status here? Are you going to implement something like a SAVEP command, do you need more info?

ped7g commented 2 months ago

Out of scope for 1.21.0, will take a look at some point after that. So I guess this is like months/year away with my current progress rate. But eventually this is likely to happen.