06 April 2018

Title

TIPI

(Pronounced tip-ee)

A File system and network access device for TI-99/4A

TIPI is a device for the TI-99-4A that allows communication between service scripts on a
Raspberry PI and the TI-99/4A with DSR support to act as a filesystem, expose TCP and
HTTP access through the Raspberry PI, and enable extensible PI services to the TI such as
a mouse, or network gaming protocols.

TIPI is currently out in the wild, available from ArcadeShopper.com

TIPI prerequisites:

PEB version of TIPI is still under development.

TIPI Features

Role of the Raspberry PI

The Raspberry PI is a linux system, that should be up and running before your TI is
powered on. Linux systems are not something you should just pull theh power on. There
is no power switch on a Raspberry PI. You shouuld consider leaving the Raspberry PI
always on. If you do need to turn it off, there is a shutdown feature in the web admin
interface provided by TIPI. After issuing a shutdown, wait for the PI's sd-card activity
light to stay off for 10 seconds, then pull the power.

Hookup to Raspberry PI 3 or 3+

2 - 1x5 IDC cables are provided. They are identical. But we'll call one cable A, and
the other cable B.

Connect one end of cable A to the Raspberry PI, with the PI top facing you and the GPIO
connector toward the bottom, attach the cable to the lower row with the black wire on
the far left.

Then, connect the other end of cable A to the TIPI board, to the bottom rung of
pins on the rear 2x5 connector. The black wire should be on the left again if holding
the card flat, looking at the back.

Then repeat for cable B. Follow the same orientations.

Hookup to Raspberry PI Zero W

An example picture (Photo by PeteE):

Here you can see the shrouded IDC connector had to be cut at the top to let the full
span GPIO header fit.

However, the second picture shows 2x5 right angle female header in the GPIO. Then
plugin it in vertically.

Installation and Setup

Download the SD Card Image for your Raspberry PI. The image should work on both a
Raspberry PI 3, and a PI Zero W. It is based on the raspbian image, with the TIPI
services pre-installed, along with optimized use of ramdisk to extend SD card life.

The SD Card Image is on my Downloads page in the TIPI section.

Flash the SD Card Image to a 2GB or greater micro-sd card. I would recommend using
Etcher to flash the image. It is supported for Linux, Windows
and OS X.

Power up the PI with micro-sd card inserted.

Setup WiFi with TIPICFG

The image contains a configuration tool, in the form of an EA5 program image:

TIPI.TIPICFG

Load this program by going to TI BASIC and entering:

CALL TIPI

Upon load, it will read the PI.STATUS file, and PI.CONFIG file, and present some
interesting bits. Initially you won't have an IP address unless you used ethernet.
The drive mappings will be blank, as well as the wifi settings.

If you are to use WiFi, set the SSID, and PSK by pressing 'S' and entering the SSID
value, and then press enter. Then press 'P', enter the pre-shared-key for your wifi
( this is usually your 'wifi-password' ) and press enter. Editing is limited,
supports F3 to erase to end of line, along with F1, F2 and arrow keys. If you press
enter, want to undo what you typed, you can press 'R' to reload, or just press 'P'
or 'S' again and re-enter the value.

Once you have what you want on the screen, you can press 'W' and the configuration
will be written. The Raspberry PI will reboot. Wait about 10 seconds, then press 'R'
to reload the information. Reading will block until the TIPI services are all back up
and running. When it is done, you should see an IP address.

'Q' exits without saving any changes.

Grow your sd-card partition

If your sd-card is larger than 2GB, you can ssh into the Raspberry PI, and use
raspi-config to extend the partion to enable all of your space.

Login to the raspberry PI from your TI by going into TI BASIC and entering:

CALL TIPI("TIPI.NET.TELNET")

At the HOST and PORT prompt, enter localhost and 23

HOST: localhost
PORT: 23

You will be brought to a login prompt. The user name is 'tipi' and password is 'tipi'

You will be in a BASH shell on the linux operating system. It needs to know what
backspace key to use, or pressing left-arrow will produce ^H on the screen. Set
backspace by entering the following, and pressing enter:

stty erase <press-FCTN-S>

Now to grow the file system. The sudo command will prompt you for your password
again before executing the command with 'root' user privilege. This is the password
for the 'tipi' user.

sudo raspi-config --expand-rootfs

It will finish, and show some mount errors, and ask you to reboot. Enter:

sudo reboot now

The TI will lock up with the TIPI light on. Power off the TI. Now just wait about a
minute, and you should be ready.

If you want to check that the root filesystem grew correctly, you can log back in
using the TELNET client, and use the following command:

df -k .

Transfering files

There is an early web administration interface at:

http://<ip-address>:9900

To get your TIPI's IP address, go back to TI BASIC and run TIPICFG by entering:

CALL TIPI

The IP address should be shown near the upper right. Now you can compose the url in
your browser's address bar.

Open it up, and you can browse the files hosted on your TIPI, as well as upload
files. The TIPI.TIPICFG tool should already be visible.

TIPI expects all files to be in TIFILES format. If you use the 'upload' feature
from TIPI's web ui, it will auto-convert v9t9 FIAD files (such as HDX files) to
TIFILES format.

You can also use programs like Ti99Dir, or TiImageTool or xdm99 to convert
whatever format you have into TIFILES.

the web ui is incomplete There are functions in the top menu bar that appear to do
nothing, such as 'settings'.

Disk Access

TIPI supports the following device names for general disk i/o:

And special handling of paths under the device PI. for the following:

Some additional special files are handled, but you are best using CALL TIPI to load
TIPICFG and let it work with them.

DSK1, DSK2, DSK3, DSK mapping

You can directly edit the PI.CONFIG on the TI, or use TIPICFG to set drive mappings
for DSK1-3 devices. The value should be expressed as subdirectories of the base TIPI.
device, using TI directory separator '.', such as: GAMES.EA5 if you have folders
for TIPI.GAMES.EA5.

Note, DSK0 and DSK4 cannot be mapped. They are aliases for TIPI. to help with legacy
software compatibility.

URI1, URI2, URI3 mapping

Set mappings in PI.CONFIG, or from TIPICFG tool:

URI1=HTTP://www.cwfk.net/4afiles

Then you can access files with paths like: URI1.AMBULANCE or URI1.more/path/MYFILE

Windows File Share

By default there is a windows file share called \Tipi\tipi or \\tipi.
This shares the same folder that is seen by the TI-99/4A as 'TIPI.' and can be used
to push more data files over.

Updates

Raspberry PI

TIPI has an update mechanism that can be triggered from the TI-99/4A to upgrade the
TIPI services on the raspberry PI. To perform an upgrade, run TIPICFG (CALL TIPI).
If an upgrade is available the new version is presented, and the 'U' command will
perform the upgrade. After about 30 seconds, the TIPI services should be up and running
again, using the latest available version. Quit TIPICFG, and reload it, to see any
changes to TIPICFG.

TI DSR ( Device Driver )

The TI side is in an EPROM. The latest version of the EPROM binary is available in
the downloads section, and the eprom must be erased, and then
reprogrammed. Some effort will be made to communicate if an EPROM update is necessary
for an upgrade of the Raspberry PI services.