initial retro42 pages
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Simon Marsh 2022-09-30 16:11:16 +01:00
parent 343d790cb0
commit 3a83188e75
7 changed files with 203 additions and 0 deletions

18
content/retro/_index.md Normal file
View File

@ -0,0 +1,18 @@
---
title: "Retro42"
weight: 25
---
dn42 like its the 1990's
<video src="/retro/intro.webm" width="719" height="485" autoplay="true" loop="true"></video>
## Dialup Service
burble.dn42 has a full [dialup service](/retro/modem) using real physical modems served
over VOIP.
## Modem Emulator
If you don't have a physical modem you can use the [modem emulator](/retro/fake) to get
a retro terminal experience or connect in to dn42 from your retro VMs.

125
content/retro/fake.md Normal file
View File

@ -0,0 +1,125 @@
---
title: "Modem Emulator"
geekdocDescription: "Modem Emulator Service"
weight: 20
---
No modem ? no problem.
If you don't have a physical modem you can still get that retro vibe by
accessing dn42 using the modem emulator service. This service presents a
series of TCP/IP ports that emulate a subset of the Hayes AT command set
and which are speed limited to specific baud rates. The modem can dial
directly to the fr-par1 shell service for that CLI experience, or get
full dn42 access via a PPP session.
The service is intended to be used as a fake serial port in a retro VM or
connected to directly using a serial terminal.
## Accessing the modem emulator service
- dialup.burble.dn42:_(10000 + baud/100)_
The modem emulator is accessed by connecting to dialup.burble.dn42
on ports corresponding to specific baud rates, as detailed in the table
below.
| Port | BAUD | Port | BAUD | Port | BAUD |
|:--|:--|:--|:--|:--|:--|
| _10003_ | 300 | _10012_ | 1200 | _10024_ | 2400 |
| _10048_ | 4800 | _10096_ | 9600 | _10144_ | 14400 |
| _10192_ | 19200 | _10288_ | 28800 | _10336_ | 33600 |
| _10560_ | 56000 | _11150_ | 115000 |
{{<hint info>}}
Low baud rates give a great experience when using a serial terminal and
the shell service but aren't so much fun when using PPP. Conversely, using
a serial terminal and higher baud rates is a bit dull and they are better
suited to the PPP service.
{{</hint>}}
The emulated modem is able to dial two services depending on the number used.
| Dial Number | Service |
|:--|:--|
|54311|fr-par1 shell server|
|4242|PPP dialup service|
## Dialling the fr-par1 shell server
Use a terminal emulator and dial **54311** to access the fr-par1 shell server.
Once the modem connects, use your burble.dn42 username and password to log in.
{{<hint info>}}
You can set a burble.dn42 password using the [services portal](https://svc.burble.dn42).
{{</hint>}}
{{<hint info>}}
Don't forget to set a terminal type once you've logged in, e.g. `export TERM=vt102`
{{</hint>}}
## Dialing the PPP server
- Dial **4242** to access the PPP server.
- Use username: *dn42*, password: *dn42* to log in.
- Once you see the PPP initiation string, connect your PPP client.
- PPP authentication should not be required.
## Example shell session using socat and minicom
Example on how to connect to the shell server using socat and minicom at 2400 baud
```text
$ socat -d -d pty,rawer tcp:dialup.burble.dn42:10024 &
...
... socat[xxx] N PTY is /dev/pts/2
...
$ minicom -D /dev/pts/2
```
Within minicom type **ATDT54311** to dial the shell server.
```text
Welcome to minicom 2.8
OPTIONS: I18n
Port /dev/pts/2, 14:01:58
Press CTRL-A Z for help on special keys
ATDT54311
CONNECT 2400
Ubuntu 22.04.1 LTS
shell-fr-par1 login:
```
You can now log in using your burble.dn42 username and password.
## Example PPP connection using QEMU and Windows XP
Add a virtual serial port to QEMU using `-chardev` and `-device`.
e.g. for windows XP connecting at 115k
```text
qemu-system-i386 -enable-kvm -cpu host -m 1024 -vga std -device AC97 -hda winxp.img -chardev socket,id=bdn42,port=11150,host=dialup.burble.dn42,server=off -device pci-serial,chardev=bdn42
```
Create a PPP dialup connection with username dn42 and password dn42, enable the option
to prompt for username and password on connect.
![Enable chat prompt](/retro/xpconfig.png)
Start the connection and when then chat box opens:
- Type **ATDT4242** to dial the PPP service
- Log in using username dn42 / password dn42
- Hit continue when you see the PPP connect string
<video src="/retro/xpconnect.webm" width="1024" autoplay="true" loop="true"></video>
## Source code
The modem emulator is a small golang server and the source code is available on the
[burble.dn42 git server](https://git.burble.com/burble.dn42/modemulator)

60
content/retro/modem.md Normal file
View File

@ -0,0 +1,60 @@
---
title: "Dialup Service"
geekdocDescription: "Modem Dialup Service"
weight: 10
---
Connect in to dn42 using a real physical modem.
{{<hint danger>}}
**Health warning**: dialing in to dn42 can be rewarding and great fun, but using modems
over VOIP is flakey at the best of times and getting it to work can be a
frustrating experience. This is very much an experimental service.
{{</hint>}}
The burble.dn42 dialup service allows you to dial in to dn42 via a modem. The
modem is reachable via VOIP and connected to a PPP server, allowing you to log in
and obtain full dn42 IPv4 connectivity.
#### Endpoints
The dialup service can be reached via the following endpoints:
| Endpoint | Network |
|:--|:--|
| 424026019@voip.burble.dn42 | dn42 |
| *tbc* | clearnet |
| *tbc* | PSTN |
#### PPP Server Log In Details
- Username: dn42
- Password: dn42
See also the the [modem emulator](/retro/fake) for more details on
how the PPP server is configured.
## Connection Tips
- Ensure that T.38 Fax Mode is disabled or set to passthrough
- Ensure that Re-invite after Fax Tone is disabled
- Ensure that all Echo Cancelation is disabled
- Ensure VAD (Voice Activity Detection) is disabled
- Disable all call features (voicemail, call waiting etc.)
- Use G.711 ALAW
- G.711 ULAW may work if ALAW isn't available, but do not use any other codecs
- Experiment with Disabling/Fixed/Adaptive Jitter buffers and different jitter buffer lengths
- Experiment with different gain settings
- Reduce modulation rates, you can't connect at anything above V.34 anyway
- Use `AT+MS?` to see the current modulation settings on your modem.
- Start at V.34 (`AT+MS=V34`)
- Try V.32bis (`AT+MS=V32b`) or even V.32 (`AT+MS=V32`)
- The modems are located on a residential DSL connection and will experience more jitter when the DSL is in use, try connecting at different times and specifically during UK night time or early mornings.
- The PPP log in process is the same as the [modem emulator](/retro/fake) so you can use the
emulator to check your process before connecting using the modem.
## Example connection from linux
The video shows an example connecting using minicom and pppd on linux.
<video src="/retro/modem.webm" width="720" height="449" autoplay="true" loop="true"></video>

BIN
static/retro/intro.webm Normal file

Binary file not shown.

BIN
static/retro/modem.webm Normal file

Binary file not shown.

BIN
static/retro/xpconfig.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
static/retro/xpconnect.webm Normal file

Binary file not shown.