OricTel — user manual
Minitel 1B terminal for the Oric 1 / Atmos · EUPL 1.2 license. This manual covers using OricTel, from launch to browsing Minitel servers. For the technical architecture, see the Architecture page.
1. Quick start
make run
This command builds if necessary then launches the Phosphoric emulator with OricTel in AT modem mode. The program loads and runs automatically (fast-load + RUN). Then:
- Splash screen (jingle) — press a key (or wait 5 s).
- Serial interface — a reminder screen of the only possible hardware setup (
LOCI + PicoWiFiModemUSB, ACIA 6551 at$0380). No choice: press a key to continue. - Connection mode — type
1(AT modem, recommended) or2(WiFi config). Since the PicoWiFiModemUSB is a Hayes modem, connection always goes through AT. - Server — type
1(PAVI 3617),2(MiniPavi) or3(free entry of ahost:port, confirmed with RETURN). - The ATZ/ATD sequence runs (~2 s) and the server's home page appears.
Display tip: the Phosphoric window can be enlarged with F3 (cycles ×1-×4) or
--scale 3. At scale 1, the inverse-video cartouches (SEND, INDEX…) are hard to read — a pixel-size
limit, not a rendering fault.
2. Connection modes
Mode 1 — AT modem (the only connection method)
OricTel drives a Hayes modem via the ACIA 6551 at $0380 (PicoWiFiModemUSB, or its Phosphoric
emulation --serial modem/picowifi): ATZ (reset) then
ATDT host:port (dialling = TCP connection). The server is chosen from OricTel's menu, so you can
switch servers without restarting the emulator. This is the only connection mode: the old “Direct” mode (raw V23
line without AT) was removed, as the target setup cannot open a direct line.
Modem left online. If the modem is still connected from a previous session (Oric reset,
OricTel relaunched or emulator closed without hanging up), the ATZ gets lost in the stream. OricTel
detects it (no “OK”), briefly shows “Modem en ligne: ATH...”, hangs up with the Hayes escape sequence
(+++ then ATH) and replays ATZ before dialling. No manual action is
required.
If the connection still fails. Without “CONNECT”, OricTel no longer enters the session
silently: the “ECHEC DE CONNEXION” screen offers 1 Reessayer (retry), 2 Choisir un autre
serveur (another server) or 3 Entrer quand meme (enter anyway — the old behaviour, as an
explicit choice).
Carrier loss during a session. When the server hangs up, the modem emits
NO CARRIER. OricTel recognises it, waits 4 seconds of silence to confirm (a page
quoting those words would keep scrolling), then offers “PERTE DE PORTEUSE”: 1 Reconnecter redials
the same server, 2 Rester en local stays offline. There is no silent automatic redial: a
reconnection costs a call, it is yours to decide.
WebSocket mode (via bridge)
make run-ws launches the Python bridge (orictel_bridge.py) which relays TCP (port
3615) to the WebSocket server ws://3617.fr/ws, then the emulator. The bridge is a transparent binary
relay: OricTel follows its usual AT modem flow (the AT handshake fails silently for lack of a modem on the bridge
side, then the Videotex flow circulates).
2b. WiFi config (PicoWiFiModemUSB hardware)
On a real LOCI + PicoWiFiModemUSB setup, the modem must be associated with a WiFi network (with
an IP address) before it can dial. Otherwise ATD fails immediately with
NO CARRIER (00:00:00) (status no ip). The 2 - WiFi Config menu does the whole
configuration from the Oric:
- Scan: OricTel sends
AT$SCAN; in-range 2.4 GHz networks are displayed, numbered. A red*marks a secured network. - Selection: type the network's number. REPEAT re-runs the scan, CANCEL returns to the menu.
- Password: for a secured network, enter the password (masked with
*), SEND confirms, CORRECTION erases. - Connection: OricTel sends
AT$SSID=/AT$PASS=/ATC1, then waits for the DHCP IP. On success,AT&Wsaves the config to the Pico's NVRAM (“Connected! Config saved.”). Otherwise “IP failure. Check password.”.
Once WiFi is configured, return to the menu and choose 1 - AT modem to connect normally. Note:
after an ATZ, OricTel now waits until it has an IP before dialling, which avoids the
NO CARRIER caused by a still-running DHCP.
3. The screen
- Rows 0-24: the server's Videotex page (40 columns), row 0 included — it belongs entirely to the server, OricTel no longer writes anything there.
- Cursor: blinking bar under the current cell, when the server enables it (input fields).
- Status bar: 3 text rows below the page.
C PAVI 3617 00:12 AUTO ESC <- state (cyan)
ESC: quitter? ESC=menu autre=reprendre <- messages (yellow)
^A Annul ^R Retour ^S Somm ^N Suite <- help (white)
- inverted
C= data received recently (connected),F= no data for 30 s (link probably down); - the chosen server, then the session timer (
mm:ss); - the current rendering mode (
AUTO,TRAME,BRUT, see CTRL+D); - the middle row carries messages (ESC prompt,
ACIA reset).
4. The keyboard
OricTel runs on the Oric-1 and Atmos. Minitel function keys use CTRL+letter (both machines) or FUNCT+letter (Atmos only).
| Minitel key | What it does | Oric |
|---|---|---|
| SEND | confirm an entry | RETURN |
| INDEX | return to the service index | CTRL+S |
| BACK | previous page | CTRL+R or UP arrow |
| NEXT | next page | CTRL+N |
| REPEAT | redisplay the page | CTRL+E |
| GUIDE | service help | CTRL+G |
| CANCEL | clear the current entry | CTRL+A |
| CORRECTION | delete the last character | DELETE |
| CONNECT/END | disconnect from the service | CTRL+C |
Typed characters are sent to the server, which echoes them to the screen (standard Minitel behaviour: no local
echo by default). The Minitel 1B displays in UPPERCASE until the server enables lowercase mode. The
left/right arrows send cursor sequences (ESC[D / ESC[C) only if the
server has enabled cursor mode (PRO3), just like a real Minitel 1B.
Local shortcuts (send nothing to the server)
| Key | Effect |
|---|---|
| CTRL+D | changes the rendering mode (see section 5) |
| CTRL+L | clears the screen locally |
| CTRL+F | resets the serial link (ACIA) |
| ESC | the escape key: leave the session and return to the menu |
ESC: leaving, always the same way
Whatever the screen, ESC takes you back:
- in session: a first ESC asks the question in the status bar
(
ESC: quitter? ESC=menu autre=reprendre) without clearing the page. A second ESC hangs up (+++,ATH, about 3 to 8 s) and returns to the Connection mode menu with a fresh decoder. Any other key removes the question and resumes the session where it was; - on the connection failure or carrier loss screen: ESC gives up and returns to the menu;
- in a menu or an input field (
host:portserver, WiFi): ESC cancels and returns to the previous screen; - on the Connection mode menu: ESC exits OricTel and hands over to
BASIC (
Ready) through a cold ROM restart — the BASIC program area having been overwritten at load time, it is the only clean exit. Full chain: ESC, ESC (session → menu) then ESC (menu → BASIC). Verified on ROM 1.0 (Oric-1) and 1.1 (Atmos).
5. Rendering modes (CTRL+D)
The Oric cannot colour each cell individually like the Minitel: OricTel offers three hot-swappable strategies:
- AUTO (default) — the best compromise, decided line by line: attribute colours where the line allows (coloured text, mosaics in solid colour), luminance dithering for dense multi-colour zones, white rendering for unsuitable lines (double height, no delimiter).
- DITHERING — all density dithering: the brightness hierarchy of colours is preserved as textured “greyscale”. Useful if a page plays badly with the AUTO heuristic.
- RAW — all white on black: maximum shape legibility, no colour.
6. Tested servers
| Server | Address | Notes |
|---|---|---|
| PAVI 3617 | pavi.3617.fr:3617 | recommended, Teletel home page |
| MiniPavi | go.minipavi.fr:516 | multi-service gateway |
| Other | free entry host:port | option 3 of the server menu |
On the PAVI home page: type a service code then SEND (RETURN). INDEX (CTRL+S) lists the services. CONNECT/END (CTRL+C) ends the session.
7. Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| “NO MODEM” / return after ATZ | the emulator is not in --serial modem/picowifi | use make run (or run-loci/run-loci-emu) |
NO CARRIER (00:00:00) (real Pico) | dial format or WiFi not associated | fixed (OricTel dials ATDT<host>); otherwise menu 2 - WiFi Config |
| First page unreadable / black screen, following ones fine | modem still connected from a previous session: ATZ lost in the stream | fixed: OricTel hangs up (+++/ATH) and replays ATZ automatically |
| “PERTE DE PORTEUSE” while browsing | the server hung up (inactivity) or the link dropped | 1 Reconnecter redials the same server |
| Corrupted page with no error screen, on the emulator | emulated setup without RX buffer: the bare 6551 keeps one byte, the real LOCI firmware buffers 32 | add --serial-buffer 32 (default of make run-loci-real) |
| “no modem answers” although the dongle is plugged in | the PicoWiFiModemUSB re-enumerates after an unplug (ttyACM0 → ttyACM1…) | the Makefile takes the first /dev/ttyACM*; otherwise force PICO_DEV=/dev/ttyACMx |
Permanent F indicator | no data from the server | check the Internet connection; CTRL+F then CTRL+E (repeat) |
| Dropped characters when typing | gone since 0.2.24 | check the tap is up to date (make) |
| Inverse cartouches unreadable | display scale 1× | F3 (scale ×2-×4) |
| Page frozen while loading | link interrupted | CTRL+F (reset ACIA) then CTRL+E |
Screen stays on BASIC Ready | fast-load without autorun | type RUN then RETURN |
8. Known limitations
- Minitel per-cell colours are approximated with the Oric's serial attributes: on a row with no usable empty cell, a text's colour may be lost (rendered white).
- MIXED mode (80-column tele-computing) is not supported.
- Terminal identification (ENQ/ENQROM) is deliberately silent: modern servers (MiniPavi) echo the answer into the input field instead of consuming it (same behaviour as miedit).
- The asymmetric V23 configuration (1200/75 baud, 7E1) is no longer a target: the supported setup is
LOCI + PicoWiFiModemUSB, which talks 1200 8N1 (Control
$18, Command$0B). - The 6551 /DCD bit cannot be used to detect carrier loss on LOCI: the firmware only drives it from the USB
state and DTR, never from the call state. Hence the
NO CARRIERdetection. - The carrier-loss confirmation delay (4 s) and the indicator's return to
F(30 s of silence) are counted on the VIA Timer 2, a real time base: they no longer depend on the loop cost.
Reproduced from docs/MANUEL_UTILISATION.md (authoritative, up-to-date version on GitHub).