gozar #1 Posted January 3, 2014 Is there a way to save the config in Action!? Quote Share this post Link to post Share on other sites
+JAC! #2 Posted January 4, 2014 I don't think so. I typically patch the ROM file to achieve that. Quote Share this post Link to post Share on other sites
gozar #3 Posted January 4, 2014 That's what I was thinking, at first. Then I noticed that I can change memory locations when I compile with the SET directive. Any idea where the options are stored in memory? I just want to set the left margin and turn off the screen. Quote Share this post Link to post Share on other sites
+JAC! #4 Posted January 6, 2014 (edited) Some of the options are stored in $04xx. The margin is simply the standard OS zero page location (82 = $52). That's also why it is reset to 2 when pressing "RESET". Edited January 6, 2014 by JAC! Quote Share this post Link to post Share on other sites
gozar #5 Posted January 6, 2014 Ok, here's my test. I created a Action! file on D1: called simply S: proc main() BYTE bell=$4E0 BYTE screen=$4F1 BYTE lmargin=$52 lmargin=0 bell=$60 ;off-$60,on-$4C screen=$00 ;off-$00,on-$22 return I load Action!, hit <CONTROL><SHIFT>M, then type R"D1:S" It works, configures Action! how I like it. Two more questions: 1. Any idea how to set it to INSERT mode? I couldn't find anything that changed in the $400 block. 2. Does anyone know how to set the default directory in MyDOS from Action!? The docs say to use CIO function code 41. I have no idea how to do that... :-) 1 Quote Share this post Link to post Share on other sites
a8isa1 #6 Posted January 7, 2014 (edited) Ok, here's my test. I created a Action! file on D1: called simply S: proc main() BYTE bell=$4E0 BYTE screen=$4F1 BYTE lmargin=$52 lmargin=0 bell=$60 ;off-$60,on-$4C screen=$00 ;off-$00,on-$22 return I load Action!, hit <CONTROL><SHIFT>M, then type R"D1:S" It works, configures Action! how I like it. Two more questions: 1. Any idea how to set it to INSERT mode? I couldn't find anything that changed in the $400 block. 2. Does anyone know how to set the default directory in MyDOS from Action!? The docs say to use CIO function code 41. I have no idea how to do that... :-) Well done! I always wondered how to do that. This works for setting current directory. Proc Main() xio(1,0,41,0,0,"D1:<folder>") ; where <folder> is the name of your subdirectory return The first number ('1' above) has to be a currently unused channel, I believe. For SpartaDOS the command number is 42 instead of 41 Edited January 7, 2014 by a8isa1 2 Quote Share this post Link to post Share on other sites
gozar #7 Posted January 7, 2014 xio command works great! Current code (turned off key click too) proc main() BYTE bell=$4E0 BYTE screen=$4F1 BYTE lmargin=$52 BYTE noclik=$2DB lmargin=0 bell=$60 ;off-$60,on-$4C screen=$00 ;off-$00,on-$22 noclik=1 XIO(1,0,41,0,0,"D1:ACTION") return I also put it in the default directory (D1: for my MyIDE+Flash, D8: when in the Ramdisk) so now I start Action!, go to the monitor and type R"S". The last piece of the puzzle for me is to set it to insert mode... If I can find where that is stored. 1 Quote Share this post Link to post Share on other sites
+JAC! #8 Posted January 7, 2014 Hi, had a short look: INSERT/REPLACE is store in $9d ($00 vs. $ff) 1 Quote Share this post Link to post Share on other sites
gozar #9 Posted January 7, 2014 PERFECT! proc main() BYTE bell=$4E0 BYTE screen=$4F1 BYTE lmargin=$52 BYTE noclik=$2DB BYTE insert=$9D lmargin=0 bell=$60 ;off-$60,on-$4C screen=$00 ;off-$00,on-$22 noclik=1 insert=$FF ;off-$00,on-$FF XIO(2,0,41,0,0,"D1:SRC") return How do you find these locations? I don't even know where to start! And my next goal (after I finish my game) is to figure out some way to make the bottom line in the editor useful. (It would be nice to have a indicator on whether I'm in Insert or Replace mode, for example.) Quote Share this post Link to post Share on other sites
flashjazzcat #10 Posted January 7, 2014 How do you find these locations? I don't even know where to start! One approach is to home-in on an area of RAM (in this case $04xx) and using an emulator, watch for any bytes which change when (say) insert mode is toggled. Quote Share this post Link to post Share on other sites
+JAC! #11 Posted January 8, 2014 Yes, that's exactly what I do in these cases. "WRITE 0000 ffff C:\temp\first.bin" in Atari800Win before and after the change. Then I use VBinDiff. You have to igore some ZP locations , the stack and the screen, the rest is what is interesting. http://www.cjmweb.net/vbindiff/ 2 Quote Share this post Link to post Share on other sites