FDOS Posted September 12, 2019 Author Share Posted September 12, 2019 13 hours ago, HOME AUTOMATION said: O.K., I made CALL LINK("WRITE",x$) and CALL LINK("READ",x$). They can write and read a 15 character string at >6FF8 respectively. My tests using these, indicated pages 1,2 and 3 work! Nothing more. I wonder, is there a simple way to clear all banks? FDOS2.dsk 180 kB · 6 downloads I started this reply yesterday, but one of my grandsons came and told me I had to take him immediately to his football practice at the high school. When I came back my in-process reply was gone. How about BANK 0? I'm still limited to BANKs 1 & 3, which always work, and easy to recover by re-inserting supersp2 over the one I just broke by selecting BANK 2, and trying to load a different TI Basic program. Anyway, BCART auto erases selected BANK before saving. I wonder if "auto erase" upsets the apple cart, so that the actual program is not "saved"? Another way to erase/clear a selected BANK is by using CART-CLEAR in the SUPERCART.dsk, which is also available on WHT. Michael Zapf gets back tomorrow, but might not hear from him until Sunday night. Bill Quote Link to comment Share on other sites More sharing options...
+mizapf Posted September 13, 2019 Share Posted September 13, 2019 Guys, I'm back from Madeira, but allow me some time to catch up with everything that happened during the last week. 1 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted September 13, 2019 Share Posted September 13, 2019 On 9/11/2019 at 9:37 AM, HOME AUTOMATION said: The images I found on WHTECH will not load on MAME for me. You cannot mount a "*.bin" file in MAME as a cartridge. Either you select a RPK file in the File Manager, or you can go via the Software List and locate "Super Space II". In the command line, you either use "-cart supersp2" or "-cart superspace2_or_whatever_you_named_it.rpk" Quote Link to comment Share on other sites More sharing options...
FDOS Posted September 13, 2019 Author Share Posted September 13, 2019 2 hours ago, mizapf said: Guys, I'm back from Madeira, but allow me some time to catch up with everything that happened during the last week. Glad to see you back Michael. Even though I've been spending most of my hobby time dealing with the BANK selection issue with Super Space II, I did manage to install the HSGPL DSR update. Both cited issues have been resolved (although I haven't thoroughly tested every possibility). However, Harald did not "fix" the catalog issue in the expected way, it does work in a "tricky" way. I'll explain later in an email. Bill Quote Link to comment Share on other sites More sharing options...
+mizapf Posted September 13, 2019 Share Posted September 13, 2019 As far as I can see, this routine has an error, and I commented on it in the MAME source code (cartridges.cpp:832). DEF BANK REF NUMREF BANK CLR R0 LI R1,1 BLWP @NUMREF MOVB @>834B,R0 SWPB R0 BANKSW LI R12,>0800 LI R1,2 SLA R0,1 SLA R1,0 LDCR R1,0 SRL R0,1 RT END The problem arises when selecting bank 0. When we assume that the bank number is in R0, and R0==0, then SLA R1,0 will left-shift R1 by 16 positions, that means, will clear it. You should add a JEQ $+4 between both SLA instructions. I don't know where I got my information from, but I seem to remember I read about it somewhere. On the other hand, I'd certainly like to adapt the behavior of the emulation to the real behavior. From what I can see here, when you select bank 0 in the above way (without the JEQ), this will yield a sequence of 0-writes to CRU, and as only 1-writes switch the banks, nothing happens. The previous bank will still be active. Quote Link to comment Share on other sites More sharing options...
FDOS Posted September 13, 2019 Author Share Posted September 13, 2019 41 minutes ago, mizapf said: As far as I can see, this routine has an error, and I commented on it in the MAME source code (cartridges.cpp:832). DEF BANK REF NUMREF BANK CLR R0 LI R1,1 BLWP @NUMREF MOVB @>834B,R0 SWPB R0 BANKSW LI R12,>0800 LI R1,2 SLA R0,1 SLA R1,0 LDCR R1,0 SRL R0,1 RT END The problem arises when selecting bank 0. When we assume that the bank number is in R0, and R0==0, then SLA R1,0 will left-shift R1 by 16 positions, that means, will clear it. You should add a JEQ $+4 between both SLA instructions. I don't know where I got my information from, but I seem to remember I read about it somewhere. On the other hand, I'd certainly like to adapt the behavior of the emulation to the real behavior. From what I can see here, when you select bank 0 in the above way (without the JEQ), this will yield a sequence of 0-writes to CRU, and as only 1-writes switch the banks, nothing happens. The previous bank will still be active. Hi Michael, HOME AUTOMATION is doing the BANK selection coding using 32bit MAME, so I will wait on him. Will there be a problem with 32/64bit MAME BANK selection operation? Bill Quote Link to comment Share on other sites More sharing options...
+mizapf Posted September 13, 2019 Share Posted September 13, 2019 No, 32bit vs. 64bit is no reason for trouble, as long as the MAME version is the same (or not too far apart). Quote Link to comment Share on other sites More sharing options...
+mizapf Posted September 13, 2019 Share Posted September 13, 2019 Do we have a schematic for SuperSpace II cartridges? This would ensure that the emulated and the real behavior match. Quote Link to comment Share on other sites More sharing options...
FDOS Posted September 13, 2019 Author Share Posted September 13, 2019 (edited) 3 hours ago, mizapf said: Do we have a schematic for SuperSpace II cartridges? This would ensure that the emulated and the real behavior match. I know this isn't the same as the commercial version, as it uses physical switching, but I haven't found the location of the actual DataBiotics, Inc version, yet. I know I've seen it at some time or another. I will keep looking. Bill supercart_4bank[1].html Edited September 13, 2019 by FDOS incorrect wording Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 13, 2019 Share Posted September 13, 2019 11 hours ago, mizapf said: Guys, I'm back from Madeira, Hi mizapf, glad you're back, how are the Portuguese doin'? So, I tried this... DEF BANK REF NUMREF BANK CLR R0 LI R1,1 BLWP @NUMREF MOVB @>834B,R0 SWPB R0 BANKSW LI R12,>0800 LI R1,2 SLA R0,1 JEQ $+4 SLA R1,0 LDCR R1,0 SRL R0,1 RT END my tests indicate that now, instead of selecting bank 0 resulting in no change, now selecting bank 0 ends up on bank 1! Quote Link to comment Share on other sites More sharing options...
+mizapf Posted September 14, 2019 Share Posted September 14, 2019 How is your test implemented? Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 14, 2019 Share Posted September 14, 2019 On 9/11/2019 at 9:22 PM, HOME AUTOMATION said: O.K., I made CALL LINK("WRITE",x$) and CALL LINK("READ",x$). They can write and read a 15 character string at >6FF8 respectively. My tests using these, indicated pages 1,2 and 3 work! Nothing more. I wonder, is there a simple way to clear all banks? FDOS2.dsk 180 kB · 8 downloads I used the above... I didn't have to write, because the strings I wrote yesterday persisted, I just switched banks with the call link"bank", then I read the string back... selecting bank zero gave me back the string I had written to bank 1 with CALL LINK"READ" "qwertyuiopasdfg". Quote Link to comment Share on other sites More sharing options...
sparkdrummer Posted September 14, 2019 Share Posted September 14, 2019 Do any of these help? SUPERSEDIT.DSK SUPERSPACE.DSK SUPERSPAII.DSK Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 14, 2019 Share Posted September 14, 2019 Ok, Ran it through classic99 debugger... mizapf's correction was needed and did work! apparently I goofed the testing... I think I had managed to somehow write to bank 0 previously and I had written a similar pattern "qwertyuioplkjhg" but not noticed. so... here it is: SS2BNKSW.dsk 1 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted September 14, 2019 Share Posted September 14, 2019 One thing I'd like to know is what happens with the real device when - all bits written to the CRU selector are 0 (what happened with the previous implementation), i.e. no selection has been made - several bits are set Probably we can conceive a suitable test to be run by some owner of a SuperSpace II cartridge. Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 14, 2019 Share Posted September 14, 2019 This was helpful... #20 Quote Link to comment Share on other sites More sharing options...
FDOS Posted September 14, 2019 Author Share Posted September 14, 2019 4 hours ago, HOME AUTOMATION said: Ok, Ran it through classic99 debugger... mizapf's correction was needed and did work! apparently I goofed the testing... I think I had managed to somehow write to bank 0 previously and I had written a similar pattern "qwertyuioplkjhg" but not noticed. so... here it is: SS2BNKSW.dsk 180 kB · 2 downloads I have a little bit of good news to report; I can effectively save and access BCART Basic programs in BANKs 0, 1 & 3 now using SS2BNKSW, but saving to BANK 2 trashes the selection screen. However, it's not locked up, as I can still access 1) For TI BASIC and 2) For Editor Assembler. Therefore, I have three 8K RAM banks, that I can use for my purposes. Thanks guys, but let's find out why BANK 2 gets trashed. OK? Bill Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 14, 2019 Share Posted September 14, 2019 I guess I could try a more complete memory test... ...could it be that you're data is being interpreted as a cartridge header by TI's OS? Quote Link to comment Share on other sites More sharing options...
FDOS Posted September 15, 2019 Author Share Posted September 15, 2019 (edited) 48 minutes ago, HOME AUTOMATION said: I guess I could try a more complete memory test... ...could it be that you're data is being interpreted as a cartridge header by TI's OS? It wouldn't matter, as it doesn't make any difference which Basic program I save at Bank 2. I can also shuffle the Basic programs and save them in different BANKs. BANK 2 is the only BANK that gets trashed or occasionally I get the INSERT CARTRIDGE screen because BCART erases before it saves the Basic program, and BANKs 0,1 & 3 are always successfully saved and accessible when rotating BANK selections. Bill Edited September 15, 2019 by FDOS typo Quote Link to comment Share on other sites More sharing options...
+mizapf Posted September 15, 2019 Share Posted September 15, 2019 So do we have users of the real SuperSpace 2? If I understood you correctly, Bill, your cartridge has a hardware switch. I'd need someone with a real one to compare with the emulation. Quote Link to comment Share on other sites More sharing options...
FDOS Posted September 16, 2019 Author Share Posted September 16, 2019 On 9/15/2019 at 4:32 AM, mizapf said: So do we have users of the real SuperSpace 2? If I understood you correctly, Bill, your cartridge has a hardware switch. I'd need someone with a real one to compare with the emulation. Yes, I understand that. Unfortunately, I don't have one nor do I know anyone that has one. Wait, not true, as I'm sure that Brad Snyder, the author of BCART has two; but the only email address I have for him is @Delphi.com, so a bit doubtful as current. I'll give it a shot, and see if he responds, as we only communicated twice BITD. Bill Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 16, 2019 Share Posted September 16, 2019 Testing didn't reveal much... everything seems to work as expected. I changed the "WRITE" program so it would fill >6000 thru >7FFF with the value from R3. I filled Page 2 with twos, then I switched the GROM from E/A to MINIMEM and I manually inspected groups of addresses, finding only twos. I than changed the value written, from twos to zeros (>A003,>A004=0) and filled Page 0 with zeros (EA000,(Execute >A000)), I did the same for Pages 1 and 3. I than inspected the "superspace.nv" file with a hex editor, finding all to be correct, including the single >0F left at >6FF8 on Page 2 by the CALL LINK routine. Maybe you should check/replace your NV file, try alternate "super_space_2.rpk" or upgrade to 213b. Here is what I used... db_super_space_2.rpk db_supermini_space_2.rpk call link src.txt superspace.nv Note that disk loading doesn't function on the "db_supermini_space_2.rpk" because MINIMEM wants it's ROM at >6000. Tape loading (L) should work though. Quote Link to comment Share on other sites More sharing options...
FDOS Posted September 16, 2019 Author Share Posted September 16, 2019 19 minutes ago, HOME AUTOMATION said: Testing didn't reveal much... everything seems to work as expected. I changed the "WRITE" program so it would fill >6000 thru >7FFF with the value from R3. I filled Page 2 with twos, then I switched the GROM from E/A to MINIMEM and I manually inspected groups of addresses, finding only twos. I than changed the value written, from twos to zeros (>A003,>A004=0) and filled Page 0 with zeros (EA000,(Execute >A000)), I did the same for Pages 1 and 3. I than inspected the "superspace.nv" file with a hex editor, finding all to be correct, including the single >0F left at >6FF8 on Page 2 by the CALL LINK routine. Maybe you should check/replace your NV file, try alternate "super_space_2.rpk" or upgrade to 213b. Here is what I used... db_super_space_2.rpk 6.65 kB · 1 download db_supermini_space_2.rpk 6.1 kB · 1 download call link src.txt 338 B · 1 download superspace.nv 32 kB · 1 download Note that disk loading doesn't function on the "db_supermini_space_2.rpk" because MINIMEM wants it's ROM at >6000. Tape loading (L) should work though. This is a lot for me to consider, as the MAME v2.10b, that I'm currently using was provided by Michael Zapf, so not the one I originally downloaded myself. It probably just included some specific batch files for me to better understand the differences between TI-99/4A, 9640 Geneve and SNUG TI-99/4P types. So it will be awhile before I make this decision. I surfe sdo appreciate your efforts to resolve these supersp2 BANK selection issues. Bill 1 Quote Link to comment Share on other sites More sharing options...
FDOS Posted September 16, 2019 Author Share Posted September 16, 2019 On 9/15/2019 at 4:32 AM, mizapf said: So do we have users of the real SuperSpace 2? If I understood you correctly, Bill, your cartridge has a hardware switch. I'd need someone with a real one to compare with the emulation. As I expected, I got a User unknown reply for Brad Snyder. So, no luck. Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 17, 2019 Share Posted September 17, 2019 8 hours ago, HOME AUTOMATION said: I than changed the value written, from twos to zeros (>A003,>A004=0) and filled Page 0 with zeros (EA000,(Execute >A000)), I did the same for Pages 1 and 3. I meant to mention how to switch pages from EASYBUG. To activate a page write a one to the corresponding CRU address. Using the C command. >0802 - Page 0 >0806 - Page 1 >080A - Page 2 >080E - Page 3 ex. C0802(enter) C0802 =00 ->1(enter) Will switch to Page 0. 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.