Networking VIC-20

Perhaps you don’t know, but VIC-20 has a built-in capability to communicate with other VIC-20 units. It is indeed very easy to get two VICs connected and run on them a chat software and even play multiplayer games. This tutorial will explain how to achieve this, and the link for downloading the necessary software is at the bottom of the page.

Connecting two VIC-20 for networking

schema of the connections

You can build a cable easily. In the picture, a full built cable of about 25 metres is made with just a plain audio cable (2 lines + ground) and two userport connectors.

Here are the steps, click the connection schema aside to see it in full size:

1. Mark each connector with a label “TOP SIDE” or “BOTTOM SIDE” just to avoid confusion later, as few pins in the top row carry voltage and shuold never be used
2. Solder the metal net (ground) of the cable to the A pin of both connectors.
3. Connector 1: Solder pins B and C together to red cable, Solder pin M to white cable
4. Connector 2, do the opposite: Solder pins B and C together to WHITE cable, Solder pin M to RED cable

Below the finished conector 2.

Please note that I have cut away the pins N (lower row) and several pins of the top row (1-2-3,10-11-12) in order to avoid damages if wrongly connected:

connector 2, lower side
connector 2 upper side

 

 

finished VIC-20 connection cable


Now connect the two VICs, then turn them on, and test the connection.

Testing the connection (terminal program)

Here is a very simple terminal program to be run at both connected VICs. You will find it named TERM in the diskette image linked at the bottom

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

 

The program will send pressed keys to the other VIC, and display on screen the received characters.

If it works, then try the other programs in the diskette.

 

Networking games and tools

The software diskette follows. You can put it on a physical disk from a PC using a XUM-1541 adapter, or you can load the software directly using a SDIEC device on the physical VICs.

[Download the VIC-20 Networking tools disk]

Contents of the diskette:

  • TERM – very simple terminal program for testing connection
  • TERM1200 – simple terminal program at 1200 baud no parity, works well also on the c64, suitable also for running on emulators
  • HAPPYLINKEMU – full chat program, english version, to be used also with Emulators. Only for VIC 16k. Function keys are used for special functions during chat. Quick guide: F1=finished writing, now is party’s turn F8=break, I need to write! F2=ring bell F4=change screen colors F5=upload file F6=record received file F7=pause communication
  • HAPPYLINK – full chat program between two connected 16k VICs. Italian version.
  • BATTNAVALE – The classic ship battle game with coordinates, played against each other
  • BATTNAVEMU – Ship battle game, to be played on WinVice emulators only (untested on physical VICs yet!)
  • HORSE RACING – Nice horse racing betting game, both player will see the same race. Who has most money at the end of the races wins. Serious fun.

Please note that all the above games have a chat feature (manu option 1) to test the connection before playing. It is recommended to use it and then, when you see that connection is OK, type:

RUN (return)
to start playing.

Games and the HAPPYLINK software will be probably explained in future posts here on vic20reloaded.com – you can subscribe for being notified.

Notes for running under Emulators

At present we are experimenting running these programs under the WinVice emulator, both with the XVIC (VIC-20) and C64 emulator.

It seems that under WinVICE 3.1, 64bit version, the only communication settings which work correctly under both VIC-20 and C64 emulations is: 1200 baud, 1 stop bit, no parity, 3-line handshake. This corresponds to opening the connection with this instruction:

OPEN2,2,0,CHR$(8)+CHR$(0)

so please take this into accounts when making experiments.

Check out this tutorial to learn how to get two emulators connected (even on the same machine).

 

Conclusions

It’s very easy (and very funny) to make two physical VIC20 machines to communicate. If you are able to do the same with two emulators, please let me know in the comments!

 


1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)
Loading...

2 Replies to “Networking VIC-20

  1. Well, lets define networking:

    Make a connection to MORE THAN one other computer.

    So serial (RS232-Style) Communication is NOT networking, but can be used for point2point (P2P) connections, which – in case of a gateway or similar device (router) could lead to a higher protocol networking solution.

    REAL networking with C= Homecomputers could work over IEC as IEC is really a BUS-System, not a P2P connection.

    (technically spoken, it is open collector or -drain for C-MOS based serial protocol allowing for more than 2 participants sharing one physical line.

    For real networking a RS-485 Transceiver solution has to be connected to the userport and a minimum software protocol must also be implemented, but then really allows networking with MORE than one other computer in a very simple LAN.

    A P2P-connection to an internet gateway is not really networking 😉

    1. Yes I get the difference, the networking layer is totally absent so let’s say it’s fake networking. But from the user’s perspective this does not change much. The feeling you get using the cable and the software provided is exactly that of using modern chat software and multiplayer games based on networks.
      Too bad that most of the efforts we find out today are spent in researching ways to revive old “BBSes” instead of seeking a solution to implement real networking over internet for this old computer. Imagine how it would be to access websites, or play a real multiplayer game with a lightweight client designed for the vic-20… this would be a real killer app to revive these 8-bit gems.

Leave a Reply

Your email address will not be published. Required fields are marked *