GE-115 Emulator
An Emulator of the General Electrics GE-115 computer
Data Structures | Public Types | Data Fields
ge Struct Reference

The entire state of the emulated system, including registers, memory, peripherals and timings. More...

#include <ge.h>

Data Structures

struct  ge_integrated_printer
 Integrated printer / console typewriter (channel 2) — pragmatic model. More...
 

Public Types

enum  { MC_NONE , MC_READ , MC_WRITE }
 

Data Fields

enum clock current_clock
 
uint8_t powered
 
struct ge_options options
 Backplane straps and maintenance-panel options (cp06 ch.002).
 
struct pulse_eventon_pulse [END_OF_STATUS]
 
uint16_t rPO
 Program addresser.
 
uint16_t instr_pc
 Instruction-start PC (display aid, not a real register).
 
uint16_t rV1
 Addresser for the first operand.
 
uint16_t rV2
 Addresser for the second operand.
 
uint16_t rV3
 Addresser for external instructions using channel 3.
 
uint16_t rV4
 Addresser for external instructions using channel 2.
 
uint16_t cr_cache [8]
 Change/segment-register cache (kept in sync by the register instructions via cr_wr16 and by ge_seed_segment_bases).
 
uint8_t rRI
 Photoprint register 8-bit register used to store the photodisc codes.
 
uint16_t rL1
 Length of the operand.
 
uint8_t rL2
 Auxiliary register.
 
uint16_t rL3
 Length of operands involving channel 3.
 
struct ge_knot_no kNO
 
struct ge_knot_ni kNI
 Knot driven by counting network, or by the UA to store the result of the operation.
 
uint16_t rRO
 Multipurpose 8+1 bit register.
 
uint8_t rUA
 UA (arithmetic unit) output latch.
 
uint16_t rVO
 Default memory addresser.
 
uint16_t rBO
 Default operator.
 
uint8_t rFO
 Current function code.
 
uint8_t rSO
 Main sequencer.
 
uint8_t rSI
 Peripheral unit sequencer.
 
uint8_t rSA
 Future state configuration.
 
uint8_t rRE
 
uint8_t rRA
 
uint8_t ffFI
 Special conditions register 1.
 
uint8_t ffFA
 Special conditions register 2.
 
uint8_t RETO:1
 
uint8_t RET2:1
 Channel-2 cycle-assignment memory.
 
uint8_t AINI:1
 Program Loading.
 
uint8_t ALOI:1
 Load connector selection.
 
uint8_t ALTO:1
 Stops internal cycles.
 
uint8_t PODI:1
 Slow delay line.
 
uint8_t ACIC:1
 Recycle delay line.
 
uint8_t ALAM:1
 Operator Call.
 
uint8_t AVER:1
 Jump Condition Verified.
 
uint8_t ADIR:1
 Disable Step By Step.
 
uint8_t ASIN:1
 STEP-BY-STEP, the OPERATOR panel switch (signal ASIN).
 
uint8_t lamps_test:1
 LAMPS CHECK held (CPU[4] §3.2).
 
uint8_t RINT:1
 
uint8_t JS1:1
 Console jump condition 1.
 
uint8_t JS2:1
 Console jump condition 2.
 
uint8_t JE:1
 JE/AVER jump instruction exectuted.
 
uint8_t INTE:1
 Interruption present.
 
uint8_t PB06:1
 Unconditionally stores L106.
 
uint8_t PB07:1
 Unconditionally stores L106.
 
uint8_t PB26:1
 Stores L106 if channel 2 is selected.
 
uint8_t PB36:1
 
uint8_t PB37:1
 
uint8_t PIC1:1
 Selection Channel 1.
 
uint8_t RASI:1
 Channel 1 in transfer.
 
uint8_t PUC2:1
 Channel 2 in transfer.
 
uint8_t PUC3:1
 Channel 3 in transfer.
 
uint8_t PEC1:1
 
uint8_t PEC1_pending:1
 
uint8_t RUF1:1
 
uint8_t URPE:1
 
uint8_t URPU:1
 
uint8_t RC00:1
 Asynchronous CPU Cycle Request.
 
uint8_t RC01:1
 Asynchronous Channel 1 Cycle Request.
 
uint8_t RC02:1
 Asynchronous Channel 2 Cycle Request.
 
uint8_t RC03:1
 Asynchronous Channel 3 Cycle Request.
 
uint8_t RIA0:1
 Synchronous CPU Cycle Request.
 
uint8_t RESI:1
 Synchronous Channel 1 Cycle Request.
 
uint8_t RIA2:1
 Synchronous Channel 2 Cycle Request.
 
uint8_t RIA3:1
 Synchronous Channel 3 Cycle Request.
 
uint8_t RECE:1
 Selection Check Byte.
 
uint8_t RIG1:1
 End from controller 1.
 
uint8_t RIG3:1
 
uint8_t RACI:1
 Rejected Command.
 
uint8_t RAVI:1
 VICU Support.
 
uint8_t RT121:1
 
uint8_t RT131:1
 
uint8_t future_state
 Future state.
 
enum ge_console_rotary register_selector
 The current state of the console register rotary switch.
 
struct ge_console_switches console_switches
 The current state of the console switches.
 
uint8_t step_by_step:1
 Step by step execution.
 
enum ge:: { ... }  memory_command
 
uint8_t mem [MEM_SIZE]
 The memory of the emulated system.
 
uint8_t mem_parity [MEM_SIZE]
 Stored odd-parity bit (1 bit per location) written alongside mem[].
 
uint8_t mem_written [MEM_SIZE]
 1 once a location has been written; prevents false MEM CHECK on cleared memory
 
uint8_t mem_check_blank
 Read never-written core as a parity error (default 0).
 
uint32_t mem_size
 Installed memory size; 0 is treated as MEM_SIZE (full address space)
 
uint8_t mem_check
 Parity fault flag: set when a READ finds a parity mismatch on a previously-written location.
 
uint8_t inv_add
 Invalid-address fault flag: set when rVO >= installed memory size.
 
uint8_t inject_chan1_status
 Channel-1 peripheral status override for error injection.
 
struct ge_counting_network counting_network
 
struct ge_ua_controls ua_controls
 
struct ge_integrated_reader integrated_reader
 The I/O interface for the integrated reader (RI)
 
struct ge::ge_integrated_printer integrated_printer
 
struct ge_connector ST3
 The I/O interface for the ST3 connector.
 
struct ge_connector ST4
 The I/O interface for the ST4 connector.
 
struct ge_channel channel2
 Integrated channel 2 (CAN2) line bundle — shared by the integrated reader (input), the printer/typewriter (output), and the keyboard.
 
struct ge_periperi
 
void * std_core
 Shared core for Standard-GE-100 controllers on connectors 3/4 (disk/tape).
 
uint8_t TO50_did_CI32_or_CI33:1
 Workaround for pulse TO50.
 

Detailed Description

The entire state of the emulated system, including registers, memory, peripherals and timings.

Definition at line 172 of file ge.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MC_NONE 
MC_READ 
MC_WRITE 

Definition at line 689 of file ge.h.

Field Documentation

◆ ACIC

uint8_t ACIC

Recycle delay line.

Initially is set by "CLEAR", after that it is reset cyclicly. The reset pulse is TO10, the normal setting pulse is TO90 if a LOLL instruction has not been performed, in this case it is set by TI05, with a delay of about 130ns. (cpu fo. 96).

NOTE: documentation differs at cpu fo. 99 that states:

The ACIC1 FF is reset by the TO10 pulse and it is set by the TO901 with the condition PODIB == 1.

PODI is the FF which stores the LOLL diagnostic instruction performance causing an increase of the cycle of about 130 ns.

In fact, if PODIB == 0 the recycling occurs with the pulse TI05 instead of TO90.

Definition at line 421 of file ge.h.

◆ ADIR

uint8_t ADIR

Disable Step By Step.

Set with CI77 by the INS instruction, reset with CI78 issued by ENS, or with "CLEAR" (cpu fo. 97).

Definition at line 456 of file ge.h.

◆ AINI

uint8_t AINI

Program Loading.

Set by pressing the "LOAD" button of the console, and it is reset by pressing "CLEAR", or with the command CI39 (in the alpha phase of the E0 state).

Definition at line 377 of file ge.h.

◆ ALAM

uint8_t ALAM

Operator Call.

It commands the switching on of the "Operator call" lamp. It is set with CI87 issued by the LON and LOLL instructions. It is reset with CI88 issued by the LOFF instruction, or by pressing the "CLEAR" button (cpu fo. 96).

Definition at line 431 of file ge.h.

◆ ALOI

uint8_t ALOI

Load connector selection.

Set by toggling the bistable switch "LOAD 1"/"LOAD 2" button of the console.

Definition at line 384 of file ge.h.

◆ ALTO

uint8_t ALTO

Stops internal cycles.

If set, stops the performance of the internal processing cycles, without stopping the timing generation (cpu fo. 98).

Definition at line 392 of file ge.h.

◆ ASIN

uint8_t ASIN

STEP-BY-STEP, the OPERATOR panel switch (signal ASIN).

A different circuit from the maintenance panel's PAPA, and independent of it (CPU[4] fo.115, the ALTO set conditions):

ASIN stops at each INSTRUCTION, through CI891 at E2/E3 of the alpha phase – the same command HLT uses – so the stop lands after the function code is read with the addresser still on the OP code (CPU[4] §5.1 b). It is subject to the program: INS inhibits it, ENS and CLEAR re-enable it, and the maintenance STOC switch overrides the inhibit. Gate: ASIN . (ATOC + !ADIR). PAPA stops after each MICROSEQUENCE, through ALS71 at the end of a CPU work cycle, "without interfering with the transfers from peripheral unit" (CPU[4] §2.4). Not gated by the program at all.

Only this one has a lamp: STEP BY STEP on the operator panel follows ASIN, never PAPA.

Definition at line 477 of file ge.h.

◆ AVER

uint8_t AVER

Jump Condition Verified.

Reset in the E0 status of the alpha phase, together with AINI, with the CI39 command (cpu fo. 96).

Set in the E6 status of the alpha phase of the jump instructions (CI38) if signal DC16 (verified condition) is present (cpu fo. 96).

Definition at line 442 of file ge.h.

◆ channel2

struct ge_channel channel2

Integrated channel 2 (CAN2) line bundle — shared by the integrated reader (input), the printer/typewriter (output), and the keyboard.

Generalises the integrated_reader/connector lines; see channel.h. Phase 3 wires the rSI transfer micro-states to these lines; until then it is scaffolding and the legacy integrated_reader/integrated_printer paths remain authoritative.

Definition at line 794 of file ge.h.

◆ console_switches

struct ge_console_switches console_switches

The current state of the console switches.

Definition at line 685 of file ge.h.

◆ counting_network

struct ge_counting_network counting_network

Definition at line 738 of file ge.h.

◆ cr_cache

uint16_t cr_cache[8]

Change/segment-register cache (kept in sync by the register instructions via cr_wr16 and by ge_seed_segment_bases).

NOTE: modified-address resolution no longer reads this cache. The indexing micro-cycle ED|EC -> EF|EE (timing tables CPU[7] p64) reads the change register from memory at 240+2N byte by byte, exactly as the hardware does — so a memory write to 0xF0-0xFF DOES affect addressing, as on the real machine. The cache remains only as a debugging/UI aid pending a decision on removing it.

Definition at line 217 of file ge.h.

◆ current_clock

enum clock current_clock

Definition at line 174 of file ge.h.

◆ ffFA

uint8_t ffFA

Special conditions register 2.

7 Flip-Flops containing special conditions which occur during the performance of an instruction. Loaded from ffFI in T010.

Faults (from pp. 139-141)

Definition at line 352 of file ge.h.

◆ ffFI

uint8_t ffFI

Special conditions register 1.

7 Flip-Flops containing special conditions which occur during the performance of an instruction. Unloaded in ffFA in T010

Definition at line 342 of file ge.h.

◆ future_state

uint8_t future_state

Future state.

Ad-hoc logic, at the end of the cycle contains the result of the future state network.

Definition at line 675 of file ge.h.

◆ inject_chan1_status

uint8_t inject_chan1_status

Channel-1 peripheral status override for error injection.

0 = report the default "operation OK" status (0x40); non-zero = report this status byte instead, so a test/harness can inject a peripheral error/abnormal condition (e.g. 0x42 sets RO1 -> the EPER "examine" decode sees an error). Read by CE_chan1_status (msl-commands.c).

Definition at line 736 of file ge.h.

◆ instr_pc

uint16_t instr_pc

Instruction-start PC (display aid, not a real register).

Latched in the alpha fetch (state e2/e3) to the address of the opcode being executed, so UI disassembly can highlight the current instruction without drifting onto operands or the next line as rPO advances mid-instruction.

Definition at line 199 of file ge.h.

◆ INTE

uint8_t INTE

Interruption present.

Definition at line 498 of file ge.h.

◆ integrated_printer

struct ge::ge_integrated_printer integrated_printer

◆ integrated_reader

struct ge_integrated_reader integrated_reader

The I/O interface for the integrated reader (RI)

Definition at line 744 of file ge.h.

◆ inv_add

uint8_t inv_add

Invalid-address fault flag: set when rVO >= installed memory size.

Definition at line 729 of file ge.h.

◆ JE

uint8_t JE

JE/AVER jump instruction exectuted.

Definition at line 497 of file ge.h.

◆ JS1

uint8_t JS1

Console jump condition 1.

Definition at line 495 of file ge.h.

◆ JS2

uint8_t JS2

Console jump condition 2.

Definition at line 496 of file ge.h.

◆ kNI

struct ge_knot_ni kNI

Knot driven by counting network, or by the UA to store the result of the operation.

UA may store MSB or LSB depending on the operation.

Definition at line 241 of file ge.h.

◆ kNO

struct ge_knot_no kNO

Definition at line 235 of file ge.h.

◆ lamps_test

uint8_t lamps_test

LAMPS CHECK held (CPU[4] §3.2).

The momentary key sharing the MAINT ON button on the operator panel. It is a bulb test and nothing more: while it is held every console lamp lights, whatever the machine is doing, and nothing in the CPU is disturbed. Not to be pressed during a run.

Modelled here rather than in a front-end so that every console – the ncurses panel, the browser panel, anything later – gets the same test from the same place.

Definition at line 491 of file ge.h.

◆ mem

uint8_t mem[MEM_SIZE]

The memory of the emulated system.

Definition at line 695 of file ge.h.

◆ mem_check

uint8_t mem_check

Parity fault flag: set when a READ finds a parity mismatch on a previously-written location.

Definition at line 726 of file ge.h.

◆ mem_check_blank

uint8_t mem_check_blank

Read never-written core as a parity error (default 0).

Core retains, so on a machine that has been in service every cell holds something with a valid check bit and reads clean — which is what the default models, and what lets a deck read scratch it has not written yet. A machine powered up with core that has never been written is in the other state: there is no valid check bit anywhere, and running it through blank core stands MEM CHECK on. That is what the restored machine shows with nothing loaded (2026-07-31, alongside the INV ADD blink), and setting this reproduces it.

It is a property of the machine in front of you, not a rule: with it set, funktionalcpu.cap stops at cycle 57660 on a MEM CHECK at 0x00E8, a scratch cell the deck reads before writing — which on the iron holds the last program's leftovers, with their check bit.

Definition at line 720 of file ge.h.

◆ mem_parity

uint8_t mem_parity[MEM_SIZE]

Stored odd-parity bit (1 bit per location) written alongside mem[].

Definition at line 698 of file ge.h.

◆ mem_size

uint32_t mem_size

Installed memory size; 0 is treated as MEM_SIZE (full address space)

Definition at line 723 of file ge.h.

◆ mem_written

uint8_t mem_written[MEM_SIZE]

1 once a location has been written; prevents false MEM CHECK on cleared memory

Definition at line 701 of file ge.h.

◆ []

enum { ... } memory_command

◆ on_pulse

struct pulse_event* on_pulse[END_OF_STATUS]

Definition at line 183 of file ge.h.

◆ options

struct ge_options options

Backplane straps and maintenance-panel options (cp06 ch.002).

Definition at line 178 of file ge.h.

◆ PB06

uint8_t PB06

Unconditionally stores L106.

Definition at line 502 of file ge.h.

◆ PB07

uint8_t PB07

Unconditionally stores L106.

Definition at line 503 of file ge.h.

◆ PB26

uint8_t PB26

Stores L106 if channel 2 is selected.

Definition at line 504 of file ge.h.

◆ PB36

uint8_t PB36

Definition at line 505 of file ge.h.

◆ PB37

uint8_t PB37

Definition at line 506 of file ge.h.

◆ PEC1

uint8_t PEC1

Definition at line 549 of file ge.h.

◆ PEC1_pending

uint8_t PEC1_pending

Definition at line 550 of file ge.h.

◆ peri

struct ge_peri* peri

Definition at line 796 of file ge.h.

◆ PIC1

uint8_t PIC1

Selection Channel 1.

Used during the general B phase for command forwarding or condition examination. Unconditionally set by command CE02 which enables the channel selection even if the interested channels are 2 or 3. When a character transfer in output has been initiated with channel 1, signal PAP4A resets PUC1 at the start of the transfer phase, when the first transfer is done from RO into RA (CE00), unless signal PAR21 had already performed that reset earlier in the status-B0 path. The CPU text explicitly says PAR21 is generated by command CI391. (cpu fo. 235, 237).

Note: the above GE docs refers to PUC2, however in intermediate block diagram fo. 10, it's shown the real flipflop is PIC1, and PUC2 is derived combinatorially from it.

Definition at line 526 of file ge.h.

◆ PODI

uint8_t PODI

Slow delay line.

Increases the delay line cycle by about 130ns. It is set together with ALAM by the LOLL diagnostic instruction (cpu fo. 96).

Definition at line 400 of file ge.h.

◆ powered

uint8_t powered

Definition at line 175 of file ge.h.

◆ PUC2

uint8_t PUC2

Channel 2 in transfer.

(cpu fo. 236)

Definition at line 540 of file ge.h.

◆ PUC3

uint8_t PUC3

Channel 3 in transfer.

(cpu fo. 236)

Definition at line 547 of file ge.h.

◆ RACI

uint8_t RACI

Rejected Command.

Definition at line 661 of file ge.h.

◆ RASI

uint8_t RASI

Channel 1 in transfer.

(cpu fo. 236)

Definition at line 533 of file ge.h.

◆ RAVI

uint8_t RAVI

VICU Support.

Definition at line 664 of file ge.h.

◆ rBO

uint16_t rBO

Default operator.

16-bit register automatically loaded from NO, used to drive the UA (aka ALU) and used to visualize the content of other registers on the operating panel of the console

Definition at line 277 of file ge.h.

◆ RC00

uint8_t RC00

Asynchronous CPU Cycle Request.

It is reset with CE18 (enable RIAP) while a cycle is performed for the CPU (RIUC=1). The CPU is thus waiting for the external triggers of the command received. It is set by the clear signal (CAGUF=0) with the signal of command received by the peripheral unit (RBII1=1) with the insertion of the SITE key which frees the waitings (RAITI=1) and finally with the disselection of channel 1 (PU16 = 0) (cpu fo. 114).

Definition at line 574 of file ge.h.

◆ RC01

uint8_t RC01

Asynchronous Channel 1 Cycle Request.

It is set with the OR of the channel 1 request triggers (RAI01) if the executing instruction is not over (RIVEF=1). Also, when the SITE key is inserted during a during a transfer of channel 1 (RAISI2=1). It is reset during a cycle of channel 1 with CE18 (enable RIAP), or at the end of a transfer on channel 1 (cpu fo. 114)

Definition at line 587 of file ge.h.

◆ RC02

uint8_t RC02

Asynchronous Channel 2 Cycle Request.

It is set with the trigger LU08 from the integrated reader, or when the SITE key is inserted (RAITI1=1) during the transfers on channel 2.

Request from printer do not act on RC02, but are derived from it with an OR (RIMZA).

It is reset during a cycle of channel 2 with CE18 (enable RIAP), or at the end of a transfer on channel 2 (cpu fo. 114).

Definition at line 602 of file ge.h.

◆ RC03

uint8_t RC03

Asynchronous Channel 3 Cycle Request.

It is set with the OR of the cycle request triggers relative to channel 3 (RA301=1) if the executing instruction is not over (RIVAF=1) and additional performances of the GE-130 are enabled (FUL4F=1).

It is reset during a cycle of channel 3 with CE18 (enable RIAP), also, it is reset when the SITE key is inserted (RAITI=1) during a data transfer on channel 3 (RES36=1), or at the end of transfer on channel 3 (PIC32=0) (cpu fo. 114).

Definition at line 617 of file ge.h.

◆ RECE

uint8_t RECE

Selection Check Byte.

Definition at line 653 of file ge.h.

◆ register_selector

enum ge_console_rotary register_selector

The current state of the console register rotary switch.

Definition at line 680 of file ge.h.

◆ RESI

uint8_t RESI

Synchronous Channel 1 Cycle Request.

Transfered from RC01 at pulse TO00 (cpu fo. 114).

Definition at line 636 of file ge.h.

◆ RET2

uint8_t RET2

Channel-2 cycle-assignment memory.

T010-clocked latch of RES2 (cp06 ch.132-6/7/8, "OPERATING SIMULTANEITY LOGIC": RET21 = /((RES2A·T0107)+(T010C·RET2A)), RET2A = /RET21, RET26 = /RET2A). Remembers that the current cycle was assigned to channel 2 — including the priority masking in RES2 (!RIA3 && !RESI && RIA2), which a raw RIA2 read would miss. Twin of RETO.

Definition at line 369 of file ge.h.

◆ RETO

uint8_t RETO

Definition at line 358 of file ge.h.

◆ rFO

uint8_t rFO

Current function code.

8-bit register storing the function code of the instruction being executed.

Definition at line 284 of file ge.h.

◆ RIA0

uint8_t RIA0

Synchronous CPU Cycle Request.

Is conditioned by the signals ALTOF and RAM02.

When the FF ALTOF is reset, the cycle requests from the CPU are not serverd, therefore the internal calculation is stopped. This counter consists of the FF RAMO and RAMI and counts with the pulse TO10.

Definition at line 629 of file ge.h.

◆ RIA2

uint8_t RIA2

Synchronous Channel 2 Cycle Request.

Transfered from RC02 at pulse TO00 (cpu fo. 114).

Definition at line 643 of file ge.h.

◆ RIA3

uint8_t RIA3

Synchronous Channel 3 Cycle Request.

Transfered from RC03 at pulse TO00 (cpu fo. 114).

Definition at line 650 of file ge.h.

◆ RIG1

uint8_t RIG1

End from controller 1.

Definition at line 656 of file ge.h.

◆ RIG3

uint8_t RIG3

Definition at line 658 of file ge.h.

◆ RINT

uint8_t RINT

Definition at line 493 of file ge.h.

◆ rL1

uint16_t rL1

Length of the operand.

16-bit used to store the length of the operands or for information in transit.

Definition at line 231 of file ge.h.

◆ rL2

uint8_t rL2

Auxiliary register.

Definition at line 232 of file ge.h.

◆ rL3

uint16_t rL3

Length of operands involving channel 3.

Definition at line 233 of file ge.h.

◆ rPO

uint16_t rPO

Program addresser.

The register used to scan the positions of the memory in which the program instructions are recorded. (p.118).

Definition at line 191 of file ge.h.

◆ rRA

uint8_t rRA

Definition at line 334 of file ge.h.

◆ rRE

uint8_t rRE

Definition at line 333 of file ge.h.

◆ rRI

uint8_t rRI

Photoprint register 8-bit register used to store the photodisc codes.

Definition at line 223 of file ge.h.

◆ rRO

uint16_t rRO

Multipurpose 8+1 bit register.

Stores the read signal from memory (e.g. the result of transfer command MEM).

Definition at line 248 of file ge.h.

◆ rSA

uint8_t rSA

Future state configuration.

Register that drives the MLS and the logic to generate future status configuration

Definition at line 331 of file ge.h.

◆ rSI

uint8_t rSI

Peripheral unit sequencer.

4-bit sequencer used for data xechange with peripheral units through channel 2.

Drives the NA knot when the cycle has been attributed to channel 2.

Loaded with the first 4 bits of the future status network

  • after the execution of a channel 2 cycle
  • when forcing a status in SI using CU20 (DC status of general beta phase)

Definition at line 323 of file ge.h.

◆ rSO

uint8_t rSO

Main sequencer.

Drives the NA knot when the cycle has been attributed to the CPU or channel 1.

It is used to establish the sequence for:

  • alpha phase for all internal and external instructions
  • beta phase of internal instructions
  • organisation phase (general beta) of external instructions
  • program loading

Loaded from the future status network when signal SOC01 is activated, provided the RICI key is not active, in the following cases:

  • the FF ARES has been set thru "CLEAR". This causes the machine to execute the status 00, and setting of SO07 using CU07, this will set the configuration of SO to 80.
  • the rotary switch is in forcing of SO. When a cycle is attributed to the CPU pressing "START", the AM00-07 keys are forced in SO.
  • at the end of a cycle attributed to the CPU, when the rotary switch is in normal position, the future status network is stored in SO. (cpu fo. 127)

Definition at line 309 of file ge.h.

◆ RT121

uint8_t RT121

Definition at line 666 of file ge.h.

◆ RT131

uint8_t RT131

Definition at line 667 of file ge.h.

◆ rUA

uint8_t rUA

UA (arithmetic unit) output latch.

The UA continuously combines a byte of BO with RO; gemu latches its output when a "UA in NI" command (CI68 high byte / CI69 low byte) is issued, and the NI knot sources NS_UA2/NS_UA1 read it back. The binary carry between the two byte passes travels through the URPE flip-flop (reset by CO49). Used by the modified-address indexing micro-cycle ED|EC -> EF|EE (timing tables CPU[7] p64).

Definition at line 260 of file ge.h.

◆ RUF1

uint8_t RUF1

Definition at line 552 of file ge.h.

◆ rV1

uint16_t rV1

Addresser for the first operand.

Definition at line 201 of file ge.h.

◆ rV2

uint16_t rV2

Addresser for the second operand.

Definition at line 202 of file ge.h.

◆ rV3

uint16_t rV3

Addresser for external instructions using channel 3.

Definition at line 203 of file ge.h.

◆ rV4

uint16_t rV4

Addresser for external instructions using channel 2.

Definition at line 204 of file ge.h.

◆ rVO

uint16_t rVO

Default memory addresser.

16-bit register which is loaded in TO20 from NO, used to address memory for read and write operations.

Definition at line 268 of file ge.h.

◆ ST3

struct ge_connector ST3

The I/O interface for the ST3 connector.

Definition at line 780 of file ge.h.

◆ ST4

struct ge_connector ST4

The I/O interface for the ST4 connector.

Definition at line 785 of file ge.h.

◆ std_core

void* std_core

Shared core for Standard-GE-100 controllers on connectors 3/4 (disk/tape).

Owned by connector34.c; NULL until connector34_init(). Opaque here to avoid a header dependency — see connector34.h.

Definition at line 803 of file ge.h.

◆ step_by_step

uint8_t step_by_step

Step by step execution.

Todo:
replace with signal name

Definition at line 687 of file ge.h.

◆ TO50_did_CI32_or_CI33

uint8_t TO50_did_CI32_or_CI33

Workaround for pulse TO50.

Currently we first run the common machine logic, then the MSL states. However in certain cases (e.g. display state 00) the common TO50 implementation is conditioned on the activation of the MSL TO50... So, until we figure out a better way of factoring the MSL, let's store here the conditions for the common machine TO50, and delay its excecution to a fake TO50-1 clock pulse.

Definition at line 816 of file ge.h.

◆ ua_controls

struct ge_ua_controls ua_controls

Definition at line 739 of file ge.h.

◆ URPE

uint8_t URPE

Definition at line 554 of file ge.h.

◆ URPU

uint8_t URPU

Definition at line 555 of file ge.h.