+hloberg Posted February 10, 2016 Share Posted February 10, 2016 (edited) OK, 1st off, I know that only 21k is available. Now that's out of the way, I have started re-messing with with Atari Microsoft BASIC. Why, may you ask. Well, I have several BASIC programs from other systems that I want to port over and MS BASIC is a much closer port (don't have to deal with lack of string arrays). But, it requires a cartridge? No, not really. I have come across a version of MS BASIC called MS BASIC 2.7that loads off of disk with all it's extras. Personally I think it compares nicely to BASIC XL and TurboBASIC (except having only 21k). Now if it only had a compiler (Humm, a future project?) attached is the MS BASIC 2.7. MS_BASIC_27.zip Edited February 10, 2016 by hloberg Quote Link to comment Share on other sites More sharing options...
fujidude Posted February 11, 2016 Share Posted February 11, 2016 (edited) Here is version 3. It works in SpartaDOS X too. MSBASIC3.ARC Keep in mind this was ARCed on an Atari. I've found that many modern unpackers for PCs do not understand this format, even though they may claim to support ARC. I used SpartaDOS X ARC, but Bob Puff's Super UnARC would probably work too. On the PC, one program I found that does handle it is Universal Extractor. Edited February 11, 2016 by fujidude 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted February 11, 2016 Author Share Posted February 11, 2016 Here is version 3. It works in SpartaDOS X too. MSBASIC3.ARC got it, thanks. is the only difference it works with spartados X? Quote Link to comment Share on other sites More sharing options...
fujidude Posted February 11, 2016 Share Posted February 11, 2016 got it, thanks. is the only difference it works with spartados X? I don't know. I'm sure there must be other differences too though, else Microsoft wouldn't have increased the version number. Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted February 11, 2016 Share Posted February 11, 2016 got it, thanks. is the only difference it works with spartados X? MSdiffs.txt These are the differences 3 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 11, 2016 Share Posted February 11, 2016 So: the differences are the major and minor revision numbers plus one other byte. 1 Quote Link to comment Share on other sites More sharing options...
+Larry Posted February 11, 2016 Share Posted February 11, 2016 OK, 1st off, I know that only 21k is available. Now that's out of the way, I have started re-messing with with Atari Microsoft BASIC. Why, may you ask. Well, I have several BASIC programs from other systems that I want to port over and MS BASIC is a much closer port (don't have to deal with lack of string arrays). But, it requires a cartridge? No, not really. I have come across a version of MS BASIC called MS BASIC 2.7that loads off of disk with all it's extras. Personally I think it compares nicely to BASIC XL and TurboBASIC (except having only 21k). Now if it only had a compiler (Humm, a future project?) attached is the MS BASIC 2.7. I used to convert quite a few programs from other systems to Atari MSB, even GW-Basic programs for PC/MS Dos. It made many of the conversions very simple. Ditto about the compiler. I even tried to convert an Applesoft compiler, but I was completely in over my head. Other than for conversions, once OSS released Basic XL with its own string arrays, that really gave Atari Basic (style) "the" key feature that most folks really liked about MSB (and without the gyrations of trying to do it inside long strings). -Larry Quote Link to comment Share on other sites More sharing options...
+hloberg Posted February 11, 2016 Author Share Posted February 11, 2016 got it, thanks. is the only difference it works with spartados X? MSdiffs.txt These are the differences Not up on spartados or Atari memory locations but I'm guessing that is so it can run under spartdos X? BTW what did you use to compare the two files? Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted February 11, 2016 Share Posted February 11, 2016 3 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 11, 2016 Share Posted February 11, 2016 Not up on spartados or Atari memory locations but I'm guessing that is so it can run under spartdos X? Both posted versions appear to run under SpartaDOS X, and as noted there are only three differences between the two executables, and two of those belong to the version number in the copyright notice. Quote Link to comment Share on other sites More sharing options...
dmsc Posted February 11, 2016 Share Posted February 11, 2016 Hi! Both posted versions appear to run under SpartaDOS X, and as noted there are only three differences between the two executables, and two of those belong to the version number in the copyright notice. This is the disassembly of the two versions at address $5572. Code in "version 2.7": L5572: lda $EF ldx #$20 ldy #$00 bit $D0 bvc L5583 ldx #$2A cmp #$20 bne L5583 txa L5583: pha txa L5585: sta $EF,y iny ldx $EF,y Code in "version 3.0": L5572: lda $EF ldx #$20 ldy #$00 bit $D0 bvc L5583 ldx #$2A iny jsr $01D0 txa L5583: pha txa L5585: sta $EF,y iny ldx $EF,y So, the "CMP" got changed to an "INY", causing the "JSR" to jump to an invalid address. Certainly that version should crash there. So, use the "2.7" version. 2 Quote Link to comment Share on other sites More sharing options...
kenjennings Posted February 11, 2016 Share Posted February 11, 2016 I don't know. I'm sure there must be other differences too though, else Microsoft wouldn't have increased the version number. https://youtu.be/BORsUKQGd_E?t=44 And then RDEA6's posted and it turns out every evil deed I had attributed to Microsoft is actually true. They changed the version and added a bug. Classic. 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted February 12, 2016 Author Share Posted February 12, 2016 (edited) https://youtu.be/BORsUKQGd_E?t=44 And then RDEA6's posted and it turns out every evil deed I had attributed to Microsoft is actually true. They changed the version and added a bug. Classic. If I remember right the 2.7 version was a homebrew modified after the fact. I'm guessing the 3.0 is the same. all the 2.7 version did was take the code from the cartridge and merge with the expansion disk then turn it into a .exe which made MSB II portable. Not sure what the 3.0 version was trying to accomplish if 2.7 worked with Spartdos X too. the only problem I ever had was that 2.7 won't work with APE running. memhi seems to be messed up and it gives more memory then there actually is available. Edit: I'm going to test it with APE to see if that was where they were going. Of course DNSC says that JSR is jumping to an illegal address? whats at $01d0? Edited February 12, 2016 by hloberg Quote Link to comment Share on other sites More sharing options...
+Stephen Posted February 12, 2016 Share Posted February 12, 2016 https://youtu.be/BORsUKQGd_E?t=44 And then RDEA6's posted and it turns out every evil deed I had attributed to Microsoft is actually true. They changed the version and added a bug. Classic. Epic observation - LOL. Quote Link to comment Share on other sites More sharing options...
fujidude Posted February 12, 2016 Share Posted February 12, 2016 Both posted versions appear to run under SpartaDOS X, and as noted there are only three differences between the two executables, and two of those belong to the version number in the copyright notice. The 2.7 one didn't run for me under SDX. Got memory conflict. No, BASIC was not enabled. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 12, 2016 Share Posted February 12, 2016 The 2.7 one didn't run for me under SDX. Got memory conflict. No, BASIC was not enabled. The pre-empted question isn't the one I was going to ask. Do you have many drivers installed? It's more likely that your MEMLO is too high for SDX to successfully load the segment at $1E00. Quite why 3.0 would load in an identical environment to the one in which 2.7 fails is a mystery, since the binaries are identical apart from the apparent bug already identified in version 3.0. Quote Link to comment Share on other sites More sharing options...
dmsc Posted February 12, 2016 Share Posted February 12, 2016 Hi!, If I remember right the 2.7 version was a homebrew modified after the fact. I'm guessing the 3.0 is the same. all the 2.7 version did was take the code from the cartridge and merge with the expansion disk then turn it into a .exe which made MSB II portable. Not sure what the 3.0 version was trying to accomplish if 2.7 worked with Spartdos X too. the only problem I ever had was that 2.7 won't work with APE running. memhi seems to be messed up and it gives more memory then there actually is available. The "2.7" version has minimal changes to the given "1.0", the cartridge based "Basic II v2.0" changes a lot. In fact, it appears that the "2.7" version is earlier than the "1.0" version, as it does not clear the "DSPFLG" flags after the program ends. Try the following program: 10 POKE 766,1 RUN After program end, try pressing the arrow keys. In the "2.7" version, the arrow graphics are printed instead of moving the cursor. Also, there are two "1.0" versions, one is copy-protected. I suspect that the copy-protected one is the original. Edit: I'm going to test it with APE to see if that was where they were going. Of course DNSC says that JSR is jumping to an illegal address? whats at $01d0? The stack... Quote Link to comment Share on other sites More sharing options...
fujidude Posted February 12, 2016 Share Posted February 12, 2016 All these so called versions are getting a bit confusing. Wasn't there a cart based one and a disk based one? Quote Link to comment Share on other sites More sharing options...
+hloberg Posted February 12, 2016 Author Share Posted February 12, 2016 All these so called versions are getting a bit confusing. Wasn't there a cart based one and a disk based one? the only two 'official' versions was version 1.0 (which is disk based) and version 2.0 which is cart and disk based (some added commands were on the disk). like I said 2.7 was probably a homebrew and looks like all they did was either consolidate and unprotected the 1.0 version to make it portable OR took 2.0 an merged in the supplemental disk of the extra commands to the ROM and turned it into an .exe. I have no idea where the 3.0 original origins came from. probably someone's attempt to fix some perceived problem in 2.7 (my guess). So far I haven't had a issue with 2.7 which I run in MYIDEII. Quote Link to comment Share on other sites More sharing options...
+hloberg Posted February 12, 2016 Author Share Posted February 12, 2016 FYI: the 2.7 homebrew has a little less than 1k more available then the 2.0 cart + supplemental disk. not sure where they found the extra 1k. Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted February 12, 2016 Share Posted February 12, 2016 Xuel did an XEX version of the cart version 2.0 http://atariage.com/forums/topic/224888-microsoft-basic-ii-as-an-exe-does-it-exist/?p=3011627 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted March 1, 2016 Author Share Posted March 1, 2016 Xuel did an XEX version of the cart version 2.0 http://atariage.com/forums/topic/224888-microsoft-basic-ii-as-an-exe-does-it-exist/?p=3011627 what's the deal with XEX files as opposed to .exe files? Quote Link to comment Share on other sites More sharing options...
kenjennings Posted March 1, 2016 Share Posted March 1, 2016 what's the deal with XEX files as opposed to .exe files? Because the world stupidly chose Microsoft products. DOS and Windows are morons that think the file extension identifies the contents of the file. On the Atari .COM or .EXE is a matter of convention. An Atari executable program could be named anything. On DOS/Windows .COM and .EXE mean executable programs. So, to prevent DOS/Windows from being confused by Atari files people have taken to changing the file extension of Atari programs, because the Atari doesn't care. 1 Quote Link to comment Share on other sites More sharing options...
fujidude Posted March 1, 2016 Share Posted March 1, 2016 Me personally, I don't worry about confusing an Atari executable with one for MS OS. On the Atari, I continue to use .EXE for general binary executables, and .COM for SpartaDOS external commands. I never have issues confusing between systems. 2 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted March 1, 2016 Author Share Posted March 1, 2016 originally, in the MSDOS world, .com were small files (I believe less then 256k) and .exe were larger files. Personally I have continued the tradition in the Atari world with small utilities as .com and applications as .exe. I was out of the Atari world a while and just got back into it. I'll add .xex into the mix. 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.