Copyright (c) Hyperion Entertainment and contributors.

Difference between revisions of "AmigaOS Apps Development"

From AmigaOS Documentation Wiki
Jump to navigation Jump to search
 
(51 intermediate revisions by 2 users not shown)
Line 1: Line 1:
If you are interested in developing applications for AmigaOS please note that the [[DeveloperDoc:Main|Developer Section]] contains documentation that is useful for developing applications, device drivers, games and other programming projects on AmigaOS. The [[Tutorials:Main|Tutorial Section]] contains a couple of hands-on tutorials that are intended to allow beginning developers to get into programming with step-by-step examples. Finally, the [[Autodocs:Main|Autodocs section]] contains the well-known ''autodocs'', function-by-function documentation of libraries and devices in the AmigaOS system.
+
If you are interested in developing applications for AmigaOS please note that the [[DeveloperDoc:Main|Developer Section]] contains documentation that is useful for developing applications, device drivers, games and other programming projects on AmigaOS. Information from the developers conference (DevCon) held annually at AmiWest including videos of past conferences and more can also be found in this section. The [[Tutorials:Main|Tutorial Section]] contains a couple of hands-on tutorials that are intended to allow beginning developers to get into programming with step-by-step examples. Finally, the [[Autodocs:Main|Autodocs section]] contains the well-known ''autodocs'', function-by-function documentation of libraries and devices in the AmigaOS system.
   
Additional assistance is available at [http://www.os4coding.net/ OS4 Coding].
+
Additional assistance is available at [http://forum.hyperion-entertainment.com/ Hyperion Entertainment Forums] and [http://www.os4coding.net/ OS4 Coding].
   
 
The following is a sampling of software development applications that may assist with development for AmigaOS.
 
The following is a sampling of software development applications that may assist with development for AmigaOS.
  +
   
 
=== Disclaimer ===
 
=== Disclaimer ===
 
The following list of applications, with the exception of the official AmigaOS Software Development Kit, is neither endorsed by nor supported by Hyperion Entertainment. This list is strictly informational only.
 
The following list of applications, with the exception of the official AmigaOS Software Development Kit, is neither endorsed by nor supported by Hyperion Entertainment. This list is strictly informational only.
  +
  +
== adtools GNU Compiler Collection (GCC) ==
  +
  +
The "adtools" project is the Amiga development tools project that hosts a number of tools that can be used for cross-compiling between various platforms and developing applications for AmigaOS and other Amiga-like platforms. The suite is based on the GCC compiler suite.
  +
  +
[https://github.com/sba1/adtools adtools webpage]
   
 
== Amiga Image Storage System AISS ==
 
== Amiga Image Storage System AISS ==
  +
  +
[[File:Aissview.jpg|300px|thumb|left|Image Source: AISS Viewer OS4Depot webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
   
 
The Amiga Image Storage System AISS is an environment to store, access and maintain toolbar images. This can also be used in conjunction with AISS Viewer to easily locate and reference resources into development projects.
 
The Amiga Image Storage System AISS is an environment to store, access and maintain toolbar images. This can also be used in conjunction with AISS Viewer to easily locate and reference resources into development projects.
Line 18: Line 47:
 
== AmigaOS Software Development Kit ==
 
== AmigaOS Software Development Kit ==
   
  +
[[File:Boingball-dev.png|200px|thumb|left|Image Source: AmigaOS webpage]]
The official AmigaOS Software Development Kit contains everything needed to get started writing native applications for AmigaOS.
 
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
The official AmigaOS Software Development Kit contains everything needed to get started writing native applications for AmigaOS, including the AmigaOS native GCC compiler, support applications, autodocs, includes and headers.
   
 
[http://www.hyperion-entertainment.com/index.php?option=com_registration&view=files&parent=30&Itemid=63 AmigaOS Software Development Kit download from Hyperion Entertainment]
 
[http://www.hyperion-entertainment.com/index.php?option=com_registration&view=files&parent=30&Itemid=63 AmigaOS Software Development Kit download from Hyperion Entertainment]
  +
  +
== AutoDocViewer ==
  +
  +
[[File:Autodocv1.jpg|300px|thumb|left|Image Source: AutoDocViewer OS4Depot webpage]]
  +
[[File:Autodocv2.jpg|500px|thumb|center|Image Source: AutoDocViewer OS4Depot webpage]]
  +
  +
  +
  +
This program makes it easy to read Autodoc files on AmigaOS via a simple to use ReAction interface.
  +
  +
[http://os4depot.net/?function=showfile&file=development/utility/autodocviewer.lha AutoDocViewer OS4 Depot webpage]
  +
  +
== AutoDoc Reader ==
  +
  +
This is a great freeware program to view any text file (autodocs, C-header and others) with database and search options. This is very useful to read the autodocs from the Software Development Kit. Developers documentation in autodoc format is often needed in everyday work. Getting familiar with a lot of files and searching tons of text for desired information is not an easy task. That's where the idea of writing a program that could ease using autodocs originated.
  +
  +
Features include:
  +
  +
* Possibility of creating a database of ours autodocs files,
  +
* Fast and easy documents browsing,
  +
* Possibility of independent loading of autodocs not included in a base,
  +
* Search engine for functions, methods and parameters,
  +
* Easy usage with mouse or keyboard.
  +
  +
The program can act as separate viewer or autodoc-viewing module for other software (e.g. DOpus or GED).
  +
  +
[http://aminet.net/package/dev/misc/AutoDocReader_1v65 AutoDoc Reader Aminet webpage]
  +
  +
== Awk ==
  +
  +
Awk, the powerful language to manipulate and process text files, is available for AmigaOS.
  +
  +
[http://os4depot.net/index.php?function=showfile&file=development/language/awk.lha Awk OS4Depot webpage]
  +
  +
== Beginner's Guide to Programming ReAction ==
  +
  +
This is a beginners guide to programming with ReAction, a toolkit for GUI programming in AmigaOS.
  +
  +
[http://www.os4depot.net/index.php?function=showfile&file=document/development/reactionguide.lha Beginner's Guide to Programming ReAction OS4Depot webpage]
  +
  +
[https://wiki.amigaos.net/wiki/ReAction Additional information on ReAction]
  +
  +
== CMake ==
  +
  +
CMake is a cross platform build tool used to easily build complex projects across different platforms with a single build process. It has been ported to
  +
AmigaOS with the intention of making porting of various complex softwares easier for AmigaOS developers.
  +
  +
[http://os4depot.net/index.php?function=showfile&file=development/cross/cmake.lha CMake OS4Depot webpage]
   
 
== CodeBench ==
 
== CodeBench ==
   
 
CodeBench is an Integrated Development Environment (IDE).
 
CodeBench is an Integrated Development Environment (IDE).
  +
  +
[[File:codebench.jpg|300px|thumb|left|Image Source: CodeBench webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
   
 
Designed purely for use on the latest version of AmigaOS, CodeBench is a management system that is modular to allow adaptation to various programming languages.
 
Designed purely for use on the latest version of AmigaOS, CodeBench is a management system that is modular to allow adaptation to various programming languages.
   
The tabbed editor allowing multiple files to be open at any one time. Syntax highlighting and all the usual functions are included: Cut, Copy, Paste, Undo, Find, Replace, Indent etc. Blocks of pre-built code can also be inserted as well as handling highlighted blocks. Also supports color " themes" for familiarity.
+
The tabbed editor allowing multiple files to be open at any one time. Syntax highlighting and all the usual functions are included: Cut, Copy, Paste, Undo, Find, Replace, Indent etc. Blocks of pre-built code can also be inserted as well as handling highlighted blocks. Also supports color "themes" for familiarity.
   
Utilising a 'project' based system, all files are grouped together by type and are easily accessible from the Project Window. Editing is a simple matter of selecting the required file and it is opened in the built-in editor. Creating the finished article from the project is a one click event from the toolbar.
+
Utilizing a 'project' based system, all files are grouped together by type and are easily accessible from the Project Window. Editing is a simple matter of selecting the required file and it is opened in the built-in editor. Creating the finished article from the project is a one click event from the toolbar.
   
 
[http://www.codebench.co.uk/ CodeBench webpage]
 
[http://www.codebench.co.uk/ CodeBench webpage]
   
 
== Cubic IDE ==
 
== Cubic IDE ==
  +
  +
[[File:cubicide.png|300px|thumb|left|Image Source: Cubic IDE webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
   
 
The central component of Cubic IDE is GoldED, a fully-featured developers editor for selected versions of AmigaOS. Cubic IDE includes the Installation Wizard, an AmigaGuide authoring mode, LISP and Rexx support packages, the HTML editing environment Webworld and various other add-ons. Together, they form a set of tools for all steps of your development process, from writing source codes and installations over documentation to creation of a web site for your final product.
 
The central component of Cubic IDE is GoldED, a fully-featured developers editor for selected versions of AmigaOS. Cubic IDE includes the Installation Wizard, an AmigaGuide authoring mode, LISP and Rexx support packages, the HTML editing environment Webworld and various other add-ons. Together, they form a set of tools for all steps of your development process, from writing source codes and installations over documentation to creation of a web site for your final product.
Line 65: Line 199:
   
 
== Debug 101 ==
 
== Debug 101 ==
  +
  +
[[File:debug101.jpg|300px|thumb|left|Image Source: Debug 101 OS4Depot webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
   
 
Debug 101 is a source debugger for AmigaOS. It contains many of the features found in other debuggers like GDB as well as a ReAction GUI.
 
Debug 101 is a source debugger for AmigaOS. It contains many of the features found in other debuggers like GDB as well as a ReAction GUI.
Line 70: Line 224:
 
[http://www.os4depot.net/index.php?function=showfile&file=development/debug/db101.lha Debug 101 OS4Depot webpage]
 
[http://www.os4depot.net/index.php?function=showfile&file=development/debug/db101.lha Debug 101 OS4Depot webpage]
   
  +
== Emperor ==
== GNU Compiler Collection GCC ==
 
   
  +
Emperor is a very powerful software to write GUI-based programs. There are C/C++- source codes that are generated by Emperor. They can be easily translated by an external C/C++-Compiler. Developer wanted to make parameterizing of the Graphical User Interface (GUI) and its macro-elements as easy as possible. Following standard-GUI-elements are implemented:
GCC is available for AmigaOS development. The adtools project is the Amiga development tools project that hosts a number of tools that can be used to develop applications for AmigaOS.
 
   
  +
* Screens
[https://github.com/sba1/adtools adtools webpage]
 
  +
* Windows
  +
* Reaction gadgets
  +
* Menus
  +
* Popup-menus
  +
* Requests
  +
* ASL-requests
  +
* Locale-catalogs
  +
  +
Following NON-GUI-elements are implemented:
  +
  +
* Functionmacros
  +
* Install-scripts
  +
* ToolTypes
  +
* Includes
  +
* Libraries
  +
* Declare variables
  +
* InterConnection maps between gadgets
  +
* Create list-arrays for gadgets
  +
  +
With Emperor you are generating a complete C/C++-source code, which only must be compiled by an external compiler. Aim of this program is to assure software developer to create their programs (its source code) by Emperor, because the making of software (opening of windows, file- and fontrequests, menus etc.) is often equal and must not longer copied by programmers from other source codes. Emperor decrees about one or more macros for every GUI-element. Like the menus: here you must, for creating the complete Project-menu (open, close, save, print etc.) and its translation, (in Locale-".catalog"-file) only select the corresponding entry in the list. This is also possible with requests e.g. by making a QuitRequest. These are called in the own source code as function "REQUESTNAME();". But the program should also be for Amigans, who never programmed before, and want an easy way in the programming of AmigaOS-GUIs.
  +
  +
[http://os4depot.net/index.php?function=showfile&file=development/guitool/emperor.lha Emperor OS4Depot webpage]
  +
  +
== Free Pascal ==
  +
  +
Free Pascal is a professional Pascal compiler available for AmigaOS that can target many processor architectures.
  +
  +
[https://blog.alb42.de/fpc-amigaos-4/ Free Pascal for AmigaOS webpage]
  +
  +
== GL4ES ==
  +
  +
[[File:Gl4es.png|200px|thumb|left|Image Source: GL4ES webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
GL4ES is an OpenGL 2.1/1.5 to GL ES 2.0/1.1 translation library, with support for Pandora, ODroid, OrangePI, CHIP, Raspberry PI, Android and AmigaOS.
  +
  +
[http://os4depot.net/?function=showfile&file=development/library/graphics/gl4es_sdk.lha GL4ES OS4Depot webpage]
  +
  +
[https://github.com/ptitSeb/gl4es GL4ES GitHub webpage]
  +
  +
[http://ptitseb.github.io/gl4es/ GL4ES webpage]
  +
  +
== glsnoop ==
  +
  +
An experimental graphics API tracing tool for AmigaOS.
  +
  +
[https://github.com/capehill/glsnoop glsnoop webpage]
   
 
== Gui4Cli ==
 
== Gui4Cli ==
  +
  +
[[File:G4c.gif|300px|thumb|left|Image Source: Gui4Cli webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
   
 
Gui4Cli is a simple interpreted, event-driven language (no need for previous programming knowledge), which allows you to easily construct great-looking, resizable, font-sensitive GadTools GUIs which (among many other things) can be used to form command lines that can be sent to AmigaDOS or an ARexx port of an other program, for execution. It has many other capabilities too, things like directory & database listviews, maths evaluation, graphics, timers, commodities, file notifications, pipes, appicons etc. etc. With it you can control just about any aspect of the Amiga. Think of it as "Visual DOS".
 
Gui4Cli is a simple interpreted, event-driven language (no need for previous programming knowledge), which allows you to easily construct great-looking, resizable, font-sensitive GadTools GUIs which (among many other things) can be used to form command lines that can be sent to AmigaDOS or an ARexx port of an other program, for execution. It has many other capabilities too, things like directory & database listviews, maths evaluation, graphics, timers, commodities, file notifications, pipes, appicons etc. etc. With it you can control just about any aspect of the Amiga. Think of it as "Visual DOS".
   
[http://gui4cli.com/ami/gcmain.htm Gui4Cli webpage]
+
[http://aminet.net/package/dev/gui/gui4cli-update Gui4Cli Aminet webpage]
   
 
== Hollywood ==
 
== Hollywood ==
  +
  +
[[File:hollywood.png|400px|thumb|left|Image Source: Hollywood webpage]]
  +
[[File:hollywod2.png|425px|thumb|center|Image Source: Hollywood webpage]]
  +
  +
   
 
Hollywood is a multimedia-oriented programming language that can be used to create graphical applications very easily. It was designed with the paradigm to make software creation as easy as possible in mind. Thus, Hollywood is suited for beginners and advanced users alike. Hollywood comes with an extensive function library (encompassing over 800 different commands) that simplifies the creation of games, presentations, and applications, to a great extent. Having been in development since 2002 it is a very mature and stable software package today.
 
Hollywood is a multimedia-oriented programming language that can be used to create graphical applications very easily. It was designed with the paradigm to make software creation as easy as possible in mind. Thus, Hollywood is suited for beginners and advanced users alike. Hollywood comes with an extensive function library (encompassing over 800 different commands) that simplifies the creation of games, presentations, and applications, to a great extent. Having been in development since 2002 it is a very mature and stable software package today.
Line 93: Line 320:
   
 
[https://www.hollywood-mal.com/ Hollywood webpage]
 
[https://www.hollywood-mal.com/ Hollywood webpage]
  +
  +
== Irrlicht Engine ==
  +
  +
[[File:Irrlichtlogo.png|300px|thumb|left|Image Source: Irrlicht webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
The Irrlicht Engine is an open source realtime 3D engine written in C++. It is cross-platform, using D3D, OpenGL and its own software renderers. OpenGL-ES2 and WebGL renderers are also in development. It is a stable library which has been worked on for nearly 2 decades. We've got a huge community and Irrlicht is used by hobbyists and professional companies alike. You can find enhancements for it all over the web, like alternative terrain renderers, portal renderers, exporters, world layers, tutorials, editors, language bindings and so on. And best of all: It's completely free.
  +
  +
[https://github.com/kas1e/Irrlicht/ Irrlicht for AmigaOS webpage]
  +
  +
== Lua / LOVE / tolua++ ==
  +
  +
[[File:Lua.gif|200px|thumb|left|Image Source: Lua webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
  +
  +
Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode with a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal
  +
for configuration, scripting, and rapid prototyping.
  +
  +
LOVE is an awesome framework you can use to make 2D games in Lua. It's free, open-source, and works on Windows, Mac OS X, Linux and AmigaOS.
  +
  +
tolua++ is an extension of toLua, a tool to integrate C/C++ code with Lua. tolua++ includes new features oriented to c++, such as class templates.
  +
  +
tolua is a tool that greatly simplifies the integration of C/C++ code with Lua. Based on a "cleaned" header file, tolua automatically generates the binding code to access C/C++ features from Lua. Using Lua-5.0 API and metamethod facilities, the current version automatically maps C/C++ constants, external variables, functions, namespace, classes, and methods to Lua. It also provides facilities to create Lua modules.
  +
  +
[http://os4depot.net/index.php?function=showfile&file=development/language/liblua.lha Lua OS4Depot webpage]
  +
  +
[http://os4depot.net/index.php?function=showfile&file=development/game/love.lha LOVE OS4Depot webpage]
  +
  +
[http://os4depot.net/index.php?function=showfile&file=development/language/tolua.lha toula++ OS4Depot webpage]
   
 
== MUIRexx ==
 
== MUIRexx ==
Line 100: Line 381:
 
[http://aminet.net/package/dev/mui/MUIRexx_3_0a.lha MUIRexx Aminet webpage]
 
[http://aminet.net/package/dev/mui/MUIRexx_3_0a.lha MUIRexx Aminet webpage]
   
== NoWinED ==
+
== PortablE ==
  +
  +
[[File:PortablE logo.gif|200px|thumb|left|Image Source: PortablE webpage]]
  +
  +
  +
  +
  +
  +
   
NoWinED is a MUI-based TextEditor that can handle more files simultaneously, using different "pages" for each file. The fact that it is impossible to find a MUI TextEditor on Amiga powerful enough to be used instead of Notepad/Editpad and other editors does not have a reason.
 
   
Features:
 
   
* Handling of multiple files through tabs that can be managed via titleButtons, a list, and/or an useful context menu which you can open if you click with right mouse button on right scroll titlebutton (this one appears when it's necessary)
 
* Context menus
 
* Search and replace module
 
* Search into opened files module
 
* File Drag & Drop: dragging one or more files on the NoWinED list the files will be opened in new tabs, dragging a file on a page will open it on the current page. Finally dragging more files on a tab will open the first file in the current tab, and the others in new pages (AROS lacks Drag & Drop)
 
* Basic texteditor features (C&P, select all, Undo, Redo, etc...).
 
* Usage from keyboard supported
 
* UTF support (you can load UTF files and export UTF with/without BOM or ASCII)
 
* CR/LF/CR+LF support (you can load any kind of txt file and export text with LF/CR/CR+LF)
 
* Wrapping process of your text at the column you want
 
* Backup of all opened files (you can set time between a backup process and another one)
 
* AutoSave of current file (you can set time between a autosave process and another one)
 
* Programmable Fn keys with independent profiles
 
* Graphic printout
 
   
[http://shinkuro.altervista.org/amiga/software/nowined.htm NoWinED webpage]
 
   
== PortablE ==
 
   
 
PortablE is a recreation of the AmigaE programming language, along with many improvements, and the aim of being portable across many platforms.
 
PortablE is a recreation of the AmigaE programming language, along with many improvements, and the aim of being portable across many platforms.
  +
  +
PortablE works by translating your E code into C++, and then using GCC to compile it into an executable that you can run. But you don't need to worry about these details, because the PEGCC program will handle them for you. PortablE needs an installation of GCC, which is free & easily installed.
   
 
[http://cshandley.co.uk/portable/ PortableE webpage]
 
[http://cshandley.co.uk/portable/ PortableE webpage]
Line 136: Line 409:
   
 
[http://www.broad.ology.org.uk/amiga/proaction/index.html ProAction webpage]
 
[http://www.broad.ology.org.uk/amiga/proaction/index.html ProAction webpage]
  +
  +
== Simple DirectMedia Layer SDL ==
  +
  +
[[File:SDL logo.png|200px|thumb|left|Image Source: Simple DirectMedia Layer webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.
  +
  +
[https://github.com/AmigaPorts/SDL SDL AmigaOS Port webpage]
  +
  +
== SimpleGit ==
  +
  +
This is a very simple git client based on libgit2 with AmigaOS being the major target operating system.
  +
  +
[https://github.com/capehill/simplegit SimpleGit webpage]
   
 
== SDK Browser ==
 
== SDK Browser ==
  +
  +
[[File:SDKBrowser1.png|300px|thumb|left|Image Source: SDK Browser webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
   
 
The SDK Browser provides any Amiga Programmer a quick reference tool into the live AmigaOS Software Development Kit installation on your Amiga, via a 100% graphical (GUI) based tool. It can help you find the format (prototype) for any AmigaOS4.x system call as well as lookup a specific structure reference, method, tag item, what-have-you, quicker than any other tool. Or, you can simply use it as a great way to wander through the AmigaOS4.x development documentation (AutoDocs, Includes, etc.) to learn more about how to program for this great machine and its powerful operating system. There is a great deal of (largely untapped) power available with the "standard" OS if you only know where to look.
 
The SDK Browser provides any Amiga Programmer a quick reference tool into the live AmigaOS Software Development Kit installation on your Amiga, via a 100% graphical (GUI) based tool. It can help you find the format (prototype) for any AmigaOS4.x system call as well as lookup a specific structure reference, method, tag item, what-have-you, quicker than any other tool. Or, you can simply use it as a great way to wander through the AmigaOS4.x development documentation (AutoDocs, Includes, etc.) to learn more about how to program for this great machine and its powerful operating system. There is a great deal of (largely untapped) power available with the "standard" OS if you only know where to look.
Line 159: Line 481:
   
 
== vbcc ==
 
== vbcc ==
  +
  +
[[File:Vbcc logo.png|200px|thumb|left|Image Source: vbcc webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
   
 
vbcc is a highly optimizing portable and retargetable ISO C compiler available for AmigaOS. It supports ISO C according to ISO/IEC 9899:1989 and a subset of the new standard ISO/IEC 9899:1999 (C99).
 
vbcc is a highly optimizing portable and retargetable ISO C compiler available for AmigaOS. It supports ISO C according to ISO/IEC 9899:1989 and a subset of the new standard ISO/IEC 9899:1999 (C99).
  +
  +
It is split into a target-independent and a target-dependent part, and provides complete abstraction of host- and target- arithmetic. Therefore, it fully supports cross-compiling for 8, 16, 32 and 64bit architectures. Embedded systems are supported by features like different pointer-sizes (e.g. differently sized function- and object-pointers or near- and far-pointers), ROM-able code, inline-assembly, bit-types, interrupt-handlers, section-attributes, stack-calculation and many others (depending on the backend). vbcc provides a large set of aggressive high-level optimizations as well as target-specific optimizations to produce faster or smaller code. Rather than restricting analysis and optimization to single functions or files, vbcc is able to optimize across functions and even modules.
   
 
[http://sun.hasenbraten.de/vbcc/ vbcc webpage]
 
[http://sun.hasenbraten.de/vbcc/ vbcc webpage]
  +
  +
== Vim ==
  +
  +
[[File:vim1.jpg|300px|thumb|left|Image Source: Vim OS4Depot webpage]]
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. Vim is rock stable and is continuously being developed to become even better. Among its features are:
  +
  +
* persistent, multi-level undo tree
  +
* extensive plugin system
  +
* support for hundreds of programming languages and file formats
  +
* powerful search and replace
  +
* integrates with many tools
  +
  +
Please note that this is not a straight port of the upstream version. It includes a full MUI GUI with most of the bells and whistles found in Vim on any of the major platforms. "TheBar" custom class must be installed for MUI for this version of Vim.
  +
  +
[http://os4depot.net/index.php?function=showfile&file=utility/text/edit/vim_mui.lha Vim OS4Depot webpage]
  +
  +
[https://github.com/amiga-mui/thebar TheBar custom class webpage]
  +
  +
[https://github.com/sodero/MUI-Vim Vim GitHub webpage]

Latest revision as of 16:19, 7 June 2020

If you are interested in developing applications for AmigaOS please note that the Developer Section contains documentation that is useful for developing applications, device drivers, games and other programming projects on AmigaOS. Information from the developers conference (DevCon) held annually at AmiWest including videos of past conferences and more can also be found in this section. The Tutorial Section contains a couple of hands-on tutorials that are intended to allow beginning developers to get into programming with step-by-step examples. Finally, the Autodocs section contains the well-known autodocs, function-by-function documentation of libraries and devices in the AmigaOS system.

Additional assistance is available at Hyperion Entertainment Forums and OS4 Coding.

The following is a sampling of software development applications that may assist with development for AmigaOS.


Disclaimer

The following list of applications, with the exception of the official AmigaOS Software Development Kit, is neither endorsed by nor supported by Hyperion Entertainment. This list is strictly informational only.

adtools GNU Compiler Collection (GCC)

The "adtools" project is the Amiga development tools project that hosts a number of tools that can be used for cross-compiling between various platforms and developing applications for AmigaOS and other Amiga-like platforms. The suite is based on the GCC compiler suite.

adtools webpage

Amiga Image Storage System AISS

Image Source: AISS Viewer OS4Depot webpage











The Amiga Image Storage System AISS is an environment to store, access and maintain toolbar images. This can also be used in conjunction with AISS Viewer to easily locate and reference resources into development projects.

Amiga Image Storage System AISS OS4Depot webpage

AISS Viewer OS4Depot webpage

AmigaOS Software Development Kit

Image Source: AmigaOS webpage









The official AmigaOS Software Development Kit contains everything needed to get started writing native applications for AmigaOS, including the AmigaOS native GCC compiler, support applications, autodocs, includes and headers.

AmigaOS Software Development Kit download from Hyperion Entertainment

AutoDocViewer

Image Source: AutoDocViewer OS4Depot webpage
Image Source: AutoDocViewer OS4Depot webpage


This program makes it easy to read Autodoc files on AmigaOS via a simple to use ReAction interface.

AutoDocViewer OS4 Depot webpage

AutoDoc Reader

This is a great freeware program to view any text file (autodocs, C-header and others) with database and search options. This is very useful to read the autodocs from the Software Development Kit. Developers documentation in autodoc format is often needed in everyday work. Getting familiar with a lot of files and searching tons of text for desired information is not an easy task. That's where the idea of writing a program that could ease using autodocs originated.

Features include:

  • Possibility of creating a database of ours autodocs files,
  • Fast and easy documents browsing,
  • Possibility of independent loading of autodocs not included in a base,
  • Search engine for functions, methods and parameters,
  • Easy usage with mouse or keyboard.

The program can act as separate viewer or autodoc-viewing module for other software (e.g. DOpus or GED).

AutoDoc Reader Aminet webpage

Awk

Awk, the powerful language to manipulate and process text files, is available for AmigaOS.

Awk OS4Depot webpage

Beginner's Guide to Programming ReAction

This is a beginners guide to programming with ReAction, a toolkit for GUI programming in AmigaOS.

Beginner's Guide to Programming ReAction OS4Depot webpage

Additional information on ReAction

CMake

CMake is a cross platform build tool used to easily build complex projects across different platforms with a single build process. It has been ported to AmigaOS with the intention of making porting of various complex softwares easier for AmigaOS developers.

CMake OS4Depot webpage

CodeBench

CodeBench is an Integrated Development Environment (IDE).

Image Source: CodeBench webpage










Designed purely for use on the latest version of AmigaOS, CodeBench is a management system that is modular to allow adaptation to various programming languages.

The tabbed editor allowing multiple files to be open at any one time. Syntax highlighting and all the usual functions are included: Cut, Copy, Paste, Undo, Find, Replace, Indent etc. Blocks of pre-built code can also be inserted as well as handling highlighted blocks. Also supports color "themes" for familiarity.

Utilizing a 'project' based system, all files are grouped together by type and are easily accessible from the Project Window. Editing is a simple matter of selecting the required file and it is opened in the built-in editor. Creating the finished article from the project is a one click event from the toolbar.

CodeBench webpage

Cubic IDE

Image Source: Cubic IDE webpage











The central component of Cubic IDE is GoldED, a fully-featured developers editor for selected versions of AmigaOS. Cubic IDE includes the Installation Wizard, an AmigaGuide authoring mode, LISP and Rexx support packages, the HTML editing environment Webworld and various other add-ons. Together, they form a set of tools for all steps of your development process, from writing source codes and installations over documentation to creation of a web site for your final product.

The editor offers all functions you can expect from a modern program.

  • Unlimited undo and redo, configurable syntax highlighting, templates, folding, automatic backups, macro recording and extensive rexx support.
  • Single document interface and multiple document interface (all texts in one window)
  • Advanced layout and block functions.
  • Very high speed
  • Optional input aids including context-sensitive completion and automatic case correction.
  • Plug-In interface
  • Support for encryption
  • Spellchecking

All aspects of the Cubic IDE interface are configurable: fonts, colors, toolbars, menus, mouse, etc. Tabbed dialogs simplify the configuration. The software can handle an unlimited number of open screens and windows. Background processes like printing are multithreaded and do not block the user interface. The editor recognizes file types and automatically adjusts the editing environment. For example, the menu will show compiler-specific functions after loading a C source code.

Cubic IDE seamlessly integrates with SAS/C, vbcc, gcc and the StormC3 development environment.

  • Free C/C++ compiler and software development kit included for your convenience for AmigaOS.
  • Revised online version of "The C Book" included for C beginners.
  • Configurable references system for includes, source codes and other material helps you with finding information quickly.
  • The QuickInfo function constantly shows information related to the word under the cursor (e.g. parameters of OS functions).
  • Source level debugger support for StormC3 users (breakpoints are displayed next to the text).
  • The editor automatically highlights matching brackets.
  • Symbol browser lists all functions, structures, labels etc. defined in your source codes.
  • Built-in grep support allows you to search patterns in a list of files.

Cubic IDE webpage

Debug 101

Image Source: Debug 101 OS4Depot webpage










Debug 101 is a source debugger for AmigaOS. It contains many of the features found in other debuggers like GDB as well as a ReAction GUI.

Debug 101 OS4Depot webpage

Emperor

Emperor is a very powerful software to write GUI-based programs. There are C/C++- source codes that are generated by Emperor. They can be easily translated by an external C/C++-Compiler. Developer wanted to make parameterizing of the Graphical User Interface (GUI) and its macro-elements as easy as possible. Following standard-GUI-elements are implemented:

  • Screens
  • Windows
  • Reaction gadgets
  • Menus
  • Popup-menus
  • Requests
  • ASL-requests
  • Locale-catalogs

Following NON-GUI-elements are implemented:

  • Functionmacros
  • Install-scripts
  • ToolTypes
  • Includes
  • Libraries
  • Declare variables
  • InterConnection maps between gadgets
  • Create list-arrays for gadgets

With Emperor you are generating a complete C/C++-source code, which only must be compiled by an external compiler. Aim of this program is to assure software developer to create their programs (its source code) by Emperor, because the making of software (opening of windows, file- and fontrequests, menus etc.) is often equal and must not longer copied by programmers from other source codes. Emperor decrees about one or more macros for every GUI-element. Like the menus: here you must, for creating the complete Project-menu (open, close, save, print etc.) and its translation, (in Locale-".catalog"-file) only select the corresponding entry in the list. This is also possible with requests e.g. by making a QuitRequest. These are called in the own source code as function "REQUESTNAME();". But the program should also be for Amigans, who never programmed before, and want an easy way in the programming of AmigaOS-GUIs.

Emperor OS4Depot webpage

Free Pascal

Free Pascal is a professional Pascal compiler available for AmigaOS that can target many processor architectures.

Free Pascal for AmigaOS webpage

GL4ES

Image Source: GL4ES webpage







GL4ES is an OpenGL 2.1/1.5 to GL ES 2.0/1.1 translation library, with support for Pandora, ODroid, OrangePI, CHIP, Raspberry PI, Android and AmigaOS.

GL4ES OS4Depot webpage

GL4ES GitHub webpage

GL4ES webpage

glsnoop

An experimental graphics API tracing tool for AmigaOS.

glsnoop webpage

Gui4Cli

Image Source: Gui4Cli webpage






Gui4Cli is a simple interpreted, event-driven language (no need for previous programming knowledge), which allows you to easily construct great-looking, resizable, font-sensitive GadTools GUIs which (among many other things) can be used to form command lines that can be sent to AmigaDOS or an ARexx port of an other program, for execution. It has many other capabilities too, things like directory & database listviews, maths evaluation, graphics, timers, commodities, file notifications, pipes, appicons etc. etc. With it you can control just about any aspect of the Amiga. Think of it as "Visual DOS".

Gui4Cli Aminet webpage

Hollywood

Image Source: Hollywood webpage
Image Source: Hollywood webpage


Hollywood is a multimedia-oriented programming language that can be used to create graphical applications very easily. It was designed with the paradigm to make software creation as easy as possible in mind. Thus, Hollywood is suited for beginners and advanced users alike. Hollywood comes with an extensive function library (encompassing over 800 different commands) that simplifies the creation of games, presentations, and applications, to a great extent. Having been in development since 2002 it is a very mature and stable software package today.

One of the highlights of Hollywood is its inbuilt cross-compiler which can be used to deploy software on many different platforms without having to change a single line of the code. The cross-compiler can compile for all platforms from any platform Hollywood is running on. For instance, you can compile macOS application bundles using the Windows version of Hollywood. There is even an optional add-on that can convert Hollywood applets into stand-alone APKs for release on Android! Android development has never been so easy!

Hollywood is a light-weight, but still powerful programming language whose core is just about two megabytes in size and does not require any external components. Hence, it is ideal for creating programs which run right out of the box. In fact, Hollywood programs will run perfectly from an USB flash drive without any prior installation whatsoever.

Platform architectures currently supported include AmigaOS, Android, iOS, MacOS, Windows, Linux and more.

Hollywood webpage

Irrlicht Engine

Image Source: Irrlicht webpage





The Irrlicht Engine is an open source realtime 3D engine written in C++. It is cross-platform, using D3D, OpenGL and its own software renderers. OpenGL-ES2 and WebGL renderers are also in development. It is a stable library which has been worked on for nearly 2 decades. We've got a huge community and Irrlicht is used by hobbyists and professional companies alike. You can find enhancements for it all over the web, like alternative terrain renderers, portal renderers, exporters, world layers, tutorials, editors, language bindings and so on. And best of all: It's completely free.

Irrlicht for AmigaOS webpage

Lua / LOVE / tolua++

Image Source: Lua webpage










Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.

Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode with a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

LOVE is an awesome framework you can use to make 2D games in Lua. It's free, open-source, and works on Windows, Mac OS X, Linux and AmigaOS.

tolua++ is an extension of toLua, a tool to integrate C/C++ code with Lua. tolua++ includes new features oriented to c++, such as class templates.

tolua is a tool that greatly simplifies the integration of C/C++ code with Lua. Based on a "cleaned" header file, tolua automatically generates the binding code to access C/C++ features from Lua. Using Lua-5.0 API and metamethod facilities, the current version automatically maps C/C++ constants, external variables, functions, namespace, classes, and methods to Lua. It also provides facilities to create Lua modules.

Lua OS4Depot webpage

LOVE OS4Depot webpage

toula++ OS4Depot webpage

MUIRexx

MUIRexx is a program which serves as an interface between ARexx and MagicUserInterface (MUI). MUIRexx does not provide complete access to all of the capabilities of MagicUserInterface (MUI), however, quite a lot of capability is implemented in MUIRexx such as notification, icon buttons, and application objects (objects that react to icons dropped on them), as well as many standard MUI objects. Complete graphical user interfaces as well as full applications can be developed using MUIRexx and ARexx macros. Additionally, it is also possible to dynamically change or add objects after the application has been created.

MUIRexx Aminet webpage

PortablE

Image Source: PortablE webpage







PortablE is a recreation of the AmigaE programming language, along with many improvements, and the aim of being portable across many platforms.

PortablE works by translating your E code into C++, and then using GCC to compile it into an executable that you can run. But you don't need to worry about these details, because the PEGCC program will handle them for you. PortablE needs an installation of GCC, which is free & easily installed.

PortableE webpage

ProAction

A powerful interface between any Arexx enabled scripting language and the AmigaOS ReAction GUI system. ProAction provides GUIs for script writers, using a unique "dual ARexx Port" approach. ProAction itself is an ARexx host which provides functions for building and managing the GUI, then GUI events are sent as commands to an ARexx port managed by the script.

It can be used from any language that can support an ARexx host. (ARexx (with rexxsupport.libray) python via arexx.so etc etc)

ProAction webpage

Simple DirectMedia Layer SDL

Image Source: Simple DirectMedia Layer webpage







Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.

SDL AmigaOS Port webpage

SimpleGit

This is a very simple git client based on libgit2 with AmigaOS being the major target operating system.

SimpleGit webpage

SDK Browser

Image Source: SDK Browser webpage












The SDK Browser provides any Amiga Programmer a quick reference tool into the live AmigaOS Software Development Kit installation on your Amiga, via a 100% graphical (GUI) based tool. It can help you find the format (prototype) for any AmigaOS4.x system call as well as lookup a specific structure reference, method, tag item, what-have-you, quicker than any other tool. Or, you can simply use it as a great way to wander through the AmigaOS4.x development documentation (AutoDocs, Includes, etc.) to learn more about how to program for this great machine and its powerful operating system. There is a great deal of (largely untapped) power available with the "standard" OS if you only know where to look.

Features include:

  • Fully multitasking search bar with start/stop and pause/resume. File pattern filter added to search bar, and maintained separately for each search type. Interact with results as they are found, or continue to use all other parts of the SDK Browser as the search continues in the background. Search will continue even when hidden or iconified, and is controllable from the commodity exchange as well.
  • History Bar. Quickly return to any of the last 20 items that have been viewed previously. Browse forward or back with the arrow buttons, or pull down and select a new position within the browser history. The history bar works like a combination of a web browser forward and back buttons and a rotating 20 item tabbed display. Giving you the flexibility to quickly work with the last 20 items that have been referenced already.
  • Support for more than one interface(API) found within the same library. If the XML file for a given library contains more than one interface for accessing that library, then the SDK Browser will create a new browsable Library tree for each interface and name them with their respective interface name. This is also why the Interface name was added to each library entry under the Library list.
  • Faster than ever before using newly optimized viewing routines and less disk access.
  • Function calls under "Commands" or an open view of any "Library" now displays just the description of the function call within the AutoDoc instead of displaying the entire AutoDoc and attempting to search for the start of the description. This makes for a cleaner an easier to read display, while the entire AutoDoc file is still instantly available by selecting the Library name itself, or browsing the "AutoDocs" directly.
  • Quick find ANY item in the active list just by typing the first few letters of its name.
  • New "Includes" browsing. Live browse the system includes using the new embedded directory scanner.
  • Convenient "Send To" menu for launching a helpful set of external viewers right from the SDK Browser. Quickly open source files into the editor of your choice, or open HTML files directly into your web browser of choice. You can also launch the currently selected file with "MultiView", "AmiPDF", or even "Unarc" those archives.
  • Improved interface handles all Library, Commands, AutoDocs, and Includes browsing under the "SDK" clicktab, while also giving the user a "Project" tab and directory scan lister for browsing their own project source or any where you need to, quickly and easily from one tool.
  • Extensive keyboard controls to enhance the existing "mouse-over" focused movement keys and "mouse-wheel" support.
  • Programmable SDK and search paths.
  • Programmable EDITOR and WEBBROWSER tooltypes for use by the "Send To" menu.

SDK Browser webpage

vbcc

Image Source: vbcc webpage







vbcc is a highly optimizing portable and retargetable ISO C compiler available for AmigaOS. It supports ISO C according to ISO/IEC 9899:1989 and a subset of the new standard ISO/IEC 9899:1999 (C99).

It is split into a target-independent and a target-dependent part, and provides complete abstraction of host- and target- arithmetic. Therefore, it fully supports cross-compiling for 8, 16, 32 and 64bit architectures. Embedded systems are supported by features like different pointer-sizes (e.g. differently sized function- and object-pointers or near- and far-pointers), ROM-able code, inline-assembly, bit-types, interrupt-handlers, section-attributes, stack-calculation and many others (depending on the backend). vbcc provides a large set of aggressive high-level optimizations as well as target-specific optimizations to produce faster or smaller code. Rather than restricting analysis and optimization to single functions or files, vbcc is able to optimize across functions and even modules.

vbcc webpage

Vim

Image Source: Vim OS4Depot webpage









Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. Vim is rock stable and is continuously being developed to become even better. Among its features are:

  • persistent, multi-level undo tree
  • extensive plugin system
  • support for hundreds of programming languages and file formats
  • powerful search and replace
  • integrates with many tools

Please note that this is not a straight port of the upstream version. It includes a full MUI GUI with most of the bells and whistles found in Vim on any of the major platforms. "TheBar" custom class must be installed for MUI for this version of Vim.

Vim OS4Depot webpage

TheBar custom class webpage

Vim GitHub webpage