Thursday, October 29, 2015

Mandelbrot Revisited

Now that some of the more tedious stuff is in place, it is time to look if we can get some more programs to work. At the moment, no WarpOS program works directly. First it has to be patched so the AmigaOS loads the program into sonnet memory instead of Amiga memory (see the sonnetpatch program for that on git).

Then all kinds of memory requests can be made by the program. As FastMem has the highest priority, it ends up allocating this instead of sonnet memory. That's fine for 68K only programs, but not for our WarpOS programs we want to run on the sonnet. For now, a simple patch has been made that redirects memory allocations from PPC programs. The patch just looks at the last 4 characters of the CLI name and redirects if it is 1005 (for example Voxelspace_1005). It is not ideal, but it works for now (see the InitSonnet program, also on git).

One of the more simple programs, yet visually nice to look at is FlashMandelWOS. Here's a link from youtube where it runs on a 66MHz 68060 and a 200MHz 603e.

So we patched the program using sonnetpatch, then we just rename it to FlashMandelWOS_1005 and this is the result:

This is an example of one of the programs which plays nice with the two different OSes (AmigaOS & WarpOS). The requesters come up slowly as it is done by the 68K accessing the slow (from the 68K perspective) sonnet memory, but the speed of program itself is very nice.

Next up is to get some programs working which don't play nice. This is mostly during the start-up of the program. To do this we have to intercept Amiga RAM access by the PPC and redirect them to the 68K and direct the result back to the PPC. This is slow, but if it is only done during start-up (for example QuakeWOS checks the front most screen directly from the intuition library) it may be unnoticeable.

For now, let's end with another teaser.


No comments:

Post a Comment