@JAC! - not only you
I knew you'd... Honestly this whole thing is not really a technical issue.
The problem with Action is that there are three banks which share address space, so the job has to be done separately for each part, which leads to special care about code flow from one bank to another. I think there's a central procedure in the permanent bank (b000-bfff) and three of them are switched by this one - this is simple approach.]
The code is very well structured along the banks. Only bank 0 has jumps to the other banks (77 of them).
... sta MMU.BANK1.D500
Reconstructing and struturing the full source with reasonable structuring and comment would take about 2 weeks.
The output would be probably as good as what is posted above (esp. if there are no comments anyway :-).
The editor is one bank, the runtime is in another bank and a 1-pass compiler is not really a complex thing.
The idea that ACTION! itself was (possibly) created by decompiling an SPI compiler is striking (and really funny).
For me the point really is how we can put the on legally correct ground.
The investment is worth nothing, if you cannot give "Action 3.6+" to the community.
(After putting "Action 3.6" into the museum of course).
Maybe by hosting it as an abondonware project on US ground or similar.
If have plenty of ideas what could be improved easily (original or reconstructued source).
- Single key press to Compiler & Run
- built-in HELP key support showing the keyboard layout
- Less annyoing signal (beeeeep, esp. a different signal for ERROR vs. OK :-)
- Use extended RAM for source & runtime
- Make it run on ATARIMAX compatible carts
- Remove useless "A JUMP B; B JMP C; ..." in the output
Edited by JAC!, Wed Feb 26, 2014 8:11 AM.