Tachibana

Dokumentation › LOCI

LOCI — Lovely Oric Computer Interface

Emulation des LOCI-Geräts von Sodiumlightbaby (sodiumlb, 2024): eine RP2040-Cartridge, die auf den Bus des Oric gesteckt wird und Massenspeicher (USB / SD / interner Flash), USB-HID-Tastatur-Maus-Gamepads, ein WLAN-Modem (PicoWiFiModemUSB), ROM-Wechsel zur Laufzeit und ein integriertes Menü bietet.

Referenzen: loci-hardware · loci-firmware · loci-rom (Menü). Die Emulation ist auf die Firmware-Quelle abgestimmt (Referenz-Release: v0.3.1) und auf Hardware verifiziert; bekannte Abweichungen sind am Ende aufgeführt.

Schnellstart

# LOCI + picowifi-WLAN-Modem (ACIA 6551 bei $0380, adressiere $0380 NICHT $03A0)
./oric1-emu -r roms/basic11b.rom --loci --serial picowifi

# LOCI-Menü direkt beim Booten
./oric1-emu -r roms/loci/locirom --loci

# Rohes FAT16/32-SD-Image als Speicher
./oric1-emu -r roms/basic11b.rom --loci --loci-sdimg karte.img

Speicherkarte

FensterInhalt
$0310-$031FWD1793 + DSK-Steuerung (LOCI-Microdisc-Modus; $0319 = 'L')
$0315-$0317Low-Level-TAP-Protokoll (PLAY/REC/READ_BIT, 14-Bit-Frame)
$0380-$0383ACIA 6551 (picowifi-Modem) — Standard unter --loci
$03A0-$03BFMIA: UART-Konsole, API-Register (xstack $03AC, errno $03AD/E, op $03AF), Stub $03B0 (spin/BLOCKED), BUSY $03B2 Bit 7, Tasten-Trap $03BA-$03BF

API (op $03AF) — 36/36 Ops implementiert

System (PIX_XREG, CPU_PHI2→1000 kHz, OEM_CODEPAGE, RNG_LRAND, STDIN_OPT), Uhr (CLOCK, CLK_GET/SETTIME, GETRES), Dateien (OPEN/CLOSE/READ/WRITE_XSTACK/XRAM/LSEEK/UNLINK/RENAME), Verzeichnisse (OPENDIR/CLOSEDIR/READDIR/MKDIR/GETCWD), Mounten (MOUNT/UMOUNT, TAP SEEK/TELL/READ_HEADER, UNAME), Boot/Tuning (MIA_BOOT, MAP_TUNE_*, ADJ_SCAN), Sentinel $FF (exit → spin).

Firmware-konforme ABI (gegen die Quelle verifiziert)

Speicher

Der echte LOCI hat drei Ebenen; ihre Entsprechungen in Phosphoric:

Echte HardwareEmulation
Interner Flash (RP2040-LittleFS, vorbelegt mit basic11b.rom, basic10.rom, microdis.rom, locirom) Flash-Root: --loci-flash DIR (Standard: aktuelles Verzeichnis). 0:- und nackte Pfade. Im Flash-Root fehlende System-ROMs werden als Fallback im Ordner des -r-ROMs aufgelöst (also roms/).
USB-Stick (FAT, Host-USB-Port) --loci-usb DIR (wiederholbar, max. 4) oder Autoerkennung der in /media/$USER und /run/media/$USER gemounteten Medien beim Start. Volumen-Pfade 1:-4:. Label + Größe im Menü. Kein Hot-Plug: vor dem Start einstecken.
SD-Karte (rohes Image) --loci-sdimg PATH (FAT16/32). Wenn aktiv, besitzt dieses Backend alle Dateioperationen (USB-Sticks bleiben gelistet, aber nicht navigierbar).

Die Geräteliste (Menüauswahl) wird von opendir("") geliefert: „0: Internal storage [15MB]“, dann eine Zeile pro USB-Gerät (der MSC-Stick, das picowifi „CDC modem mounted“), dann ein leerer Name.

Aktionstaste (F8)

Das Firmware-Verhalten (ext.c) wird reproduziert:

MIA-Bus-Timing

Die MIA tastet den 6502-Bus per PIO an von MAP_TUNE_* eingestellten Sub-Takt-Offsets ab. Ein falsch abgestimmter tior beschädigt das ACIA-Fenster des picowifi — ein echtes Hardwaresymptom, reproduziert: --loci-mia-window LO-HI definiert den zuverlässigen Bereich (Standard 0-31 = immer zuverlässig); außerhalb des Fensters liest $0380 $FF und ignoriert Schreibvorgänge.

Bekannte Abweichungen (außerhalb des Umfangs)

Reproduziert aus docs/loci.md (maßgebliche, aktuelle Version auf GitHub).

← Dokumentation · SEDORIC →