aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan C <ianc@noddybox.co.uk>2024-04-11 21:34:12 +0100
committerIan C <ianc@noddybox.co.uk>2024-04-11 21:34:12 +0100
commite12820746e064f366f8d10488941fdaee0f40e12 (patch)
tree43c37310f39c783493011de4caa14e6e45aca178
parent5263696a44cc4f2c23e53dd68af0c66efd1fd896 (diff)
Turns out you do need the BASIC stub in a PRG. Updated docs and headers.
-rw-r--r--doc/casm.html23
-rw-r--r--src/example/vic20.asm6
-rw-r--r--src/prgout.c2
3 files changed, 23 insertions, 8 deletions
diff --git a/doc/casm.html b/doc/casm.html
index 89a2fe0..aba9611 100644
--- a/doc/casm.html
+++ b/doc/casm.html
@@ -134,7 +134,7 @@ h2
<div class="legalise">
<p><b>casm</b> is a simple, portable multi-pass assembler</p>
-<p>Copyright (C) 2003-2015 Ian Cowburn</p>
+<p>Copyright (C) 2003-2024 Ian Cowburn</p>
<p>This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1027,7 +1027,7 @@ An Amstrad CPC CDT file.
<a href="#prgout">prg</a>
</td>
<td class="def">
-A Commodore 64 PRG file.
+A Commodore 64 or VIC-20 PRG file.
</td></tr>
<tr><td class="cmd">
@@ -1554,7 +1554,7 @@ code.
</table>
-<h3 id="prgout">C64 PRG Output Format</h3>
+<h3 id="prgout">C64/VIC-20 PRG Output Format</h3>
<p>
Generates a PRG file for an emulator or real hardware.
</p>
@@ -1567,18 +1567,18 @@ have been used, in which case then each entry in the tape file will use the
<p>All banks will have a small BASIC program inserted as part of
the generated file. For this reason the bank should start near the BASIC
-area (0x820 should be a safe place to start) unless you have a great
+area (0x820 should be a safe place to start for the C64) unless you have a great
desire for a PRG full of zero bytes. This BASIC will simply hold a SYS command
to start the machine code, e.g.
</p>
<pre class="codeblock">
-10 SYS 2080
+10 SYS2080
</pre>
-<h4>C64 PRG Output Format options</h4>
+<h4>C64/VIC-20 PRG Output Format options</h4>
-<p>The C64 PRG output driver supports the following settings that can be
+<p>The PRG output driver supports the following settings that can be
set via an <b>option</b> command.
</p>
@@ -1595,6 +1595,15 @@ The start address for the generated BASIC loader. If left undefined defaults
to the start of written memory in the bank.
</td></tr>
+<tr><td class="cmd">
+option prg-system, &lt;c64|vic20|vic20+8k&gt;
+</td>
+<td class="def">
+The system to generate the PRG file for, either a Commodore 64 (<b>c64</b>),
+VIC-20 either unexpanded or with 3K expansion (<b>vic20</b>) or a VIC-20 with
+an 8K or 16K expansion (<b>vic20+8k</b>).
+</td></tr>
+
</table>
diff --git a/src/example/vic20.asm b/src/example/vic20.asm
index 8bb222d..2da53a2 100644
--- a/src/example/vic20.asm
+++ b/src/example/vic20.asm
@@ -18,6 +18,12 @@ main:
loop:
sta 36879
adc #1
+ pha
+ jsr $ffe4
+ beq nokey
+ rts
+nokey:
+ pla
jmp loop
start:
diff --git a/src/prgout.c b/src/prgout.c
index da14cae..39b70e1 100644
--- a/src/prgout.c
+++ b/src/prgout.c
@@ -19,7 +19,7 @@
-------------------------------------------------------------------------
- Commodore T64 tape output handler.
+ Commodore PRG output handler.
*/
#include <stdlib.h>