Good illustration Richard, and I will pick up on your initiative for a "fresh-ish start".

A truly fresh start would recognize that Opensource Software is very closely related to Public Journalism with the Internet being the common denominator. All of that and much more is a phenomenon of the New Age which recognizes absolutely no absolutes. (Google it) The other Richard wants absolutes because he is of the old school, pre-newage, as I am also. I believe I am more tolerant of the new methods because I understand the framework within which they function, or dysfunction as the case may be. So I am not so surprised by the dysfunction as it becomes evident.

Everyone is right in this debate, because we all view it from our individual perspective or 'reference frame'. To understand why we are all right and yet perhaps wrong, it must be acknowledged that our individual perspective is carefully constructed from our unique experience, then modified as required to justify contradictions to that experience. Justifying the contradictions however, simply preserves the perspective which may or may not be a good thing. Very frequently the perspective is just plain wrong, and insistence upon preserving it leads to the "paralysis" which we now find so puzzling in opensource documentation for example.

There is no mystery. Resolve the contradictions. Doing so produces a new perspective within which all relevant viewpoints may coexist without conflict. Irrelevant viewpoints are simply discarded. Its called CHANGE. The introduction of opensource was such a change which resolved many contradictions, but the nature of change is that it introduces its own contradictions which are different, but no less destructive.

Unless that is, they are recognized as prompts for more needed change. It certainly does not mean going back to the failed perspectives of the past, and preserving the present is guaranteed to clash with the ever approaching future, as should by now, be self evident to all observers.

BG

Richard Gray wrote:
Forgive my picking up the thread here, but the discussion was so deeply nested I felt that a fresh-ish start was warranted.

I must admit that I'm a bit puzzled by the paralysis the (admittedly poor) documentation seems to have caused...

About two weeks ago I installed the SDCC rpm on my linux workstation and wrote a trivial program to see what happened when I compiled it. I must admit that there are still one or two things that I don't understand properly, but I consider that I've got a workable route from a C source to an EPROM and I can go from an edit to an EPROM in less than a minute now. All that with crap documentation too! I have probably only spent some six hours or so on this whole affair, to date.

I've always felt that because I'm moderately intelligent (and far too modest!), all I really need with these things is a punt in the right direction to start me on my way. The rest I'll pick-up as I go along. Haphazard as this is, it's a method that has never failed me yet, and the documentation such as it is gave me exactly what I needed - a punt in the right direction - and in that respect I would say that it's a resounding success. Sure, there are lots of inaccuracies, but I have a pretty good idea what these are now, and at some point I might even be in a position to offer/make some corrections to the manual, if only because that's the kind of participation that Open Source tends to encourage. In time to come, the manual will be better than it is now because people such as myself are able to put their real experiences into it.

Here's the program code that I used to get started (called test.c) - it's mostly un-commented; but was intended to give the compiler and the eventual target machine a good workout (hence the recursive factorial routine), and it's written in such a way that I can watch the progress fairly easily with a logic analyser.

#include <z180.h>

__sfr __at (Z180_IO_BASE+0x70) WDTRST; /* Watchdog timer reset */

static long Results[11];

void ConfigureCPU()
{
        CNTLA0=0; /* Switch off serial port & clear RTS */
}

long Factorial(int X)
{
long F;
        if (X>1)
        {
        F=X*Factorial(X-1);
        return F;
        } else return X;
}

void main()
{
int N;
ConfigureCPU();
        while (1)
        {
        char T;
        T=WDTRST;
        CNTLA0=CNTLA0 ^ 0x10;
                for (N=0; N<=10;N++)
                {
                long R;
                R=Factorial(N);
                Results[N]=R;
                }
        }
}


There's a tiny bit of assembler startup code required to make this work properly on my target machine; but this was all I needed to get to a position where I can actually now start to write some software that does something worthwhile with an adequate understanding of what SDCC can do for me.

A bit of (not so bold) experimentation yields usable results very quickly, I would say.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to