Amiga Virtual Machine Article Index for
Amiga
Shopping
Amiga
Website Links For
Amiga
 

Information About

Amiga Virtual Machine




The availability of AVMs on many types of hardware Platforms enables Amiga software to function both as Middleware and a platform in its own right. Once an Amiga program is compiled it may be executed on any platform with an AVM thus giving rise to the expression " Write Once, Run Anywhere ."

WinUAE is an example of a popular and widespread Amiga implementation.
WinUAE is the only AVM to date (2006) that uses JIT .


EXECUTABLE PROGRAM FILES


Programs intended to run on an AVM must be compiled into a standardized portable binary format referred to as an Amiga executable file.
Such a file consists of many hunks such as symbol hunks, debug hunks, code hunks, data hunks and BSS hunks. Producing an Amiga executable file is typically a process handled automatically by the C compiler or the compiler for whichever language one chooses to use.

Amiga executable files are sometimes referred to as an EXE but it should be noted that they may be named ''anything'' and need not end in ".exe".

This binary executable is then executed by the AVM Runtime which carries out Emulation of the AVM Instruction Set by Interpreting it or by applying a Just-in-time Compiler (JIT) such as the open source WinUAE does.


BYTECODES


The AVM has instructions for the following groups of tasks:
  • Load and store (Move.B, Move.W, Move.L)

  • Arithmetic (Add, Sub, Mul, Div)

  • Bit shifting (left or right, logical or arhitemetical)

  • Bit rotation (ROR, ROL, ROXL, ROXR)

  • Type conversion (byte to word, word to byte)

  • Logical operations (AND, OR, NOT, EOR)

  • Stack management (push / pop)

  • Unconditional branching (BRA)

  • Conditional branching (BCS, BEQ, BNE, BHI, BLO, BMI, BPL, etc.)

  • Subroutine invocation and return (BSR, RTS)

  • Causing interrupts

  • Responding to interrupts

  • Exception handling


The result is binary compatibility between all AVMs. Each particular host Operating System needs its own implementation of the AVM. These AVMs interpret the byte code syntactically the same way, but the actual implementation may be different.


CUSTOM CHIPS


The most complicated aspect of producing an AVM is the emulation of the Amiga's standard complement of specialised silicon chips which perform various visual, auditory, I/O and timekeeping functions.

  • Paula DSP (Digital Sound Processor)

  • Blitter (moves and mixes planar graphics)

  • Copper (a seperate processor that runs its own programs, mainly used for graphical display purposes)

  • CIA chips (Complex Interface Adapaters which contain timers and other logic)




SEE ALSO



EXTERNAL LINKS