Welcome, Guest. Please login or register.

Author Topic: Amiga Basic  (Read 5491 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline SamuraiCrow

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 2281
  • Country: us
  • Gender: Male
    • Show all replies
Re: Amiga Basic
« on: July 15, 2007, 09:59:58 PM »
AmosPro version 1.12 was given away on a coverdisk without a manual of any sort.  When you bought the compiler for it it upgraded it to 2.0 but you still needed the manual anyway.
 

Offline SamuraiCrow

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 2281
  • Country: us
  • Gender: Male
    • Show all replies
Re: Amiga Basic
« Reply #1 on: July 16, 2007, 01:56:58 AM »
Quote

amigadave wrote:
How well does AMOS Pro run under WinUAE?  What are the limitations, problems, special settings that work best, etc.???


Use ECS emulation since AGA is not supported by Amos.  Other than that the limitations aren't too bad.

Quote

I think that AMOS Pro, or Blitz Basic might be good starting points for anyone wanting to learn programming on the Amiga.  Any other suggestions on what is the best starting point for Amiga programming and what path of programming languages to take after AMOS Pro (or what ever other starting language)?

What about scripting languages like AREXX, REBOL, JAVA (java not completely implemented on Amiga, right?) PEARL, ..... what was the other one...... PYTHON?


I usually recommend Python to beginners on the PC but it's not so great on the Amiga since there is no version of the PyGame extension for Amiga's implementation of Simple Directmedia Layer (SDL).

Quote

For "Classic" Amiga programs and games I would guess that C, C+, and Assembly are the languages that should be learned to produce the best code and performance on a "Classic" Amiga.  Machine code is too difficult for most, I would imagine.

I know that most "Programmers" don't care about Amiga anymore, so it is harder to get questions like these answered without a lot of off topic opinion, or sarcasm, but some of us still want to learn and program for the Amiga, as we are not looking at it as a way to make an income.  It is a HOBBY for a few of us.  There is still that challenge of how much can be done with the Amiga and perhaps an 030 and up processor with 4mb and up RAM.  That spec meets the minimum of many thousand Amigas still in use, or waiting to be used in many closets around the world.

Opinions on where to start and which programming languages to progress through to reach a good understanding of programming on and for the "Classic" Amiga, with the end programming language being "C", "C++", or "Assembly", to produce the best and fastest results.

I know that "C" or "C++", would be better for portability to other OSes.


Actually, Sidewinder and I am working on a sequel to AmosPro (Mattathias Basic) that will support most of it's features but that's months out at the least.  Furthermore, we're going to try to make a Windows version of it anyway, possibly using C as a backend to compile to different operating systems.  It will also require several extensions to be written for it to support the old AmosPro source codes.

C++ is very lacking on the Classic and next-generation Amigas so you can safely ignore that one for now, Assembly is not portable to the next generation Amigas so it's a complete waste of time now.  C has cumbersome syntax so a wrapper of C like Mattathias seems to be the most promising solution for a beginner soon in the future.  (Of course I'm biased but I think that getting old source codes to run on next-generation hardware can be a profitable venture.)
 

Offline SamuraiCrow

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 2281
  • Country: us
  • Gender: Male
    • Show all replies
Re: Amiga Basic
« Reply #2 on: July 16, 2007, 04:20:47 PM »
@AmigaDave

For more information about Mattathias, consult our Yahoo group.  But as a brief update:  Sidewinder tried to implement AmosPro in a fixed parser created with Flex and Bison (parser generator utilities derived from Unix) but we couldn't implement extensions or many impressive features with the fixed parser.  We've since started over with just the linker library as standard and I've found a promising lead for a dynamic parser at the eXtensible Lanugage and Runtime project on Sourceforge.net .

The reason I say C++ is lacking on the Amiga platforms is that there aren't object-oriented wrappers for most OS functions.  You kind of have to write your own as you go along.  (I'm sure Karlos will offer his services to those wishing to start on C++.  ;-) )  Also, the runtime library for C++ on AmigaOS 4 is single-threaded only at this point.  It might work for beginners, I suppose, but C is still king of AmigaLand as far as I'm concerned.
 

Offline SamuraiCrow

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 2281
  • Country: us
  • Gender: Male
    • Show all replies
Re: Amiga Basic
« Reply #3 on: July 16, 2007, 05:11:19 PM »
@Kronos

As an experienced coder, you know how to use your tools to the utmost and the shortcomings of other tools.  It is useful to write object-oriented code most of the time.  On the PC I recommend Python as a starting language because it is more object-oriented than Basic (except for BlitzMax, of course).

I've used Java quite a bit at the university and it's object-oriented to the point of being flawed as a result.  Sure you can make a bunch of static methods and variables to "get around" the object oriented syntax when you don't need it, but that's quite the kludge.  C++ can go either way due to the backward compatibility toward C but it's really not a beginner language at all.

For a beginner, however, I'm not sure what to recommend.  We're going to try to add OO-like syntax constructs to Mattathias although a more flexible option is to make extensions for each class-type and that may be what we end up doing.  See Wikpedia's article on Extensible Programming for more information on what I'm talking about.  Certainly object-oriented programming is the current "in thing" and it is fairly elegant but that doesn't mean that it's the only way to do the same thing.  Extensible programming may help avoid some of the overhead that OOP entails while allowing more control over the way things compile.

As an example, I've seen a fractal generator written in XL that was able to translate X^2 into X*X without operator overloading.  The reduction rule of the parser was designed right into the function call itself.