Re: [cc65] Fwd: NESICIDE + VICE

From: Spiro Trikaliotis <>
Date: 2012-04-13 21:03:44
Hello Gábor,

* On Fri, Apr 13, 2012 at 08:21:36PM +0200 Gábor Lénárt wrote:
> The binary memory transfer, you wrote about :) And in general: it seems
> monitor features of VICE evolving quickly recently, but hardly documents
> exist on it (at least AFAIK).

Here is the documentation (at least, all that exists):

21:55 <@s3cal> cpow: Ready for the protocol description? ;)
21:55 <@s3cal> The binary remote monitor commands are injected into the "normal" commands.
21:55 <@s3cal> The remote monitor detects a binary command because it starts with ASCII STX (0x02)
21:56 <@s3cal> After this, there is one byte telling the length of the command. The next byte describes the command. Currently, only 0x01 is implemented which is "memdump".
21:56 <@s3cal> Note that the command length byte (the one after STX) does *not* count the STX, the command length nor the command byte.
21:57 <@s3cal> For the memdump command, the next bytes are as follows:
21:57 <@s3cal> 1. start address low
21:57 <@s3cal> 2. start address high
21:57 <@s3cal> 3. end address low
21:57 <@s3cal> 4. end address high
21:57 <@s3cal> 5. memspace
21:57 <@s3cal> That's it.
21:57 <@s3cal> The memspace describes which part of the computer you want to read:
21:57 <@s3cal> 0 --> the computer (C64), 1 --> drive 8, 2 --> drive 9, 3 --> drive 10, 4 --> drive 11
21:58 <@s3cal> So, for a memdump of 0xa0fe to 0xa123, you have to issue the bytes (in this order):
21:59 < cpow> ok thanks
21:59 <@s3cal> 0x02 (STX), 0x05 (command length), 0x01 (command: memdump), 0xfe (SA low), 0xa0 (SA high), 0x23 (EA low), 0xa1 (EA high), 0x00 (computer memspace)
21:59 <@s3cal> The answer looks as follows:
21:59 < cpow> is there a termination character?
21:59 <@s3cal> No, no termination character. The command length acts as synchronisation point.,
22:00 <@s3cal> Ok, comming to the answer:
22:00 <@s3cal> byte 0: STX (0x02)
22:00 <@s3cal> byte 1: answer length low
22:00 <@s3cal> byte 2: answer length (bits 8-15)
22:00 <@s3cal> byte 3: answer length (bits 16-23)
22:00 <@s3cal> byte 4: answer length (bits 24-31, that is, high)
22:01 <@s3cal> byte 5: error code
22:01 <@s3cal> byte 6 - (answer length+6): the binary answer
22:01 <@s3cal> Error codes are currently:
22:02 <@s3cal> 0x00: ok, everything worked
22:02 <@s3cal> 0x80: command length is not long enough for this specific command
22:02 <@s3cal> 0x81: an invalid parameter occurred
22:02 <@s3cal> If an error stats but "ok" occurs, then VICE will output more details for the reason into its log.
22:05 <@s3cal> Ok. Tell me about problems. It has not been tested extensively yet.
22:06 <@s3cal> (I am not completely sure if everything works when switching between binary and text commands, for example. There might be some errors).

There is nothing more currently. The code is in since 2012-04-01,

Note, however, that after I wrote this, I left the VICE team. So, no
further updates from me.

In fact, I expect the code to be removed quite soon. It seems people did
not like it, because of its prototype state. Hey, I came up with a quick
and dirty solution to solve a problem and help Christopher - that's all.


Spiro R. Trikaliotis
To unsubscribe from the list send mail to with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Fri Apr 13 21:04:17 2012

This archive was generated by hypermail 2.1.8 : 2012-04-13 21:04:20 CEST