Harry Potter Posted September 27, 2021 Author Share Posted September 27, 2021 That is what I'm doing. Parts of the file are to be loaded into sections of low memory as per my Cubby-hole optimization technique. Quote Link to comment Share on other sites More sharing options...
drac030 Posted September 27, 2021 Share Posted September 27, 2021 12 minutes ago, Harry Potter said: Parts of the file are to be loaded into sections of low memory as per my Cubby-hole optimization technique. I have an optimization technique called theCubby-Hole technique. This puts code and data in locations used by the BASIC and OS but not needed by the program. This probably is the reason for the bizzarre behaviour you are observing: you are overwriting vital system areas then are wondering why the system does not work. Just post a binary file you are trying to run, it will probably get clear quickly, why it does not work. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted September 27, 2021 Author Share Posted September 27, 2021 I attached some relevant code files and the binary. test.c test.atr atarixl_memx.cfg readauxfile.c teststrings.c Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted September 27, 2021 Share Posted September 27, 2021 (edited) If the AUTORUN.SYS is extracted and run in Altirra you see this: EXE: Loading program 0006-0196 to 2E00-2F90 EXE: Loading program 019B-019C to 02E2-02E3 EXE: Jumping to 2EA3 EXE: Loading program 01A1-03FB to 2508-2762 EXE: Loading program 0400-0401 to 02E2-02E3 EXE: Jumping to 2508 EXE: Loading program 0406-0686 to 0480-0700 WARNING: Invalid Atari executable: bad start/end range. EXE: Loading program 068B-0AB7 to 0349-1ED0 EXE: Launching at 2E00 so maybe correct that first [Edit] along with the entry point at $2E00 being just a string [Edit2] feels like there's no MAIN block which would be super weird, so please generate and attach a MAP file for us Edited September 27, 2021 by Wrathchild Quote Link to comment Share on other sites More sharing options...
drac030 Posted September 27, 2021 Share Posted September 27, 2021 (edited) 30 minutes ago, Wrathchild said: Loading program ... to 0349-1ED0 No wonder. Everything from $0349 onwards deemed "locations used by BASIC and OS but not needed by program". Including the IOCB #1 MyDOS binary loader uses, along with the MyDOS binary loader itself and the entire MyDOS. Edited September 27, 2021 by drac030 Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted September 27, 2021 Author Share Posted September 27, 2021 drac030: I thank you for your input. I will have to experiment to see which sections are really usable. Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted September 27, 2021 Share Posted September 27, 2021 You're not using it by design but by accident Quote Link to comment Share on other sites More sharing options...
drac030 Posted September 27, 2021 Share Posted September 27, 2021 Just now, Harry Potter said: I will have to experiment to see which sections are really usable. Just stick to $80-$FF and $0400-$06FF, if you really really need. Otherwise just use the regular and extended memory. By loading stuff into the OS locations you are only praying for problems. Experimenting may lead to obscure problems which will get difficult to debug in the future. Also, the golden rule: write a working program first, optimize later. 4 Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted September 27, 2021 Author Share Posted September 27, 2021 I don't really need this memory. I just think using this memory will save main memory. BTW, I like optimizing and am looking for ways to optimize MadLibAtari. Quote Link to comment Share on other sites More sharing options...
Irgendwer Posted September 27, 2021 Share Posted September 27, 2021 (edited) 39 minutes ago, Harry Potter said: I don't really need this memory. I just think using this memory will save main memory. BTW, I like optimizing and am looking for ways to optimize MadLibAtari. Then please go on with your experiments and have the fun while tracking down problems. But I wouldn't expect that anybody else likes to waste time on that. Your compression improvements/experiments are also "interesting": You publish new compression "records" and find later bugs which prevent the better numbers. Could it be, that you don't develop a decompression program in parallel for verification (which seems to be essential for me)? Edited September 27, 2021 by Irgendwer 1 Quote Link to comment Share on other sites More sharing options...
xxl Posted September 27, 2021 Share Posted September 27, 2021 1 hour ago, Harry Potter said: I just think using this memory will save main memory. A second-rate male who lacks self-confidence may try to meet the unrealistic standards of the CIO interface, but a true and seasoned coder does not allow himself such chicanery and uses resources as he pleases. If you want to use any range of addresses - including those under ROM then you should be interested in xBIOS as an alternative. 1 2 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted September 27, 2021 Share Posted September 27, 2021 (edited) On the other hand, those who don't need to employ contrarianism to compensate for a lack of male vigour can code for the CIO and get read/write access to GB of storage using software which will happily run with any DOS, hard disks, etc. Edited September 27, 2021 by flashjazzcat 3 1 Quote Link to comment Share on other sites More sharing options...
Irgendwer Posted September 27, 2021 Share Posted September 27, 2021 1 hour ago, flashjazzcat said: On the other hand, those who don't need to employ contrarianism to compensate for a lack of male vigour can code for the CIO and get read/write access to GB of storage using software which will happily run with any DOS, hard disks, etc. Sissy! ? 3 Quote Link to comment Share on other sites More sharing options...
xxl Posted September 28, 2021 Share Posted September 28, 2021 6 hours ago, flashjazzcat said: or the CIO and get read/write access to GB of storage using software which will happily run with any DOS, this functionality has existed for 14 years and does not require DOS pathology to work http://sio2sd.gucio.pl/wiki/SIOCommands_en Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted September 28, 2021 Author Share Posted September 28, 2021 I disabled the extra memory, and now the program works a little better. I really want the extra memory, though. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted September 28, 2021 Author Share Posted September 28, 2021 It stopped working while loading aux memory. I included the possibly-relevant files. test.c readauxfile.c atarixl_memx.cfg Quote Link to comment Share on other sites More sharing options...
sanny Posted September 28, 2021 Share Posted September 28, 2021 (edited) Harry, what of On 9/27/2021 at 2:28 PM, sanny said: And, if you would post a complete project with source code and how you are building it, please might be better able to help. Giving always just pieces of information leaves to much of guesswork to the others. didn't you understand? Edited September 28, 2021 by sanny Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted September 28, 2021 Author Share Posted September 28, 2021 Here's the test code. bank1.zip Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted September 28, 2021 Author Share Posted September 28, 2021 home.bat is the batch file that compiles the program, and atarixl_memx.cfg is the memory config file. BTW, the batch file was written on a Win10/64 laptop. Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted September 28, 2021 Share Posted September 28, 2021 The resulting binary is still Fubar, looks like MEMSAVM is your own invention? What purpose it is serving? Basically there is a header for it but this is using the actual memory 'size', however there is no content (naturally) and so that is not the area's content's size. So, either the header isn't needed and the area doesn't go to the output file, or you add a 'fill' to the MEMSAVM_ area. You removing the AUX related stuff is just a red-herring. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted September 28, 2021 Author Share Posted September 28, 2021 MEMSAVM is my own invention. It is a supposedly unused section of memory, and I'm using it as extra memory. BTW, the cc65 configs mention "Hidden" memory. How do I use it? Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted September 28, 2021 Share Posted September 28, 2021 Why do you think you need to? This would refer to 'memory under the OS' which, in a similar way to the C64, a register (PORTB) is used to toggle the OS in/out but of course you have caveats such as needing to set replacement $FFFx vectors for potential interrupt handling. So best avoided and can only be used on XL/XE targets. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted September 28, 2021 Author Share Posted September 28, 2021 I don't need this memory. I just want it to be available so I can build larger programs. Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted September 28, 2021 Share Posted September 28, 2021 OK, worry about when you get to that point, for now, just get your example working Quote Link to comment Share on other sites More sharing options...
drac030 Posted September 28, 2021 Share Posted September 28, 2021 (edited) I don't need this memory. I just want it to be available so I can build larger programs. What about building something smaller first, but actually working? Edited September 28, 2021 by drac030 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.