EMMA 02

MSI/88e

  • Home
  • CDP18S020
    • General Information
    • I/O Map
  • COMX-35
    • General Information
    • F&M
    • Did You Know...?
    • I/O Map
    • Memory
    • Video
    • Sound
    • Keyboard
    • Cassette
    • Expansion Box
    • Disk
    • Printers
    • Thermal
    • PL-80
    • 32K RAM
    • 80 Column
    • F&M EPROM
    • F&M Joy Card
    • Super Board
    • COMX BASIC V1.00
  • COMiX-35
  • COSMAC Elf
    • General Information
    • I/O Map
    • Front Panels
  • COSMAC Elf 2000
    • General Information
    • I/O Map
    • Memory
    • Video
  • COSMAC Microtutor I
    • General Information
    • I/O Map
  • COSMAC Microtutor II
    • General Information
    • I/O Map
  • COSMAC VIP
    • General Information
    • I/O Map
    • Memory
    • Video
    • Sound
    • Keyboard
    • Cassette
    • STK
    • Chip-8 and 8X
    • Test-Word
    • Floating Point BASIC 2.2
  • COSMAC VIP II
    • General Information
    • I/O Map
    • Floating Point BASIC 2.2
  • Cidelsa
    • General Information
    • I/O Map
    • Memory
    • Video
    • Sound
  • Conic
  • Cosmicos
    • General Information
    • I/O Map
    • Front Panels
    • Mops & Hexmops
    • ASCII Monitor
    • HEX Monitor & UT4
  • CT Payphone
    • General Information
    • I/O Map
    • Memory
    • Keyboard
  • CyberVision
  • EDUKIT
    • General Information
    • I/O Map
    • Front Panel
  • EFA-Datorn
  • ETI-660
  • FRED I
    • General Information
    • I/O Map
    • Front Panel
    • Cassette
    • Software
    • CARDTRAN Syntax
  • FRED II
    • General Information
    • I/O Map
    • Front Panel
    • Cassette
    • Software
    • FPL-2
    • FPL-4
    • FEL-1
  • FRED III
    • General Information
    • I/O Map
    • Memory
    • Software
    • GPL-2
    • GPL-2b
    • GPL-3
    • GPL-4
  • HEC1802
  • HUG1802
    • General Information
    • I/O Map
    • Memory
    • Video
    • Sound
    • Keyboard
    • Cassette
    • Monitor
    • Chip-8 ETI-660
  • Infinite UC1800
    • General Information
    • I/O Map
    • Front Panel
  • JVIP
  • Macbug
  • Membership Card
    • General Information
    • I/O Map
  • MSI/88e
    • General Information
    • PCB
    • I/O Map
    • Memory
    • Display
    • Keyboard
    • Pseudo Code
  • Netronics Elf II
    • General Information
    • I/O Map
    • Front Panels
    • Keyboard
    • Giant Board
    • BASIC/Math
  • Oscom Nano
    • General Information
    • I/O Map
    • Memory
    • Video
    • Sound
    • Keyboard
    • Casette
  • PECOM 32 and 64
    • General Information
    • Software
    • I/O Map
    • Memory
    • Video
    • Sound
    • Keyboard
    • Casette
    • PECOM 32 BASIC
    • PECOM 64 BASIC 1.0 & 4.0
  • Pico/Elf V2
    • General Information
    • I/O Map
  • PTC-701
    • General Information
    • I/O Map
    • Memory
    • Video
    • Keyboard
    • PTC R1.7 Pseudo Code
    • PTC R2.0 Pseudo Code
  • Quest Super Elf
    • General Information
    • I/O Map
    • Front Panel
  • RCA APT VP4801
    • General Information
    • I/O Map
    • Memory
  • RCA CCGS
  • RCA CDS
    • General Information
    • I/O Map
  • RCA CMC
    • General Information
    • I/O Map
  • RCA MS2000
    • General Information
    • I/O Map
    • MicroDos
  • RCA MCDS
    • General Information
    • I/O Map
  • RCA Studio II
    • General Information
    • I/O Map
    • Memory
    • Video
    • Keyboard
    • Built-in Software
    • Cartridge Software
    • Homebrew Software
    • Chip-8
    • ST2
  • RCA Studio III
    • General Information
    • I/O Map
    • Memory
    • Video
    • Keyboard
    • Cartridge Software
  • RCA Studio IV
    • General Information
    • I/O Map
    • Memory
    • Video
    • Keyboard
    • ST4 Syntax
  • RCA Video Coin
    • General Information
    • I/O Map
    • Memory
    • GPL-A (2K RAM)
    • GPL-A (2K ROM)
    • GPL-2
    • GPL-3
    • GPL-4
  • SBC1802
  • Studio 2020
  • System 00
    • General Information
    • I/O Map
    • Front Panel
    • Operating Procedures
    • SYSTEM00 Syntax
  • Telmac 1800
    • General Information
    • I/O Map
    • Memory
    • Video
    • Keyboard
    • Cassette
  • Telmac 2000
    • General Information
    • I/O Map
    • Memory
    • Video
    • Sound
    • Keyboard
    • Cassette
  • Telmac TMC-600
    • General Information
    • Software
    • I/O Map
    • Memory
    • Video
    • Sound
    • Keyboard
    • Cassette
    • Telmac SBASIC v24.3
  • VELF
    • General Information
    • I/O Map
    • BIOS
    • Video
    • Keyboard
  • VIP2K MC
    • General Information
    • I/O Map
    • Memory
    • Video
    • Chip-8
  • VIS1802
  • VP3000
    • General Information
    • I/O Map
  • VT1802
  • Visicom COM-100
    • General Information
    • I/O Map
    • Memory
    • Video
    • Keyboard
    • Built-in Software
    • Cartridge Software

 

 

 

 

 

 

 

 

 

 

 

 

I/O Map

The MSI/88e uses polled OUT/INP instructions for all peripheral I/O: the display, the keyboard, the mode switch, and the cassette recorder / acoustic interface. There is no interrupt mechanism and no DMA; the firmware polls all devices in its main loop (see also the Keyboard section for the multiplexed keyboard scan and the Display section for the display refresh).

Output Ports

OUT 1 Display segment LOW byte (segments A-F plus the middle bar). Written with 0x00 before each digit select as an anti-ghost blank, and output once at reset (OUT 1, IDL).
OUT 2 Display digit select: 0x43 selects digit 0 (frame start), 0x42 selects the next digit. The digit-select lines double as keyboard row strobes. Additional strobe values (0x40, 0x02, 0x00) are used for mode/load control.
OUT 3 Display segment / digit select, referenced only from a data-table region of the disassembly. Not used by the display refresh.
OUT 4 Display segment HIGH byte (diagonal and centre segments, bits 8-13).
OUT 5 Serial/Q-bit context-restore strobe (used at 0x175D and 0x179E in the Q-bit serial code). Not a keyboard strobe.
OUT 6 Recorder/tape motor and handshake control. The SEND function writes a control byte here and then polls INP 6 until the recorder is ready.
OUT 7 Recorder data / timing (SEND data byte).

Input Ports

INP 0 Parallel/byte read (single occurrence, N=0).
INP 1 Keyboard columns: bits 0-2 and bit 6, active low (all 1s = no key). The remaining bits are status inputs: bit 3 = battery/voltage flag, bit 4 = key/status line polled by the boot code.
INP 2 Mode switches (low bits 0-1), including the OPER/PRGM slide switch.
INP 3 Miscellaneous status (two occurrences).
INP 4 Data-table byte (single occurrence at 0x11E0, inside a data region of the disassembly). Not a keyboard read.
INP 5 Data-table byte (single occurrence at 0x1255, inside a data region of the disassembly). Not a keyboard read.
INP 6 Recorder busy/ready status. The firmware polls this port (INP 6, shift, branch) until the recorder signals ready.
INP 7 Data-table byte (single occurrence at 0x124F, inside a data region of the disassembly). Not a keyboard read.

EF Flags and Q Line

Q Cassette/acoustic FSK transmit data. The firmware bit-bangs serial output on Q (SEQ/REQ with timing loops around 0x0D6C-0x0DC0) for the cassette recorder and the acoustic coupler.
EF1 Status flag.
EF2 Status flag / serial handshake.
EF3 Tape/recorder/clock flag (heavily used).
EF4 Tape/recorder/clock flag (heavily used, tested together with EF3).

Interrupts

The firmware does not use the CDP1802 interrupt mechanism at all; there is no interrupt handler in the ROM. Register R1 is a working register used for computed jumps, not a reserved interrupt vector. A boot trace (1.7 million instructions) shows zero interrupts and zero DMA operations. The DIS followed by IDL at the end of boot is the terminal powering down to save the batteries when no program is loaded. This is not an interrupt-driven wait.