Copyright (c) 2012-2016 Hyperion Entertainment and contributors.
Difference between revisions of "AmigaOS Apps Development"
|Line 148:||Line 148:|
[https://blog.alb42.de/fpc-amigaos-4/ Free Pascal for AmigaOS webpage]
[https://blog.alb42.de/fpc-amigaos-4/ Free Pascal for AmigaOS webpage]
== Gui4Cli ==
== Gui4Cli ==
Revision as of 16:21, 8 June 2019
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.
The following is a sampling of software development applications that may assist with development for AmigaOS.
- 1 Disclaimer
- 2 adtools GNU Compiler Collection (GCC)
- 3 Amiga Image Storage System AISS
- 4 AmigaOS Software Development Kit
- 5 AutoDoc Reader
- 6 Awk
- 7 Beginner's Guide to Programming ReAction
- 8 CMake
- 9 CodeBench
- 10 Cubic IDE
- 11 Debug 101
- 12 Emperor
- 13 Free Pascal
- 14 glsnoop
- 15 Gui4Cli
- 16 Hollywood
- 17 Lua / LOVE / tolua++
- 18 MUIRexx
- 19 NoWinED
- 20 PortablE
- 21 ProAction
- 22 SDK Browser
- 23 vbcc
- 24 Vim
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.
Amiga Image Storage System AISS
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.
AmigaOS Software Development Kit
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.
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.
- 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).
Awk, the powerful language to manipulate and process text files, is available for AmigaOS.
Beginner's Guide to Programming ReAction
This is a beginners guide to programming with ReAction, a toolkit for GUI programming in AmigaOS.
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.
CodeBench is an Integrated Development Environment (IDE).
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.
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.
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
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.
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.
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:
- Reaction gadgets
Following NON-GUI-elements are implemented:
- 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.
Free Pascal is a professional Pascal compiler available for AmigaOS that can target many processor architectures.
An experimental graphics API tracing tool for AmigaOS.
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".
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.
Lua / LOVE / tolua++
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.
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.
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.
- 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
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.
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)
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.
- 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.
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).
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.