45 minutes ago, rje said:
Yah, there are two separate (but equal!) feature requests for BASIC commands to access bank memory better than POKE and PEEK. In effect, proposals to do memory copies. Issues to be decided include:
(1) how to deal with type data, e.g. can you move memory by type?
(2) what are the most useful destinations for banked data? Apparently, memcpy() is useful but not enough.
(3) how to avoid excessive POKE and PEEK altogether.
(4) should you be able to PRINT directly from banked memory, avoiding an intermediate variable?
Yeah, another consequence of having arrived a bit early to the party. There's still a lot to be designed and built, and maybe, in my own amateur-hour-millennial way - can help through suffering - that's fine. XD
Not the place for this, BUT since it's relevant to the immediate problem:
1 - This would be ideal. we're dealing with 512K, so we have plenty of room to create intermediate structures for managing segments of addresses and thus data. The Low Ram presumably already does this (The C64 certainly does) - so why not allow the High Ram to do the same, if the programmer wishes it? It's the most novel resource of the machine. In essence, asking a bank to act in a similar manner to the Low Ram isn't a stretch in terms of design.
2 - Probably solved by some method related to 1.
4 - Yes. If you can solve the type enforcement, you automatically have the path towards running commands directly on higher ram.
I'd throw this on the issue posts, but I worry that I might be a bit out of my own depth and the comments unwelcome.
As for RetroTrek itself, I'm kinda halted except for small things. I'm currently implementing things in an untested state, namely combat mechanic functions like checking if the shields are down, damaging a random system, etc. The bottom and top bars are much better now; they and the SYSTEMS panel now have lots of useful information. The top bar now shows the current RAM free.
It seems like, as soon as this is over, that things like generating the sector map will be easier, but expensive and slow. I will want something to display "PROCESSING..." while that intense stuff goes on. I am wondering if I can make a standard for subroutine inputs and outputs such that it uses the fewest variables but takes the fewest lines/chars to document in-code.