Connessione slip tra il C64 ed un PC
(pcNOS)

 

 

Questo piccolo documento indica come connettere a mezzo di una connessione SLIP un Commodore 64 sul quale e' in funzione il sistema operativo LUnix e un PC funzionante in DOS o Win9x.
Per il momento sto testando un programma chiamato NOS (Network Operating System) che mi permette di interfacciarmi a LUnix in TCP/IP a mezzo appunto di una interfaccia seriale.
NOS e' un programma scritto da e per i Radioamatori e permette lo scambio di informazioni, posta e files a mezzo di canali radio.
Nos puo' interfacciarsi direttamente con le porte seriali del PC tramite il puro protocollo SLIP, e questo e' proprio cio' che useremo..
NOS include altri servizi, come server TELNET, FTP, HTTP, SMTP, NNTP e un vero e proprio BBS.
In questo documento verranno descritti solo server TELNET e FTP in quanto solo questi servizi possono essere usati dal C64

 

E' necessaria una interfaccia seriale per la userport del C64, vi sono molti kit di montaggio in commercio..
Un cavo NULL-MODEM
- Pacchetto Lunix for C64, ';Up and Running';, ready for Tcp/Ip.
- NOS 1.10 or successivo, e' reperibile all'indirizzo:
http://www.gb7iph.demon.co.uk/AR_Soft/arsoft.html
Scaricate NOS e copiatelo nella directory c:/nos . Non lanciatelo per il momento, create invece una directory chiamata c:\nos\public.
Create 3 nuofi files vuoti:
 
c:\nos\ftpusers
c:\nos\domain.txt
c:\nos\autoexec.nos
 
Scegliete un nome di fantasia per il vostro pc ed un indirizzo IP. Se non avete un indirizzo IP usate 192.168.0.1 . Non usate mai questo indirizzo per collegarvi ad internet ma solo per interfacciarvi con il vostro C64. Assumiamo che voi abbiate scelto ';johnny'; come hostname e 192.168.0.1 come indirizzo IP.
Il file ftpusers contiene informazioni sugli utenti e sui loro privilegi di accesso, per i nostri scopi andremo a definire solo 3 utenti, uno per il c64, uno per johnny e uno anonymous.
Il file domain.txt contiene informazioni sulla corrispondenza tra gli utenti ed i loro indirizzi IP.
Il file autoexec.nos infine contiene i comandi che NOS eseguira' alla sua partenza, parleremo piu' diffusamente di questi comandi piu' avanti.

Editate il file ftpusers e aggiungete le seguenti linee:
 
anonymous * /public 1
c64 c64 /public 127
johnny johnny /public 1
 
Il primo campo e' la login dell;utente, il secondo e' la password (* significa qualsiasi password) e il terzo specifica il path quando accede a NOS tramite FTP. Il quarto numero varia tra 1 e 127 e rappresenta le permission degli utenti. Riferirsi all Addendum per una spiegazione piu' approfondita.
Editate il file domain.txt file e aggiungete le seguenti linee:
 
johnny IN A [192.168.0.1]
c64 IN A [192.168.0.1]
 
I campi sono separati dal carattere di tabulazione (TAB). Questo file definisce l'associazione tra hostname e indirizzo IP.
Editate il file autoexec.nos file e aggiungete le seguenti linee:
 
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 questo file andiamo a definire l'indirizzo IP del NOS, il monitor dei frame, e la porta seriale connessa al C64. Nell'esempio e' la COM1, cambiatela se necessario come segue:
 
0x3f8 4 per base address 03f8 irq 4 (com1) oppure
0x2f8 3 per base address 02f8 irq 3 (com2)
...
Definiamo anche l'hostname ';johnny';, la traduzione dei nomi/indirizzi IP, le temporizzazioni, il massimo numero di utenti del BBS e la route verso il C64.
Configuriamo inoltre ed attiviamo il server SMTP (mail)
Alla fine del file attivimo inoltre i server TELNET e FTP.
Collegare il cavo Null-Modem tra la scheda seriale del C64 e il PC.
Se state usando Win9x aprite una sessione DOS e cambiate la directory a c:\nos.
Digitate il nome del file eseguibile (il nome puo' cambiare a seconda della versione e di chi l'ha compilato) seguito dalle opzioni ';-d c:/nos'; (notate la barra stile Unix), ad esempio:
 
jn111dls -d c:/nos
 
oppure
 
u110l386 -d c:/nos
 
Se tutto va come dovrebbe apparira' il prompt ';Jnos>'; senza nessun tipo di messaggio di errore.
Accendete il C64, inserite il disco di LUnix che avete creato precedentemente e digitate:
 
LOAD ';LOADER';,8
 
Al termine del caricamento del loader digitate:
 
RUN
e aspettate che appaia il prompt di LUnix.
Caricate la shell:
 
L sh
 
e aspettate il prompt ';#';.
 
Caricate ora tutti i moduli richiesti per il TCP/IP. Seguite la seguente lista:
 
srs232std
slip 2400&
tcpip 192.168.0.64&
connd 23 sh&
 
Con la prima linea di comandi carichiamo il driver standard per la porta rs232, se usi una cartuccia esterna tipo swiftlink dovrai caricare il driver adatto, di seguito viene caricato il modulo che inzializza il protocollo SLIP, la velocita' scelta e' 2400 baud.
Il baudrate puo' variare in funzione dell'interfaccia usata.
Andiamo quindi a caricare il modulo per il TCP/IP, specificando l'IP address.
Nota: questo indirizzo e' fisso ma puo' essere variato ricompilando il kernel di LUnixl.
L'ultima linea inzializza un demone di connessione, tutte le richieste alla porta 192.168.0.64:23 causeranno l'esecuzione della shell (sh)
.
E' possibile caricare piu' di un demone contemporaneamente, per esempio associando alla porta 100 il programma ';tcpipstat'; e aprendo una sessione TELNET a 192.168.0.64:100 verra' eseguito il programma sopracitato e l'output verra' rediretto opportunemente. Al termine del programma la sessione verra' chiusa.

Ora siamo pronti a connetere i 2 sistemi. I servizi forniti da NOS e che abbiamo configurato sono:
 
TELNET server:
 
Dal lato C64 side digitare ';telnet 192.168.0.1 23'; In pochi secondi dovreste avere sullo schermo il prompt ';login:'; di NOS.
Digitate ';c64';, ora dovrebbe apparire il prompt ';password:';... digitate nuovamente ';c64'; e vi troverete connessi al BBS di NOS
.
Notate che la porta 23 e' usata di default da tutti i client di TELNET, cio' non ostante va specificata sempre, almeno dal lato C64.
Riferitevi al manuale di NOS per maggiori informazioni riguardanti i comandi del BBS.
 
FTP server:
 
Dal lato C64 side digitare ';ftp 192.168.0.1';. Avrete gli stessi prompt di ';login:'; e ';password:';, ripetete le operazioni di cui sopra.
Al termine dell'operazione di login avrete accesso ai servizi FTP offerti da NOS.
I file scaricabili dovrebbero essere messi nella directory c:\nos\public.
Riferitevi al manuale di LUnix per i comandi supportati.
TELNET Client:
 
E'possibile aprire sessioni TELNET dal prompt Jnos> Provate con:
telnet c64
Il programma di IP resolver dovrebbe tradurre ';c64'; in ';192.168.0.64'; e tentare la connessione, la porta di default e' la 23 (la stessa associata dal comando ';connd'; su LUnix) .
Il motore del floppy drive del C64 dovrebbe girare per qualche secondo, al termine del quale dovrebbe apparire il prompt ';Lunix ...... #'; di LUnix sullo schermo del PC.
Da questa shell remota di LUnix e' possibile effettuare qualsiasi operazione, come se si fosse realmente alla console del C64.
E' possibile aprire connessioni multiple da/verso il C64, sfruttando il vero ambiente multitasking offerto da LUnix.i
E' oltremodo possibile avere dei loop per testare le prestazioni del link e del protocollo.i
Provate per esempio ad aprire una sessione dal PC vero il C64 e (al prompt di LUnix) dare telnet verso il PC, facendo questo sullo schermo del vostro PC avrete il prompt del vostro BBS, con la differenza che state transitando attraverso il C64 !
Usando il comando del BBS ';s'; (send) e' possibile lasciare un messaggio per l'utente del C64.
Per prima cosa entrate nel vostro BBS locale usando appunto il comando ';BBS';, usate login e password dell'account ';johnny';.
Digitate ';s c64';, specificate poi il titolo del messaggio e il messaggio vero e proprio. Terminate il messaggio con ';/EX'; all'inizio di una nuova linea. Alcune versioni di JNOS chiedono una ulteriore conferma per l'inoltro del messaggio.
Ora il messaggio e' memorizzato nel database di NOS, se un utente si collega con l'account ';c64'; apparira' un messaggio ';You have got new mail';.
Con i comandi (R)ead, (L)ist o (K)ill e' possibile leggere, listare o cancellare i messaggi.
Naturalmente e' possibile fare la procedura opposta e lasciare un messaggio per ';johnny'; o per chiuque altro acceda al BBS.
who access the BBS.
Molte versioni sono disponibili su internet, alcune sono adatte ai nostri scopi, altre no. Non tutte le versioni infatti implementano il protocollo SLIP. Io ho provato le seguenti versioni:

u110l386 (versione compilata da IW2DVL)
jn111dls (versione pre-compilata scaricata dal sito di GB7IPH)
Come detto prima, il file ftpusers definisce i provilegi degli utenti.
L'ultimo numero va calcolando sommando i seguenti:
 
1 = Lettura files
2 = Scrittura files
3 = Sovrascrittura di files esistenti
4 = Gateway verso porte ax.25 port consentito (inutile se NOS non fa da gateway)
16 = Telnet consentito dal prompt del BBS
32 = Gateway verso porte NET/ROM consentito (inutile per quanto descritto in questo documento)
64 = Sysop remoto.
 
Esempio: Un utente anonymous dovrebbe essere in grado solo di leggere files e ninente di piu', il suo privilegio sara' quindi ';1';.
Esempio 2: Un sysop remoto dovrebbe avere tutti i privilegi, il suo numero sara' quindi 127 (1+2+4+8+16+32+64).
 
Il ';64'; permette all'utente di digitare il carattere speciale ';@'; al prompt of BBS e di accedere al prompt ';Jnos>'; da console remote.



La mia idea e' che NOS per DOS e' uno dei programmi TCP/IP piu' flessibili e potenti per i Radioamatori, anche se negli ultimi anni e' stato rimpiazzato da FLEXNET, che e' molto piu' facile da configurare.
Lo sviluppo di NOS e' continuato infatti in ambienti Unix/Linux, queste versioni sono chiamate TNOS.
In ogni caso la ritengo un ottimo banco di prova per il nostro vecchio C64...!
Riferitevi al manuale ufficiale NOS per ulteriori settaggi o approfondimenti sui parametri o sui comandi.
Mandatemi soprattutto commenti, domande, suggerimenti e correzioni su questo argomento, grazie !
 
Milano, 25 Ottobre 1999
Claudio Parmigiani, IW2FER
cparmig@tiscalinet.it