0 Members and 2 Guests are viewing this topic.
Great work ! but I have a question Do we need to compile for a shell or does it work in noshell and apps too ?
As far as optimizations, I found one byte for the all models case:
By the way, if you need absolute addressing in the $0000 to $3FFF range, I can add a new prefix to ignore the automatic replacements if that's convenient. I didn't think anyone would ever need to jump or call addresses there, but I guess for hacks like this that could be important.
BJump: ld hl,50h push hl ret
Hmmm so Portal Prelude has been using Fcdf()r this entire time without a hitch, but just recently to increase compatibility I switched to the slightly larger Fcdf(), and now I simply get a RAM clear upon starting the program. Ideas?
You need to make sure that Fcdf() is the first line, (or close) of your program. If this is true, you shouldn't have any problems. If you do, then I would assume something else is broken.
Code: [Select]BJump: ld hl,50h push hl ret
BJump: ld hl,50h jp (hl)
Oh, I changed the syntax on you. Now it's just Fcdf() at the start of the program. I should properly release this sometime...
It's still Fcdf(0) to close it, then?
No, you don't close it, it closes automatically. Just put Fcdf() at the start. Then, imagine that there is a bracket after it that encapsulates your entire program.
Also, I picked Fcdf( as my token, if you don't like it or have a better one, I'm all ears. (Fcdf(1) unlock, Fcdf(0) lock)