Again a year passed so I will try to give a short summary about things going on in the Freepascal world for Amiga-style systems.
In Januar 2016 a big change in Freepascal was done to fix the Varargs version of the amiga library version. All “array of const” are replaced with the better “array of PtrUInt” which is much better to emulate the open end parameter list
A little funny new experience started also in March. I created the first 64Bit ABIv1 AROS distribution. Mainly, of course because I need a test field for the FreePascal AROS x64. For me x64 would be the perfect successor of the i386-aros ABIv1. My suggestion for AROS developer would be to leave i386 ABIv0 as it is, backport changes to there. And change then to x64 ABIv1 (and do not use/promote i386 ABIv1). But the x64 AROS still need much work, many things still crash, much code still cast Pointers to integer so not 64bit ready. This is also the main reason the 64bit distribution did not get much new version, not much changed with the problems there, I retest the usual problems from time to time. Also the FPC 64bit had big problems, which I found out end of 2016 are mainly alignment problems, where AROS made it’s own life much harder than it should be. (reminder “stacked int”s)
EdiSyn got a new Version with some bugfixes and basic printing support. End of year it got also a ARM version of EdiSyn to public with some more advanced features.
I also tried EdiSyn on MorphOS and Amiga. But both have some problems because of the different behavior of MUI and Zune. And I did not took much work on it because on MorphOS there is already a very good Editor with syntax highlighting and on Amiga m68k it’s just too slow. But in principle it works just LCL need some more work.
LCL on a native Amiga got some improvements to work also if no Graphic card is present, like my A1200 and also ported the usual suspects to m68k Amiga.
I used already a Lazarus on Linux to cross compile to AROS i386, in April I created a Lazarus which can cross compile for all supported Platforms (AmigaOS 3, AROS, MorphOS). Because it worked to nicely I planed to release a Lazarus for Linux including the binutils and cross compilers for all Amiga systems. But I noticed it is very difficult, even to write a Manual how to install such a systems. Therefore I decided to create a virtual machine which includes Lazarus, cross compilers and binutils for all Amiga Systems. After Amiga OS 4 was added to Freepascal and LCL I released a 2nd Version including the Amiga OS 4 binutils and cross compiler.
ChainQ implemented FreePascal for OS4 long time before already but because of changes in FreePascal and without a maintainer it did not compile anymore. In April ChainQ resurrected it and fixed some basic things, make it self compiling again. Then I took the lead and implemented some OS4units bring FP-IDE to work and finally the LCL with the usual suspects for OS4. Which resulted to a Amiga OS 4 FPC release including LCL. I will continue to maintain the OS4 fpc but will not improve it much more, maybe someone will appear to continue it especially with the unusual interfaces can be found on AmigaOS4.
I continued to work on applications using my LCL. This time I got the idea to create a Map application showing routes of my bike GPS. I played around with google maps API and openstreet API. Openstreetmap is much better because google maps you are forced to use the google libs which is difficult at AROS. It get somereleasesforallavailableplatforms. I also experimented with GPS support, first via a extra program later also directly inside Mapparium, which is still not released.
Long Time before I got the direct linking of C static objects to freepascal programs at AROS to work, which was really nice, but no real program resulted from it. On magoriums work on mikmod, I got an idea for a Delitracker like program for AROS, to Play my old modules. I results into my first native Zune program (so without LCL wrapper) ZuPaPlayer. And because Delitracker is working directly on MorphOS and Amiga I concentratedonAROS.
There I also noticed its rather difficult to write MUI applications in Freepascal. In C there are many many macros to make it easier, but they are not directly possible to convert to pascal. There is a muihelper unit in MorphOS with some starts to make it easier. I moved it to ami-extra to make it available to all platforms and extended it a lot. To test and prove the usability of it I started to port the example codes of the official MUI 3.8 release. On Amiga it works very nice on AROS it shows very good the differences of MUI and Zune.
Because ChainQ included support for 68000 processor which need some more alignment care. Because of this I created a little RTL for Workbench 1.3 which is really difficult because much things are not available.
Worked a little bit more with GPS. At Aros-Exec, someone was so kind to test and other GPS with the program seems he also found one which works.
I put all things together and added some more debug output. In principle its still only a tool to learn how to operate GPS devices to build to Mapparium later. But in fact it’s also a nice little tool to play with. The record track function was so easy to implement so it could be a more lightweight tool to record Tracks, instead of the big Mapparium. It even works on Amiga without GFX-card (unlike Mapparium).
It got an own page, on the Mapparium page it would be too messy. But I don’t think they will be much updates on the little program, maybe later I will clean up a bit and put the source to github.
A new Mapparium release bring the image position showing to public including some AREXX commandos for it. But there are more changes. Finally I added a Menu for the Main Window. There are some problems with the menu on MorphOS, and I want to prevent bug announcement about this. I should really again try to find a clue about it. Besides this added overall statistics.
On request I added a nice little feature to Mapparium. It can now extract GPS informations saved in the EXIF of JPG photos. Usually smartphones and better cameras with GPS chips add them to the photos.
Really nice to remember where the photos are taken. a little preview of the image is included, sadly the JPG loading is very slow on MorphOS. I’m not sure whats the reason for this maybe some x86 optimization or general endian problem. So I decided to make the preview with a small preview of the image loaded and call MultiView to show the whole image on request. Mostly the small image is enough to have an idea whats on it. And with MultiView you can inspect in detail. Of course it would be nice to make it configurable later.
Little movie to show how it will work:
The GPS support will have to wait a version more I think, still need a lot of work, and if included track recording and so on should also be implemented, so still a lot of work.
Support for GPS devices will be a nice thing to have in Mapparium. The GPS devices mostly use a protocol name NMEA via serial connection, nowadays mostly via USB2Serial adapter. I own a old Garmin GPS with serial cable and a newer USB GPS device.
The main problem is that my PowerMacG5 Computer does not have a serial interface. But I found out that my USB GPS device can work, by forcing the endpoint 0 it to usbmodem.device, sadly it does not connect by default to this driver, so you first have to force and save it.
So I wrote a little test program to read the serial data from the GPS and parse the NMEA data.
My old Garmin GPS has a nice little interface (device LCD display) to show the position, satellites and other properties. I created a little GUI which look rather the same to visualize the data. And it works really nice for my device.
Currently it only works for MorphOS and AROS, in principle one could try to forward the serial interface to WinUAE and use it on m68k Amiga.
The new Mapparium has some basic route calculation support. I found two usable services, YOUR and OpenLS. Both have positive and negative sides, YOUR is much more reliable but only support the orders as text without coordinates where the direction order is active. OpenLS had on my tests some speed issues, sometimes very slow, even 1 day offline as it seems, but it supplies orders also with position informations.
FIX: AROS invisible search text
ADD: Routing calculation via YOUR or OpenLS
FIX: better Prefs window
ADD: Save/load routes from GPX
CHG: Open TrackView or RouteView on Show/Edit Button
I got a question, if I will continue with my RSS reader I started a while before. So I searched for it, nice, it’s still on the backup 😛 and it still compiles. The home made HTML parser and print looks still strange, and the whole program is just a start. In fact I did this only to fiddle around with XML/Networking, tried some different RSS feeds all (in the list) seemed to work nicely. But to make a real usable program out of it, I was and I’m still too lazy :-P. And I also don’t think there is a real use for RSS today and every Browser has it already build in. So as an answer I’m not sure if I will ever continue it, Sorry.
I got already some requests for easy route planning inside Mapparium, for me thats not so important, because mostly I just drive without a plan. But it’s funny to play around. In fact I plan both ways of planning, online search “from to” and manual planing by defining some points. But first make the online search, rather easy with “YOUR”. Sadly the by turn announcements are only supplied as text wit no relations to the route. That means you cannot click onto a announcement and zoom to the map where it should happen. I found another one from the university of Heidelberg, and it has map coordinates for every turn. But today when I tried to implement it’s offline :-O I’m a little bit hesitated to include such a service, if it is this unstable to use. Especially because it’s not just offline, but just lagging some minutes to timeout, which is very annoying, because it looks like the application is crashed. (But just waiting for the answer.)
New Version of Mapparium for all Amiga systems.
Most important changes are, AREXX Port (not available on AROS, due to Zune restriction), Find by IP, Check position, localized search and support for Garmin FIT data. Have fun for me it works already better than my other route inspector programs, I also use it on Linux as my default. I just notice when adding many routes it becomes a litte messy, because the start of every route is the same, maybe I need an option to hide routes from the view.
ADD: Clear HD Cache by Button in Prefs to a certain zoom level
ADD: Find current position (by ip)
ADD: Search position by ip (type: ip:x.x.x.x to search)
ADD: Get address for current position
ADD: Zoom in by double mouse click
ADD: AREXX port with commands “goto” and “addwaypoint”
Polluks wrote a little AREXX script to extract positions from JPG exif informations to show on the map, it also create geo: URIs suitable for Mapparium. He also asked me if it would be possible to include AREXX support directly to Mapparium. I always played with the idea to try some AREXX support things, but never had a reason. In principle is rather easy to get a message and return a error value.
I added two simple commands to Mapparium, goto and addwaypoint.
Mapparium with AREXX
At AROS sadly I didn’t get the AREXX (or Regina) to work, thats the reason I implement for Amiga Classic at the moment.