Amiga E modules and objects

Download Amiga E modules

I've written some interesting and varied reusable modules for the Amiga E language. There are many, but the most interesting modules are:

  • args allows you to support Workbench's option system (tooltypes) by using the shell's usual ReadArgs() option system.
  • debug allows you to print to the Amiga's standard debugging terminal on the serial or parallel ports.
  • hex parses strings with hexidecimal numbers in them into actual numbers. The method used is incredibly short and quick, and is written in assembler.
  • keypress allows you to 'ghost press' keys on the keyboard, through software alone.
  • loadfile allows you to load files (including compressed files), and allows you to save files.
  • makedir creates a directory and all its parent directories, if they don't exist. This is like mkdir -p.
  • paths allows you to copy command paths. This basically allows you to run programs from Workbench-launched applications in the same way they would be launched from the shell.
  • segtracker allows you to look up an address, to see where it belongs in a loaded program.
  • stealchip allows you to read areas of memory that are actually protected by the MMU.

Download Amiga E objects

I've also written some interesting classes using Amiga E. E is both procedural and object oriented. Sometimes one approach is better than the other.

  • bitfield is a full-featured representation of a bitfield. It provides individual bit operations and testing, bitfield range operations (with AND-combined and OR-combined test results), combination of bitfields with AND, OR, XOR or just copy, and optional raising of exceptions on range errors.
  • catalog is a very simple and powerful way to use localization catalogs in programs, using the object form to make it much easier to use more than one catalog.
  • cdplayer is an object-oriented interface to the standard cd.device. It allows you to play audio CDs.
  • patch is a very powerful way to install E functions as patches over operating system functions. Once again, the object-oriented system allows us to hide the messy internal details, and present a simple interface to the programmer. An example program is given which reverses the responses to system requesters (i.e. 'lecnaC / erongI / yrteR').
  • rexxstate controls the internal workings of the Amiga's ARexx interpreter.