ACML Posted April 29, 2014 Share Posted April 29, 2014 (edited) Is there an EXE version of the Microsoft Basic II 16K cartridge? There are disk versions, but they include the entire version and have lower free memory. The 16K cart version offers 29K of free ram as opposed to only 22K for the disk version. There are plenty of ROM files, but is there an EXE you can load into real hardware? Edited April 29, 2014 by ACML Quote Link to comment Share on other sites More sharing options...
Rybags Posted April 29, 2014 Share Posted April 29, 2014 Probably not on a public archive. It's not really that popular given the "better" alternatives like TBXL, Basic XL and XE. The problem with running a 16K language cart from RAM - each time your press Reset, the screen will overwrite 1K of the cart, so you have to keep a copy of that 1K elsewhere and restore it. Since you generally want to be able to use a DOS as well, it's probably worthwhile putting it under the OS, or immediately before the start of the cart (which would decrease free RAM somewhat). Another alternative might be to make a version that can run from Atarimax flash - the top 8K can reside in ROM, then the bottom 8K could be copied to RAM. Quote Link to comment Share on other sites More sharing options...
ricortes Posted April 29, 2014 Share Posted April 29, 2014 29k free is w/o DOS loaded. It could be more free memory but I am a little suspicious in that the two versions may have similar performance and the only thing different is the file/execute version needs DOS loaded to load. Anyway, this works as a 16k cart in Altirra. I guess you could use a cassette if you really needed 29k. MicrosoftBASIC2.bin Quote Link to comment Share on other sites More sharing options...
ACML Posted April 29, 2014 Author Share Posted April 29, 2014 Since you generally want to be able to use a DOS as well, it's probably worthwhile putting it under the OS, or immediately before the start of the cart (which would decrease free RAM somewhat). Rybags, I totally forgot that the 29K was w/o DOS. With DOS (2.0s) it drops to 24K. Still higher than disk version 2.7 (21K), so its not much savings. Still interesting that over 30 years, no one made an EXE out of that cartridge. Quote Link to comment Share on other sites More sharing options...
Gunstar Posted April 29, 2014 Share Posted April 29, 2014 (edited) Rybags, I totally forgot that the 29K was w/o DOS. With DOS (2.0s) it drops to 24K. Still higher than disk version 2.7 (21K), so its not much savings. Still interesting that over 30 years, no one made an EXE out of that cartridge. As was stated, it was probably never done because there are so many superior (and Atari BASIC compatible) BASICS out there. And any program written in Microsoft BASIC II that you want to distribute would require others to have the MBASIC II as well or have it in some type of runtime form...so there has been like exactly ZERO demand for such a thing until you came along... If you want it to type in and/or run old microsoft basic program listings, it's almost easier just to modify the program into one of the superior Atari BASICS like TBXL, BASIC XL/XE which have all the benefits of Microsoft BASIC like strings, etc., plus much more... Edited April 29, 2014 by Gunstar Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted April 29, 2014 Share Posted April 29, 2014 TBXL (like Atari BASIC) doesn't do string arrays, though, which totally confounded me for a while when I was trying to adapt BBC BASIC programs in the late Eighties. Quote Link to comment Share on other sites More sharing options...
777ismyname Posted April 29, 2014 Share Posted April 29, 2014 I wish someone would patch TurboBasic with MS Basic type string arrays, to go along with Atari Basic string handling. If I had the skills, I would....how about it flashcatjazz? Quote Link to comment Share on other sites More sharing options...
peteym5 Posted April 29, 2014 Share Posted April 29, 2014 Basic XE may be a better solution if you require string arrays. If you use Turbo Basic, you can store everything into one big string and access it with the standard Atari string segment. First Data = A$ (1,20), Second Data = A$(21,40), etc. Actually takes up less space. It all depends on the application you plan to run and how many pieces of data you need to store. However, the original guy posting here may not need to do string arrays so lets not get off track. I prefer TurboBasic and Basic XE because they have good logic If-Then-Else-Endif. Nicely indented and can see the logic flow inside of a program. Do not believe any of these Basics have ElseIf, or Select Case structure, something I use frequently with Visual Basic on my PC. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted April 30, 2014 Share Posted April 30, 2014 I wish someone would patch TurboBasic with MS Basic type string arrays, to go along with Atari Basic string handling. If I had the skills, I would....how about it flashcatjazz? TB source code would be pretty cool to have, but I imagine Frank O. packed as much as he could into the available space anyway. String arrays aren't trivial to add either, since they necessitate a lot of extra memory management. It would also be difficult to implement standard string array notation without completely breaking the Atari BASIC string handling. If you use Turbo Basic, you can store everything into one big string and access it with the standard Atari string segment. First Data = A$ (1,20), Second Data = A$(21,40), etc. Actually takes up less space. It all depends on the application you plan to run and how many pieces of data you need to store. The only trouble with string slicing is that storage has to be allocated for n*largest possible string. I suppose proper string array implementations have a significant pointer overhead, however, so the storage requirements might even out. Once the initial surprise at the lack of string arrays has been overcome, however, it's not a big deal. Quote Link to comment Share on other sites More sharing options...
Rybags Posted April 30, 2014 Share Posted April 30, 2014 (edited) String array would probably need to be like A$[2] But really you can do without it. Doing conversion of existing MS type Basic programs is the main problem. If starting a fresh program then you can adjust your technique and do a sort of emulation. Edited April 30, 2014 by Rybags 1 Quote Link to comment Share on other sites More sharing options...
+Larry Posted April 30, 2014 Share Posted April 30, 2014 There are really two good alternatives. First is Basic XL and XE (as mentioned previously). Really nice, with "all the usual suspects" such as LEFT$, RIGHT$, MID$, and SORTUP and SORTDOWN. Second is to use a dedicated subroutine or procedure in TBXL to do the indexing. A bit awkward, but workable and way faster than you might think.-Larry Quote Link to comment Share on other sites More sharing options...
576XE Posted May 3, 2014 Share Posted May 3, 2014 I love structured programming with subroutines and calls in Basic XE. And of course Basic XL has runtime libraries and compilers. Quote Link to comment Share on other sites More sharing options...
+bf2k+ Posted May 3, 2014 Share Posted May 3, 2014 I love structured programming with subroutines and calls in Basic XE. And of course Basic XL has runtime libraries and compilers. Basic XL has a compiler? Where? Quote Link to comment Share on other sites More sharing options...
576XE Posted May 3, 2014 Share Posted May 3, 2014 Really has. It floats somewhere in Internet but I learn PL65 as pralanguage and have nothing of this staff. Quote Link to comment Share on other sites More sharing options...
Xuel Posted June 16, 2014 Share Posted June 16, 2014 XEX version of MS BASIC II 2.0 ROM: msbasic.zip Patches: Move RAMTOP to $8000 and re-open S: to accommodate 16K ROM size Write DOSINI vector to stay active when RESET is pressed (BASIC program is retained) Copy 2K of ROM under OS to refresh ROM area after RESET Patch two points in code that write to ROM area I didn't perform thorough tests so there may still be problems that I haven't seen, but it seems to work pretty well. Free memory is reported as follows with PRINT FRE(0): 24352 under DOS 2.0 24496 under DOS 2.5 29980 with Altirra's "Boot Image..." Unfortunately, it doesn't appear to work with Atari800Win's "Autoboot image" but it does work with DOS under Atari800Win. 4 Quote Link to comment Share on other sites More sharing options...
Xuel Posted June 16, 2014 Share Posted June 16, 2014 Oops, memory figures in previous post were with OS B. OS XL/XE figures are as follows: 23840 under DOS 2.0 23984 under DOS 2.5 29468 with Altirra's "Boor Image..." Quote Link to comment Share on other sites More sharing options...
+Allan Posted June 17, 2014 Share Posted June 17, 2014 Xuel, Did you just test it on the real thing or in an emulator. I tried Altirra and Atari800MacX and both didn't even load the xex file. Allan Quote Link to comment Share on other sites More sharing options...
ACML Posted June 17, 2014 Author Share Posted June 17, 2014 Xuel, Did you just test it on the real thing or in an emulator. I tried Altirra and Atari800MacX and both didn't even load the xex file. Allan I've been able to run it just fine using Altirra 2.4. Quote Link to comment Share on other sites More sharing options...
+Larry Posted June 17, 2014 Share Posted June 17, 2014 Although not what was originally requested, the (unmodified) MS Basic rom image works just dandy from the MyIDE-II FAT32 folder. Being able to load rom images from the MYIDE-II cart is so nice! -Larry 1 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.