Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<blockquote> <p>Exactly what programming tools I should use, are there any already installed?</p> </blockquote> <p>Basic and AREXX were the only languages to come pre-packaged, and even then, BASIC came in two dialects (ABasic, and AmigaBasic). You'll want to look at the Fred Fish collection or AmiNet for more tools.</p> <p>For purchasing commercial compilers, try Amiga Developers CD that is available at Vesalia Online, although there may be others.</p> <blockquote> <p>Am I limited to plain text editors, or are there IDEs and debugging tools available?</p> </blockquote> <p>You're pretty much back to edit-save-compile-link-run-crash-whycrash-doh-fixit-edit cycle, IDEs are not readily available. I would look at something like DME (Dillon's Macro Editor), also available on the Fred Fish collection or AmiNet (<a href="http://wuarchive.wustl.edu/pub/aminet/" rel="nofollow noreferrer">http://wuarchive.wustl.edu/pub/aminet/</a>). It provides some basic macro construction facilities that will help.</p> <blockquote> <p>If no tools are already installed, how can this done? Are there free ones?</p> </blockquote> <p>Yes. Again, Fred Fish, or AmiNet.</p> <blockquote> <p>I'd like to learn a traditional Amiga language, could you recommend one?</p> </blockquote> <p>Draco. It was written by Chris Grey. It's a little "primitive" but it should provide you with all that you need to get going, including the proper bindings and constants. The language is compiled and runs at speeds comparable to C.</p> <blockquote> <p>What should I use to compile the language you suggest?</p> </blockquote> <p>Manx or Lattice C were the C compilers of the time (if you can find them, good luck), with Manx tending towards 16bit and Lattice towards 32bit. There were a few tiny C-based compilers. There is 68k assembly (a neato instruction set IMHO), Draco, a pascal dialect, possibly Modula-2, as well as DICE (a free C compiler, but you're looking for something else)...</p> <blockquote> <p>Please could you suggest tools I may use to debug the suggested language?</p> </blockquote> <p>Again, commercial tools are far and few between, you're going to have to dig through the public domain archives to find anything.</p> <blockquote> <p>Are there any libraries I should be aware of, such as GUI libraries?</p> </blockquote> <p>The libraries are all built in. intuition.library is the name of the library that provides basic windowing support. gfx.library will provide you with high-level primitives, and layers.library will provide you with support for handing the unique bit-plane approach to graphics. Before you get that far, you'll want to look at <a href="http://en.wikipedia.org/wiki/Exec_(Amiga)" rel="nofollow noreferrer">exec</a>, which was the heart &amp; soul of the OS. It provides pre-emptive multitasking, built-in linked list primitives, message passing primitives, IO primitives, etc. and was heavily re-used throughout the system. If you understand exec, you'll understand the low-level innards of the rest of the system.</p> <p>Keep in mind that the state of the system will look more like an embedded game console, as there will be no memory protection, SMP support, etc. All of these things could not easily be added due to design constraints that were introduced just before the first Amiga shipped. I seem to recall that the issue was surrounding how it would handle multiple processors and memory protection given that the entire microkernel runs in a non-priv CPU mode.</p> <p>Last but not least, the magic number is 4, which is a memory address. That address is the pointer to the exec (which is not only a microkernel but also a library) and with it you can bootstrap into the rest of the system via OpenLibrary() calls. Libraries that could not be located will automatically be loaded from disk via AmigaDOS. This is how the Amiga dealt with the issue of portable code - all of the code was written using offsets into a pointer to the "base" of a library and there were no fixed addresses, other than address 4. Every library has a call table of 6 bytes per entry (a jump instruction) that then vectors off into the correct entry point. It was easy to write your own library, provided you had the correct format for your "header". Device drivers "borrowed" the structure of libraries and used the same concept to provide default I/O handlers.</p> <p>Sorry if the names are slightly wrong, this information is off the top of my head from nearly 20 years ago...</p> <p>There may be other avenues of information. <a href="http://www.amigacoding.com/index.php/Main_Page" rel="nofollow noreferrer">Someone made an effort with a wiki</a> and with some searching I'm sure you can find out even more.</p> <p>Some things to note...</p> <blockquote> <p>I'm running Workbench 3.1 from within the WinUAE emulator.</p> </blockquote> <p>Cool. You're set. That was the last great "classic" workbench.</p> <blockquote> <p>From Workbench, I can access files from my Windows hard drive.</p> </blockquote> <p>It'll help, but you'll want to go "native" as much as possible.</p> <blockquote> <p>I'd like to code and compile it from Workbench if possible.</p> </blockquote> <p>See above.</p> <blockquote> <p>I'm running WinUAE in A1200 mode, not sure if that matters.</p> </blockquote> <p>It's the model of hardware you're emulating; it was a good budget machine, but try setting it for A3000 if possible, that was a nice high-end machine before Commodore had trouble. </p> <blockquote> <p>There's an application already installed called MEmacs.</p> </blockquote> <p>Give it a try, if Emacs is your thing...otherwise I would look at some of the native tools.</p> <blockquote> <p>know C++ and C# very well, maybe there's a similar Amiga language. I'm aware that you can code with C and C++, but I want to learn a new language.</p> </blockquote> <p>Then Draco is for you. It has most of the bindings for libraries, compiles cleanly, and it's officially a "dead" language given it's tied to a specific hardware platform. Very Amiga-specific. :)</p> <p>Good luck! Let everyone know how it turned out...</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload