Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > VICE: attach disk image and run .prg file from OS filesystem
2016-05-30 20:20
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....
 
2016-06-27 16:35
Compyx

Registered: Jan 2005
Posts: 631
After playing around with the remote monitor some more, I noticed that by ignoring the BASIC interpreter, any code I run that doesn't set up IRQ's results in the code executing with a nice blinking cursor on screen (the BASIC interpreter's IRQ is still in edit mode).

This of course has to do with skipping the interpreter, so I now inject a BASIC program with the remote monitor and set the proper pointers in $2b/$2c (can probably be omitted) and $2d/$2e. I can now LIST the program and RUN it in VICE. But I don't seem to be able to find the correct location in BASIC/KERNAL to execute a proper RUN from the monitor.

So my question is, how do I properly hook into the BASIC interpreter so I can RUN a program as if I typed 'RUN' and, after executing my program, get the interpreter back in edit mode?
2016-06-27 16:48
Burglar

Registered: Dec 2004
Posts: 1031
jsr $a659
jmp $a7ae
2016-06-27 16:55
Frantic

Registered: Mar 2003
Posts: 1627
Compyx: Yes, please write something about it for Codebase! Should go into the cross development part of the wiki I suppose:

https://codebase64.org/doku.php?id=base:crossdev
2016-06-27 17:01
Compyx

Registered: Jan 2005
Posts: 631
Nope, I get a nice READY prompt, but my program isn't executed, nor is it there any more when I do a LIST.

You might be onto something though, I don't get stuff like ?undef when I tried jumping straight into the handlers for GOTO, GOSUB and RUN. Probably need to set a few more pointers.
2016-06-27 17:09
Compyx

Registered: Jan 2005
Posts: 631
Quote: Compyx: Yes, please write something about it for Codebase! Should go into the cross development part of the wiki I suppose:

https://codebase64.org/doku.php?id=base:crossdev


I will, already working on it mentally ;)
2016-06-27 17:20
Burglar

Registered: Dec 2004
Posts: 1031
well I dunno mate, I was just guessing ;)

but why all the basic-fuckage?
2016-06-27 18:16
Compyx

Registered: Jan 2005
Posts: 631
I enjoy it :)

Well, not really. Basically (pun intended) I need VICE to act as if it was doing an auto-start, without actually doing an auto-start since I use a running VICE session, if that makes any sense.

My VICE session works fine with 'demo' code: code that sets up IRQ's and never returns. The problem is code that returns to the interpreter and doesn't alter IRQ's. Since I inject code into VICE and use a 'g $xxxx', BASIC has no idea I just executed a program and remains in interactive mode. With a bloody blinking cursor as result, even for 'jmp *'.
2016-06-27 18:30
chatGPZ

Registered: Dec 2001
Posts: 11119
if you want to behave it like autostart, then you HAVE to issue a reset, and then load/run the program (eg by putting the respective commands into the keyboard buffer). anything else will behave subtle different (unless you put massive effort into putting the machine into the same state).
2016-06-27 18:53
Compyx

Registered: Jan 2005
Posts: 631
Using the keyboard buffer might just work! Last time I did that was in Fisher-Price OS, and since BASIC V2 is also made by that same company, who knows? ;)
2016-06-28 16:31
Compyx

Registered: Jan 2005
Posts: 631
Amazingly, filling the keyboard buffer with 'RUN\r' and setting its length to $04 works.

My little BASIC program executes and returns properly.

Thanks Groepaz!
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
heavymett
theK/ATL
4gentE/ΤRIΛD
E$G/hOKUtO fOrcE
McMeatLoaf
LDX#40
Avalanche/Atlantis
Krill/Plush
Guests online: 126
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Wafer Demo  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Nostalgia  (9.3)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.053 sec.