Allas Posted November 22, 2005 Share Posted November 22, 2005 A user start up the computer with basic (no OPTION button pressed), after that loads a ML program. Exists a way this ML program detect the Basic and disable for use all the memory like if the computer had been turned on pressing OPTION key? Mario Quote Link to comment Share on other sites More sharing options...
Rybags Posted November 22, 2005 Share Posted November 22, 2005 Location $3F8 (1016) BASICEN - 0=enable BASIC, $FF=disable BASIC (processed on warmstart). Location $3FA (1018) GINTLK - Cartridge interlock. 0=no cartridge. 1=there is a cartridge loaded, so RAM can't be enabled in the BASIC address space. $D301 (54017) - PORTB - Memory select on XL/XE. bit 1=1 disables BASIC ROM. So, in your boot loader: LDA $D301 ORA #2 STA $D301; disable BASIC LDA #0 STA $3F8; switch out BASIC next RESET Note that if BASIC is enabled that the top of memory pointer (and screen memory) will be around the 40K mark. All of this only applies to XL/XE machines. It's probably best do a test for RAM around $BF00 after running that code (just store and test 2 different values at that location). Quote Link to comment Share on other sites More sharing options...
jaybird3rd Posted November 23, 2005 Share Posted November 23, 2005 (edited) Thanks for that information; I've been looking for something like this. On a related note ... is it possible to reverse the function of the OPTION key (only enable BASIC if it is held down and disable it if it is not) instead of disabling it outright? I'm thinking it's probably something as simple as finding out where it checks the status of OPTION and changing a BNE to a BEQ (or vice-versa) afterwards, but I haven't had the chance to try it myself. I've only played around with assembly on the A8 computers long enough to disable copy-protection on AtariWriter Plus. Edited November 23, 2005 by jaybird3rd Quote Link to comment Share on other sites More sharing options...
drac030 Posted November 24, 2005 Share Posted November 24, 2005 I'm thinking it's probably something as simple as finding out where it checks the status of OPTION and changing a BNE to a BEQ (or vice-versa) afterwards Exactly. And re-calculating the ROM checksum. 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.