Page 1 of 1

Austro-Compiler on VICE

Posted: Wed Aug 05, 2009 5:01 am
by jalavera
Hi!!

This is my first post so be patient with me...
I want to use Austro-Comp on VICE Emulator. For this poupose I have an old CBM BASIC program attached to drive #8 and 'Austro-Compiler' running
I select my BASIC program on the disk then the compiler after a few seconds of compilling shows me '0 OK'
I'm supposing that all process went ok but my question is: 'How can I save and after reload my compiled program?' Must I have to save to disk, tape or whatelse, how?
Many thanks in advance
Those VIC20 times were fantastic, now, with VICE and forums like this we can remember such as we were in early 80s... :)

Posted: Wed Aug 05, 2009 5:43 am
by Diddl
Normally Austrocomp doesn't need to save compiled program. It compiles a BASIC program and creates compiled program on disk.

Is this disk (the d64 image) write protected?

Posted: Wed Aug 05, 2009 5:44 am
by Boray
You will find the compiled program on the disk. I think i'ts called "c/name.prg" or something like that. If it doesn't work, then try to turn on "true drive emulation".

Posted: Wed Aug 05, 2009 8:38 am
by jalavera
Thanks!

Austrocomp saves onto d64 diskimage with "C/progname" with no problems!

I see that Austrocomp compiled programs needs at least an 8Kb expansion. Is there any BASIC compiler which allows to use compiled programs with non-expanded VIC?

Is there any software (in VIC or PC) to rename these new compiled programs in the disk or disk image. For instance, C/MYPROG to somewhat else in the same disk (in VICE) or image (external PC software)?

What's the CBM BASIC command to report the content of a disk (such as DIR in MSDOS)?

Is there any software (in VIC or PC) to convert those compiled programs from the disk to PRG or TAP files?

Thanks again!!

Posted: Wed Aug 05, 2009 9:10 am
by Boray
jalavera wrote: Is there any software (in VIC or PC) to rename these new compiled programs in the disk or disk image. For instance, C/MYPROG to somewhat else in the same disk (in VICE) or image (external PC software)?
OPEN 1,8,15,"R:New_Name=Old_Name":CLOSE 1
jalavera wrote: What's the CBM BASIC command to report the content of a disk (such as DIR in MSDOS)?
LOAD"$",8
LIST

(Replaces the program in memory with a file list)


http://www.c64-wiki.com/index.php/VC-1541

http://user.tninet.se/~pug510w/datormuseum/vicmenu.html

Posted: Wed Aug 05, 2009 9:32 am
by carlsson
jalavera wrote:Is there any BASIC compiler which allows to use compiled programs with non-expanded VIC?
There is something known as Vic Compiler. It has been mentioned here before, but I think it is hard to use.

I think the +8K requirement for Austrocomp is due to it includes a runtime library rather than calling the Basic ROM routines directly. Certainly it gets faster that way, otherwise only the command parser would be the one which is compiled.

I read you have old Basic programs you want to compile. If you make new programs, I would recommend you to try C and use either of the two cross compilers: cc65 or Quetzacoatl. Those can generate executables for unexpanded VIC-20, although at least cc65 has quite a big runtime library as well so you barely get to fit HELLO WORLD into 3.5K.

Posted: Wed Aug 05, 2009 10:14 am
by jalavera
Thanks!

...and what about on how to save these compiled files to tape or to tap/prg file?

Posted: Wed Aug 05, 2009 10:31 am
by Mike

Posted: Thu Aug 06, 2009 5:24 am
by jalavera
Thanks. Now I see that "SAVE" command also saves binary memory content, not only BASIC program.

Posted: Thu Aug 06, 2009 5:32 am
by Mike
jalavera wrote:Thanks. Now I see that "SAVE" command also saves binary memory content, not only BASIC program.
Not quite correct. Austro Comp just happens to provide the compiled program in a way that it can be loaded, and saved like a normal BASIC program.

When you do a LIST, you'll see a line listed such as:

Code: Select all

XXXX SYS 41XX
which, when RUN, will start the ML program located immediately behind that line in memory.

The pointer to the end of the program is manipulated for this, so that not only that line is saved, but also the trailing ML code section.