The compilation speed is much faster as a native compilation.
On MorphOS it runs much better of course the MorphOS OWB is even capable to show the editor, very nice.
It’s a little bit slow because it’s recorded via VNC, in reality it feels rather fast.
AROS was a little bit of disappointment for me. I downloaded the latest Icaros 2.2 especially to test this webpage. But sadly the editor does not show up. No Error message shown. I guess it’s some missing font problem, because when I change the theme the background color changes, only the text is not visible. It’s a pity. I had to switch to the old Browser interface which works nicely but I expected more.
Working more on the Trackview to show the height and speed track, added a simple Popup Menu and a Data Reader. In the beginning I wanted to use the Bubble function of MUI to show the coordinates, but it flickers like hell if you move it over the map (because you have to destroy and recreate every time) and it makes very bad redrawing errors. On AROS for example when the bubble is over an other part of the window, the background behind it will not repaint, when the bubble disappear. On Amiga the background of the window is visible on the edges instead of my curve background. Also added a fine grid for better visibility of Values and heights, still fixed but maybe later can be disabled via menu.
I implemented a on screen (on-map) menu for zooming and to show the side panel, so do not need use the menu. I did that already for Mapparium but there only released for the special ARM version. There is also a key control available, the + and – keys can be used for zooms and cursor keys for movement.
I guess it will need one or two more version for MUIMapparium to reach the features of Mapparium but I guess it will be MUIMapparium will takes the Mapparium place (and Name) in the end.
Still playing with locale settings on Amiga systems. FreePascal offer a possibility to care about international settings like decimalseparator, date formats and currency symbol. So I looked a little bit into and the system is comparable, still much work, so I’m not sure if really put to every start of a program, or maybe it would be better to put it to a separate unit and you have to include and invoke it by hand. We will discuss that.
Testprogram with Germany, USA and UK Locale Setting
Starting the same test program 3 times and changed the Locale Country setting in between. (For me rather funny that the currency format for positive and negative Values are so different not so nice if you have them in a table) But so far it works very nicely.
LCL has powerful packages for example the Chart component (or the Edit component with Highlighter). MUI already have some, but not so powerful and not available for all platforms (especially ARM-AROS and AROS64). I try to keep on the included basic classes to keep it compatible.
I used the very powerful TAChart component in Mapparium to show the Height/Speed trace of a track. Of course for MUIMapparium I also want to have that, so I started to implement a plot class for MUI. Not so powerful but already very nice with two Y-Axes, Zoom and Autoscale.
MUI Plot component start
It already works rather nicely, as first approach can be used like this.
I designed it already in a very abstract way in principle a TPaintBox for MUI and based on that the Plot class, that means I can use them in other programs as well.
Activated the localization for MUIMapparium currently only for english and german (of course ;-)) implemented also the local library unit for AmigaOS4 so localization is available on all platforms.
I also activated the AREXX interface currently only two commands are implemented: goto lat lon [zoom] to jump to a position and addwaypoint lat lon “Name” to create a waypoint. The Portname is the same as for Mapparium an example script can be found in rexx folder. The AREXX port does not work for AROS, Zune has no AREXX support currently.
I tried to compile it on AROS64 sadly the program did not work, it just freeze. Little bit strange sometimes it start but crash directly. I tried some other programs on AROS64 and they work rather nicely so why MUIMapparium not. The difference was easy it uses threads, finally I found the solution, the Critical Sections in FreePascal are mapped to SignalSemaphores of Amiga. In contrast to other OS the SignalSemaphores are not just simple pointers but a complicated structure. The given size there was ok for 32 bit Systems but for 64 bit the structure is much bigger. I included it for that release maybe someone want to try it 😉
Working on a very old bug. I’m not sure if someone noticed it, at least nobody reported it. The coordinate to pixel conversation was not very precise because it used a average resolution for every tile. This works well for higher zoom levels where the resolution does not change much inside a tile. But for lower zoom levels, especially the whole world picture this is certainly not right any easily visible when using way points. See for example Mapparium 0.6 on the right side of the image, all way points are (and tracks) are shifted to north. The solution was not very difficult but needed some thinking, basically a rounding error and precision problem.
MUIMapparium (Left) and Mapparium (right) Waypoint position comparison and german locale
I also start to play with localization. I never did that before, especially not in FreePascal but it’s not very complicated, just diligent work to replace all strings. So next version will also be available in german (and maybe later some more languages, at least I got an offer for french localization). There is one small problem with that, there is no locale library unit in FreePascal for AmigaOS4 so either I make some defines to turn it off for OS4 or implement the library unit.
Had some time to work a little bit on MUIMapparium, mainly implemented way points and tracks including loading and saving, same formats as Mapparium. Due to multiple requests I created a OS4 version again, but I have no way to test it. Still it’s only a very early version of MUIMapparium.
At Amigacoding.de FreePascal got a own Subforum inside the Language Section. Currently the Freepascal@Amigasystems fans are scattered over different Forums (mostly the Platform forums, like morph.zone, aros-exec, amiga.org, lazarus forum). But there are not much so it would be nice to centralize them to one Forum. Amigacoding.de is a nice idea to have a developer forum for ALL Amiga Platforms, sadly it’s not much in use or known. I wish this would change (even a little doubt). So if you are reading this, step by at the forum a leave a little message, what do you want for FPC, ideas, projects, help.. whatever or just hello world 😉
I started to make a tutorial for FreePascal on Amiga System, it should not be a Pascal tutorial but an Amiga with Pascal experiment. First one only cares about how to use FP-IDE, write and compile an Hello World. Next one would be about Intuition Window and drawing. Later maybe some MUI. There are some such Tutorials for C but mostly they only show how to do, my plan is more to really create a program. I plan to make the Tutorial in german and english.
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.
We (ChainQ and me) activated the section linking for the other Amiga Platforms as well. Freepascal for MorphOS for example will now also use vasm and vlink with section linking. The mentioned MUI demo for example has a size of 82k on MorphOS, so a little bit bigger as on Amiga 68k. Sadly vasm and vlink does not exist for AROS currently (except 68k of course) so there we are bind to the GNU tools. But the AROS ld is much more recent so it supports section linking already. The sizes of the MUI demo for the AROS Platforms: i386: 83k, ARM: 86k, x86_64: 144k. Sadly on AmigaOS4 it still not work, it still needs some fixing in the linker and startup code. Of course it’s nice to have this small sizes on NG Amigas, but more important on the 68k Platform, maybe you remember the compilation attempt on a real Amiga (so not UAE) which needed around 3 minutes and 160 MB RAM. I retried that with vasm and vlink today. It is smaller (1.6 MB instead of 6.5 MB) and also need less RAM for compiling and linking (around 100 MB instead of 160 MB), really nice. The speed does not really change, because it is limited by the Harddisk speed, which is around 1.2 MB/s only for my A1200. I’m thinking to use the SCSI of Blizzard 1260 but I need a fast SCSI to SATA Adpater or so, the one I found in Internet seems not so good, no synchronous transfer, questionable compatibility with the SCSI interface of Blizzard.