User Tools

Site Tools


base:using_a_running_vice_session_for_development

This is an old revision of the document!


Using a running VICE session for development

Introduction

Sometimes the assemble-run-debug cycle gets a little slow due to the start-up time of VICE. Luckily VICE has a remote monitor feature which can be (ab)used to speed up this process.

This process basically comes down to setting up a proper VICE session once with VICE listening on a specific port for monitor commands and then using this port to send commands from your shell, Makefile or IDE to load your code, your labels/breakpoints, attach/detach disks and run the program. All without rebooting VICE.

This article attempts to explain that process. For now, only for *nix systems.

The basics

Requirements

A few tools are needed to get this working:

  • VICE, preferably a current SVN build, I used 2.4.27 and onwards during my adventures
  • netcat for sending commands to the running VICE session
  • telnet for entering the remote monitor in interactive mode
  • make for making things easier

Obviously we need an assembler, one which can output VICE labels if you want to use that feature. I personally use 64tass (again, build a current version).

And of course a decent editor, one which can at least syntax highlight Makefile's and whatever assembler you use.

Setting up VICE

Getting VICE to act as a 'server' isn't hard:

x64 -remotemonitor

This will tell VICE to listen on port 6510 for connections. Now we can use netcat or telnet to sends commands:

compyx@aspire-7740 ~ $ telnet localhost 6510
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
reset 0
(C:$e5cf) ^]quit 

telnet> quit
Connection closed.

We just told VICE to perform a soft reset. By using telnet we started an interactive session with the monitor, which halted the emulation, we can also send commands while the emulation keeps going, using netcat:

echo 'reset 0' | netcat localhost 6510
base/using_a_running_vice_session_for_development.1467049778.txt.gz · Last modified: 2016-06-27 19:49 by compyx