FloppusMaximus wrote:
The one thing I've been wishing for years that 83+ shells had done in the first place:
start programs at userMem+2, not userMem-2!
Do Venus-style relocation (forget about trying to keep compatibility with crazy programs like Ion), and make it safe for programs to use GetKey, and APD, and look themselves up in the VAT, and resize themselves, and use any other system routines they like.
The only problem with this is if our headers are quite large. Although there's nothing stopping the header format from putting the header at the end of the program, with some pointer at the beginning.
Quote:
Relatedly, it would also be nice for the shell to provide an easy way for programs to register their own putaway handlers (MirageOS does this, sort of, but it should be properly integrated with the OS's putaway system so that 2nd+Off and silent link DTRT.)
In my experience, shells are more likely to disable APD, turning off via the OS interrupt, and silent linking than try to handle those events. Do you see a particular advantage of letting the OS retain semi-control?
Quote:
Also, provide a way for programs to declare explicitly, at run-time, whether they should be written back to archive upon exiting.
That seems like a reasonable feature for the new header.
LuxenD wrote:
whats the difference with running programs at userMem+2 instead of userMem-2?
It means the entire contents of the program are in one place, instead of 4 bytes high in memory and the rest at $9D95.
Quote:
but i agree with the last one, cause some arcade games arent meant for writeback. they expect that the program remain unchanged, and it may speed up the exit time from previous DCS7.
More specifically, it applies to programs that perform SMC (have self-modifying code).