Rybags #1 Posted November 27, 2009 I've spent some time in the last day converting a MAC/65 cartridge image so that it can work on VBXE equipped systems. It runs with all normal XL/XE RAM available from LOMEM (ie top of DOS) to ~ $9C1F - same as it would if running the real cartridge. Still some refinement needed so far as the RAM arrangements - a bit of code trimming needed on my part, as it uses some of the stack space ($110-$16B) for bank-switching code and for the warmstart code. Also, at this stage it's only compatible with $D640 VBXE installs. Additionally, I've only just got it working, so it's not extensively tested beyond testing that memory management is working and the cartridge code itself is not being corrupted. The file should be loaded from DOS. At this stage, you must have BASIC enabled first (and no cartridge inserted). Once run, it will return to BASIC. You can switch between Mac-65 and Basic by pressing SHIFT-RESET. Of course note that whatever program you had in memory will be lost if you switch between the 2 languages (upcoming project should be some sort of VBXE RAMDISK system to help out there). Switching languages of course leaves your DOS intact. vb65.zip Technical explanation of how it works: I've patched parts of Mac-65 that do bank-switching to JSR to one of 4 routines stored around $110. The cartridge image itself lives in normal Atari RAM from $B000-BFFF for the normal fixed bank. The 3 lower banks that are switched around live in VBXE RAM which is mapped from $A000-AFFF in XL RAM. VBXE Bank $F8-$FB holds the cartridge image. Actual bank-switching is mainly performed by the code around the $110 stack area, with a little bit more around $AF00 in normal Atari RAM. The loader uses the CASINI vector to initialise each time you press RESET (handles SHIFT detection, initialising the cart + DOS, running the cart or Basic) Of course, since we're using VBXE banking to run the cartridge, that means that user programs can't do anything that will affect VBXE banking otherwise you risk crashing the machine. But, I did the thing as a proof-of-concept (many other banked cart images can in theory be run with VBXE assistance), so at this stage regard it as such (although it should work fine so long as you're careful so far as not wiping the wrong parts of RAM or upsetting VBXE banking). Quote Share this post Link to post Share on other sites
flashjazzcat #2 Posted October 5, 2011 Necro-bump! This is very cool - I just discovered it while Googling A8 cart banking. Quote Share this post Link to post Share on other sites