Tachibana
Language: English

A Tachibana project · Minitel terminal

OricTel

Minitel 1B — Oric 1 / Atmos

A full Minitel 1B terminal for the Oric 1 and Atmos, connecting to Minitel servers still online.

Teletel/Antiope Videotex decoder, HIRES 40×25 rendering, G0/G1/G2 character sets, connection via AT modem (PicoWiFiModemUSB / LOCI) or a WebSocket bridge. Written in C and 6502 assembly (cc65). EUPL 1.2 license.

Fact sheet

Status In development

Licence: EUPL-1.2 · A problem? Report it on the repository → · Contribute →

Features

What OricTel does

Full Videotex decoder

Teletel/Antiope protocol (STUM 1B): state machine for ESC, CSI (with parameters), US, SS2, REP, SEP, PRO1/2/3. Complete attributes (colour, flash, inverse, underline, conceal, double size).

HIRES 40×25 rendering

An assembly span engine (~300 cycles/cell), “dirty”-cell refresh, adaptive budget (keyboard always responsive). Hybrid colour heuristic via the Oric's serial attributes.

Connect to Minitel servers

AT (Hayes) modem via PicoWiFiModemUSB / LOCI — ATZ then ATDT host:port — or a WebSocket bridge. Predefined servers (PAVI 3617, MiniPavi) or free entry.

G0/G1/G2 character sets

G0 (alphanumeric + accents), G1 (2×3 mosaics, precomputed cache), G2 (extended CEPT, precomposed accents). Faithful rendering of Minitel semigraphics.

Minitel keyboard

All function keys (SEND, INDEX, BACK, NEXT, REPEAT, GUIDE, CANCEL, CORRECTION, CONNECT/END) mapped to CTRL+letter (Oric-1 & Atmos) or FUNCT+letter (Atmos).

Free (EUPL 1.2)

Released under the EUPL 1.2 license on GitHub. Runs on the Phosphoric emulator or on a real Oric fitted with a LOCI + PicoWiFiModemUSB.

See the full feature list → · Technical documentation →

Connection

Two ways to connect

AT modem

A Hayes modem via the ACIA 6551 at $0380 (PicoWiFiModemUSB, real or emulated). ATZ then ATDT host:port — the server is chosen from the menu. The only connection method.

Recommended

WebSocket

A Python bridge (orictel_bridge.py) relaying TCP (port 3615) to a WebSocket Minitel server (ws://3617.fr/ws).

Via bridge

PAVI 3617

pavi.3617.fr:3617 — Teletel home page, the recommended server.

Server

MiniPavi

go.minipavi.fr:516 — a multi-service gateway. Free entry available for any other server.

Server

Download & build

Get it and build it

Source code

The repository is public under the EUPL 1.2 license. Clone it, open an issue, send a patch.

github.com/benedictemarty/orictel

Build

With cc65 (≥ 2.19):

make # produces orictel.tap
make dsk # Sedoric floppy orictel.dsk
make run # runs under Phosphoric (AT modem)

Run it

Under the Phosphoric emulator (picowifi backend + --loci) or on a real Oric fitted with a LOCI + PicoWiFiModemUSB.

Read the manual

Roadmap

Where development stands

OricTel is under active development (latest published version: 0.3.0, 26 June 2026), with a 344-test suite (Videotex, ACIA/SMC, AT modem, keyboard, on-target menus and carrier loss, bridge), decoder fuzzing and a fidelity check against real servers. Indicative status below — the repository is authoritative.

Videotex terminal

Full Teletel/Antiope decoder, HIRES 40×25 rendering, G0/G1/G2, attributes, PRO2/PRO3 modes.

Done

Connection & servers

AT modem (PicoWiFiModemUSB), WiFi config from the Oric, WebSocket bridge, PAVI 3617 / MiniPavi.

Done

Sedoric floppy

Bootable orictel.dsk build (MFM_DISK), auto-launch LOAD"ORICTEL".

Done

Link robustness

Recovery from a modem left online, explicit failure screen, carrier loss (NO CARRIER) with reconnection — validated with a physical PicoWiFiModemUSB.

Done

ESC & status bar

ESC as the escape key on every screen; status bar on the 3 text rows (link, server, timer, rendering mode); real time base (VIA Timer 2).

Done

Measured rendering

6502-cycle benchmark: rendering 4× faster, decoder 1.5×, pixel-exact; under the LOCI RX ring tolerance.

Done

Oric-1 (ROM 1.0)

HIRES switch fixed, on-target tests run with ROM 1.0 and 1.1; validation on a real Oric-1 to be confirmed.

In progress

Distribution & Telestrat

Packaging, native Telestrat support (built-in ACIA), screen page saving.

Roadmap