Working on the library units for Amiga OS 4 (PowerPC) which was resurrected by Charlie last week. It goes slowly forward. I could make it faster and just copy the Amiga files adjust the offsets and interfaces. But if I do I make it right.. so I check every structures and defines. AmigaDos, Intuition and AGraphics are really huge units. But its already working a little bit 😉 at least can open a window and draw some stuff.

Some questions to this virtual machine arrived so I started to write a FAQ for the Virtual Lazarus bundle I created. Also made a separate page for this product. There is not much of a response until now… lets hope for later.
Questions and Answers
Q: How to change the default keymap?
A: Open xterm and type „setxkbmap us“, replace the us (= american layout) by your favourite keyboard layout (de, us, fr, ….). To make it permanent for every boot, edit /home/test/.profile and add the setxkbmap call to end of the file.
Q: How did you transfer the compiled programs to the target computer?
A: I used the VMware shared folder on the host computer and used samba to access from MorphOS the program. Amiga/UAE and AROS can directly access the files on the harddisk but with dedicated computers of course samba would also work.
Q: The AROS compilation seems to be different from the previous AROS release?
A: Yes, the LCL diverted fro AROS on the one side and Amiga/MorphOS on the other side. this is the first try to join them, but its not on par currently. (For example Groupboxes does not work in this version also speedbuttons look weird and so on) So if you experience problems just compile your program at AROS again, or wait for bugfixes 😉
Q: How to compile for Amiga/AROS/MorphOS?
A: You can set by hand in Project Options. But I suggest you use my prepared config file as shown in the video. Open „Menu – Project -Project Options“ press import (button on the lower edge) choose the „/home/test/AllAmigaPlatforms.xml“. Now you have build settings for all four platforms.
Q: Synedit (or other package) is missing in the component icon list?
A: Make sure this package is already supported for Amiga style systems (SynEdit is 😉 ) and go to Package – Install/Uninstall Packages and choose to install. Lazarus have to compile again after installing/uninstalling an package.
Q: Are there examples/How to know which components are availabel for our systems?
A: Examples are available at GitHub. If you want to download directly to this virtual machine just open a xterm and type „git clone https://github.com/alb42/fpc-tests.git“. you will find a directory named fpc-tests in your home directory with a sub directory LCL, where you can find many test code examples to use, and test which elements are working, or not.
Q: I added a TMemo to my program now it does crash on MorphOS an/or Amiga. Whats wrong?
A: TMemo uses the Texteditor.mcc class as MUI implementation. Sorry I didn’t added a error handling for such case currently, because at AROS it’s installed by default.
I created a virtual machine with my compiled Lazarus source and cross compilers for Amiga, AROS and MorphOS. The virtual machine is for VMWare Player. Lazarus and a short description is placed on the Desktop. Should be really easy to use. I used the shared folder feature of VMWare to place the data where the other OS can reach them.
At the start I wanted to use DSL (Damn Small Linux) but sadly I didn’t get it to run (mouse does not move), so I changed to an other one. But the DSL stayed as name. Therefore the package is rather big (1.6 GB packed, 9 GB unpacked).
I hope someone is brave enough to try it and give some feedback.
Virtual machine with Lazarus Amiga, AROS, MorphOS:
VM Lazarus (1544 MB)
MD5: cf3e14797f9ba9882ee66247ee1fbc9f
Check also the FAQ.
I also create a little Introduction Video for this virtual machine use to show how easy it is.
Compiled the Games and Tools I compiled for MorphOS and AROS already. so now the set is complete 😉

BinShifter, ColorIt, FPCMines and PasteQuick for Amiga
Download on the FPC Amiga Page
I just waited for this fix to make a Release of Freepascal 3.1.1 for m68k-amiga with the new Lazarus component Library. Of course its still early alpha state but it is somewhat usable.
Check FPC Amiga Page for the download.
Of course this archive does work on m68k AROS also. (It does not include FPGui for now)
Be warned: LCL is still is very early alpha stage, so expect crashes. It aims on fast RTG Amigas or even better RTG-UAE, but some simple programs also work on AGA/ECS Screens.
Notice: you need at least 180 MB of free RAM to compile a LCL program
hmm I did so many changes to m68k amiga but I didn’t try m68k aros again. When I tried it last time it behaved rather strange (see LCL on AROS). But now it seems to work. Maybe its because of my changes with layout or charlies m68k compiler changes. who cares, it work. Even EdiSyn looks ok to me.

EdiSyn and FPCMines on m68k AROS
Additional try on my real Amiga1200 which does not have a gfx-card. So only AGA with 64 colors on the workbench. Also the calls to set a color on a rastport using 24bit values is not available so one have to use pens. I did already some changes in the code to use Pens on a real Amiga, and disabled the cybergraphics calls if no cybergraphics.library is available. EdiSyn sadly crash, maybe I missed one cgfx call, but the FPCMines seems to work, ok needs longt time to start and slow drawing but it works. It’s even playable in a reasonable Speed.

FPC Mines on a real Amiga with 64 color screen
Charlie repaired the m68k fpc compiler, my hope was that also the drawing problems at 68k will disappear, and I was right, seems it was the same problem, now the drawing works much better on a classic Amiga. Even EdiSyn work now somehow.

EdiSyn on a m68k Amiga with MUI 3.8
EdiSyn on MorphOS, at least it does not crash anymore, but it need long time to start and the SynEdit does not show anything, Menu also does not work, hmm strange.

Some more strange things appear, the Edits does not show the contents if the edit cursor is active in it, when one leave the Edit, the test is visible, also the TextEditor and Scrollbars have some strange colors. But it become even more strange: When I start the m68k-amiga version on MorphOS it looks ok to me (also in WinUAE or on a Native Amiga 1200)
This year freepascal got a big advance on many levels, in general with the freepascal 3.0 and for the Amiga-style systems also. Even more advances on the LCL/Lazarus topic on Amiga, AROS and MorphOS.
It began in 2014 already, when I restarted the MUI LCL implementation for AROS. Begin of 2015 I cared more about some applications to test the implementation especially the owner drawn things. So I wrote ColorIt and FPCMines for AROS and tried to write or port some little apps and some more.
A milestone reached in march 2015 when I got the SynEdit component to work. The little test program I used to play around with the needed changes in LCL grew on requests from the AROS community to a full usable Editor, which got the name Edisyn. By improving the editor many additional features are included into LCL, like key events, advanced mouse events, tabs, scrollbars, colors and much more.
With all this improvements I felt ready to give the lazarus ide another try and finally at least it starts. So we are on a good way to bring lazarus natively to work on AROS.
But how about the other platforms (AmigaOS and MorphOS)? I did already some changes in the code with the other platforms in mind. When the resource support was enabled in freepascal I took the opportunity to try to port the LCL for MorphOS and m68k AmigaOS. Which somewhat worked but not in the same way as in AROS especially the layout did not work and the program always crashed on the end. But it gave me much insight how MUI is working also for AROS Zune which is a little bit more error tolerant than the original MUI.
Also on the freepascal front some new things appeared, the support for x86_64 AROS was included, but sadly because of the ABI difference the port is still not finish and unusable. I’m waiting for the ABI switching feature in freepascal. The implementation is done just I need the decision to do it in the proposed way.
In October I did something unusual for me, I did C coding for AROS, trying to code a dynamic Amiga-style Library (in this case sql) to use it in freepascal AROS. But later I found out this wrapper library is not needed and I can directly use the C linklibs as they are.
At the end of the year I took more work again on the MorphOS and m68k Amiga LCL and finally got it to work. So the first LCL programs can be compiled for MorphOS and m68k Amiga.
What 2016 will bring
I hope I can join the two LCL implementations (AROS on the one side and MorphOS and Amiga on the other) together again. Bring the MorphOS port to the same level as AROS, that maybe Edisyn will work. The next logical step would be to continue on lazarus ide and try to make it somewhat usable.