Gunstar Posted April 11, 2019 Share Posted April 11, 2019 (edited) Do any stand-alone* compilers exist for Atari Basic or OSS Basic XE? Is BASIC XL compiler compatible with BASIC XE? (as long as extra BXE commands not in BXL are not in a program to be compiled? *OSS BASIC XL and TBXE come with compilers, these above two do not. Edited April 11, 2019 by Gunstar Quote Link to comment Share on other sites More sharing options...
thorfdbg Posted April 11, 2019 Share Posted April 11, 2019 Yes, of course. The ABC compiler is a standalone compiler for Atari Basic, to name just one. (Though, to be fair, it is not really a compiler. It compiles to p-code which is then interpreted by its runtime). 1 Quote Link to comment Share on other sites More sharing options...
ricortes Posted April 11, 2019 Share Posted April 11, 2019 For Atari BASIC I liked the performance of the MMG compiler. It had the option to save the assembly language intermediate files so you could fine tune the code or just see how a compiler generated code looked. It also had the option of using either a floating point or integer runtime package depending on what you wanted for accuracy or speed. 2 Quote Link to comment Share on other sites More sharing options...
Alfred Posted April 11, 2019 Share Posted April 11, 2019 Basic XL doesn’t have a compiler, it just has a standalone run-time interpreter which executes the tokenized code. 2 Quote Link to comment Share on other sites More sharing options...
+Nezgar Posted April 11, 2019 Share Posted April 11, 2019 I found some on the pigwa site. (For Atari BASIC) http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/ As already mentioned, I'm also pretty sure they are all just runtimes with the Pcode appended. I remember making a program to simply poke 10 bytes, and it was like 10K. I was impressed with myself when I managed to rewrite it in assembler and compile it to 42 bytes. Der Basic Compiler (Datasoft) - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/Der%20Basic%20Compiler%20(Datasoft).zip MMG Basic Compiler A - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/MMG%20Basic%20Compiler%20A.zip MMG Basic Compiler B - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/MMG%20Basic%20Compiler%20B.zip MMG Basic Compiler 2.0 [alt] - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/MMG%20Basic%20Compiler%202.0%20%5balt%5d.zip MMG Basic Compiler 2.0 [alt.2] - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/MMG%20Basic%20Compiler%202.0%20%5balt.2%5d.zip ABC A Basic Compiler 1.02 - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/ABC%20A%20Basic%20Compiler%201.02.zip ABC A Basic Compiler 1.03 [pro] - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/ABC%20A%20Basic%20Compiler%201.03%20%5bpro%5d.zip ABC A Basic Compiler 1.05 - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/ABC%20A%20Basic%20Compiler%201.05.zip 5 Quote Link to comment Share on other sites More sharing options...
Gunstar Posted April 11, 2019 Author Share Posted April 11, 2019 Basic XL doesn’t have a compiler, it just has a standalone run-time interpreter which executes the tokenized code. Huh, I wonder why I've been under the impression that it came with both. Maybe just mis-remembering from TBXL. Thanks! Quote Link to comment Share on other sites More sharing options...
Gunstar Posted April 11, 2019 Author Share Posted April 11, 2019 (edited) I found some on the pigwa site. (For Atari BASIC) http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/ As already mentioned, I'm also pretty sure they are all just runtimes with the Pcode appended. I remember making a program to simply poke 10 bytes, and it was like 10K. I was impressed with myself when I managed to rewrite it in assembler and compile it to 42 bytes. Der Basic Compiler (Datasoft) - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/Der%20Basic%20Compiler%20(Datasoft).zip MMG Basic Compiler A - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/MMG%20Basic%20Compiler%20A.zip MMG Basic Compiler B - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/MMG%20Basic%20Compiler%20B.zip MMG Basic Compiler 2.0 [alt] - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/MMG%20Basic%20Compiler%202.0%20%5balt%5d.zip MMG Basic Compiler 2.0 [alt.2] - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/MMG%20Basic%20Compiler%202.0%20%5balt.2%5d.zip ABC A Basic Compiler 1.02 - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/ABC%20A%20Basic%20Compiler%201.02.zip ABC A Basic Compiler 1.03 [pro] - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/ABC%20A%20Basic%20Compiler%201.03%20%5bpro%5d.zip ABC A Basic Compiler 1.05 - http://ftp.pigwa.net/stuff/collections/RK-DVD/Atari%20800%20Images%20und%20Files/Spielesammlungen/Holmes%20Archive%20-%20komplett/Holmes%20Utils/ABC%20A%20Basic%20Compiler%201.05.zip Thank you, I'll look into them, I see no reason, if they are all just runtimes, to bother for Atari Basic though, as I think enough of the community has access to Atari Basic if I release a program, unless they do actually speed up the execution. And it would have to speed it up more than BASIC XL/XE and TBXL already can do running Atari Basic programs. I'm more interested in a true compiler. I'm mainly using Basic XE (though I don't mind restraining my programming to what would run on Atari Basic or TBXL). I like Basic XE because I use so much main memory with SpartaDOS (even with SD located in extended memory with BANKED) that I'm only left with about 26K free main memory, but I still have 336K extended memory free, even with SpartaDOS and a 180K ramdisk in extended from my 576K 1200XL. With Basic XE I can use the EXTEND command and have a full 64K programming area in extended memory to use without having to worry about banking myself, it's automatic. I was hoping for a true compiler though, like TBXL has...even if it was for Atari Basic and I had to not use Basic XE's extended commands to remain compatible. Edited April 11, 2019 by Gunstar Quote Link to comment Share on other sites More sharing options...
thorfdbg Posted April 11, 2019 Share Posted April 11, 2019 I'm more interested in a true compiler. MMG is a true compiler. But that does not mean that its compiled code is much faster than that of ABC. It will just consist of a series of JSR instructions... similar subroutines are also in the ABC runtime, just dispatched by its p-Code, so it does not make much of a difference. Do not expect an optimizing compiler as you would find them nowadays. They are all - including the TBXL compiler - pretty straightforward. ABC has actually been more used for "copy protection" purposes as it is quite hard to follow the program logic through the pCode. A couple of Microprose titles have been written with it. Solo Flight and F15 Strike Eagle are to major parts in ABC-compiled BASIC. 4 Quote Link to comment Share on other sites More sharing options...
Gunstar Posted April 11, 2019 Author Share Posted April 11, 2019 (edited) MMG is a true compiler. But that does not mean that its compiled code is much faster than that of ABC. It will just consist of a series of JSR instructions... similar subroutines are also in the ABC runtime, just dispatched by its p-Code, so it does not make much of a difference. Do not expect an optimizing compiler as you would find them nowadays. They are all - including the TBXL compiler - pretty straightforward. ABC has actually been more used for "copy protection" purposes as it is quite hard to follow the program logic through the pCode. A couple of Microprose titles have been written with it. Solo Flight and F15 Strike Eagle are to major parts in ABC-compiled BASIC. I'm just relearning BASIC after 30 years, and my skills were pretty primitive even back then. So I really don't know what to expect from a compiler, from today or yesteryear. I've never used one. Edited April 11, 2019 by Gunstar Quote Link to comment Share on other sites More sharing options...
jefffulton Posted April 11, 2019 Share Posted April 11, 2019 Even the version of Turbo Basic XL I just played with last night isn't a "true" compiler. It compiles to a runtime type file. I would love to find a basic compiler that will make a .com or .xex or .exe file for me that can be run from the L command in DOS 2.5 1 Quote Link to comment Share on other sites More sharing options...
+CharlieChaplin Posted April 11, 2019 Share Posted April 11, 2019 (edited) Even the version of Turbo Basic XL I just played with last night isn't a "true" compiler. It compiles to a runtime type file. I would love to find a basic compiler that will make a .com or .xex or .exe file for me that can be run from the L command in DOS 2.5 MMG does create a COM/XEX file that can be run from the "L" command in DOS 2.5 (alas, not all Basic files will compile and errmm, sometimes even the created COM/XEX does not run). It does compile in several steps and always saves some data to disk, so it is best to copy it on a 180k disk first and use two floppy drives (D1: with MMG on a 180k DOS 2.0d disk, D2: with an empty 180k disk) or two virtual drives under emulation (and set the emulator to full speed, so compiling is done within a few seconds). Don't make the program fully reset-proof, add a Poke 580,1 or some key-combo to reboot the real Atari... For TB XL do the following: step 1 compile the TB XL file (result: a CTB file), step 2 use the CTB-linker and link the Runtime + the CTB file into one COM/XEX file (CTB runtime has a length of 11k, so any linked CTB=>COM/XEX will be 11k longer then), step 3 add a Basic-off routine and a titlescreen, so you don't need to hold down the Option-key or stare at a blue+empty screen while loading. And don't make the program fully reset-proof, add a Poke 580,1 or some key-combo to reboot the real Atari... Alternatively, use Fast-Basic which will also compile into a COM/XEX file. Edited April 11, 2019 by CharlieChaplin 2 Quote Link to comment Share on other sites More sharing options...
jefffulton Posted April 11, 2019 Share Posted April 11, 2019 Thanks, Charlie! Quote Link to comment Share on other sites More sharing options...
+CharlieChaplin Posted April 11, 2019 Share Posted April 11, 2019 Basic XL doesn’t have a compiler, it just has a standalone run-time interpreter which executes the tokenized code. Correct. The only "runtime" I have seen for BXL is version 1.0 or 1.01 and it looks like this runtime works well with BXL programs created with BXL 1.0. But I also found a few BXL programs created with BXL 1.02 or 1.03 that did not work with that runtime (but worked okay with the latest BXL version)... Quote Link to comment Share on other sites More sharing options...
jefffulton Posted April 11, 2019 Share Posted April 11, 2019 Thanks! I think I'll try Fast Basic. I know it's relatively new. (lats 10- years new). But TB XL looks great. The only docs I have are in German! MMG does create a COM/XEX file that can be run from the "L" command in DOS 2.5 (alas, not all Basic files will compile and errmm, sometimes even the created COM/XEX does not run). It does compile in several steps and always saves some data to disk, so it is best to copy it on a 180k disk first and use two floppy drives (D1: with MMG on a 180k DOS 2.0d disk, D2: with an empty 180k disk) or two virtual drives under emulation (and set the emulator to full speed, so compiling is done within a few seconds). Don't make the program fully reset-proof, add a Poke 580,1 or some key-combo to reboot the real Atari... For TB XL do the following: step 1 compile the TB XL file (result: a CTB file), step 2 use the CTB-linker and link the Runtime + the CTB file into one COM/XEX file (CTB runtime has a length of 11k, so any linked CTB=>COM/XEX will be 11k longer then), step 3 add a Basic-off routine and a titlescreen, so you don't need to hold down the Option-key or stare at a blue+empty screen while loading. And don't make the program fully reset-proof, add a Poke 580,1 or some key-combo to reboot the real Atari... Alternatively, use Fast-Basic which will also compile into a COM/XEX file. Quote Link to comment Share on other sites More sharing options...
+CharlieChaplin Posted April 11, 2019 Share Posted April 11, 2019 (edited) Thanks! I think I'll try Fast Basic. I know it's relatively new. (lats 10- years new). But TB XL looks great. The only docs I have are in German! Afaik, Ron Fetzer, Dave & Laura Yearke and several others translated the german TB XL docs into english in the 80s (or early 90s). Thus, TB XL was (is) available in several PD-libraries with english docs. One TB XL version with english docs can be found e.g. here: http://www.atarionline.pl/v01/index.php?ct=utils&sub=4.%20Programowanie&tg=WNYAUG%20Turbo%20Basic%20XL%20Manual#WNYAUG%20Turbo%20Basic%20XL%20Manual (in the DOS use e.g. TYP *.DOC to display the docs on the screen) Edited April 11, 2019 by CharlieChaplin Quote Link to comment Share on other sites More sharing options...
Gunstar Posted April 12, 2019 Author Share Posted April 12, 2019 MMG does create a COM/XEX file that can be run from the "L" command in DOS 2.5 (alas, not all Basic files will compile and errmm, sometimes even the created COM/XEX does not run). It does compile in several steps and always saves some data to disk, so it is best to copy it on a 180k disk first and use two floppy drives (D1: with MMG on a 180k DOS 2.0d disk, D2: with an empty 180k disk) or two virtual drives under emulation (and set the emulator to full speed, so compiling is done within a few seconds). Don't make the program fully reset-proof, add a Poke 580,1 or some key-combo to reboot the real Atari... For TB XL do the following: step 1 compile the TB XL file (result: a CTB file), step 2 use the CTB-linker and link the Runtime + the CTB file into one COM/XEX file (CTB runtime has a length of 11k, so any linked CTB=>COM/XEX will be 11k longer then), step 3 add a Basic-off routine and a titlescreen, so you don't need to hold down the Option-key or stare at a blue+empty screen while loading. And don't make the program fully reset-proof, add a Poke 580,1 or some key-combo to reboot the real Atari... Alternatively, use Fast-Basic which will also compile into a COM/XEX file. Thanks for clearing all that up. Since I've had no real experience with compilers, this is all I really wanted from a Basic compiler; to turn a Basic program into an executable file. And I am hoping for some speed improvement over running in Basic. I'm guessing and hoping, that as long as I stick to only the original Atari Basic commands, that even if I use Basic XE to code, that I should be able to use either of these compilers for the program. I see no reason why the Basic editor I use should matter as long as I stick to Atari Basic commands. Does having machine language sub-routines make any difference when using these compilers? Quote Link to comment Share on other sites More sharing options...
jefffulton Posted April 12, 2019 Share Posted April 12, 2019 I started going through the Dr. C Wacko Basic Game development book using the TBXL. It works, this version of TBXL doesn't a linker, so I have to make an ATR with the runtime to have a standalone. It looks like there are like 15 versions of Turbo Basic XL/XE/ENHANCED/EXTENDED so there must be one with the linker up there on the Wiki. I also found the English Language docs. Quote Link to comment Share on other sites More sharing options...
+MrFish Posted April 12, 2019 Share Posted April 12, 2019 The disks here have the linker: TBXL v1.5 2 Quote Link to comment Share on other sites More sharing options...
ricortes Posted April 12, 2019 Share Posted April 12, 2019 The MMG compiler is cute in that it takes what should have been an obviously simple and straight forward to something that I completely missed. A DOH momment. IIRC the runt time as pointed out is just a bunch of canned code that your compiled code jumps to while passing parameters. That is you have ~4k block of routines that follow the OS design philosophy where the heavy lifting of something like a GRAPHICS(0) statement is mostly done in the OS. What I found interesting in the MMG compiler was they used a BASIC to assembly language converter where just about everything was an assembly language label. Something like 10 GOTO 20 would be translated to something like 10 JMP 20 20 more code i.e. LDA #0 JSR GRAPHICS <in the runtime.> Of course with all the jumping around, it wouldn't run as fast as in line code, but then it was pretty tight with respect to length. 1 Quote Link to comment Share on other sites More sharing options...
toddtmw Posted April 13, 2019 Share Posted April 13, 2019 I used MMG compiler BITD and it was pretty awesome. There some (pretty well documented) things you couldnt do in your basic program Id you wanted to compile it. 2 Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted April 13, 2019 Share Posted April 13, 2019 I have an original DataSoft Basic Compiler produced in 1983 (actually called The Atari Basic Compiler). My only criticism with it is the amount of disk swaps (5 I believe) to compile a program if you only have a single drive. It was produced before the 130XE so didn't take advantage of the extra RAM to speed things up. Appart from an executable, it also produce .asm files if you wanted to modify the code and assemble with a normal Assembler 1 Quote Link to comment Share on other sites More sharing options...
+Allan Posted April 13, 2019 Share Posted April 13, 2019 I have an original DataSoft Basic Compiler produced in 1983 (actually called The Atari Basic Compiler). My only criticism with it is the amount of disk swaps (5 I believe) to compile a program if you only have a single drive. It was produced before the 130XE so didn't take advantage of the extra RAM to speed things up. Appart from an executable, it also produce .asm files if you wanted to modify the code and assemble with a normal Assembler Is this just an ATR you found on the Web, or is this an original copy with manual, box etc.? Allan Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted April 13, 2019 Share Posted April 13, 2019 Original Book with disk, cover looks a bit "off", it was in my garage for years which was quite damp, I was surprised that the disk still ran. 2 Quote Link to comment Share on other sites More sharing options...
+Nezgar Posted April 13, 2019 Share Posted April 13, 2019 Does that disk have a version other than 1.02, 1.03, or 1.05? Good to get archived if it's something else. I don't see that manual up on Internet Archive yet, does anyone know if this is online anywhere else? If not, it would be great to get it scanned. I'd be happy to help clean up and PDF the document if you can make the raw scans. Quote Link to comment Share on other sites More sharing options...
jefffulton Posted April 13, 2019 Share Posted April 13, 2019 Yeah, MMG looks great for standard basic programs (I mean those written in standard Atari basic). The manual gives some good optimizing tips. This could be a winner for playing with making some simple games and learning the ins and outs of the machine. 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.