Skip to content

v8id-mmo/swiftlink-basic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C64 Ultimate internal SwiftLink modem usage example program for BASIC

Disclaimer

This is not a bulletproof solution, but it can give some guidance and help for those who want to experiment with the internal modem in the C64U. There is no error checking, connections can be unstable, etc. Please check the original project's readme for details!

This is based on Bo Zimmerman's sample code from: https://www.zimmers.net/anonftp/pub/cbm/c64/comm/Swiftdriver.zip

BASIC program

How to use

Download this repo, and check the included D64 file. You can find the needed files separately also here. If you need .asm or LADS file, you can find them in the original zip.

You'll need only 2 files:

  • SWIFTTEST.PRG is a very simple BASIC "terminal" program. It can send/receive bytes to/from the C64U's internal SwiftLink modem.

  • It loads SWIFTDRVR49152.PRG to address $C000 (49152). This small program makes it possible to communicate with the modem trough standard KERNAL calls and the BASIC PRINT# and GET# commands.

After loading, you must initialize it with SYS 49152 before first use.

The sample BASIC program:

10 IF A=0 THEN A=1:LOAD "SWIFTDRVR49152",8,1
20 SYS 49152 : REM Turn On The SwiftDriver
25 PRINT "LOAD DONE."
30 OPEN 5,2,0,CHR$(7) : REM Open RS232 at 600 BAUD
40 GET#5,A$:IF A$ <> "" THEN PRINT A$;
50 GET A$:IF A$ <> "" THEN PRINT#5,A$;
60 GOTO 40

To be on the safe side we use baud rate 600. For more info check the issues section below.

Baud rates you can use:

Baud Rate   CHR$() CODE
50               1
75               2
110              3
135              4
150              5
300              6
600              7
1200             8
1800             9
2400             10
3600             11
4800             12
7200             13
9600             14
19200            15

Modem commands

You can use standard Hayes modem commands, you can find a list of the most common ones here. Don't know which one is implemented in C64U. Experiment with them freely :D

Some useful examples:

AT - Checks modem. If the response is OK then the modem is working correctly.

ATI - Request modem information text

ATDT - Connect to remote host. Format: ATDT hostname:port

Use of the BASIC program

After running, type in your command, and press enter. That's all. Something will happen. (Or not ;) )

Trying out the ATI and ATDT commands: AT commands

Connected to bbs.retrocampus.com:6510 - from BASIC!! Connected

Possible issues

Connection speed

Please note, baud rates higher than 600 can cause unreliable connections using BASIC. To use higher baud rates, you will need to use assembly. Those speeds are not tested (by me). Maybe 1200 should work. Or not ;)

Random freeze

As stated in the original readme, the included SwiftLink driver doesn't have any error checking, and after errors or with an unstable connection, the modem can completely freeze. Only after a full power cycle could be used again. (Menu/F1/Power&Reset/Power cycle)

A simple reboot didn't helped for me.

Using with Action Replay

With an attached AR cart, you get "type mismatch error in 40" and the computer freezes. Detach the cart and run again.

C64 Ultimate modem settings

It works with the default factory settings:

C64 Ultimate modem settings

About

C64 Ultimate SwiftLink example program for BASIC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors