Tachibana

Documentatie › LOCI

LOCI — Lovely Oric Computer Interface

Emulatie van het LOCI-apparaat van Sodiumlightbaby (sodiumlb, 2024): een RP2040-cartridge die op de bus van de Oric wordt gestoken en massaopslag (USB / SD / interne flash), USB HID-toetsenbord-muis-gamepads, een WiFi-modem (PicoWiFiModemUSB), runtime ROM-wissel en een ingebouwd menu biedt.

Referenties: loci-hardware · loci-firmware · loci-rom (menu). De emulatie is afgestemd op de firmwarebron (referentierelease: v0.3.1) en op hardware geverifieerd; bekende afwijkingen staan aan het eind.

Snelstart

# LOCI + picowifi WiFi-modem (ACIA 6551 op $0380, adresseer $0380 NIET $03A0)
./oric1-emu -r roms/basic11b.rom --loci --serial picowifi

# LOCI-menu meteen bij opstart
./oric1-emu -r roms/loci/locirom --loci

# Ruwe FAT16/32 SD-image als opslag
./oric1-emu -r roms/basic11b.rom --loci --loci-sdimg kaart.img

Geheugenkaart

VensterInhoud
$0310-$031FWD1793 + DSK-besturing (LOCI-Microdisc-modus; $0319 = 'L')
$0315-$0317Laag-niveau TAP-protocol (PLAY/REC/READ_BIT, 14-bit-frame)
$0380-$0383ACIA 6551 (picowifi-modem) — standaard onder --loci
$03A0-$03BFMIA: UART-console, API-registers (xstack $03AC, errno $03AD/E, op $03AF), stub $03B0 (spin/BLOCKED), BUSY $03B2 bit 7, knop-trap $03BA-$03BF

API (op $03AF) — 36/36 ops geïmplementeerd

Systeem (PIX_XREG, CPU_PHI2→1000 kHz, OEM_CODEPAGE, RNG_LRAND, STDIN_OPT), klok (CLOCK, CLK_GET/SETTIME, GETRES), bestanden (OPEN/CLOSE/READ/WRITE_XSTACK/XRAM/LSEEK/UNLINK/RENAME), mappen (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-conforme ABI (geverifieerd tegen de bron)

Opslag

De echte LOCI heeft drie niveaus; hun equivalenten in Phosphoric:

Echte hardwareEmulatie
Interne flash (RP2040-LittleFS, voorzien van basic11b.rom, basic10.rom, microdis.rom, locirom) flash root: --loci-flash DIR (standaard: huidige map). 0:- en kale paden. Systeem-ROM's die in de flash root ontbreken worden als fallback opgelost in de map van de -r-ROM (dus roms/).
USB-stick (FAT, host-USB-poort) --loci-usb DIR (herhaalbaar, max. 4) of autodetectie van media gemount in /media/$USER en /run/media/$USER bij het starten. Volumepaden 1:-4:. Label + grootte in het menu. Geen hot-plug: insteken vóór het starten.
SD-kaart (ruwe image) --loci-sdimg PATH (FAT16/32). Wanneer actief, bezit deze backend alle bestandsops (USB-sticks blijven vermeld maar niet navigeerbaar).

De apparatenlijst (menuselector) wordt geleverd door opendir(""): «0: Internal storage [15MB]», dan één regel per USB-apparaat (de MSC-stick, de picowifi «CDC modem mounted»), dan een lege naam.

Actieknop (F8)

Het firmwaregedrag (ext.c) wordt gereproduceerd:

MIA-bustiming

De MIA bemonstert de 6502-bus via PIO op sub-cyclus-offsets ingesteld door MAP_TUNE_*. Een verkeerd afgestemde tior corrumpeert het ACIA-venster van de picowifi — een echt hardwaresymptoom gereproduceerd: --loci-mia-window LO-HI definieert het betrouwbare bereik (standaard 0-31 = altijd betrouwbaar); buiten het venster leest $0380 $FF en negeert schrijfacties.

Bekende afwijkingen (buiten bereik)

Gereproduceerd uit docs/loci.md (gezaghebbende, actuele versie op GitHub).

← Documentatie · SEDORIC →