C64 - PC slip connection
(using NOS)

 

 

This little document show how to set-up a SLIP connection between a C64 running Lunix and a PC running Dos or Win9x.
At the moment I am using a program called NOS (Network Operating System) to test Lunix in Tcp/Ip mode
over a SLIP connection.
NOS is a program written for "Ham-radio" community. It was used to connect remote computers over radio interfaces.
Over radio channels it is needed to encapsulate Tcp/Ip in ax.25 frames.
Anyway, it can handle pure SLIP connection via rs232 ports, and this is what we want from it.
NOS includes several services, such as TELNET, FTP, HTTP, SMTP servers, and a full-service BBS.
We will set up only TELNET and FTP servers.

 

A serial interface for C64 userport or equivalent (see related documents for more informations)
A NULL-MODEM cable (see related documents for more informations)
- Lunix package for C64, "Up and Running", ready for Tcp/Ip.
- NOS 1.10 or later, downloadable at URL:
http://www.gb7iph.demon.co.uk/newsoft.html
Download NOS and copy it in the directory c:/nos . Do not launch it for now. Create also a directory called c:\nos\public.
Create 3 new empty files:
 
c:\nos\ftpusers
c:\nos\domain.txt
c:\nos\autoexec.nos
 
Choose now an hostname for your system and a IP address. If you do not have a IP address use 192.168.0.1 . Never use this to browse Internet, use it only for your c64 network. Let's assume "johnny" for hostname and 192.168.0.1 for IP address.
The ftpusers file contain information of users and permissions, for our purposes we need only 3 users, one for c64, one for johnny and one for anonymous.
The domain.txt file contain informations about the relationship of IP addresses and hostnames.
The file autoexec.nos contains the informations to setup NOS itself, we will discuss a bit later on it.

Edit ftpusers file and add the following lines:
 
anonymous * /public 1
c64 c64 /public 127
johnny johnny /public 1
 
The first field is the login name, second field is the password (* for any password), the third is the path for FTP access, fourth is the permission right. 1 means read-only, 127 super-user. (see Addendum for a full explaination)
Edit domain.txt file and add the following lines:
 
johnny IN A [192.168.0.1]
c64 IN A [192.168.0.1]
 
Fields are separated by TAB characters. This file defines the relations between hostnames and IP addresses.
Edit autoexec.nos file and add the following lines:
 
ip addr [192.168.0.1]
isa on
domain trace on
domain translate off
attach asy 0x3f8 4 slip c64 1024 200 2400
host johnny
trace c64 1111
tcp ti linear
tcp mss 1024
attended off
mbox max 8
route add 192.168.0.64 c64
echo refuse
smtp gate 192.168.0.64
start telnet
start ftp
start smtp
 
In this file we are going to define the IP address of the NOS, the trace (monitoring) of Tcp/Ip frames,
the asynchronous port attached to c64, com1 in the example, modify it if needed:
 
0x3f8 4 for base address 03f8 irq 4 (com1)
0x2f8 3 for base address 02f8 irq 3 (com2)
...
We also define the hostname (johnny), the translation of names/IP addresses, the timing for retries,
maximum users of BBS and the route to c64.
A SMTP (mail) server is included in NOS, now it has been configured and started.
At the end of the file we start TELNET and FTP services.
Connect the Null-Modem cable between C64 side and PC side.
If you are using Win9x open a DOS shell and change directory to c:\nos.
Type the name of the executable file (the name may change, it depends on the release and the compiler, followed by the options "-d c:/nos" (note the unix-like slash), eg:
 
jn111dls -d c:/nos
 
or
 
u110l386 -d c:/nos
 
If all goes right you will see the prompt "Jnos>" without any error message.
Power-on the C64, insert the Lunix disk and type:
 
LOAD "LOADER",8
 
After the loading of the loader type:
 
RUN
and wait for the prompt of Lunix.
Load the shell:
 
L sh
 
and wait for "#" prompt.
 
Load now all the modules required for Tcp/Ip. Follow the list:
 
srs232std
slip 2400&
tcpip 192.168.0.64&
connd 200 sh&
 
With the first line we load the standard rs232 driver, if you use a swiftlink cartridge use the right driver,
then we initialize the protocol slip with baudrate 2400.
Baudrate can change due to the interface used.
After this we start the Tcp/Ip service with the IP address above.
Note: this address is fixed, it can be changed recompiling the kernel.
The last line starts the connection daemon, all the requests to port 192.168.0.64:200 will cause the
execution of the shell (sh).
You can start more daemon: for example you can connect port 100 to process "tcpipstat".
The request of connection to the port 192.168.0.64:100 will open a connection, will execute "tcpipstat"
and will close the connection.
Now you are ready to start connections. The services provided by NOS are:
 
TELNET server:
 
From C64 side type "telnet 192.168.0.1 23" In few seconds you should have the prompt "login:" coming from NOS.
Type "c64", you should now have the prompt "password:"... type again "c64" and you will be connected to the
BBS service included in NOS.
Note: the port 23 above is the default port for telnet connection.
Refer to the NOS manual for more infos on the commands of the BBS.
 
FTP server:
 
From C64 side type "ftp 192.168.0.1". You will get the same "login:" and "password:" prompts.
After this you will use the services offered by NOS ftp server.
The downloadable files should be in the c:\nos\public directory.
Refer to the Lunix manual for supported commands.
TELNET Client:
 
You can open a telnet connection typing from the Jnos> command mode the command:
telnet c64 200
Doing this the internal resolver of NOS will translate "c64" into "192.168.0.64" and will try the connection
to the remote port 200.
After this the floppy drive will run for few seconds and you will get the prompt "Lunix ...... #" prompt on
the screen of the PC.
Now you are the second user of the C64 and you can do the same operations of being directly on the C= console.
It is possible to open multiple connections from/to PC and C64, in a real multitasking environment.
It is also possible to have loop connections to test the performances of the protocol.
Try for example to telnet from PC to C64 and (on the Lunix prompt) telnet BACK to the PC !
On the screen of Jnos you will read the prompt of your local BBS, connected passing THROUGH the C64!
By using the BBS command "s" (send) you can leave a text message for the C64 user.
First log in your local BBS typing BBS at Jnos prompt, use the "johnny" account.
Type in "s c64", then input the subject and the body of the message; end message with "/EX" at the beginning of
a new line. Some Jnos versions ask for another confirmation.
Now the message is stored on to the NOS database, if an user log in with "c64" account, a message "You have got new mail" will appear.
Use the commands (R)ead, (L)ist or (K)ill to handle messages.
Of course you can do the opposite procedure and leave a message for "johnny", or leave a message for other people
who access the BBS.
Many different releases are availables on internet, some works fine, some not.
Not all the releases provide SLIP protocol over rs232. I've tested the following releases:

u110l386 (version compiled by IW2DVL)
jn111dls (pre-compiled version downloaded from GB7IPH site)
As I wrote before, the file ftpusers defines the permissions of users.
The last number of the line is calculated in this way:
 
1 = read files
2 = write files
3 = overwrite existing files
4 = gateway to ax.25 port allowed (useless for the purposes of this documents)
16 = Telnet allowed from BBS
32 = gateway to NET/ROM nodes allowed (useless for the purposes of this documents)
64 = Remote Sysop.
 
Sum the numbers above to obtain different profiles.
 
Example: An anonymous user should be able only to read files, and nothing more, so its number will be "1".
Example 2: A remote sysop should have full rights, its number will be 127 (1+2+4+8+16+32+64).
 
The "64" allow user to digit the special character "@" at the prompt of BBS and access to
Jnos prompt from remote consoles.



My opinion is that NOS for DOS is one of more flexible and poweful programs for "ham-radio"
Tcp/Ip experimentations, unfortunately (at least in Italy) it has been replaced from Flexnet/Win9x software.
This package is much more easy to use and configure.
Fortunately the development of NOS is continuing in Linux environment, the Linux versions are called TNOS.
Anyway it is a good platform to test our good old C64...!
Refer to "official" NOS manual for the meaning of all the parameters / commands.
Please send back to me any question / comment / hint / correction about NOS and C64, thanks !
 
Milan, October 25, 1999
Claudio Parmigiani, IW2FER
iw2fer-at-hotmail.com