| |
Compyx
Registered: Jan 2005 Posts: 631 |
VICE: attach disk image and run .prg file from OS filesystem
With VICE (2.4.27 on Linux), I'm trying to figure out how to attach a D64 image to drive 8 (with TDE) while running a .prg file from my OS file system.
I've tried a wide variety of command line options, but I either get a message about extra arguments on the command line, or VICE tries to load the .prg file from the attached disk image, which obviously fails as well.
Does anyone know how to do this? I'm trying to keep my assemble-run-debug cycle as fast as possible.
/Compyx |
|
... 56 posts hidden. Click here to view all posts.... |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
Right, put my findings so far into an article on codebase64:
http://codebase64.org/doku.php?id=base:using_a_running_vice_ses..
Unfinished as of now. Any comments and (constructive) criticism are welcome. Especially the Makefile stuff can do with some optimizing, but I didn't want to alienate readers with too much variable substitutions and other make features, it should be readable even for people just above 'lamer' level. |
| |
Burglar
Registered: Dec 2004 Posts: 1101 |
nice article :) I didnt know about xxd yet, nice!
# x64 binary
X64 = /usr/local/bin/x64
# Assemble program and output VICE labels file
demo.prg: demo.s
$(X64) -a -C -o demo.prg demo.s --vice-labels -l labels.txt
uhh, u compile with vice? :P |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
Haha, good catch. Some parts of the Makefile snippets I copied from various projects, some I just typed in when writing the article, that one is obviously the latter case.
Should be $(ASM) of course, I'll change that. The article isn't finished yet, the Makefile bits need some cleaning and testing, as you've discovered ;) |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
I also noticed that setting the BASIC begin/end pointers isn't needed when loading a file. VICE does that, the problem was my 'reset 0' command followed by 'l demo.prg': Even with a patched kernal the reset still runs while the program is loaded, resulting in the reset doing a 'NEW' of sorts after the program has already loaded.
Using `netcat -q 1` to tell netcat to wait one second after EOF from VICE makes the load command work properly.
Wonderful feature, that remote monitor, you just have to be very careful. Good fun :) |
| |
Perplex
Registered: Feb 2009 Posts: 255 |
Nice writeup! This is very close to my own workflow.
I have never had a need of adding a delay between doing a reset and loading a new prg into memory. How often does not having a delay cause problems for you? Strange that I haven't seen it if it happens quite often, since I have used it with prg files large and small hundreds of times without any issues.
If you do need a delay, reset with the patched kernal is so fast it would probably be sufficient to do a "sleep 0.1" after (the -q option to nc doesn't seem to allow decimal numbers.) |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
Doing a reset and loading a program doesn't cause any problems as long as you don't load and run a BASIC program, or any program that doesn't rely on proper BASIC intialization.
The problem starts with code that relies on BASIC pointers being correct. Even with a patched KERNAL, issuing a 'reset' and a 'load' fails:
When I issue a 'reset 0', the machine calls the reset at $fce2.
Immediately I load my 'foo.prg' program.
Reset is not finished yet, so when it finishes at some point, it invalidates any BASIC pointers you may have set. |
| |
Perplex
Registered: Feb 2009 Posts: 255 |
I see. Does it still need to wait anywhere near as long as a second, though? Better safe than sorry I guess, but still. :) |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
Well. 1 second is the smallest unit telnet or netcat can handle, which works.
Smaller delays might work, but my experience tells me you're just going to get into more trouble. |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
thanks for the kernal patch tip, works like a charm. |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
Quote: thanks for the kernal patch tip, works like a charm.
Thank iAN CooG for that, he came up with it. And it does save a lot of time, that little patch ;) |
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 - Next |