Skip to content

A short introduction to the Am2900ME

MaisiKoleni edited this page Jan 5, 2019 · 14 revisions

Starting the Application

First off, you need to have a Java Runtime Environment installed (preferably Java 10 or 11) The .jar you can find in the v0.0.1 release is a runnable jar. Simply double click it or enter

java -jar Am2900ME-0.0.1.jar

into the command line at the jar's location.

If nothing happens or you get an error message telling you that an Application class was not found, you need to install JavaFX (the GUI framework) first: https://openjfx.io. JavaFX was a long time part of the Java RE installation, but since Java 11 it has become a separate project.

If you are still having problems but have Java and JavaFX installed, you can create an Issue and give me detailed information on your system and I will try to fix it.

The application starts...

...and three windows open up:

  1. The Am2900ME - Machine RAM window
  2. The Am2900ME - Mapping PROM window
  3. The Am2900ME - Microinstructions window

The Am2900ME Machine RAM window

Am2900ME Machine RAM after startup This window allows you to modify and monitor the main machine RAM (Random Access Memory). The RAM is divided into 16 pages, each holding 4096 16 bit words. Each word is addressable by a 16 bit address. To save memory, the Am2900ME allocates a page only if it is used. This use can be the machine reading or writing data or the emulator's user modifying the data.

To modify data in a currently unused page, click the "Allocate the page to edit it"-button in the middle of the window. This will allocate the page that is selected in the top left Combobox. The box allows you to select the page you want to see or edit. When you click the button, it should look like this: Am2900ME Machine RAM allocated page This is the table of all words in the current page. All values and addresses are displayed in hexadecimal, 16 bit ones in that case. Almost every value in the Am2900 is displayed in hexadecimal, because it is — most of the time — the most useful for microprogramming. The leftmost column is the offset, the first 3 nibbles / first 12 bits of the addresses in the RAM cells of a row. The column each cell is in defines the last nibble / last 4 bits of the address. So

[row's offset] + [cell's column] = [cell's address]

If you want to edit a cells value, select the row and double click on the cell.
You can now enter an integer number in any format you like (almost the same as in Java):

decimal:      123
hexadecimal:  0x007B or 0x7b or #7B
octal:        0173

Important: All values in Am2900ME have a predefined number of nibbles in size, recognizable from the length of the hexadecimal representation. Entering integers exceeding this range will result in a cast to the required length. Therefore, it is possible to enter negative integers, the leading 1's get cut. Entering non (32 bit) integers results in no change, nothing will happen.

When the machine writes to the RAM, the changes get not immediately displayed. If you want to see what changes were made, click the "Update page values"-button.

It is always a good idea to save often, especially since the project is in an early stage and the machine cannot be reset at the moment. Use the "Save to File" and "Load to File" buttons to save the RAM's content to a CSV-like file and load it again.

Clone this wiki locally