There was a miracle happened… I improved the LCL a bit after a long long time, investigated some unusual behavior at MorphOS with LazSokoban, especially because it was slower as expected. I found the culprit and recompiled the MorphOS binary, so have fun testing it.
Also, I did compile for OS4 but I did not not try it, seems I should have because the EXE does not work, at all, also no error message or so, I’m not sure what goes wrong there. It seems it happens when I try to compile a program from Lazarus for OS4 that the program does not work, but when I compile it in the command line it seems work. Interestingly the command line one is much bigger (for LazSokoban it’s double size) so that should be the reason, but I’m not sure whats the culprit. Needs investigation.
Someone asked if EdiSyn could be compiled for AmigaOS4 and yes I tried to compile it but the Executable crashes. I also tried to compile EdiSyn to compile for AmigaOS3 68k and on my new PiStorm Emu68 it works, but I would say it’s still a bit to slow to really use it.. the LCL is too thick of a layer for 68k
A long time before when I was working on the LCL for AROS I tested out some 3rd Party LCL application code to compile for AROS with the newly created LCL. It worked quite nicely. On of them was LazSokoban a Sokoban clone written by a russian guy which worked nicely on AROS.
Some Texts in the GUI where in russian and I translated them to english for the AROS release, some I had forgotten or mistyped a bit. Now I got a request to fix that problem, first there was the big problem to find such and old source code, but luckily it’s included in the archive I published (it’s GPL2, so I had to 😉 ) but I also found in on my Harddisk in the backup.
The changes where not to difficult to make, but the curious thing was if it would still work with the latest LCL. One thing I remember that I need to add the AThreads unit (like Linux CThreads) to make any LCL application work, back in the days that was not needed. And it still works, I checked out the original source and I noticed that they added some kind of skin system (different graphics for the tiles) and also supplied some which looks much nicer than the original one. So I added that as well the the AROS system, it will be available on the next Version of AROS One or here on my page of course.
The other thing that changed since then, we can now compile for MorphOS and OS4 as well (and for Amiga68k, but it will be much to slow for that, I tried) and it also seems to work, not everything, the Buttons images are missing but as far as the game goes not too bad. So I created a Version for all 3 Platforms, AROS, MorphOS and AmigaOS4
Besides the documentation work I also updated the docker container. I created 4 scripts to compile directly from the docker (without using VNC/lazarus) so you can directly compile in your linux installation, that there is a docker container behind it you barely notice. But it only can compile standard Free Pascal things, no LCL applications (missing pathes to the lcl units, also not easy possible, but without Lazarus make not much sense, I think)
The AROS compilation had a big problem, when you compile without -g option it tries to strip but the strip tool was not installed, so I added some more tools to make it possible to compile without -g (makes the executable much smaller)
On this I updated the lazarus version to the latest version 2.0.12 as well.
If you want to use the newest Version of the docker (with the AROS bugfix) start the „CheckForUpdate.sh“ script if you also want to have the direct compile command download the CrossAmigaLazarus Package.
I never came that far to compile LCL (and / or Lazarus) for AROS 64bit but of course I always cared about 64-bit compatibility on the way to implement it (as far as possible).
Now with 3.2 out and Lazarus adapted to it with some minor tweak it was possible to compile LCL stuff for AROS64, even more complicated stuff like EdiSyn.
Sadly there are still some bugs, especially in the external components I use. For example the ATTabs, as you can see the caption in the Tabs are missing and if you click on one some strange things happen. After all it is somehow working but not completely fine.
As promised I worked on the Amiga OS 4 problem in Lazarus Cross Amiga Docker. I tried to used vlink and vasm for it, but it seems vlink has some problems with the resources. But when switching back to the GNU tools (as and ld) it again works.
I also added a little Updater Script to the archive, so if you want to use the new Amiga OS 4 download again the archive. Start the script ./CheckForUpdate.sh if there is a newer version of the docker it will automatically download.
I’m playing with docker and how to put Free Pascal for Amiga Systems and even Lazarus inside a docker container. Works quiet nicely with the latest FPC (3.2.0) and Lazarus (2.0.10), sadly there are some bugs in the published MUI interface for Lazarus, or better left overs of old Free Pascal inconsistencies between the Amiga flavors. I fixed them in FPC but did forget to remove the workarounds in the LCL. So I had to patch the official LCL. Must also check them in the official repository. Sadly the OS4 the LCL compile does not work at all, something wrong with the resource stuff, so I removed it for now. I will look into it later. So still some stuff to work on.
To actually use the Lazarus IDE I also installed a VNC server and hence also a small as possible window manager, I played around with some simple one, most old simple window managers are very annoying (e.g. twm) but icewm seems to be nice (looks like Java though).
And why docker? It’s much easier to keep the software up to date and there are automatically running scripts to create, modify and start them. But there are some drawbacks. The first compilation of a LCL program for any Amiga-style system will need a long time (as seen in the video), because it will compile the whole LCL. This will happen for every start of the docker container. This is good to have a clean compilation of LCL (especially when developing on the actual LCL) but a bit annoying when only compile simple programs. There should be some ways around it. But for now for me that’s good enough.
I bought a neat eat toy for me. An A600 already equipped with an Vampire processor card. A Vampire is an FPGA based CPU card for Amiga 500 and Amiga 600. A while ago I thought already about to buy a Vampire card. The delivery times for it are very uncertain and seems in the order of 6 Month. I even would need to buy an A600 first, I was really to lazy to do such step with uncertain future. But I found an ready to use one one ebay. Maybe a little bit more expensive but thats fine by me, still much cheaper than a 68060 or PPC card. 😉 The capacitors are exchanged but the audio sounds strange, but not a big problem for me. Mainly I’m not interested in the speed but but in the GFX Card which comes with the FPGA on Vampire. Its the only way to get a 24bit GFX card into a keyboard Amiga (except the very seldom BVision for A1200). Of course my for me very interesting if freepascal and it’s programs work with it and good news on this side, it’s working nicely. The only problem (like on my A1200) is the slow harddisk which makes it much slower then UAE but as I read the next firmware should improve that a lot. Of course a screenshot (done with a screenshot program I wrote in FP-IDE directly on my A1200 some weeks before)
Didn’t have much time today, so I only show a cute little program to learn typing, out of the box compiled for AROS TappyTux, also with Mathematics. still not perfect, needs a little bit work, (sometimes the text is outside), it throws 2 hammers and so on.. but even so very neat.
Playing a little bit with loading routines for vector formats and found the amazing fpvector package. It contains also a nice test program to test loading of files. It works already very nice loading of .svg and .dxf Files. For example .odg files does not work some string to float problem. Also the drawing works rather nicely but also shows some problems with the filled polygons. Worth to try to compare with the Linux version.
The MUI LCL widgetset also got accepted for the official Lazarus repository.
That means the next official Lazarus release will also contain the support for all Amiga Systems and the MUI Widgetset. Sadly the only one usable with the released 3.0.0 FreePascal is i386-AROS. m68k-Amiga has a serious bug, for MorphOS the resource support is missing. Both problems will be fixed for next FPC release 3.0.2. All Other platforms (OS4, ARM-AROS, x86_64-AROS) have to wait until 3.2 because their support was added after 3.0 split. Of course one can use the 3.1.1 compiler for all platforms already, as I usually do and release to public.
But it would be very nice to just install Lazarus via your default package system (deb, rpm, whatever) install your Amiga cross-compilers and binutils(with vasm and vlink it’s really easy) and one is able to use the lazarus as IDE for your Amiga LCL programming.
Today I also got write access to the Lazarus repository, that means I can continue to work on the implementation directly on the official repository.
Already tested and fixed some tiny problems. I will continue to test it on week end, seems there are some new problems inside, at least some of my test codes does not work.