|
| void | ge_init (struct ge *ge) |
| | Initialize the emulator.
|
| |
| int | ge_deinit (struct ge *ge) |
| | Deinitialize the emulator.
|
| |
| int | ge_load_image (struct ge *ge, const uint8_t *image, size_t size, uint16_t origin) |
| | Write a flat image into core at origin, priming the parity store.
|
| |
| void | ge_enter (struct ge *ge, uint16_t entry) |
| | Force the sequencer into the alpha (fetch) phase at entry.
|
| |
| void | ge_mem_store8 (struct ge *ge, uint16_t addr, uint8_t val) |
| | Store a byte with generated odd parity + mark-written (for the hybrid ALU/SS write paths that write ge->mem[] directly).
|
| |
| void | ge_seed_segment_bases (struct ge *ge) |
| | Seed the eight change/segment-base registers (mem[240+2N]) to identity bases N<<12.
|
| |
| int | ge_run (struct ge *ge) |
| | Run the emulator.
|
| |
| int | ge_run_pulse (struct ge *ge) |
| | Run a single pulse (i.e. a single GE "mastri" clock periods)
|
| |
| int | ge_run_cycle (struct ge *ge) |
| | Run all GE "mastri" clock periods until next clock cycle.
|
| |
| void | ge_clear (struct ge *ge) |
| | Emulate the press of the "clear" button in the console.
|
| |
| void | ge_load (struct ge *ge) |
| | Emulate the press of the "load" button in the console.
|
| |
| void | ge_load_1 (struct ge *ge) |
| | Emulate the press of the "load 1" button in the console.
|
| |
| void | ge_load_2 (struct ge *ge) |
| | Emulate the press of the "load 2" button in the console.
|
| |
| void | ge_start (struct ge *ge) |
| | Emulate the press of the "start" button in the console.
|
| |
| void | pulse (struct ge *ge) |
| |
| int | ge_register_peri (struct ge *ge, struct ge_peri *p) |
| |
| void | fsn_last_clock (struct ge *ge) |
| | Commit the future state.
|
| |
| void | connectors_first_clock (struct ge *ge) |
| |
| const char * | ge_clock_name (enum clock c) |
| | The clock period name name.
|
| |
| void | ge_print_registers_verbose (struct ge *ge) |
| |
| static uint8_t | ge_halted (const struct ge *ge) |
| | Is the CPU stopped?
|
| |
| void | ge_log_options (struct ge *ge) |
| | Report the strapped configuration and every level it produces (LOG_DEBUG).
|
| |
Backplane option connectors and the maintenance LAMPS switch.
cp06 chapter 002 "VARIANTI E OPZIONI / CHANGE AND OPTION" (dwg 140 130 65 6). The machine is configured at FOUR backplane connector positions – E03, E04, F03, F04 – and by one switch on the maintenance panel. The position names decode in the cp08 card-layout scheme as <ROW><CARD>, so E04 is row E card 04, and cp08 pp11-12 independently confirm which signals land on each. See docs/hardware-options.md for the tables and for what to probe on a physical machine.
| Enumerator |
|---|
| PONT_NONE | |
| PONT_2N | |
| PONT_2P | |
Definition at line 139 of file ge.h.
| static uint8_t ge_halted |
( |
const struct ge * |
ge | ) |
|
|
inlinestatic |
Is the CPU stopped?
ALTO is the hardware stop flip-flop (cpu fo.97/98): it gates RIA0, so while it is set the CPU is attributed no work cycles. The delay line keeps turning and the channels keep running – a halted GE-120 still drives its panel – so a front end that models the whole machine (the wasm console) should keep cycling and simply watch this; a batch front end that only cares about the program uses it to end the run.
There used to be a separate halted field alongside it. It was redundant and disagreed with ALTO in both directions: set at init while ALTO was clear, cleared by ge_clear() while ALTO was set, and – the actual bug – left clear by every operator stop (ACOV/ACON, PAPA, PATE), so the CLI run loop kept spinning against a frozen CPU.
Definition at line 929 of file ge.h.
| int ge_load_image |
( |
struct ge * |
ge, |
|
|
const uint8_t * |
image, |
|
|
size_t |
size, |
|
|
uint16_t |
origin |
|
) |
| |
Write a flat image into core at origin, priming the parity store.
NOT a load path – programs reach the machine on cards. Test scaffolding, and the model behind the maintenance panel's memory key-in. Returns 0 on success, -1 on range error.
Definition at line 330 of file ge.c.