Hi after a time of off and on development due to my work schedule I am finally pleased to make an initial publication of my port of Blitzmax available on GitHUB.
The BlitzMax language is a BASIC like(use that very loosely) that supports some object oriented concepts. It integrates very well with native C/C plus plus for very easy extension and includes LUA support for easy enhanced scripting capabilities in applications. BlitzMax for AmigaOS4.X
This my first Amgia contribution so feedback is appreciated. The level of effort was considerable as the back-end of PPC compiler had to be re-coded correctly for System V ABI vs the original Apple OSX ABI. AmigaOS applicable defines where required in Build system and Runtime but seems to be working well.
I have covered the basics of the runtime to provide graphic support for Max2d with MiniGL as well as Audio driver and networking support. I still need to work out the Joystick support.
The big limitation is support for MaxGUI as I am torn on strategy with regard to UI support. MaxGUI was never all that great and there is a huge AmigaOS API gap that needs to be filled.
If interested I have also forked the original BlitzMax repo and intend on pushing my changes into that Fork but I doubt it will be up-streamed as author has moved on but who knows. This will allow you to also use the language on Linux/Window/OSX if desired. There is a large number of downloadable modules and extensions and would be happy to provide guidance adding additional support for Amiga.
I have tested on Classic under emulation(very slow give the install some time) as well as my X5000.
I appreciate all feedback good and bad. And although i have done my best to download and install you guys are getting first exposure so my fingers are crossed.
Comments made in any post are personal opinion, and are in no-way representative of any commercial entity unless specifically stated as such. ---- http://codebench.co.uk
@DStastny While it's not of interest to me personally, you might garner wider interest of you can point to example source code for some BlitzMax programs.
I recall there have been some user(s) looking for a very user-friendly programming language.
Thanks for doing this, great news! Indeed Mark Sibly wrote this one and he’s the author of Blitz Basic so good choice! He wrote then the Monkey language and I know that someone did an AmigaOS 4 port, probably incomplete though. Now he’s working on Monkey 2. Blitzmax is nice since it is not OOP oriented like the latter.
Started compiling with the install, it was compiling fine some time, until my computer locked before completing the whole compilation.. Not sure what or if it was gcc or Odyssey that caused it, but I will try to compile it again later as it took some time...
Anyway, I went ahead and compiled the hello source, it worked fine!
I also tried the Triangle source, yes it worked too!! Cool!!!
So far looks impressive already, I'm looking forward to updates and getting some time to get my hands dirty in trying out and coding in BlitzMax
@Marko Thanks for the feedback. I too suffer occasional lockups with the GCC part of toolchain but its uusally after running. Odyssey. I gave up and use netsurf if I need to surf on Amiga.
Try Tempest in the samples directory its pretty faithful recreation.
GCC need a lot of stack, not tiny bit more a lot of stack... AmigaOS does not increases stack automatically.
Its also true for many programs, more so on ported Linux programs, because they code without thinking about this.
Crashes is some you expect coding on system with limited memory protection, sometimes you find the bug some time the bug kills AmigaOS4, it can be pretty random, sometime the only way find a bug is printf or serial cable. It always good make testable code that can be isolated.
I sure lot people like to write code, get errors, and not write code, get crash, that is way I think Basic is welcome is some that parity user friendly to beginners, or casual programmers.
Edited by LiveForIt on 2018/2/20 19:48:47
(NutsAboutAmiga)
Basilisk II for AmigaOS4 AmigaInputAnywhere Excalibur and other tools and apps.
Thanks for insight. I will look to increase the default stack size when my code launches the GCC tool chain to compile the Blitzmax generated assembly. Currently it just uses the C run-time system command, but I will look at creating a more controllable sub process via DOS API.
Mark abandoned Monkey-X and moved on to Monkey2. *Fixed Link* Monkey 2
Monkey2 is pretty neat and a much more complex language that generates C++ that feeds into compiler chain vs BlitzMax which generates PPC assembly. So should be significantly easier to port.
That being said I am not all that interested in as I took this up because of the challange of the PPC assembly aspect of the compiler and getting it working on Amiga ABI. Not to say I wont think about it but lot more to accomplish on BlitzMax yet mainly the GUI support.
I have another richer language(Blitz like) I authored that I would like to port but I have but yet to get LLVM to compile correctly on AmigaOS.