9 #define CLOCK_PERIOD 14000
10 #define MEM_SIZE 65536
12 #define ENUMERATE_CLOCKS \
37 #define X(name) name ,
int ge_deinit(struct ge *ge)
Deinitialize the emulator.
void ge_load_1(struct ge *ge)
Emulate the press of the "load 1" button in the console.
void ge_clear(struct ge *ge)
Emulate the press of the "clear" button in the console.
int ge_run(struct ge *ge)
Run the emulator.
int ge_run_cycle(struct ge *ge)
Run all GE "mastri" clock periods until next clock cycle.
void ge_load_2(struct ge *ge)
Emulate the press of the "load 2" button in the console.
void(* on_pulse_cb)(struct ge *)
void ge_init(struct ge *ge)
Initialize the emulator.
int ge_run_pulse(struct ge *ge)
Run a single pulse (i.e. a single GE "mastri" clock periods)
void fsn_last_clock(struct ge *ge)
Commit the future state.
int ge_register_peri(struct ge *ge, struct ge_peri *p)
void ge_print_registers_verbose(struct ge *ge)
void pulse(struct ge *ge)
void ge_load(struct ge *ge)
Emulate the press of the "load" button in the console.
int ge_load_program(struct ge *ge, uint8_t *program, uint8_t size)
Copy a program at the start of memory.
const char * ge_clock_name(enum clock c)
The clock period name name.
void connectors_first_clock(struct ge *ge)
void ge_start(struct ge *ge)
Emulate the press of the "start" button in the console.
struct ge_counting_network::cmds cmds
enum ge_knot_no::@0 force_mode
int(* on_pulse)(struct ge *, void *)
int(* init)(struct ge *, void *)
int(* deinit)(struct ge *, void *)
int(* on_clock)(struct ge *, void *)
The entire state of the emulated system, including registers, memory, peripherals and timings.
uint8_t ALAM
Operator Call.
uint8_t INTE
Interruption present.
uint8_t ALOI
Load connector selection.
uint8_t AINI
Program Loading.
struct ge_integrated_reader integrated_reader
The I/O interface for the integrated reader (RI)
uint8_t JS2
Console jump condition 2.
struct ge_connector ST4
The I/O interface for the ST4 connector.
uint8_t ALTO
Stops internal cycles.
uint8_t ffFA
Special conditions register 2.
uint16_t rPO
Program addresser.
uint8_t PIC1
Selection Channel 1.
uint8_t future_state
Future state.
uint8_t PODI
Slow delay line.
enum ge_console_rotary register_selector
The current state of the console register rotary switch.
uint8_t RIA0
Synchronous CPU Cycle Request.
uint8_t RIA2
Synchronous Channel 2 Cycle Request.
uint16_t rV1
Addresser for the first operand.
uint8_t rSO
Main sequencer.
uint16_t rRO
Multipurpose 8+1 bit register.
struct ge_counting_network counting_network
struct ge_console_switches console_switches
The current state of the console switches.
struct ge_connector ST3
The I/O interface for the ST3 connector.
uint8_t RIA3
Synchronous Channel 3 Cycle Request.
uint8_t PUC3
Channel 3 in transfer.
uint8_t rL2
Auxiliary register.
struct pulse_event * on_pulse[END_OF_STATUS]
uint8_t PUC2
Channel 2 in transfer.
uint8_t ffFI
Special conditions register 1.
uint8_t RC00
Asynchronous CPU Cycle Request.
uint8_t rRI
Photoprint register 8-bit register used to store the photodisc codes.
uint16_t rBO
Default operator.
uint8_t PB06
Unconditionally stores L106.
uint8_t RC01
Asynchronous Channel 1 Cycle Request.
uint8_t RECE
Selection Check Byte.
struct ge_knot_ni kNI
Knot driven by counting network, or by the UA to store the result of the operation.
uint8_t mem[MEM_SIZE]
The memory of the emulated system.
uint8_t AVER
Jump Condition Verified.
uint8_t RAVI
VICU Support.
uint8_t RACI
Rejected Command.
uint16_t rV4
Addresser for external instructions using channel 2.
uint8_t RASI
Channel 1 in transfer.
uint16_t rL1
Length of the operand.
uint8_t rSA
Future state configuration.
uint16_t rV2
Addresser for the second operand.
uint8_t RC02
Asynchronous Channel 2 Cycle Request.
uint8_t ADIR
Disable Step By Step.
uint8_t RESI
Synchronous Channel 1 Cycle Request.
uint8_t RIG1
End from controller 1.
uint8_t rSI
Peripheral unit sequencer.
uint16_t rVO
Default memory addresser.
uint8_t RC03
Asynchronous Channel 3 Cycle Request.
uint8_t JE
JE/AVER jump instruction exectuted.
uint8_t step_by_step
Step by step execution.
uint8_t ACIC
Recycle delay line.
enum ge::@2 memory_command
uint8_t PB26
Stores L106 if channel 2 is selected.
uint16_t rL3
Length of operands involving channel 3.
uint8_t PB07
Unconditionally stores L106.
uint16_t rV3
Addresser for external instructions using channel 3.
uint8_t TO50_did_CI32_or_CI33
Workaround for pulse TO50.
uint8_t rFO
Current function code.
uint8_t JS1
Console jump condition 1.
struct pulse_event * next