.
Annunci online

All that comes in the mind of an italian guy moved to california
TECNOLOGIE
28 giugno 2012
Technologies: AROS: What is the state of Developing tools for middle and advanced Users?

On the begin of June 2012, a discussion on Amigaworld.net started by PhantomInterrogative introduced the experience made from the ADAM community (yes, ADAM, the home computer extension for the colecovision), left in the cold from the Coleco bankrupt in 1984; the post, summarized, tells how, in order to keep alive the community, users had to make the 'paradigm shift' to become developers of their own software; while a comparison between the two situations cannot be easily made (ADAM was not a successful machine and a 8-bit one, only a dozen users remain so far), however developers are a nowadays a rare breed among Amiga OSes, knowledgeable developers even more; due to the increasing age, even find adequate documentation for the Innards of the Amiga related OSes is pretty difficult, though efforts like the recent Amiga Wiki from Hyperion, the AROS wikibooks for users and for developers and several web sites that provide transpositions from the AmigaGuide versions exists; therefore a similar paradigm shift is probably a good idea even in the Amiga/MorphOs/AROS communities.

However, programming so far has not a task for everybody in the Amiga universe at least since the demise of Commodore (and the new system, unlike the old 8-bits, does not provide a main programming language in front of the face of the user, but that is another topic).

Right now the most rewarding way to build a proficient program in a NG Amiga system has indeed been using C/C++, and that is not on everybody skillset; other operating systems however are actually providing alternative languages that can be compiled or executed as runtime; well known are Java, Python, Lua, Visual Basic, VB.NET, etc - not to mention alternate toolkits such Flash/AIR or the latest trend HTML5; those languages and runtimes have a less steep learning curve and in some way is possible for somebody to produce simple programs or intermediate utilities and games; those rapid development tools can provide a shortcut for hobby programmers to use the Amiga systems in a more proficient way if available; but What rapid development tools (or in some cases what development tools at all) are actually available for AROS  so far?

NOTE: on the scope of the article, as middle and advanced user is meant somebody with a good experience with the system and a basic programming experience like Basic,HTML or basic javascript, able to learn at least new language basic skills with the help of tutorials and reverse engineering examples.


IDEs and Editors

Actually in order to write either code or fast text, in AROS there are four main editors available; the first is the System Editor; does not support syntax highlighting and has very basic features as copy/paste and find,however has a tabbed view that allows to have more files open at once.

For more traditionalistic coders, a port of Vim is available for AROS made by Hitchhikr; not the most recent port and am unsure whether is still working, but provides all main Vim features and syntax highlighting; usually distributed with Icaros Desktop up to 2009 as far as i know, is available on the AROS archives here.

then there is NoWinEd by Sh1nKurO; born as a base text editor to be used in a never taked-off magazine, is available throughout all Amiga systems with different look and features according to the version of MUI/Zune available; the common ones are: tabbed display, autosave, handling of UTF-8 files and autosave and auto-backup; other versions beside AROS one -due to some still unfixed Zune shortcomings - also support drag and drop of files.

Annotate! is so far the most advanced text editor on AROS; designed by Doug Bakewell then updated and maintained by Daniel Westerberg is distributed under the label Onyxsoft as GPL software; supports multiple tabs,syntax highlighting, advanced find/replace, macros, an AREXX port and - though some GUI design choices might look a bit unconventional, like the scrollbar without arrows on the left - do its own job pretty well. I used it to code my experiments with lua/zulu and it behaved pretty good. Had to investigate the xml syntax file in order to personalize it but, if you know xml, is a pretty trivial task since the file is pretty self-explanatory It can be downloaded here.

There is one Integrated Development Environments or IDE officially,called Murks!IDE that, in theory, could be used to develop applications under AROS, however i am not sure whether is still actively maintained since the files on the sourceforge.net repository are from January 2010. Murks looks kinda primitive at first sight and does not support syntax highlighting; it does however supports tabs and can be used to compile C and C++ projects.

In 2010 an user called Proto started work on an alternate IDE called Ganymede that should have, in its intentions, cross-platform and commercial; the development thread on Aros-Exec is here where Proto shown screenshot and even videos of its incoming creature; Steve 'ClusterUk' Jones was in contact with him and had occasion to test some development builds, however in November 2011, Steve declared in the same thread that the development of Ganymede stalled; from the images and videos posted so far, Ganymede supported some interesting features, including syntax highlighting, a scintilla-style grouping of functions, a debugging report window; was also intention of Proto to find a way to support GDB for debugging. Personally i wonder if Proto could release its work done so far as open source and let the project be finished by other developers or if he is available to set a 'ransom' to free the code that might be collected via bounty;

The last IDE that want to mention is not native of AROS but is a pretty effective one especially for cross-platform productivity:  AmiDevCpp is a work of Heinz-Raphael "Heinz712" Reinke based on the free Development Environment WxDev-Cpp and Jocke "Zerohero"Birging 's Crosscompiler and runs on Windows. According to the AmiDevCpp web site, AmiDevCpp provides a comfortable Development Environment to Amiga Developers such as Project managment, Class Browser, Code completion and a lot more features; it also can be expanded with plug-ins that the web site call DevPaks.


PortablE

PortablE is a rewrite for modern systems of the original Amiga E, made by Chris Handley; it works translating the E code in C++ code and then amking it compile by the extension PEGCC in an executable. E language has been quite known under Amiga OS in the nineties, and after the fdevelopment of the original Amiga E language stopped in 2000, PortablE was one of those projects that took over the inheritance.

The PortablE web site explains more:

PortablE is capable of generating code for both the C++ (and AmigaE!) languages, which is then compiled to a proper executable. It supports Windows, AmigaOS3, AmigaOS4, AROS & MorphOS. (It can potentially support other OSes & generate code for other languages.)

PortablE has native executables for Windows, AmigaOS3, AmigaOS4, AROS (x86) & MorphOS, because PortablE is written in E itself!

It comes with portable modules to cover stuff like file & directory access, shell parameter parsing, graphics, sound & GUIs. These portable modules are NOT always supported by all OSes, especially not by Windows yet. You can find a complete list & description of all of them in the "Standard Functionality" document, but essentially Windows only supports Shell-like stuff.

Many Amiga modules are also provided for AmigaOS3/OS4/AROS/MorphOS: AmigaGuide, AmigaLib, Asl, Commodities, Console, DataTypes, Devices (inc. AHI & Timer), Diskfont, Dos, Exec, Gadgets, Gadtools, Graphics, Icon, Identify, IFF, IFFParse, Images, Intuition, Layers, Locale, Keymap, MPEGA, MUIMaster, Resources, ReqTools, RexxSysLib, Utility & Workbench. Plus part of class, mui/*_mcc, Other & Tools. Also 'libraries/ahi_sub' & 'libraries/cd_play'. (Additional modules can be added if there is interest, but the original idea for PortablE was to provide abstract modules that did not expose the OS.)

Additionally, some modules contributed by others are currently only available for some targets: 'mui/Lamp_mcc'(OS3/OS4), 'mui/TheBar_mcc'(OS3/OS4).

Modules that are specific to certain OSes: 'Picasso96API' (OS4), 'target/application' (OS4's application.library), 'target/cybergraphics' (AROS/MOS).

For Amiga-like OSes, 256MB of installed memory is the recommended minimum. A stack of at least 100KB is also required.


In the same web site is present a comprehensive documentation, links to the original E language documentation, and together with PortablE is possible to download several examples of tools and demos to compile and test.

Hollywood

Hollywood name is well known in the Amiga and AROS community; as a language syntax is between lua and Basic, which makes it quite easy to grasp; its actual incarnation is at version 5.0 and has been already used to build great tools on AROS such as the Amiga [AROS]Media Center and also small tools as Acuario (a screensaver), the image viewer LookHere, the profile manager for AROS Broadway and several games.

I asked Fabio 'Allanon' Falcucci, developer of AMC, of the SCUILib Hollywood Library (that provide tools to create advanced GUIs) and other applications made using Hollywood to write me an introduction and summary about its features and about Hollywood and AROS:

Hollywood is a great tool and a nice choice for all people looking for a simple yet powerful programming language, it offers many modern features and it is ideal for anyone that does not like all “C” stuff and weird constructs. It is based an Lua scripting language and its programs can be run interpreted or compiled, compiled programs are something like Java programs, they are compiled in bytecodes and linked with a JIT player that executes the code when launched. Speaking of AROS it’s a great resource for begginers but also for experienced programmers just because there aren’t much high level programming choices available to code under this operating system if we are excluding “C”. Nice examples of Hollywood are LoView and LookHere, two free image viewers done respectively by Tuxedo amd me, Dental Info and Dental Canal, both commercial products developed and sold by Ferrule Media, and AMC, a Media Center developed and sold by me.

One of the biggest advange of Hollywood is the complete compatibility between all supported OSes, if the programmer does not use explicitely platform dependant features the source code can be easily compiled for almost all OSes including AROS, Linux, Windows, OSX and all amigaish systems.

Hollywood states itself as a multimedia programming language oriented to make presentation and run interactive slides but with the latest release it have become more powerful offering commands to manage almost anything you can thing about: transition effects, pictures, videos, music, samples, sprites, layers, windows, they just some examples of object you can handle with Hollywood. Hollywood programs can interact with the users with the keyboard, mouse, pad and joystick. In my opinion it’s a perfect tool to develop 2d games (even complex games) as well as applications. With the latest release, 5.0, Hollywood exposes an interface for a plugin system: virtually there is no more limitations with plugin systems, anyone now have the tools to make additional plugin available for this great language; some examples released from the author are an XML parser, SVG support, Ogg Thora & Ogg Vorbis support, and some more available for free.
Unfortunately Hollywood it’s not perfect because it’s still lacks some features, in my opinion, that should be added; for example threads are not yet supported, and there is no support for 3D graphics, moreover 2D graphics are only partially hardware accelerated and this could lead easily to slowdowns when you fill the screen with animated and moving object. Another major missing piece is a GUI framework and it’s still missing because of the cross platform nature of Hollywood: there is no common GUI framework for all supported OSes. To try to fill this gap I have started a project to build a GUI framework coded with Hollywood, full platform independant. I’ve got nice results but my time is limited and actually the project is going quiet slowly, but this demonstrate again that actually Hollywood can be used for almost anything.
The good thing is that the author, Andreas Falkenhahn, is very active on this project and listen to the community resquests implementing features or modifying behaviours suggested by the user-base.

Concluding this brief summary about Hollywood I can say that actually it’s the only choice for AROS programmers (begginers or experienced) that does not like “C” (or does not have time to learn it) to unleash their creativity.

Fabio is also the owner and main contributor of the new blog Hollywood Tools, dedicated to tutorials, libraries and applications for all systems developed using Hollywood.

Together with Hollywood is provided, only for Amiga OS and MorphOS (probably due to the usual shortcomings of AROS), the Designer program; recently updated to version 5.0, it is a graphical frontend for Hollywood; according to the Airsoft Software website it is -beside a Multimedia editor for Hollywood - also a graphical editor that supports also the SVG format.

Considered the base requirements (kickstart 3, 68020, a board using Picasso96 or CyberGraphX) i might guess that Designer might be used via Janus UAE, but would like that someone that alredy tried to confirm or deny this.

Hollywood and Designer are commercial products and for pricing I refer towards the Airsoft Software website.

Amilua and Zulu

Whoever follows me knows that Amilua and zulu are among my favorite RAD tools on AROS; however, for the uninitiated will explain briefly that Amilua is a port of the scripting language Lua made by Matthias 'Mazze' Rustler with bindings to the Intuition interface and Zulu is a binding to Zune; lately other bindings have been added such as socket support and SQLite recently; Some interaction with AREXX and shell script is also possible parsing the Environment variables.

Using the syntax combined of Lua and the MUI class definitions is possible to create simple GUI programs and frontends; actually Zulu is powering the front-end of some utilities by Yannick Erb,including a nice weather widget, the Theme Manager and some utilities made by Steve Jones; an advantage of Amilua/Zulu is that the script can be launched from shell and from icon via icon tooltips so that will behave like an application; to write Amilua/zulu scripts any text editor can be used, however i personally like to propose Annotate, also because there are additional Syntax Highlighting extensions (one made by me some time ago) for Lua.

On the negative side of Amilua/Zulu is: first of all that the binding does not support callback hooks (events that call a function) and that prevents the building of more sophisticate interfaces; the existing apps need to redraw the app window in order to show updates and that might make the application look slow. Mazze once said that was thinking a way to enable callback hooks via Lua instructions rather than C like Zune is expecting; wish that some more developer might help Mazze in improve Amilua/Zulu that so far shown its power and potential once improved; personally would also love to see more bindings with Cairo and other (of course to be ported) graphical toolkits like WxWidgets; some impressive demos can be seen on the Lua all-in-one archive available for Windows and Linux; though not recent it still can be used to build fast tools and even videogames; an impressive one is this quake-style game using a binding with the irrlicht engine (like to see that ported too).

By the way Amilua and Zulu are included in the nightly builds and in every AROS distro, so is easy to try out. If you new to Lua, there are some good generic tutorials in this website, plus some good hints and discussions (some of my own experiments) in AROS-Exec.

AROS Ruby and Zuby

Dave "Misterdave" Webster has been working on porting Ruby on AROS; following what Mazze did with Amilua/zulu he created a binding with MUI that end up being called Zuby (my fault? :P); however, Dave improved the binding keeping it abstract so that, unlike zulu, is not strictly tied to the MUI syntax in building Interfaces; in fact Dave has made Zuby able to use XML documents as reference to build the interface, as he shown in its blog, using Glade GUI Builder XML as reference for zuby to buid the GUI for the example shown.

Since had no news about ArosRuby/Zuby at least since last February - when the last post appeared on Aros-Exec, I asked further information to MisterDave via PM and he kindly answered:

Don't worry, I haven't given up on arosruby What I have been trying to do in the past 6 months is to keep the version in the Mercurial repository (http://code.google.com/p/arosruby/) as the 'definitive' version, which should be of release quality more or less. I tend to bundle this up and post binaries on to Aminet and Aros Archives, although I haven't done so for a while. Ideally this should be stable enough to put into an AROS distribution or I could create a GUI installer for users to install the binary release themselves.

There are a couple of C extensions that I am working on:
 * the socket library - I have been trying on and off for about 3-4 months to get this to work, but I think that there is some incompatibility between the Unix socket API and the AROS socket API, despite them theoretically being the same. This may just be a bug in AROS that has been recently fixed. I will have to download a new nightly and check. This feature has been the tipping point for me before contacting Paolone and the other distro maintainers, however, I may just go ahead anyway and add the socket library later on.

* The other part is the Zuby extension which hooks into Zune/MUI and implements the same interface as Ruby-GTK for the Ruby programmer (http://ruby-gnome2.sourceforge.jp/). The advantage here is that I can just use the default Gnome GUI builder Glade and use 'ruby-glade-create-template' to generate the ruby stub code. Now the tricky thing is that my own version of the source for this was built rather quickly and experimentally so, while it does 'work', I need to get rid of some rough edges. What I need to do is to check this piece by piece and add it to the public source repository over time.

Regarding your question about your RAD article, I did set up a blog to talk about the development on arosruby back in February, however, I have only made one post so far. Hopefully this might give you a bit more of an idea about what I have planned. If you want to ask me some questions then, yes, I would be happy to. http://davewebster.wordpress.com/

As with most hobby projects, the day job takes its toll on one's free time, however, I am on holiday next week, so hopefully I can get some more stuff pushed into the Mercurial repository. The repository has an updating changelog, so hopefully this will give you a good idea in the future of what I add, however, please feel free to nag me :) http://code.google.com/p/arosruby/source/list

Have no experience with Ruby Language, but for beginners like me there are good platform semi-agnostic tutorials on nettuts that also include screencasts; that should give at least the basic notions to get dirty with it, and then as usual, hope there will be some extra hints in the source code of the examples included in AROSruby and Zuby, however anybody that will grasp the base concepts can also write their own tutorials to help spread the technology...

[UPDATE - Misterdave did let me know that since the final code quality of AROSRuby is still not satisfying, he did not put any binaries to dowload yet; however, if somebody want to beta-test AROSruby my advice is to get in otuch with him via PM in AROS-Exec or in its own blog. ]

XAMOS

Recently the user Mequa started the operation of building an AMOS interpreter , rewritten in C++ that uses SDL and can be compiled for the modern Amiga systems: X-AMOS is a brand new addition to the panorama of the languages available for AROS - the first build from the begin of June - but since the roots on the original AMOS code it is expected to gain popularity pretty fast. The implementation, according to Mequa itself, is not yet complete, as answered to an user from Mequa itself on this post on Amigaworld.net explains what still is missing to have a more detailed reimplementation:

First of all, GOTO is not yet implemented in XAMOS, but may be in a future build.

For...Next is also not yet implemented, though you can use While...Wend to get identical functionality. So the current program is not yet supported.

Let's assume, however, that a future version of XAMOS will implement For...Next in the same way as it currently does While...Wend. Then the jump-points of both the For and Next will be pre-calculated.

(Note that in AMOS, the "F" in "Next F" isn't needed, and does nothing on that line, besides the "syntactic salt" of having to match with the variable given in "For" if not omitted.)

So then, if XAMOS is extended to support For...Next, GOTO and line numbers, here's how that program will execute:
1) Print "I am going to Crash" ten times, and exit the For loop.
2) On the GOTO, jump back into the For loop, and print "I am going to Crash" once more.
3) On the "Next", jump back to the For (pre-calculated jump-point). Here is where AMOS would crash.
4) On the "For", F will be 10 or more, so jump to after the "Next".
5) Repeat from 2), giving an infinite loop, printing "I am going to Crash" repeatedly and with F either increasing or remaining at 10.

In this thread on AROS-exec, Mequa also draw a sort of a roadmap for the further development of XAMOS:

Not in any particular order:

- SDL features:
Full collision detection (needed for games, simple collision already possible)
Multiple screen support
Screen Clone
Bob/Sprite Hot Spots (handles) including with Abk support
Bob/Sprite/Screen priority switching
Rainbows (behind screens, simple implementation already done)
Graphical text

- Language features:
Full syntax error checking (may be a lot of work - also with AMAL)
Call functions without using ()
Use of "To" syntax instead of comma
Call procedures without using Proc
Variable scoping and Global/Shared (currently all variable are global)
For...Next (as well as While...Wend)
Goto/Gosub, labels, line numbers (for legacy - usage discouraged)
Print statements with ;
Data statements

- Extended language features from AMOS:
Call procedures as functions as well as using Param (extended from AMOS)
Custom datatypes (already implemented as static types only)
Simple object orientation (much groundwork already done)

- Compiler (to C++ source) including AMAL

- GUI features:
Cross-platform IDE (may not be AROS-compatible at first or may require a rewrite for AROS).
Possible syntax colouring (in future)
Integrated sprite bank viewer

Other languages/tools

Python

There have already been available builds of Python for AROS, since PyAROS around 2004 and then the port of Python 2.1 made by Stanislaw Szymczyk for the AROS self-compile bounty; however as far as i know nobody made any MUI binding for it (that might have maybe be called -to follow the tradition- ZuPy?) nor many of the libraries used in other systems such as PyGame have been ported yet.

MUIBuilder

MUIBuilder is a small utility that should help build MUI and Zune GUIs, created by Eric Troel and ported on AROS by Mazze; last version was a recompile of original 68k 2.3 sources and wasreleased on January 2011; despite it generates C code i guess that some medium-experienced developer can translate the soruces for zulu, being however aware of the usual amiulua/zulu shortcomings.

MUIBase

MuiBase is a relational database written for Amiga systems, Windows and Linux; has an internal LISP-type syntax language that allows to develop pretty complex applications and display it via ZUNE/MUI windows; through the language it is possible to define some export filters of the data as text (as far as i know no complex database formats are supported, rather CSV or similars to export).

FreePascal

FreePascal has been ported to AROS last year by Marcus 'Alb42' Sackrow; as from the Alb42 words "Lazarus is a RAD for Freepascal which is very easy to use, as GUI-API it uses the own LCL (which is a port of VCL of Delphi). IT can use variant Widgetsets, e.g. GTK, GTK2, QT, Win and some more."

Marcus made Freepascal able to generate Zune interfaces,even if not in a typical MUI fashion (with buttons statically positioned rather than the usual cascading resizeable approach of GUI; as from the latest news I know of, on March 2012 Markus was working on the port of Lazarus/LCL (that is also developed in FreePascal); the progress can be seen in its blog and in this AROS-Exec thread.

AREXX

AREXX might be considered outdated by some but so far is one of the most important pieces on Rapid development since allows applications that have a port to communicate and allows also IPC control; is known that the version used on AROS is derivated from Regina Rexx and has some incompatibilities with some Amiga AREXX commands; insome case this prevents some amiga scripts to work completely under AROS. Staf Verhagen ported Regina Rexx on AROS and,as far as i know, is trying to iron some of the incompatibilities when is not busy with the ABI v1.

This article purposedly omits some projects that are present in AROS but lack advanced functionalities, like SDLBasic, that in its actual AROS incarnation has basic drawing tools but no sprites, for example.

It was my intention with this article to attempt in provide an overview of what Rapid Development Tools under AROS are actually available and how powerful they are; those tools that can allow some less advanced user to build basic applications and utilities in order to utilize AROS as base for their own projects. The situation is indeeed improved in the latest years despite i think there is still a good amount of stuff to be done.

Feel free to comment with correction, updates, additions to this article incase i omitted something or made mistakes.


TECNOLOGIE
28 maggio 2009
Diary:Technologies:AROS: the long and painful road to 1.0

I needed to take a leave a bit from the blog scene because my main laptop has been infected badly by a virus so that had to reformat and reinstall my OS: plus as bonus the backup DVDs i made looks like have errors and so i might be unable to recover my old AROS virtual disk: thank god i used to work my lua scripts on Windows and have copies on my SD card.

Anyway, despite Przemyslaw "Qus" Szczygielsky fixed its TCPPrefs control panel for AROS,this does not mean that I should abandon my lua Network config project: the problems withmy computer stopped me for a while but am ready to go on: at least i hope the related aros-exec thread should be a good didactic reference point for whoever want to start an Amilua project. Anyway, is my intention to post a tutorial when will have some free time.

I already set up the user interface: both mazze answers in the thread and some lua regular expression tutorials helped me in parsing the configuration files and do backup copies of it (in a bit rudimental way, parsing them and writing in a new renamed file via script), so what else is missing?
First of all I need to set the graphical frontend gadgets according to the preferences set in the files, including pre-set the cycle gadget on the actual network card; second i need to write the new configuration with the user set parameters. And last, if i would indulge in a little ego trip, a menu with a voice to show the about window ;) .


My Network Config Amilua app and part of the debug output window

Once done with this control panel, I would like to write sometihng to manage the Amistart calendar: one of the few widgets for Amistart, that also should be taken as example for those that want to write some more - is not happening yet, dont know why ;  another idea tingling my mind is to write a simple bookmark manager for OWB but so far there is no way to make OWB open a new address using the DOS getURL command and it is only possible to use the command OWB [url to launch] in order to open the program: it is not possible to use it with an open session: the old one needs to be closed first; i tested it personally.

At the begin of may I helped on write the AROS website status update: in this one I asserted that the latest months progresses brought AROS on the verge to be available for a daily usage; but in order to reach this goal still several obstacles need to be overcome, both on software availability, and on the system stability and affordability.

Neil Cafferkey still continues in its work on the ata.device; being this a critical piece of AROS, every time he or somebody else put its hand on it there is the risk something that used to work might break and, once it was fixed, might make it wonder how the hell was able to work before, but first let's get the facts: An updated ata.device patch has been provided with the Icaros desktop 1.1.1 upgrade; the upgrade has been temporarily removed by Paolo Besser itself due to the fact that on computers with southbridge board AMD SB600 or with similar architectures severe data corruption occured writing data in the disc partition; beside this, several users were greeted with a black screen and the red pointer with no further boot progress. For those the solution, was less drastic, citing from the Icaros website:

If you can't boot Icaros and the process stops after the red pointerappeared on the screen, please do as follow to fix the issue:

- turn on PC
- choose a resolution from Grub's menu but DON'T press Enter
- press 'E' instead
- move cursor after "ATA=32bit" and change it either to "ATA=nodma" or "ATA=nopci" (depending on what it works for you)
- press Ctrl+X to continue booting

Ifbooting has success open /boot/grub/grub2.cfg with the AROS editor,search for the "ATA=32bit" string and replace it with "ATA=nodma" or"ATA=nopci". You can do this easily, using the 'replace' option in the'search' menu of the editor.

At the same time, in answer to the problem exposed by Paolo Besser, Neil Cafferkey unveils what happened in the developer's mailing list:

I think I've found the cause of these problems: we don't set the
controller's timing registers.

My guess is that when DMA *did* work with older driver versions, it was
just a coincidence: ata.device re-set the drive mode that the BIOS had
already set, so there was no need to change the timing registers.

If we want to use a drive in a mode that the BIOS hasn't set, we need to
set the controller's timing registers to match that mode. Unfortunately,
there is no single standard for these timing registers. This is why Linux
for example has numerous PATA drivers: one for Intel, one for ATI, one for
Silicon Image etc.

This problem probably became more apparent because the new driver version
checks the cable report register bits to determine if the 80-wire cables
necessary for high-speed UDMA are present. My mistake was to assume that
all PCI controllers followed the T13 spec for these registers, but I
should have realised that that was unlikely given that the spec was only
published as recently as 2003. The T13 spec is implemented by Intel (and I
only have machines and emulators with Intel chipsets to test on), but I
suspect that T13 were actually following Intel's established design. Other
manufacturers have incompatible controller registers.

So on non-Intel controllers, the driver will incorrectly determine that
only 40-wire cables are installed, and downgrade the DMA mode from say
UDMA5 to UDMA2. Since the timing will then be wrong, data corruption is
likely to occur.

As a solution, I propose that, at least in the short term, ata.device does
not attempt to set a mode for any drive, but simply detects and uses the
mode already set by the BIOS. I hope that this will not lead to a
degradation in performace in most cases: in my small sample, BIOSes in
modern machines seem to set the best available mode for each drive by
default. I have this fix working locally. We already rely on the BIOS to
set addresses for PCI devices and enable bus-mastering, so this is just
one more thing.

In the longer term we could look at setting timings ourselves, but this
looks like a complicated procedure, and probably wouldn't give any
performance gain in most cases.

To help confirm my theory, I set a disk in one of my PCs to MDMA mode in
the BIOS instead of UDMA, and ata.device failed to access it after it put
the drive into UDMA2 mode. It had worked perfectly when the BIOS had set
it to UDMA (UDMA1 as it happens, but probably close enough not to cause
errors).

once the ata.device was fixed, the icaros update has been restored and is now available again for download.
In the Icaros Website Paolo expressed the fact that, despite he is doing the best to offer maximum stability and performance with the most recent system libraries and programs, sometimes it might happen that some components were not fully tested, also because is hard to test all hardware configurations, and especially for a small volunteered project as AROS; Paolo also assures how, despite the actual problem, the actual situation is even improved, considered that  now AROS boots even in machines where was unable to boot before, and that, thanks to the fact that the actual users and testers are aware of the beta nature of the syatem, damage was pretty limited; those kind of accidents might happen in open source projects- without mention Linux and its well known breakages - i might not say it happens often, but it happens.

Recently Neil also worked on fix other ata.device problems, including the fact that the device thought there were two DVD drive in case a SATA DVD drive was used. The change of the device enumeration system is also planned.

Neil is actually checking DHCP system, due to the fact that, once the shell command arostcp stop is given (or  a CTRL-C break command, as is called in unix environments), the DHCP stack become unresponsive and bring the CPU usage to 100%.


At the same time Michal Schulz worked on improve graphic performance on ATI Radeon - same graphic card that he as on Efika; bot Michal and Nik  "Kalamatee" Andrews  seen how the themes design (bad) implementation is among of the culprit in slowing down Wanderer performance - this in a fairly slow system such as Efika is much more perceived ; therefore Michal worked hard in accelerate several display redraw functions and the performance on ATI radeon both on x86 and PPC are improved quite dramatically.
Kalamatee, beside its actual task in improving and modernizing Wanderer, is considering whether to take the Graphic Subsystem Bounty, but so far nothing more is known about this topic.

And, at last, a rare happening in the actual Amiga oses landscape: with a joint effort, users from both Amiga OS, MorphOS and AROS partecipated to reach the $4000 goal set for the Poseidon USB Bounty: Thanks also to the initiative of a community member, that offered to double further received offers, the actual bounty quota is at $4170. Chris Hodges, the author of the Poseidon stack, started to work at the port - which source code will be open - and the stack will be released on the APL license; this will also allow other Amiga-like oses to port and to update extend and improve the stack code.

Outside the Amiga communities (with maybe the exception of the Haiku os) the bounty system concept might sound unknown - considered that in example a bigger open source player system such as Linux usually projects are founded from those government and commercial entities interested in their further development and maintenance; for smaller projects and communities, instead - such amiga-like oses -  the bounty system is the major (almost unique for AROS) source of funding. Therefore projects like this really are funded from the community and literally belong to the community, in a sort of similar fashion to the gothic cathedrals in the middle age.

And now a last word on the Aros-exec portal: last May 22nd the portal, after another virus exploit, was once again closed: now, after a week, the portal is finally back online using an updated and exploit -free xoops version and also a nice blue-metal new skin. I by the way remember that aros-exec is mainly a development-oriented portal; is my advice to point final users to the more user-oriented portal Arosworld.org. test
TECNOLOGIE
10 dicembre 2008
Technologies: AROS: Small steps, Sparks; small steps...
ATTENTION: due to a strange bug on il cannocchiale blog platform, the aros-exec links does not appear correctly, therefore fix them in the address bar; hope this problem will be reparied soon...

The title is, for who remembers it, a catch phrase from the movie "Contact" and also one of the things that I took as philosophy of life; if you want to do something it is better to go slow pursuing smaller goals than try to do the big leap all at once when things are not going right away.

It means that, doing small steps,  the path to the achievement is followed anyway, slowly and one day looking around you realise that your goal is closer than expected. The secret is fragmenting big tasks in smaller, more affordable chores; taking those on and completing em means getting to the final goal a small step less, minor maybe but still a step less to go.

Of course i am thinking about AROS situation; let me show the actual latest small steps to the 1.0:

Stanislaw Sszymczyk has finished recently the bounty for the AROS self-compilation, a very important step for every operating system considered that, as somebody commented in the OSNews announce, some developers don't get interested in an OS until it reach this goal; so even simply this step might be a good thing and a reason to attract, in theory, new developers.

And with small steps even the new evrsion of VmWAROS is close to be completed: Paolo Besser announced the "feature freeze" for the actual version that si undergoing a massive beta testing before the public release.
Considered that, up to the last year, AROS was left without any official distro and the announced one, called Velocity, had to be cancelled by its mantainer, fishy_fis, due to personal problem and to a bad car accident that involved him.

Paolo Besser has achieved,with a combination of shell scripts, to create a simple UAE integration in the new version of VmWAROS. The integration system, called "Amibridge", use an idea already conceived by fishy_fis itself and put together by Besser on its own and allows to launch UAE and specific Amiga programs with the click of an icon on Wanderer.
Furthermore: thanks at my own initiative to get in touch with Whoosh777, mantainer of the Amiga and AROS port of Ghostscript to ask about a port of a new version.
Strangely, nobody ever gave to Whoosh777 any feedback on the AROS version of Ghostscript so he decided to keep it on hold.
AROS internals were changed since the last version of Ghostscript shipped and, despite mine and Paolo debug reports, seems like the new version of Ghostscript is actually not working correctly.
But Paolo found out that the previous version is actually still working fine and that allowed him to write another script that, through Ghostscript, creates jpeg previews of a PDF document pages on RAM and show them through picshow. The script has been called PoorPDF.
Last but not least, a slight esthetical improvement has been done by the cooperation of Ken Lester and its own famous Ken's Icons, portedt to AROS and customised for the occasion.
A well known feature of the ken's icons - the icon's different appearance between selected and unselected - brought to a review of the icon.library and of the way icons are actually built under AROS.

Nikolaos, here let us know that another historic problem of AROS - the impossibility to change CD-ROM in a drive without the need to reboot in order to see the new one - has finally been solved partially by Error; still, appIcons are not supported (appIcons are tye icons that shows up when a removable media is mounted) but is still another small step in the right direction.

Matthias Ruster is meddling with the port of Ignition, an Amiga OS spreadheet recently released open source under GPL 3: in the last month he achieved slow but remarkable progresses: first of all some essential parts for the program running, the gtdrag,pScroller and pTextEdit classes were added to the program repository in october; Matthias has been able to compile classes demos and make them partially work on November 19 [screenshot], then has been able to make the spash screen open in November 30 [screenshot]; the last known progress has been made on December 4, when he had been able to make the GUI start for a while [screenshot]; right now Matthias is working to make the preferences endianness safe; [edit: last update today december 11 Matthias has a working GUI and can insert text in the cells [screenshot] ]; hope in further updates soon.

According to the Bounty list on Power2People.com. on December 1st the first part of the Kickstart Replacement Bounty expired. The assigned coder, bheron, aslo known as Gergory John Casamento, chief mantainer of GNUstep, posted a first status report on the developr mailing list last December 5:

My apologies for not giving more status on this sooner, but I've been bogged down lately due to both business and personal matters. Currently Alex Perez [edit: MisterBIOS on #AROS] and I are working on this bounty. Alex has identified some hardware which can be used to burn the ROMS to chips which could be used in an actual Amiga. According to him this was difficult to find. I am trying to find resources to help me understand the existing ROMS better so that I can proceed with their replacement. [Edit: I helped bheron sending him a link to the Natami Knowledge Base website that includes part of the HTML version of the RKRM autodocs and Henrycase offered himself to purchase and send to bheron a copy of the Amiga Guru Book found in ebay, hoping it might be helpful]

I'm not disassembling them (naturally) but I have been trying to get hold of ROM kernel manuals and, to be honest, an ACTUAL Amiga... up until now I am using UAE with roms from the Cloanto CD-ROM Amiga Forever.

I have also gotten SASC in order to compile GCC so that I can build AROS under UAE. (like I said... still need Amiga hardware)

 I know that the deadline for this has passed and I assure you when I took this task on I thought I would have the time to accomplish it by the deadline (which was admittedly pretty tight).

Ao far somebody in the developer list thinks bheron did even more than asked from the bounty requirement starting tasks required for the phase 2; those news are in any way very good because gives confirm on how Gregory took its task seriously and on its dedication on proceeding towards the bounty completion.

BTW, Gregory can ask a time extension for the bounty and, honestly, i am sure he will receive it: would also like to ask people  to help bheron in retrieve amiga ghardware in order to complete the bounty: bheron and MisterBIOS can be contacted through #aros channel ,the aros-exec forum and the AROS developer mailing list. This call is a personal initiative of mine, so in case they ask tell them you went to know through my blog.

Than another good new comes from the advocacy side: TADsince1995 held an AROS presentation conference last November 29 inside the Linuxmeeting in Palermo, sicily. The presentatio has been successful: AROS has been favorably received from the attendees; this is the outcome using the words of TAD itself:

As I previously announced, yesterday I presented AROS at linuxmeeting. It was a little success! The average age of people was under 20, but there were some older people who used amiga.

Both those who used amiga in the past and who didn't know what Amiga is were very interested. During the presentation I did a little introduction on the history of Amiga and then I showed them VmwAros running on qemu. Even if it was running slow on qemu they were amazed by aros speed!

In the afternoon I was able to show AROS running native on my Acer laptop at its full speed (thanks to people here who helped me on some issues regarding the installation). People reunited in front of the screen and cannot believe how fast the system booted up (about 6 seconds) and how fast applications loaded.

One of them said that he was interested on porting applications to aros and the organizer of the event proposed to start an aros local group.

This shows that AROS is not ignored because is old technology or for other futile reasons, going even against my own ideas that i put in this blog some time ago: looks like simply AROS is not known outside the Amiga communities despite the appearance in some italian and european magazines: probably at that time it was simply considered a kind of curiosity, and looks also like magazines have no more that power that they used toi have even in the latest ten years, internet now do a better job in updating people and giving informations, therefore seems that many people did not even see AROS coming through the press and therefore they underestimate and ignore its own existence.
Presentations such the one made by TAD or those made by Paolone in Pianeta Amiga and in Brusaporto last year are occasion to introduce people outside Amiga circles, or inside Amiga circles but that so far did not care about - to AROS; still too many people have the Amiga as a Games machinein their own mind, also because few bought something more than a base 500 or 600 and used it in video grpahics, multimedia or programming: at least its older brother, the commodore 64 in Italy got  a bit more serious reputation, beside the games one, in the very local and peculiar Totocalcio card processing system (Totocalcio is a game once very popular in italy: people try to guess soccer matches results, and can be played in a simple way or, using double or triple combinations per match, in a so-called "system" card: being based on statistic, many computer programs came out in order to help people win), even supported by a local industry called SIEL who at the time sold integrated c64/totcalcio card printer systems, i seen one still at work like five years ago: this kin of programs hardly make their way in the Amiga world and the most fertile ground for semi-professional use in italy for amiga was the video titling: probably if there was a PAL version of the toaster there should be still some amiga around....

And, at the end, sometihng about my persona commitment with AROS.

I started some time ago to write sometihng in lua: i downloaded the all-in-one lua distribution under windows in order to learn to program it' it is my intention to write a preferences requester for a fast network config under AROS; i am starting with lua from scratch, therefore from the most basic operations that every language has: operations, conditions and files input/output (and here i got stuck: haven't found a low level tutorial for that yet) and at last Zulu, the well known LUA extension for MUI graphical interfaces.
The text file inside extras/developers/lua gives just some Zulu commands list but expect you to be familiar with the internal MUI workings and does not tutor you in it.

A chat with Olivier2222 in #aros made me understand some basics on how to draw the GUI in the right way; will try to summarise it shortly:
Olivier 2222 made a comparison with an HTML page using <IDV> structures and its hierarchy: starting from the window object has to be added a vertical group first then, inside an horizontal group (that might contains some more vertical groups and so on)and then the objects inside all (like textfield, or dropdown,etc.) If you need a space between the objects you add a separator.

Using those (more detailed in the chat) advices I started to do a test GUI and i finally seen something appearing, then making it work will be a different pair of shoes.
Olivier2222 told me to give a look at the MUI 3.8 developer docs to better understand the inner workings of the various objects. He gave me mainly C examples but, since i think i got some basics now, i hope to share my knowledge once will know some more.

Furthermore, I sent an AROS presentation abstract for the next SCALE (Southern CAlifornia Linux Expo) that will be held on the last week of February 2009; if the abstract will be accepted that will be my fisrt official presentation; i am looking for suggestions in order to set up something good when will be the time.

As i said at the beginning, the small steps philosophy work: just go on one small steps at the time: results will follow.

[last minute edit: i knew i forgot something: netsurf. Looks like for the moment sszy put netsurf port apart but he still has a plan B....;)]
TECNOLOGIE
23 settembre 2008
Diary: Technologies: AROS: Documentation Documentation Documentation brings Developers Developers Developers!!!
Hoping Ballmer did not patented its citation :P

Well, cause of my job duties this is not at all a new topic, but think is good to bounce it here. The Amiga Os 4.1 on Sam good new is a week old and probably, when it will be possible, will treat it here too but for now let's do business as usual.

One of the latest topic comments in my last article in the italian forum (translated here btw) was from Tadsince1995 and brought me to forward it and enrich it in Aros-exec:

(translated from italian:)
So, after Robert Norris, even Michael is going. The biggest problem is not only that they will not work anymore in AROS, but will be a huge disgrace the fact that so far those are the most prepared developers, therefore their own knowledge luggage, shared by very few little people, will be lost.
I (tadsince1995) always supported a "Documentation bounty" because there is a GRAVE lack of documentation for the low level part of AROS. Nothing about the USB stack, almost nothing on how to write drivers, etc. How an operating system can proceed if newcomming coder have no ideas in how and where to begin with?

Especially the fact that, obviously, people have other committments and there might be no time to do reverse engineering on the code, while having some good tutorial might save them lot of time.


And here is my enrichment:

I support fully the point of view of Tad: this is my personal request for Michael, for Robert, if he is still around, and for all low level developers: do not only leave the source available: do not assume people to have same skills as you: PLEASE DOCUMENT LOW LEVEL AROS, for the sake of future development following your contribution:

Amiga/AROS scene is too little to expect people to find enough documentation (outdated at most), and Amiga/AROS internals are too different from others to expect the inner workings to be understood easily.

Therefore the usual Open Source method to read sources in this case cannot apply fully.

[there was a withdrawn part to avoid discussions]

To the people still at work:

you know this project needs developers and, IMHO, if not a schedule -by philosophy-, at least it needs a post-it in the border of the screen where to step the fundamentals, in short: "a plan".

Forget one moment about ports: i think the system needs to be finished and polished. I have ShinkurO and others complaining sbout buggy MUI classes, myself in the verge to do a review of AROS for a magazine being a bit frustrated from the lack of visual feedback from the system as cursors or messages; LUA working but zulu not fuilly implemented in case somebody needs to write new applications, not only games (thanks mazze for your efforts in trying to build SDLbasic).

[end withdrawn part]

I feel emotionally involved with this project and , as Paolone, i think it has more potential than even eople here can expect. So, let's try to work in a synergistyic (collaborative) way and pave the street for newcomers as much as possible.


That is, my personal message at the community; i really wish AROS not to sink, i already said in past and will continue to say it in the future.

My personal contributions are actually in helping ShinkurO together with Tadsince1995 in translating its Programming guide for Amiga Oses and in writing a review of AROS for a magazine, even if both activities are going on slowly in the free time due to the aforementioned job duties.
sfoglia
  

Rubriche
Link
Cerca

Feed

Feed RSS di questo 

blog Reader
Feed ATOM di questo 

blog Atom
Resta aggiornato con i feed.

Curiosità
blog letto 1 volte

Older Posts

Who links to me?
Get in touch with Simone Bernacchia

 




IL CANNOCCHIALE