o1i's Planet AROS

December 30, 2016


FinalWriter for Windows..

While searching for some old FinalWriter documents of mine (which I have so far not yet found..), I discovered the old Windows FinalWriter Demo Version..

by noreply@blogger.com (o1i) at December 30, 2016 09:09 AM

Icaros Desktop

Thank you and have a really nice 2017!

Hello, this will probably be the last post on this site for this year. So, first of all, I would like to thank everyone who followed us up to the end of 2016 and wish a happy happy happy 2017 to whoever is reading. Then, I need to apologize. Before building the X-mas preview of Icaros 2.2 I missed a little mistake in S:Icaros-Sequence, which makes a missing Libs error appear during startup, in

by Paolo Besser (noreply@blogger.com) at December 30, 2016 01:10 AM

December 27, 2016


Testing the GUI

and enabling some hardware ..

Not that those are working (haven't tried), but nice that they show up at least.

by noreply@blogger.com (o1i) at December 27, 2016 11:00 AM

December 21, 2016

Icaros Desktop

Icaros Desktop 2.2 X-Mas Special with Final Writer

Merry Christmas and Happy New Year to everyone! Icaros Desktop is proud to announce the immediate availability of Icaros Desktop 2.2 X-Mas Special Edition, a brand new version of your favourite AROS distribution, based on the latest AROS core files. Although this isn't the final 2.2 release of Icaros Desktop, it already brings most of its new features, including the ability to run native (as

by Paolo Besser (noreply@blogger.com) at December 21, 2016 06:00 PM


Bug fixed (hopefully) - part 2

The problem with bugfixes, that try to fix randomly appearing bugs, is, that you can never be sure to have it really fixed. So one day after the last post the bug appeared again, just under a little bit different circumstances.

So back to bug-hunting again, but I was sure now, that the problem is in the Zune Listclass, not in my code. So after some time I discovered, that the Listclass stores the sizes of the columns of each line in an array, which gets allocated at object creation time.

WinUAE does not create Listviews with a certain amount of columns, but increases the amount of columns after object creation. So in my Zune-equivalent columns got added after OM_NEW, too. Which caused the dimensions-array to grow outside of its bounds.

So my last commit to the AROS-SVN now should fix this issue and the bug should be gone now  (until my next post here shows otherwise).

The really sad thing is that I added a note in the List-Class some time ago, that this array might cause problems, if the amount of columns gets increased. After quite some bug-hunting I landed exactly at this comment.. So remember: Always fix the code at once. Or at least, remember you own remarks.

Scary as it is, looking back one year, I posted a screenshot already, which would be suitable for this post , too. Fast progress this is not :-(.

by noreply@blogger.com (o1i) at December 21, 2016 02:08 PM

December 02, 2016

Icaros Desktop

Hybridation of Icaros goes on...

Two weeks after announcing the "hybridation" of Icaros Desktop (meaning that you will be able to run it either natively, as usual, OR hosted on Linux, with the same installation medium), works on this process continues. I've enhanced many steps of the "hosted-install.sh" script that you'll find in the root directory of the installation CD (or DVD, for the Live! edition) and I've started

by Paolo Besser (noreply@blogger.com) at December 02, 2016 05:31 PM

November 23, 2016


Bug fixed (hopefully)

Not much progress on WinUAE on AROS the last months.. why?

I never got the harddrive tab working reliable. Adding a new harddrive with the gui always resulted in a TLSF memory allocation error and I had no idea, why. The pool was damaged somewhere..

So I searched and debugged for .. many hours. Too many, so I always stopped hunting for the bug after maybe 5 hours and gave up. And restarted weeks later. And restarted.. and the last start was finally successful :-).

The gui in that AROS WinUAE-port is quite different from an "usual" zune gui: It is not created at once, but added with single calls gradually, as the gui is built by the original WinUAE gui sources and some glue code (remember gtk-mui? now the same happened with the windows gui tollkit ;-) ).

So it calls MUIA_List_Format no only once or twice, but in one place more often than 6 times, enlarging the format by 1 every time. Until 6 everything was fine, 7 it crashed. When I discovered this yesterday, I had at least a reproduce-able crash. And today I think I found the culprit: In the AROS list.c code some memory was not cleared in ParseListFormat, before using it. And so it happened, that there was no terminating NULL pointer at the end of one array, but some garbage.. which caused the crash most likely.

After adding MEMF_CLEAR, it finally seems to be reliable:

Quite some hours wasted here..

by noreply@blogger.com (o1i) at November 23, 2016 11:14 AM

November 17, 2016

Icaros Desktop

Native or hosted on Linux? Both!

I've been asked many times for a Linux-hosted version of Icaros Desktop but, for many motivations, I've always declined. First of all, I've always thought that one of the main goals of Icaros Desktop would have been motivating coders and users to use and improve the native flavours of AROS: why spending so many time and efforts to make AROS work on the bare metal, if anyone else would have hosted

by Paolo Besser (noreply@blogger.com) at November 17, 2016 12:01 AM

November 11, 2016

Icaros Desktop

Some news about Icaros installation

I didn't write anything fancy for a while, so it's time to add some news here. This time, I will talk about next Icaros' installation. As you may know, this procedure is based on two souls: AROS' InstallAROS tool and Icaros' own Post-Install-Script. The former creates partitions, copies all AROS and Icaros stuff onto the hard drive and install boot loader. The latter unpacks Icaros Extras and

by Paolo Besser (noreply@blogger.com) at November 11, 2016 05:02 PM

September 14, 2016

Icaros Desktop

Icaros Desktop 2.1.3 now available

Three months after v2.1.2 release, we've built a little update which fixes some of the issues found with applications and introduces some new ones as well. Almost no system file has been updated, but with this release you'll find a brand new version of Mapparium (which now allows to compute routes), a new, more secure build of OWB with upgraded openssl to 1.0.1t, the latest version of SimpleMail

by Paolo Besser (noreply@blogger.com) at September 14, 2016 10:08 PM

September 09, 2016


libtrace – a library function tracer for FS-UAE

During development traces are a really helpful source of information when doing debugging or if you simply want to understand how a system works. When developing for the classic Amiga platform you learn a lot about the inner workings of applications if you could see what library functions they call and what parameters they pass in and get out. You can observe its behavior without having the source code and all that almost live…

Here libtrace comes into play: Its a debugging extension I have written for the famous FS-UAE Amiga emulator that allows you to take this look behind the scenes of the system: You can trace any library and any function set and you will see what function was called by printing its name, the arguments and the values passed in an out…

How does it work?

Build FS-UAE with libtrace

First you need to build a new FS-UAE from source with the libtrace feature. Use my libtrace branch on GitHub for this.

Configure Tracing

You need to write a small config text file that defines the trace profile, i.e. what libraries you want to see and what functions.

Name the file e.g. libtrace.cfg with the following contents:


Here we will trace dos.library and exec.library. In dos we want to see all functions (*) but not the Open() call. In exec only the InitResident() function is traced. The .fd files need to reside on your host in the given directory (here in the fd folder of the current directory). Take them from the AmigaOS NDK.

See the libtrace documentation for more details on the config file

Enable Tracing

Now run FS-UAE and enter the debugger with F11+d.

In the Debugger load the config file and enable tracing:

Lc 'libtrace.cfg'
Le 1

Exit the debugger and reset your Amiga to activate the trace (F11+r).

With the new Amiga startup you should see the traces popping in on your console.

It looks like this:

@00f81014 0000f8c8:Initial CLI exec InitResident(resident[a1]=00fbf080, segList[d1]=00000000)
@00fbf100 0000f8c8:Initial CLI dos CreateProc(name[d1]=00fbf09a, pri[d2]=00000000, segList[d3]=003efcdb, stackSize[d4]=00000800)
@00fbf100 0000f8c8:Initial CLI dos CreateProc -> d0=0001bd44
@00f81014 0000f8c8:Initial CLI exec InitResident -> d0=000160e0
@00fb85f0 0001c620:CON dos WaitPkt()
@00fb85f0 0001c620:CON dos WaitPkt -> d0=0001c5f0
@00fb85f0 0001c620:CON dos [DosPkt: Type=00000000 Args=00005883,00000000,0000084b,00000000 Res=00000000,00000000]
@00fb8490 0001c620:CON dos StrToLong(string[d1]=0001e06c, value[d2]=0001d0b8)
@00fb8490 0001c620:CON dos StrToLong -> d0=ffffffff

You’ll see the PC calling the function, the exec task with name, the lib and finally the function with all argument names and values. A second line reports the return of the function and prints the result value.

You can filter the trace and focus on a single task if you give its name in the debugger with the Lt option. Furthermore, you can write the traces to a file instead of the console with the Lo command.

Lt 'CON'
Lo 'out.txt'

That’s it… Read the libtrace doc for more details and a technical description of the inner workings of this feature.

Have Fun and Happy Amiga Coding!

by lallafa at September 09, 2016 08:15 PM

August 22, 2016


Well, Its been a while....

As ever hacking on AROS has proving to take up much of my time, too much to even think about posting on my blog. But here goes ..

Since the last update ive been hacking away on a number of things, mainly my Gfx subsystem update. So far I have most drivers adapted but need to finish implementing the software cursor support before they can all be used properly.

The changes themselves comprise of a number of things -:

# Separating the gfx.hidd into a hardware driver and display parts. This is to allow one gfx device to expose multiple displays to AROS, and has involved a number of changes to how the gfx subsystem works internally. Hopefully sometime in the near future I can make a more detailed post about the changes.

# Making the gfx hardware drivers real "AROS" hardware drivers - that way they can be enumerated using the hardware subsystem and exposed in apps such as sysexplorer.

# Adjusting all the gfx components and stuff which touches the affected interfaces to work again.

# Adjust the intelgma driver to use the base software compositor - its actually faster and has more features than the one that is embedded in the driver (and is very out of synch with the main code)

There where also a few bugs encountered in the gfx susbsytem that after fixing make some of the planar display modes work better (especially on hi-color displays).

I'm happy with the changes so far, and hope to get the remaining stuff done and pushed to the AROS repo as soon as possible.

The next thing I've been playing with is updating mesa. So far I have the IntelGMA driver and software rasterizer built using the newest mesa code (as well as the core mesa components), but until the nouveau code is updated cant push the changes to SVN.  Testing with IntelGMA and the Gfx subsystem updates yields roughly a 20% improvement in performance on Intel atom based systems which isn't too shabby.

Ive also done some massive work to the build system over the past 2 years so that we can finally now build working binaries with the latest GNU toolchains. Another part of these changes is to prepare the build system to use other toolchains (LLVM), however there is still some work on the toolchains themselves before this can be taken advantage of.

My final project though, has been an interesting ride. I've been working on getting the FinalWriter 6 codebase to build with gcc, aswell as fixing it to run on AROS/64bit.  It was surprisingly easy to get the actual code compiled but took a few weeks to dig through some of the issues caused by using a different toolchain than it was originally written for, and finding the issues stopping it from running on 64bit. Evenetualy we managed to bring it up though, and while it ran there where still some problems and visible gfx issues.

Over the past week or 2 I have been working on adapting the GUI code to use localization via the locale.library, and have been quite productive with it (about 80% done, including the german translation!). So at the weekend I decided to tackle a few of those Gfx niggles. It was an interesting experience, and after some soul searching and head scratching I managed to get to the bottom of them!

A bit of code fixing later and the rendering is now correct. There was a bug needing fixed in AROS's vsprite/bob handling, which resulted in the pop up menus displaying incorrectly, and also  the base finalwriter shell class used hard coded GUI elements which required a bit of reworking (as in adapted to be a subclass of sysiclass) but finally the results spoke for themselves! it now has AROS's checkbox, radio and (themed) window scroller arrow gadgets, making it fit in much better with the rest of the system.

by noreply@blogger.com (Kalamatee) at August 22, 2016 02:21 AM

July 28, 2016


romdisk 0.1 released

Recently, I was thinking about a minimal Amiga emulation setup that is required to run Exec and Dos from a Kickstart ROM image. Think of a reference platform for vamos. I soon came to the conclusion that all kinds of boot types result in accessing a device that provides the requested file system blocks. As a consequence the emulation also needs to emulate some kind of device accesses next to the essential CPU, memory, and CIA (timer, serial) emulation we will need at least. Trackdisk device needs custom chip support for track reading, while scsi.device needs some IDE host emulation.

If you compare a classic Amiga with modern embedded devices (like a Raspi or a Beagleboard) you see a difference: the modern devices often allow to boot directly their filesystem of the on-board flash. “Why not create a ROM bootable device for Amigas?” was the next question that came to my mind. With such a device it is sufficient to emulate CPU and memory and the Amiga can already boot…

The result of this initial idea is a small project called romdisk: It offers a romdisk.device that can auto-boot a modern classic Amiga (OS 2.x or 3.x) and also a tool to embed disk images into an ext. ROM image. Without compression you get ultra fast data access, but with compression you can even fit a complete Workbench floppy disk image (880 KiB) into your 512 KiB ext. ROM.

The first public release is now available and can be found on my new romdisk project page!

While it started as a helper project for my emulation tests, I am sure you can think of new uses for romdisks, too. E.g. some diagnosis tools that do not need external devices to run, or a rom disk stub that loads non-rommable modules and then heads over to full boot from hard disk, or a small network boot disk that loads the main file system via network…

Have Fun!

by lallafa at July 28, 2016 07:02 PM

July 06, 2016


EmuLa v1.4 available for download!

Hello all,
I'm glad to announce that the first public release of EmuLa is available for AROS i386.

EmuLa features an unique approach to roms recognition based on the file crc: this method allows EmuLa to be extremely precise in rom recognition, this way the user is never asked to resolve ambiguities.

July 06, 2016 06:12 PM

June 28, 2016


Breaking the silence

I did some smaller things in WinUAE, but I was quite lacking motivation and time the last few months..

So today I decided to do something just for fun:

Who wants ssh on AROS?

Disclaimer: As always, this is just a first and quick port of plink, which is part of the putty package. Not meant for real life usage. But quite stable, as it seems already.

by noreply@blogger.com (o1i) at June 28, 2016 02:58 PM