AmigaOS4 Freepascal release package
Added some more units to OS4 freepascal: MUI and networking and created a release archive which will be created as nightly (like the other platforms). You can find them on my nightly folder.
Added some more units to OS4 freepascal: MUI and networking and created a release archive which will be created as nightly (like the other platforms). You can find them on my nightly folder.
Reached the state of AmigaOS4 compiling and running the FP-IDE 😉 This was the aim of this implementation run, so its proven the library units are there and working the rest will be just work. For LCL at least MUI have to be implemented, but when I see how slow the FP-IDE is already in WinUAE I really do not want to try LCL.
I will clean up everything and commit to freepascal repository and make a release archive.
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.
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 😉
Download on the FPC Amiga Page
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.
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.
When starting EdiSyn on MorphOS many debug outputs appear in the LogTool which tell something about an odd BltTemplate call. Luckily Jaca from IRC and ond morph.Zone was able to help me and identify this problem as a text output to a bitmap over the edges without a clipping layer. And thats right, I use a buffer bitmap and rastport which does not have a layer. He kindly explained me how to install a trivial layer to it and it work. Much faster now (4 messages per second or so, on every redraw). So I made a little Video about the basic EdiSyn function.
It looks very slow, and sometimes the mouse seems not to react properly but this is only because its recorded via VNC, I didn’t find a screen recording tool for MorphOS.
Besides this I solved the sizing problem for MorphOS. The Window object in MUI returns the outersize of the window, Zune the inner size. The ClientRectangle is taken from this Value in LCL, the problem is that when the ClientRectangle is requested the Window is not open and later it’s cached somewhere so never asked again.
So on GetClientRectangle I check if the window is open and reduce the MUI returned size by the Border of the Window structure. Additionally when the window is open (set visible to True) I invalidate the client rectangle cache, there is a special call for it.
This results in a reasonable size calculation, at least the result looks comparable to AROS/Zune:
I tried EdiSyn on MorphOS before looked kind of ok but the text was not visible. Today I got an idea for the reason, the minimum/maximum size constraints hit me again :-O. My Drawing areas are Groups and as long there is nothing inside the maximum size is rather small. So the solution is rather easy connect to all my own Classes a Layout Hook. EdiSyn works now better, still looks a little bit strange, and also does not really work, still needs some work, but hey I’m happy already.