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.
Still playing with raytracing (so 3D calculations without GL or so) and other 3D Stuff. Magorium converted a nice little raytracing program from C to Pascal. It creates a random scene and calculate it with high precision. It makes a nice pictures. It is using SDL for display and threading, it seems the SDL Threads do not work, so I changed that to use Pascal Threads and now it is working nicely. Again a nice program for SMP 😛 already ready to use multiple threads (at Linux it runs fine with 8 Threads)
After long time I did again a little bit raytracing stuff, magorium found some source, I reviewed some of my old sources. I would be a perfect thing for the coming AROS SMP, ok I guess it will not appear so soon but it’s really a nice thing.
Notice the multicolor shadows and the multiple refelections.
I never worked with SDL before so I searched for a little tutorial for it and came across a YT video showing SDL game making with freepascal YouTube Link.
I tested the source and applied the special changes for AROS (basically to initialize the SDL and other link libs) and it works really a nice tiny game. I will look more to source to understand the SDL behind it. But first of course a little video
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.
Found a bug that the FP-IDE does not save it’s settings, like the last used size, recent files or Clipboard. All this Data are saved into the fp.dsk file in the same folder where the fp executable resists. I checked it and the file was just zero. I remember that I fixed that problem already once, but It could be that this was before FPC entered the official FreePascal repository and this change did not make it.
I checked on the old branch and really found it. The problem is that a seek behind the end of the file does not work on Amiga systems. The FreePascal Seek documentation does not define what should happen if you seek behind the end of the file. But it seems FP-IDE assumes it fills the File with zeros from the end of file to the new position. I included a fix for it and it nicely work on Amiga m68k. But on AROS it stays 0 bytes after some more debugging I noticed it writes the file successfully, but then at the end it gets reseted to 0 bytes. The call doing that is truncate, which resolves to SetFileSize() on the AROS size. It seems this function does not work as expected or I misunderstand it. Wrote a little test program and really if you write 4096 bytes to a file and try to SetFileSize to a 1024 bytes you get a 0 byte file. a Retest on Amiga results into a 1024 bytes files, as expected. Strange that such a basic function should be non functional in AROS and nobody noticed. The bug seems to be present for ABIv0 and ABIv1 as well. So nothing to do for me here.
This days I used the FP-IDE a lot on a native AGA-Amiga1200 and it is really usable, but I noticed the FPC archive for m68k-amiga is very big for a real Amiga. The download and unpacking needs ages so I got an idea to make a small Release for Amiga which only contains the most important RTL and Amiga units. Today I found some time to create such an archive. It is 6 MB download and around 20 MB after unpacking (the complete archive is around 52MB and 305MB after unpacking). Both archives are available on the nightly page.
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.