Hacker News new | ask | show | jobs
by evandeaubl 4495 days ago
I'm probably equally rusty, but I believe ",8,1" loaded programs written in machine language, and ",8" was for BASIC programs (at least that's what I recall doing). So it looks like the port was written in BASIC.
3 comments

Looks like you might be right...

,0 The program will be loaded to the start of BASIC memory (2049/$0801)

,1 The program will be loaded absolute, i.e. to its stored location defined by the first two bytes in the binary file. Needed for machine language programs.

http://www.c64-wiki.com/index.php/LOAD

With the ,1 you could do fancy stuff like loading your program and executing it with one command. No need for another run command.
You are correct. Actually any non-zero value after the ,8 caused the load to be relocatable. Kind of a cool feature.
Just because it doesn't have the ,1 doesn't mean it's written in BASIC; it could still be written in machine language with a BASIC stub that executes the actual code (which is loaded into the BASIC memory area but isn't necessarily BASIC) when you type RUN.
This appears to be the case, as I do not believe it would be possible for the game to run with this performance level written in BASIC.
The first argument, ",8" caused the load to come from the attached disk drive, rather than the default cassette interface. The second argument, as explained by others, was to load binary files into their defined locations.

So you could also load binary programs from cassette with a LOAD "*",1,1