A command line tool to remote control your Ultimate 64 or Ultimate II+ device.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file u64cmd-0.9.1.tar.gz.
File metadata
- Download URL: u64cmd-0.9.1.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
767185f4b283dc673e40965b84fc83b97b0d29d06bbeb8eabf733a7e24b37cf7
|
|
| MD5 |
6b87df32b50bddad9a4ad74e0f15e3b9
|
|
| BLAKE2b-256 |
3a9d2083e7347bcce364067243b0102242763830d5ab104ad6504fe9bc48dbc4
|
File details
Details for the file u64cmd-0.9.1-py3-none-any.whl.
File metadata
- Download URL: u64cmd-0.9.1-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7cd5166f4f8cd5fa5a2c1d833ffeb71680a9a20b6a3bc59f3220ad0763f31d9
|
|
| MD5 |
5301db987475821adf6526048e7d6859
|
|
| BLAKE2b-256 |
c902e44a24505efc215de74bb5317a75f6558c6155f69ac83d08f6477556b13a
|