NAME
cbmlink − Remote control and data transfers for Commodore 8-bit computers
SYNOPSIS
cbmlink -c protocol device [options]
DESCRIPTION
This manual page documents briefly the cbmlink command.
cbmlink implements data communications between an 8-bit Commodore computer and another computer system. Once a small server process has been loaded and started in the Commodore, cbmlink can transfer data between the system where it is run and the Commodore. On the Commodore side, cbmlink can access main memory, files and entire disks. Access to files and disks is implemented by downloading and invoking an extension program on the Commodore.
OPTIONS
CBMLINK follows
the usual Unix command line syntax, with options starting
with a dash (’-’).
-b bank
Specify the memory bank for -s and -l memory transfers. The default is 1 for the Commodore B series (the 600 and 700 series), and 0 for all other Commodores. On a Commodore 128, banks 0−3 are for MMU-based memory access, and banks 4−15 are for the PIA-based internal memory extension. Banks 16−255 refer to the first 15,360 kilobytes of a Commodore RAM Expansion Unit.
-c protocol device
Specify the protocol and the interface name used for accessing the Commodore. For a C2N232 device connection, you may use something like -c c2n232 /dev/ttyS0. For a null modem connection, also the default bit rate of 19200 can be overridden: -c serial 38400,/dev/ttyS0. A PC64 cable connected to the first parallel port of a PC compatible can be accessed via -c pc64 0x3bc.
-d drive[,secondary]
Specify the device number for remote file and disk operations, and secondary address for remote file operations. The default device number is 8, and the default secondary address is 0 for -fr and 1 for -fw.
-dc command
Execute a disk drive command and read the drive status. Beware that the UJ (reset) command may lock up the communications.
-dd pattern
Fetch the disk directory by reading a remote file $pattern. The output is partially translated from PETSCII to ASCII. To get the raw directory, type -fr ’$pattern’.
-dmc,address1,address2 file.prg
Save the memory bytes from address1 up to but excluding address2 in a dual disk drive’s controller address space to a program file. Write address1 to the first two bytes of the file. Note that the drive may act strangely once this command has been issued.
-dmco,address1,address2 file.bin
Save the memory bytes from address1 up to but excluding address2 in a dual disk drive’s controller address space to a binary file. Note that the drive may act strangely once this command has been issued.
-dml file.prg
Load a program at its specified absolute address in the disk drive’s main address space. The first two bytes of the file indicate the 16-bit loading address (least significant byte first), and the remaining bytes contain the file data. At most 64 kilobytes can be transferred at a time.
-dmlo,address file.bin
Load a binary file (not containing a starting address) to the specified address in the disk drive’s main address space.
-dmlr,address file.prg
Load a program, ignoring its address bytes, to the specified address in the disk drive’s main address space.
-dms,address,address file.prg
Save the memory bytes from address1 up to but excluding address2 in the disk drive’s main address space to a program file. Write address1 to the first two bytes of the file.
-dmso,address,address file.bin
Save the memory bytes from address1 up to but excluding address2 in the disk drive’s main address space to a binary file.
-dr[0|1][,interleave[,start[,end]]] file
Read a disk in unit 0 (default) or 1 to an image file. Optionally, an interleave factor (number of sectors to skip) may be specified to improve the transfer speed. When it differs from 0, file must be seekable. The default is 10. Also, the default start and end tracks of 1 and 1000 can be overridden.
-ds |
Query the disk drive status. |
-dw[0|1][,interleave[,start[,end]]] file
Write an image file to a disk in unit 0 (default) or 1, starting from track 1, sector 0. If the file is shorter than the capacity of the disk, the rest of the disk will be left intact. Optionally, an interleave factor (number of sectors to skip) may be specified to improve the transfer speed. When it differs from 0, file must be seekable. The default is 10. Also, the default start and end tracks of 1 and 1000 can be overridden.
-fr file...
Copy the specified files from the Commodore to the local file system. As the file names are not translated between PETSCII and ASCII, it is best to use upper-case file names on the local system, which correspond to lower-case Commodore file names.
-fw file...
Copy the specified files from the local file system to the Commodore. As the file names are not translated between PETSCII and ASCII, it is best to use upper-case file names on the local system, which correspond to lower-case Commodore file names.
-qf name,id
Quick format a Commodore 1541 disk.
-qr file
Read a 1541 disk to an image file. The interleave is adjusted dynamically.
-qw[,interleave] file
Write a seekable image file to a 1541 disk, starting from track 1, sector 0. If the file is shorter than the capacity of the disk, the rest of the disk will be left intact. Optionally, an interleave factor (number of sectors to skip) may be specified to improve the transfer speed.
-l[p] file.prg
Load a program at its specified absolute address. The first two bytes of the file indicate the 16-bit loading address (least significant byte first), and the remaining bytes contain the file data. At most 64 kilobytes can be transferred at a time. The options beginning with -lp support the P00 file format by skipping the 26-byte file header.
-l[p]b file.prg
Load a program, relocated to the start of the BASIC text area.
-l[p]o,address file.bin
Load a binary file (not containing a starting address) to the specified address.
-l[p]r,address file.prg
Load a program, ignoring its address bytes, to the specified address.
-s,address1,address2 file.prg
Save the memory bytes from address1 up to but excluding address2 in the specified bank to a program file. Write address1 to the first two bytes of the file.
-so,address1,address2 file.bin
Save the memory bytes from address1 up to but excluding address2 in the specified bank to a binary file.
-r |
Disable the remote server and perform a RUN command in order to start a BASIC program. |
-j,address
Disable the remote server and jump to the specified address in order to start a machine language program.
-jc,address
Disable the remote server on a Commodore VIC-20 or VIC-1001, install some code at address and invoke an auto-start cartridge that has been loaded previously with one or more -l switches.
BUGS
On the Commodore VIC-20, the keyboard is connected to the cassette write line. When using the C2N232 device on this computer, it is better not to not touch the keyboard during data transfers.
On the Commodore 64, the Action Replay cartridge may cause problems with some cables.
Other cables than c2n232, serial, pc64 and kontros have not been tested with this release.
AUTHOR
The cbmlink utility and the C2N232 cassette drive emulator device were designed and implemented by Marko Mäkelä <msmakela [AT] nic.fi>. Some of cbmlink is based on prlink, which was designed and implemented by Marko Mäkelä and Olaf Seibert. The quick disk routines are based on the work of Daniel Kahlin and Andreas "pitch" Andersson.