senior_falcon Posted December 8, 2017 Share Posted December 8, 2017 I would like to have an assembly program force Extended BASIC to start up without having to quit, press a key, and press 2 for XB. (In this application it is important to look for DSK1.LOAD.) Does anyone know how to do this? Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted December 8, 2017 Share Posted December 8, 2017 I would like to have an assembly program force Extended BASIC to start up without having to quit, press a key, and press 2 for XB. (In this application it is important to look for DSK1.LOAD.) Does anyone know how to do this? I don't really know, but you might be able to GPLLNK to the routine that picking XB from the startup menu executes. ...lee Quote Link to comment Share on other sites More sharing options...
RXB Posted December 9, 2017 Share Posted December 9, 2017 (edited) I would like to have an assembly program force Extended BASIC to start up without having to quit, press a key, and press 2 for XB. (In this application it is important to look for DSK1.LOAD.) Does anyone know how to do this? RXB is the only XB that allows you to bypass normal start up. With autostart of XB, but everyone claimed they hated this feature. RXB would autostart and did not show other carts was a problem, so I could have fixed this with a simple keypress. You can not have your cake and eat it too. I was forced to remove exactly what you request. If you change 2 bytes in any module it will autostart that cart. GROM >6000 AORG 0 DATA >AA0F * VALID GROM / VERSION DATA >0100 * (FUTURE EXPANSION) DATA >6372 * POWERUP -----------------CHANGE TO 6372 WILL AUTOSTART XB OR RXB DATA XBCART * PROGRAMS DATA >0000 * DSR DATA LINK1 * CALL DATA >0000 * INTERUPT DATA >0000 * BASIC CALL Edited December 9, 2017 by RXB Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted December 9, 2017 Author Share Posted December 9, 2017 I think you misunderstand my request. When an assembly language program ends you can go to the master title screen easily with BLWP @>0000. But I want to bypass the master title screen and go directly from assembly into XB startup. Don't want to change the module or use RXB. The magic bullet would be something like BLWP @STARTXB but I doubt it is quite that simple Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted December 9, 2017 Share Posted December 9, 2017 I would like to have an assembly program force Extended BASIC to start up without having to quit, press a key, and press 2 for XB. (In this application it is important to look for DSK1.LOAD.) Does anyone know how to do this? It's been a while but what I think you need to do is reset the grom read address to the XB cartridge startup address (0x6372 IIRC), set VDP for XB environment, ensure 0x8370 is pointing to the proper VDP address, clear the status register at 0x837c, and set GPLWS R13-R15 to the right addresses for a cartridge startup. GPLWS R13 is usually set to 9800 unless your XB cartridge is at a different base. Load your workspace pointer to GPLWS and branch into the interpreter at 0x006a. I -think- that gets you there, and lets XB find DSK1.LOAD. If you need to replace DSK1.LOAD, you could steal the interrupt-driven method from MENU or BOOT. Quote Link to comment Share on other sites More sharing options...
RXB Posted December 9, 2017 Share Posted December 9, 2017 (edited) I think you misunderstand my request. When an assembly language program ends you can go to the master title screen easily with BLWP @>0000. But I want to bypass the master title screen and go directly from assembly into XB startup. Don't want to change the module or use RXB. The magic bullet would be something like BLWP @STARTXB but I doubt it is quite that simple Do just like I said to XB or RXB and watch what happends after you do BLWP @>0000 It will instantly in XB or RXB go to DSK1.LOAD, but unlike XB you have the option in RXB to press a single key to change DSK#.LOAD to that key say like 9 and do DSK9.LOAD This does EXACTLY what you wanted. I even made a Video to show you it works exactly as I told you it would work: Ok I forgot to show using Classic99 OPTIONS to change GROM 3 (>6000) but everything else in video is accurate. Edited December 9, 2017 by RXB Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted December 9, 2017 Author Share Posted December 9, 2017 (edited) It's been a while but what I think you need to do is reset the grom read address to the XB cartridge startup address (0x6372 IIRC), set VDP for XB environment, ensure 0x8370 is pointing to the proper VDP address, clear the status register at 0x837c, and set GPLWS R13-R15 to the right addresses for a cartridge startup. GPLWS R13 is usually set to 9800 unless your XB cartridge is at a different base. Load your workspace pointer to GPLWS and branch into the interpreter at 0x006a. I -think- that gets you there, and lets XB find DSK1.LOAD. If you need to replace DSK1.LOAD, you could steal the interrupt-driven method from MENU or BOOT. I've been looking at the MG Explorer manual and Intern and that looks right to me. I will test it out tonight. What is this about the XB cartridge being at a different base? (edit) Did a quick test: LWPI >83E0, then write >6372 to the GRMWA at >9C02, then B @>006A and XB starts right up. I need to test whether other changes to the scratchpad are needed, but I think they won't be. Edited December 9, 2017 by senior_falcon Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted December 9, 2017 Share Posted December 9, 2017 I've been looking at the MG Explorer manual and Intern and that looks right to me. I will test it out tonight. What is this about the XB cartridge being at a different base? (edit) Did a quick test: LWPI >83E0, then write >6372 to the GRMWA at >9C02, then B @>006A and XB starts right up. I need to test whether other changes to the scratchpad are needed, but I think they won't be. GROM can reside in other bases when used with a device such as the HSGPL. I think Tony's (Gazoo) XB2.7 cartridge may start XB from base 9808. I only mention this because it can be a source of frustration. I don't recall any other gotchas besides the VDP environment and scratchpad. And of course, a hardcoded value like 6372 always runs the risk of being incompatible down the road, though it has worked well enough for me over the years. Quote Link to comment Share on other sites More sharing options...
RXB Posted December 10, 2017 Share Posted December 10, 2017 GROM can reside in other bases when used with a device such as the HSGPL. I think Tony's (Gazoo) XB2.7 cartridge may start XB from base 9808. I only mention this because it can be a source of frustration. I don't recall any other gotchas besides the VDP environment and scratchpad. And of course, a hardcoded value like 6372 always runs the risk of being incompatible down the road, though it has worked well enough for me over the years. True RXB has so many other device and module adaptations that this address is problematic for me over the years. Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted December 14, 2017 Share Posted December 14, 2017 This is interesting Senior Falcon. Are you designing a DOS by any chance to work with the FG99? Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted December 14, 2017 Author Share Posted December 14, 2017 Nope. A major rewrite of the compiler to make it way easier to use, especially for new users. All the file names are filled in for you and you just have to press enter a bunch of times to get the finished product. My question above is because I want the assembler to return to XB and not the title screen. This avoids a couple of keystrokes. 3 Quote Link to comment Share on other sites More sharing options...
RXB Posted December 14, 2017 Share Posted December 14, 2017 Using the SAMS would make it a piece of cake. 1. In assembly save to SAMS all memory including VDP 16K, Scratch Pad 256 bytes, Upper 24K = 40K+256 bytes + the program that does this. 2. After done restore all memory to original and increment XB program counter 1 line or to a specific line number. 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.