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|-h
gives thehost_addr
of the Ultime64/II+ (required). Use environment variableU64CMD_HOST
to set the value permanently.- With
--port|-p
you can specify the port number. The default is64
. Use environment variableU64CMD_PORT
to set the value permanently.
More Main Options
- The option
--version
shows the release version of the tool. - The option
--help
gives you a command overview. - Use
... <command> --help
to get detailed help on a command - The option
--dump-keycodes|-D
shows a list of known petcat control commands for typing message (seetype
command)
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|-D
command 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_file
gives the name of the PRG file you want to DMA load- add the
--run|-r
switch to automaticallyRUN
the PRG after loading - similar
--jump|-j
jumps 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_file
gives 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_file
is a D64 disk image to be uploaded and mounted- The optional
--run|-r
allows to automatically run the first file in the image.
crt_load
- Load/Enable CRT Images
Usage:
crt_load <crt_file>
- Uploads the
crt_file
as current cartridge image and activates it.
kernal_load
- Load/Enable Kernal Image
Usage:
kernel_load <kernal_file>
- Upload the
kernal_file
as the new kernal ROM.
data_write
- Write data into RAM
Usage:
data_write [--addr <addr>] [--offset <num>] [--size <num>] <data_file>
data_file
gives 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
value
into 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_addr
gives 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
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 |