u64cmd - Remote Control for your Ultimate 64/II+
This Python command line tools allows you to control your Ultimate 64/Ultimate II+ device via a TCP connection on port 64.
It implements almost the full feature set of the DMA Socket Protocol as specified in the Ultimate64 source code.
Feature Set
- Upload/Run PRG Files
- Upload REU Images
- Upload/Mount Disk Images
- Upload/Activate CRT Images
- Upload/Activate Kernel ROM Images
- Write Data Files to RAM
- POKE, POKEW
- Type Text with Petcat like Control Codes
- Reset/PowerOff Machine
- On Ultimate64: Enable/Disable VIC/Audio/Debug Stream
Installation
-
You need Python 3 >= Version 3.7 and Pip installed
-
Install stable version
pip3 install u64cmd -
Install current Git version
pip3 install -U git+https://github.com/cnvogelg/u64cmd.git
Run u64cmd
You run the command with this syntax:
u64cmd -h 192.168.2.1 reset
The -h|--host option is required to give the IP address or hostname of your
Ultimate 64/II+.
The above command triggers only the reset command and exits. You can also
specify multiple commands on the command line to execute them in a row:
u64cmd -h 192.168.2.1 reset load_reu blureu.img load_prg -r blureu.prg
Command Description
Main Options
Usage:
u64cmd [--host|-h <host_addr] [--port|-p <port_num>] <command> ...
--host|-hgives thehost_addrof the Ultime64/II+ (required). Use environment variableU64CMD_HOSTto set the value permanently.- With
--port|-pyou can specify the port number. The default is64. Use environment variableU64CMD_PORTto set the value permanently.
More Main Options
- The option
--versionshows the release version of the tool. - The option
--helpgives you a command overview. - Use
... <command> --helpto get detailed help on a command - The option
--dump-keycodes|-Dshows a list of known petcat control commands for typing message (seetypecommand)
type - Type Text on C64 Keyboard
Usage:
type <text>
- Types the given
text. - You can pass control codes in the
{code}notation (similar topetcat) - Use the
--dump-keycodes|-Dcommand to get a list of all supported codes.
Example:
type "{clr}{wht}HELLO, WORLD!{lblu}{cr}"
prg_load - Load (and Run) a PRG File
Usage:
prg_load [--run] [--jump] <prg_file>
prg_filegives the name of the PRG file you want to DMA load- add the
--run|-rswitch to automaticallyRUNthe PRG after loading - similar
--jump|-jjumps to the load address of the PRG file
reu_load - Load Data File into REU
Usage:
reu_load [--addr <addr>] [--offset <num>] [--size <num>] <reu_file>
reu_filegives the file name to be uploaded into the REU--addr|-a <addr>defines the loading address.--offset|-o <num>sets an optional offset in the file. By default the whole file starting at the first byte will be uploaded. With this command you can skip bytes for the upload.--size|-s <num>limits the transfer. This allows you to reduce the uploaded block. By default the whole file is transferred.
Note: You can specify any value in the tool either in decimal (e.g. 49152)
or in hex (e.g. 0xc000)
disk_load - Load/Mount Disk Images
Usage:
disk_load [--run|-r] <disk_file>
disk_fileis a D64 disk image to be uploaded and mounted- The optional
--run|-rallows to automatically run the first file in the image.
crt_load - Load/Enable CRT Images
Usage:
crt_load <crt_file>
- Uploads the
crt_fileas current cartridge image and activates it.
kernal_load - Load/Enable Kernal Image
Usage:
kernel_load <kernal_file>
- Upload the
kernal_fileas the new kernal ROM.
data_write - Write data into RAM
Usage:
data_write [--addr <addr>] [--offset <num>] [--size <num>] <data_file>
data_filegives the file name to be uploaded into C64 RAM--addr|-a <addr>defines the loading address. You can specify the value in decimal (e.g.49152) or in hex (e.g.0xc000)--offset|-o <num>sets an optional offset in the file. By default the whole file starting at the first byte will be uploaded. With this command you can skip bytes for the upload.--size|-s <num>limits the transfer. This allows you to reduce the uploaded block. By default the whole file is transferred.
poke and pokew - Write values into C64 Memory
Usage:
poke <addr> <value>
pokew <addr> <value>
- poke a byte or a word
valueinto memory at addressaddr
stream_on - Enable VIC/Audio/Debug Streaming (U64 only)
Usage:
stream_on [--duration <num>] [--addr|-a <host_addr>] <stream_name>
- Valid stream names are
vic,audio, ordebug. - The optional
--duration|-d <num>allows to set the transfer duration. By default the value is set to 0 meaning infinite duration. - The optional
--addr|-a <host_addrgives the host address where the stream will be sent to. Typically a multicast address or your own host address.
stream_off - Disable VIC/Audio/Debug Streaming (U64 only)
Usage:
stream_off <stream_name>
- Valid stream names are
vic,audio, ordebug.
reset - Reset C64
Usage:
reset
poweroff - Power Off C64 (U64 only)
Usage:
poweroff
EOF
Metadata
Release files for u64cmd 0.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| u64cmd-0.9.1.tar.gz | 10.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| u64cmd-0.9.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.7 kB
Release files / u64cmd-0.9.1.tar.gz
| Download URL | u64cmd-0.9.1.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
767185f4b283dc673e40965b84fc83b97b0d29d06bbeb8eabf733a7e24b37cf7
|
|
BLAKE2b-256 checksum How to use checksums |
3a9d2083e7347bcce364067243b0102242763830d5ab104ad6504fe9bc48dbc4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.1
|
Release files / u64cmd-0.9.1-py3-none-any.whl
| Download URL | u64cmd-0.9.1-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c7cd5166f4f8cd5fa5a2c1d833ffeb71680a9a20b6a3bc59f3220ad0763f31d9
|
|
BLAKE2b-256 checksum How to use checksums |
c902e44a24505efc215de74bb5317a75f6558c6155f69ac83d08f6477556b13a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.1
|