Come connettere due VIC-20 in rete

connected vic20 commodore

Pochi lo sanno, ma il VIC-20 è in grado di comunicare con altri VIC-20. E’ infatti molto facile ed economico fare questo collegamento, ed è possibile eseguire software per chattare o per giocare in rete. Questo tutorial spiega come fare e include un link per scaricare il software per giocare e chattare a fondo pagina.

 

Costruire il cavo di connessione

Il cavo per la connessione si costruisce molto semplicemente. Si utilizza un semplice cavo audio a due poli più la calza metallica esterna; per fare una prima prova puoi utilizzare un cavetto stereo tipo quello in foto a cui taglierai via i jack.

Avremo bisogno di connetterci alla User Port (la presa 12+12 piedini che si trova sulla sinistra, guardando la tastiera, appena prima della presa per il registratore). I connettori si trovano facilmente nei negozi di componenti elettronici o su eBay.

Per la prima prova, a suo tempo io usai mollettine di plastica per tenere i cavi collegati alle piste. Raccomando di usare i connettori perchè è molto più sicuro. Se usi le mollettine per fare la prova raccomando sempre di fare i collegamenti a VIC spenti , di accenderli solo quando sei sicuro al 100% di aver connesso le piste giuste e di prestare moltissima attenzione nel fare i collegamenti: le piste che ci interessano sono tutti nella fila di sotto, mentre alcuni contatti della fila di sopra (contatti n. 2, 10 e 11)  portano tensione e non vanno mai toccati coi cavi mentre il VIC è acceso, si rischia altrimenti di fare danni.

Di seguito lo schema di collegamento (cliccare per ingrandire) e le istruzioni.

  1. Saldare la calza metallica del cavo al pin A di entrambi i connettori. Il pin A è come si vede quello in basso a sinistra guardando la presa del VIC.
  2. Sul primo connettore, con il cavo rosso unire i pin B e C tra loro collegandoli poi (quindi il secondo e il terzo della fila sotto) al pin M del secondo connettore.
  3. Sul secondo connettore, fare la stessa operazione con il cavo nero (o bianco, a seconda di quello che avete), ossia unire i pin B e C tra loro collegandoli poi al pin M del primo connettore.
  4. Importante: etichettare il lato del connettore dove avete fatto le saldature con la scritta “QUESTO LATO VA SOTTO!”. Questo impedirà di collegare il cavo a rovescio facendo danni. Se intendi chiudere il connettore con il suo cappuccio è una buona idea anche tagliare via i primi e gli ultimi pin della fila di sopra, per evitare che i cavi, comprimendosi o staccandosi dentro al cappuccio, entrino in contatto con i pin 2,10 e 11.

Di seguito, ecco come si presenta il mio cavo (25 metri) di cui ho aperto uno dei due connettori.

Da notare che il pin N (fila di sotto) e svariati pin della fila di sopra (1-2-3,10-11-12) sono stati tagliati via.

 

connettore 2, lato di sotto
connettore 2 lato di sopra

 

Ora è il momento di provare la connessione

Testare la connessione (programma terminale)

Ecco un programma di chat molto essenziale che va eseguito su entrambi i VIC. Quando si preme RETURN ciò che si è scritto viene spedito all’altro VIC.

10 OPEN2,2,0,CHR$(138)+CHR$(32)
20 GET#2,A$:PRINTA$;
30 GETA$:PRINTA$;:IFA$<>""THENS$=S$+A$
40 IFA$=CHR$(13)THENPRINT#2,S$;:S$=""
50 GOTO20

RUN

Funziona? Il più è fatto.

E’ il momento di giocare in rete!

Eseguire giochi e programmi in rete

Il link qui sotto ti fa scaricare un file/dischetto in formato .d64 che puoi trasformare in un dischetto fisico (se si disponde di un adattatore PC-VIC tipo XUM-1541), oppure puoi caricarlo sul VIC usando un dispositivo SDIEC (quello con cui si caricano programmi da normali schedine SD).

[Download del disco Networking tools VIC-20]

connected vic20 commodorecon LOAD”*”,8 carichi il programma MENU e a lì hai quanto segue:

  • TERM – il programmino di cui sopra, per testare la connessione
  • TERM1200 – programma di terminale a 1200 baud, da usare su emulatori VICE, funziona sia sul VIC20 che sul C64, anche emulati
  • HAPPYLINK – programma per chattare tra i due VIC connessi.
  • BATTNAVALE – La classica “battaglia navale” da giocare uno contro l’altro.
  • BATTNAVEMU – battaglia navale da usare su VIC20 emulati (vedere tutorial specifico)
  • HORSE RACING – Gioco di scommesse alle corse dei cavalli. Vince chi alla fine delle corse risulterà più ricco.

Noterete che ogni gioco del disco ha una opzione del menu “1” per chattare prima della partita. Vi conviene sempre partire da lì anche per accertarvi che la connessione funzioni bene e poi, per iniziare a giocare vi basterà digitare dentro la chat, su una riga singola la parola:
RUN

e battere RETURN.

I singoli programmi saranno prima o poi oggetto di post specifici qui su vic20reloaded.com. Puoi fare subscribe per ricevere una notifica via email ogni volta che viene pubblicato un nuovo post.

Per gli smanettoni

A questo punto quanto fatto potrebbe sembrare un pò magia nera, specialmente osservando la linea 10 del programmino di prova/terminale, potrebbe non essere chiaro a che serva, nella istruzione di apertura del canale di comunicazione (la OPEN) quella parte con i due numeri “CHR$(138)+CHR$(32)" presente alla fine della istruzione. Questi parametri si chiamano rispettivamente Control Register e Command Register per la RS232 e controllano la velocità e i la tipologia della comunicazione. Il significato è infatti il seguente:

138 è il control register, corrisponde in binario a 1 0 0 0 1 0 1 0

dove bit 7 = 1 significa 2 bit di stop

bit 6-5 = 0 0 significa 8 bit per parola

bit 4 non conta

bit 3-0 = decide la velocità di comunicazione e significa 2400 baud

32 è il command register e corrisponde in binario a 0 0 0 1 0 0 0 0

dove bit 7-5 = 0 0 0 significa niente parità

bit 4 = 1 significa half duplex, 0 significherebbe full duplex

bit 0 = 0 significa handshake 0-3 line

Il significato di questi parametri è comune anche ad altri computer Commodore come il C64, il C128 e il Plus4.

Velocità di trasmissione

Si controlla con gli ultimi 4 bit del numero inviato come primo parametro in apertura della comunicazione. Basta quindi usare un servizio tipo questo e inserire il numero binario 1000XXXX dove le ultime quattro cifre “X” si individuano usando la tabella qui sotto:

binario 0001 = 50 baud (bit per secondo)
binario 0010 = 75 baud
binario 0011 = 110 baud
binario 0101 = 150 baud
binario 0110 = 300 baud
binario 0111 = 600 baud
binario 1000 = 1200 baud
binario 1001 = 1800 baud
binario 1010 = 2400 baud

Per esempio, se si vuole comunicare a 1200 baud il primo numero con cui si apre il canale non sarà 138, ma bensì 8 (binario 1000).

Esecuzione negli emulatori WinVICE

Il programma di terminale TERM1200 funziona anche dentro gli emulatori VIC-20 e C64 del pacchetto WinVICE (abbiamo provato la versione 3.1 a 64bit per entrambe le piattaforme).

Dal momento che la tecnica illustrata qui funziona anche su VIC20 e c64 emulati, se non disponi di due macchine fisiche e del cavo puoi sperimentare lo stesso usando l’emulatore WinVICE. Vedi anche il tutorial specifico.

 

Ringraziamenti

Questo tutorial (e tantissime partite in rete) non sarebbero mai state possibili senza il libro “ALLA SCOPERTA DEL VIC 20” di Rita Bonelli e Daria Gianni che spiega alle pagine 81-84 i concetti alla base di tutto questo. Ringrazio infine il mio amico Lorenzo che nel lontano 1986 condivise con me questo esperimento e successivamente ore di giocate in rete quando di giochi multiplayer in Italia non si sapeva ancora nulla o quasi.

Conclusioni

E’ molto facile ed economico collegare due VIC-20 tra loro. E’ possibile chattare e giocare in rete a distanza.

Sarebbe molto interessante testare queste funzionalità anche sugli emulatori, che hanno un qualche supporto verso l’interfaccia user port (RS232) ma queste funzioni sono così scarsamente documentate che finora non ci sono mai riuscito. Se qualcuno riesce nell’impresa si faccia vivo!

Aspettiamo i vostri commenti e naturalmente i vostri programmi per VIC-20 in rete.

Link al tutorial scaricabile: vic20-connettere-tutorial.pdf


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *