| |
Trifox Account closed
Registered: Mar 2006 Posts: 108 |
how do i load and run a program from another?
...have made a reader programm for my upcoming 1k game, now i want this reader to load the game and start it ! |
|
... 4 posts hidden. Click here to view all posts.... |
| |
Trifox Account closed
Registered: Mar 2006 Posts: 108 |
aha, i have an file not found error ... ;)
how do i declare the filename ?
a)"spiel.prg"
b) "spiel"
or
c) "SPIEL"
or
d) "SPIEL.PRG"
the acme compiler knows the !pet statement, this should work i think |
| |
Trifox Account closed
Registered: Mar 2006 Posts: 108 |
help, it simply does not work, the lamp is blinking and 18 is standing there ... ;(((
|
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
the extension doesnt belongs to the filename string on c64, the type of the file (prg/seq/etc) is stored in the directory structure seperately.
try print asc("s") and the rest of the characters in c64 basic to find out the petscii codes, compare that to what acme compiled.
btw maybe I led you to a wrong path, blinking led singals any error, but if the track changes to 18.0 that means the drive understood the command, and is scanning the directory for the file, so it can find out the starting track/sector.
try to google for load with c64 kernal, maybe the example by hannenz has some bugs. |
| |
tlr
Registered: Sep 2003 Posts: 1790 |
Quote: help, it simply does not work, the lamp is blinking and 18 is standing there ... ;(((
It sounds like you are running in vice with a d64-image, but the file is not actually on that image. Maybe you are auto starting from a .prg but have true drive emulation forced on?
Anyway, if you want it to work on a real c64 you'd better stick the files onto a d64 and run everything through the drive emulation. |
| |
Trifox Account closed
Registered: Mar 2006 Posts: 108 |
@all thx for helping
but i actually put it all on to a d64 image...:( |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
test your code with having ONLY the instructions needed to call the kernal load, and put an rts to the end. This makes sure you dont destroy the OS, and the rts will return you to the basic prompt.
(try to avoid using the common cross assembling method: prepacked code, the depacker might kill the OS, you may start your code with a SYS [decimalnumber] from the basic prompt)
then when u're back to the prompt enter this:
OPEN 15,8,15:INPUT #15,EN,EM$,ET,ES:PRINT EN,EM$,ET,ES:CLOSE
it will read and print the 1541 error channel for you, so you will get an exact description on what went wrong.
(en:error number, em$: error message, et: track, es: sector)
(edit: if you do some cruel thing under the memory area $400, you might destroy OS variables thats needed by kernal load to work correctly) |
| |
TNT Account closed
Registered: Oct 2004 Posts: 189 |
INPUT# doesn't work in direct mode, but you can POKE58,254 before it to work around that. |
| |
hannenz Account closed
Registered: Nov 2002 Posts: 24 |
i tried it and THIS must(!) work: (it works for me in vice with a d64 image attached containig a file called "game", compiling with ACME):
!to "c:/test.prg"
!ct pet
*=$1000
lda #1
ldx #8
ldy #0
jsr $ffba
lda #fend-filename
ldx #<filename
ldy #>filename
jsr $ffbd
lda #0
jsr $ffd5
rts
filename !tx "game"
fend
|
| |
Wyndex Account closed
Registered: Apr 2006 Posts: 1 |
Hi guys,
If you're using 0 as the secondary address/command (ldy #00 before SETLFS), you need to specify the load address in XY before the call to LOAD:
LDA #08 ;File no.
LDX $BA ;Current device number
LDY #00 ;Secondary address
JSR SETLFS
LDA #0
LDX LOADADDR
LDY LOADADDR+1
JSR LOAD
If you want to use the address stored in the file, use LDY #1 (like load ,x,1).
-Wyn- |
| |
El Topo
Registered: Jun 2006 Posts: 43 |
Ok, a related question. I've written a program that loads a couple of SEQ-files to memory. I get it to work when running it from TASM (compile+execute option) but when I do a sys to my program at the basic prompt I get a file not found flashing.
Filenames are stored like this: label .text "filename,s,r"
Correct?
|
Previous - 1 | 2 - Next |