Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Simon's BASIC cartridge issue/c64

451 views
Skip to first unread message

Harry Potter

unread,
Dec 3, 2013, 10:02:19 AM12/3/13
to
I am continuing work on GenCart64 and ran into a problem: writing values to $DE00 doesn't seem to enable or disable the ROM at $A000-$BFFF on a Simon's Basic cartridge type. I checked my code to my documentation and didn't see any problems. I am coding using cc65 and testing the code on WinVice 2.2. Is this a bug in WinVice 2.2 or in my documentation?

BTW, I'm sorry for not specifing the values written, but I don't have access to the docs at this second.

Dombo

unread,
Dec 3, 2013, 5:43:37 PM12/3/13
to
Op 03-Dec-13 16:02, Harry Potter schreef:
> I am continuing work on GenCart64 and ran into a problem: writing
> values to $DE00 doesn't seem to enable or disable the ROM at
> $A000-$BFFF on a Simon's Basic cartridge type. I checked my code to
> my documentation and didn't see any problems. I am coding using cc65
> and testing the code on WinVice 2.2. Is this a bug in WinVice 2.2 or
> in my documentation?

The Simons Basic cartridge is a simple ROM cartridge occupying memory
addresses $8000-$9FFF and can't be disabled.

Harry Potter

unread,
Dec 4, 2013, 8:39:44 AM12/4/13
to
On Tuesday, December 3, 2013 5:43:37 PM UTC-5, Dombo wrote:
> The Simons Basic cartridge is a simple ROM cartridge occupying memory addresses $8000-$9FFF and can't be disabled.

Thank you. There must be an error in my documentation. :(

J.B. Wood

unread,
Dec 4, 2013, 9:17:20 AM12/4/13
to
Hello. If you want to disable Simon's while it is plugged into the
C-64's expansion/game port and running, you can type on one line SYS
58451:SYS 65126

This will return you to standard C-64 BASIC but keep in mind the cart is
still occupying the $8000-$9FFF address space as Dombo notes and a SYS
64738 will again start Simon's.

Now if you have a Cardco expansion board or equivalent you can follow up
the last two SYS commands with POKE 32772,0 then switch off the cart.
You can continue working in standard C-64 BASIC with your previous BASIC
program still intact (although not executable if it contains Simon's
BASIC commands). Sincerely,

--

--
J. B. Wood e-mail: arl_1...@hotmail.com

Harry Potter

unread,
Dec 4, 2013, 10:28:02 AM12/4/13
to
On Wednesday, December 4, 2013 9:17:20 AM UTC-5, J.B. Wood wrote:
> Hello. If you want to disable Simon's while it is plugged into the
> C-64's expansion/game port and running, you can type on one line SYS
> 58451:SYS 65126
>
> This will return you to standard C-64 BASIC but keep in mind the cart is
> still occupying the $8000-$9FFF address space as Dombo notes and a SYS
> 64738 will again start Simon's.
>
I am working on a library for a cc65 C/assembler program/configuration called GenCart64 to allow cc65 users to create cartridge-based software. I was thinking of allowing the programmer to disable the $A000-$BFFF and access the underlying RAM. If it banks in the BASIC ROM instead and cc65 doesn't use BASIC, I'm probably better off using a 16k generic cartridge instead. Am I wrong?

BTW, I can convert dec to hex, but what do the aforementioned kernel routines do?

> Now if you have a Cardco expansion board or equivalent you can follow up
> the last two SYS commands with POKE 32772,0 then switch off the cart.
> You can continue working in standard C-64 BASIC with your previous BASIC
> program still intact (although not executable if it contains Simon's
> BASIC commands). Sincerely,
>
I don't know what a Cardco cartridge is, but it seems that you think I am handling an *actual* Simon's cartridge. I'm not. I'm merely creating support for a Simon's-*style* cartridge. In other words, it could be something totally different than a BASIC extension, although it would be cool to add a 16k BASIC extension to the 8k BASIC by switching $A000-$BFFF between Simon's and V2.

BTW, you piqued my interest: where on the internet can I find Simon's BASIC and its documentation?

BTW, is there a way to re-enable the Simon's BASIC cart at $A000-$BFFF after I disable it?

Dombo

unread,
Dec 4, 2013, 3:25:14 PM12/4/13
to
Op 04-Dec-13 16:28, Harry Potter schreef:
> On Wednesday, December 4, 2013 9:17:20 AM UTC-5, J.B. Wood wrote:
>> Hello. If you want to disable Simon's while it is plugged into the
>> C-64's expansion/game port and running, you can type on one line
>> SYS 58451:SYS 65126
>>
>> This will return you to standard C-64 BASIC but keep in mind the
>> cart is still occupying the $8000-$9FFF address space as Dombo
>> notes and a SYS 64738 will again start Simon's.
>>
> I am working on a library for a cc65 C/assembler
> program/configuration called GenCart64 to allow cc65 users to create
> cartridge-based software. I was thinking of allowing the programmer
> to disable the $A000-$BFFF and access the underlying RAM. If it
> banks in the BASIC ROM instead and cc65 doesn't use BASIC, I'm
> probably better off using a 16k generic cartridge instead. Am I
> wrong?
>
> BTW, I can convert dec to hex, but what do the aforementioned kernel
> routines do?
>
>> Now if you have a Cardco expansion board or equivalent you can
>> follow up the last two SYS commands with POKE 32772,0 then switch
>> off the cart. You can continue working in standard C-64 BASIC with
>> your previous BASIC program still intact (although not executable
>> if it contains Simon's BASIC commands). Sincerely,
>>
> I don't know what a Cardco cartridge is, but it seems that you think
> I am handling an *actual* Simon's cartridge. I'm not. I'm merely
> creating support for a Simon's-*style* cartridge.

There is nothing special about a Simon's BASIC cartridge, it is just a
regular 8K ROM cartridge at $8000-$9FFF with the CBM signature so it
hooks into the reset procedure. This is as simple as a cartridge for the
C64 can get.

> In other words, it could be something totally different than a BASIC
> extension, although it would be cool to add a 16k BASIC extension to
> the 8k BASIC by switching $A000-$BFFF between Simon's and V2.

Simon's BASIC extends the regular BASIC interpreter, it does not replace
it. The regular BASIC V2 ROM at $A000-$BFFF is still needed by Simon's
BASIC.

> BTW, you piqued my interest: where on the internet can I find
> Simon's BASIC and its documentation?

http://lmgtfy.com/?q=Simon%27s+BASIC+download
http://lmgtfy.com/?q=Simon%27s+BASIC+manual

> BTW, is there a way to re-enable the Simon's BASIC cart at
> $A000-$BFFF after I disable it?

The procedure described by J.B. Wood just resets the vectors that Simons
BASIC uses to hook into the regular BASIC interpreter; at the hardware
level it is still enabled. Also you cannot change its address; it is
hardwired at $8000-$9FFF. Hardware issues aside, moving it to $A000-BFFF
is not an option. Firstly because the code of Simons BASIC is (in all
likelihood) not relocatable; i.e. it wouldn't run at any other address
because it assumes it is located at $8000-$9FFF. Secondly because uses
the regular BASIC interpreter (which it extends rather than replacing
it), it wouldn't be able to run from $A000-$BFFF because that would
imply that the regular BASIC interpreter would need to be banked out
making it impossible for the Simons BASIC code to directly call routines
of the regular BASIC interpreter. I.e. what you want cannot be done
unless you are willing to rewrite Simons BASIC.

J.B. Wood

unread,
Dec 5, 2013, 6:20:35 AM12/5/13
to
On 12/04/2013 03:25 PM, Dombo wrote:

> The procedure described by J.B. Wood just resets the vectors that Simons
> BASIC uses to hook into the regular BASIC interpreter; at the hardware
> level it is still enabled. Also you cannot change its address; it is
> hardwired at $8000-$9FFF. Hardware issues aside, moving it to $A000-BFFF
> is not an option. Firstly because the code of Simons BASIC is (in all
> likelihood) not relocatable; i.e. it wouldn't run at any other address
> because it assumes it is located at $8000-$9FFF. Secondly because uses
> the regular BASIC interpreter (which it extends rather than replacing
> it), it wouldn't be able to run from $A000-$BFFF because that would
> imply that the regular BASIC interpreter would need to be banked out
> making it impossible for the Simons BASIC code to directly call routines
> of the regular BASIC interpreter. I.e. what you want cannot be done
> unless you are willing to rewrite Simons BASIC.
>

Hello, and IIRC Simon's may contain more than 8K of ROM. I think it
does some internal bank switching when certain Simon's commands are
executed. For example the Simon's "Pause" command pulls the GAME line
low on the C-64 expansion/game port (The EXROM line is already low since
the cartridge is online.). Of course this complicates things when
attempting to emulate the Simon's cart in software.

An aside: IMHO Simon's BASIC was a kind of mish-mash assemblage of
extensions to C-64 BASIC, some with difficult-to-remember syntax. Where
I found it to shine was that it could put graphics on the monitor screen
much faster than the stock C-64 BASIC. The CBM Graphics Expander cart
was also good at this. Sincerely,




Sincerely,

Harry Potter

unread,
Dec 5, 2013, 9:17:48 AM12/5/13
to
On Thursday, December 5, 2013 6:20:35 AM UTC-5, J.B. Wood wrote:
> Hello, and IIRC Simon's may contain more than 8K of ROM. I think it
> does some internal bank switching when certain Simon's commands are
> executed. For example the Simon's "Pause" command pulls the GAME line
>
That's what my documentation says. Besides, I thought of a Simon's-format BASIC extension.

> An aside: IMHO Simon's BASIC was a kind of mish-mash assemblage of
> extensions to C-64 BASIC, some with difficult-to-remember syntax. Where
>
How about a BASIC extension to handle games graphics/sound?

> I found it to shine was that it could put graphics on the monitor screen
> much faster than the stock C-64 BASIC. The CBM Graphics Expander cart
> was also good at this. Sincerely,
>
And where can I find that? :)

BTW, Thank you for the links, Dombo.

Harry Potter

unread,
Dec 5, 2013, 9:39:30 AM12/5/13
to
On Wednesday, December 4, 2013 3:25:14 PM UTC-5, Dombo wrote:
> There is nothing special about a Simon's BASIC cartridge, it is just a
> regular 8K ROM cartridge at $8000-$9FFF with the CBM signature so it
> hooks into the reset procedure. This is as simple as a cartridge for the
> C64 can get.
>
Then why the special format? My documentation indicates a totally different format and quotes some extra functionality.

> Simon's BASIC extends the regular BASIC interpreter, it does not replace
> it. The regular BASIC V2 ROM at $A000-$BFFF is still needed by Simon's
> BASIC.
>
First, I thought that $A000-$BFFF could be either RAM or Simon's BASIC ROM. Then, after posting here, I thought it could be either Simon's or the default BASIC V2 ROM. If the latter is true, it could help with an idea I had just listed in this thread. The former can be done with a write to $01. That's what my Hidden64 cc65 extension does to gain 11k+ RAM. I didn't think of this at the time because my docs mentioned a different approach.

> http://lmgtfy.com/?q=Simon%27s+BASIC+download
> http://lmgtfy.com/?q=Simon%27s+BASIC+manual
>
Thank you for the URLs!

> The procedure described by J.B. Wood just resets the vectors that Simons
> BASIC uses to hook into the regular BASIC interpreter; at the hardware
> level it is still enabled. Also you cannot change its address; it is
>
Okay. It probably won't matter too much because I don't think either I or my audience would want to exit the cartridge totally. BTW, I wonder if a write to $01 would hide the Simon ROM.

> hardwired at $8000-$9FFF. Hardware issues aside, moving it to $A000-BFFF
> is not an option. Firstly because the code of Simons BASIC is (in all
> likelihood) not relocatable; i.e. it wouldn't run at any other address
> because it assumes it is located at $8000-$9FFF. Secondly because uses

Only relocation of read/write data would be necessary for the creation of a new Simon's format cartridge--which is what I want--and cc65, the tool I'm using
for the code, supports relocation.

> the regular BASIC interpreter (which it extends rather than replacing
> it), it wouldn't be able to run from $A000-$BFFF because that would
> imply that the regular BASIC interpreter would need to be banked out
> making it impossible for the Simons BASIC code to directly call routines
> of the regular BASIC interpreter. I.e. what you want cannot be done
> unless you are willing to rewrite Simons BASIC.

As I mentioned before, I thought in the second place that the $A000-$BFFF memory area could be either Simon's or BASIC V2.

Harry Potter

unread,
Dec 5, 2013, 10:13:46 AM12/5/13
to
BTW, what cartridge format can I use for a BASIC extension >8k? I'd prefer one or more 16k chips.

Dombo

unread,
Dec 5, 2013, 2:57:45 PM12/5/13
to
Op 05-Dec-13 12:20, J.B. Wood schreef:
> On 12/04/2013 03:25 PM, Dombo wrote:
>
>> The procedure described by J.B. Wood just resets the vectors that Simons
>> BASIC uses to hook into the regular BASIC interpreter; at the hardware
>> level it is still enabled. Also you cannot change its address; it is
>> hardwired at $8000-$9FFF. Hardware issues aside, moving it to $A000-BFFF
>> is not an option. Firstly because the code of Simons BASIC is (in all
>> likelihood) not relocatable; i.e. it wouldn't run at any other address
>> because it assumes it is located at $8000-$9FFF. Secondly because uses
>> the regular BASIC interpreter (which it extends rather than replacing
>> it), it wouldn't be able to run from $A000-$BFFF because that would
>> imply that the regular BASIC interpreter would need to be banked out
>> making it impossible for the Simons BASIC code to directly call routines
>> of the regular BASIC interpreter. I.e. what you want cannot be done
>> unless you are willing to rewrite Simons BASIC.
>
> Hello, and IIRC Simon's may contain more than 8K of ROM. I think it
> does some internal bank switching when certain Simon's commands are
> executed.

I stand corrected; I opened my Simon's BASIC cartridge, and indeed there
are two 8K ROM's, a 74LS00 (Quad 2-input NAND gates) and a 74LS74 (dual
D-flip-flop) which appears to implement some bank switching logic via
the $DE00 I/O address.

In other words I was talking out of my ass. Next time I should check the
facts rather than relying on my memory, before asserting things. My
memory is much like DRAM, it needs to be refreshed every now and then.
My apologies for any confusion I may have caused.

> For example the Simon's "Pause" command pulls the GAME line
> low on the C-64 expansion/game port (The EXROM line is already low since
> the cartridge is online.). Of course this complicates things when
> attempting to emulate the Simon's cart in software.

I remember having an illegal version of Simon's BASIC back in the day
that could be loaded from disk. I always thought it was just a simple
ROM dump as was common in the early eighties with software that was
released on cartridge. It appears that little bit more effort went in to
that hack.

> An aside: IMHO Simon's BASIC was a kind of mish-mash assemblage of
> extensions to C-64 BASIC, some with difficult-to-remember syntax.

And British English ('COLOUR') keywords...

Dombo

unread,
Dec 5, 2013, 2:59:03 PM12/5/13
to
Op 05-Dec-13 15:39, Harry Potter schreef:
> On Wednesday, December 4, 2013 3:25:14 PM UTC-5, Dombo wrote:
>> There is nothing special about a Simon's BASIC cartridge, it is just a
>> regular 8K ROM cartridge at $8000-$9FFF with the CBM signature so it
>> hooks into the reset procedure. This is as simple as a cartridge for the
>> C64 can get.
>>
> Then why the special format? My documentation indicates a totally different format and quotes some extra functionality.
> back in the day

It turns out that I was wrong, see my other message in this thread. My

Harry Potter

unread,
Dec 6, 2013, 9:08:47 AM12/6/13
to
On Thursday, December 5, 2013 2:57:45 PM UTC-5, Dombo wrote:
> I stand corrected; I opened my Simon's BASIC cartridge, and indeed there
> are two 8K ROM's, a 74LS00 (Quad 2-input NAND gates) and a 74LS74 (dual
> D-flip-flop) which appears to implement some bank switching logic via
> the $DE00 I/O address.
>
Which leaves one point: How *do* I switch in and out the $A000-$BFFF ROM via $DE00? Or, again, is there a bug with my emulator, WinVice 2.2?

> In other words I was talking out of my ass. Next time I should check the
> facts rather than relying on my memory, before asserting things. My
> memory is much like DRAM, it needs to be refreshed every now and then.
>
I admit to the same thing. :(

> My apologies for any confusion I may have caused.
>
No problem: I'm always confused. :(

> I remember having an illegal version of Simon's BASIC back in the day
> that could be loaded from disk. I always thought it was just a simple
> ROM dump as was common in the early eighties with software that was
> released on cartridge. It appears that little bit more effort went in to
> that hack.
>
I believe I have some of the same from the internet.

> And British English ('COLOUR') keywords...

I have to find that out myself, but I won't be able to try it out until next Friday or Saturday at the earliest.

Harry Potter

unread,
Dec 6, 2013, 9:25:58 AM12/6/13
to
On Thursday, December 5, 2013 2:57:45 PM UTC-5, Dombo wrote:
> I remember having an illegal version of Simon's BASIC back in the day
> that could be loaded from disk. I always thought it was just a simple
> ROM dump as was common in the early eighties with software that was
> released on cartridge. It appears that little bit more effort went in to
> that hack.
>
This wouldn't take much: the upper portion could be loaded behind the BASIC ROM into the $A000-$BFFF--writes to ROM generally write to the RAM behind the ROM, anyway--and every write to $DE00 could be replaced with a write to $01 followed by a NOP to buffer the opened space. Unfortunately, this would require a lot of work scanning the ROM.

Frank Buss

unread,
Dec 6, 2013, 10:27:21 AM12/6/13
to
This is the Simon's BASIC D64 crack:

http://tinyurl.com/pjmpgy8

The CRT file format description says more about Simon's BASIC:

http://ist.uwaterloo.ca/~schepers/formats/CRT.TXT

| SIMONS BASIC permanently uses 16 kB ($4000) bytes of cartridge memory
| from $8000-$BFFF. However, through some custom bank-switching logic the
| upper area ($A000-$BFFF) may be disabled so Simons BASIC may use it as
| additional RAM. Writing a value of $01 to address location $DE00 banks
| in ROM, $00 disables ROM and enables RAM.
|
| The CRT file contains two CHIP blocks of length $2000 each, the first
| block having a start address of $8000, the second block $A000. In the
| cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1 to
| indicate the RESET/power-up configuration of 8 kB ROM.

So I guess the Simon's BASIC programm did it the easy way in order to
have the original instructions as well: just patching some functions in
the original BASIC at $a000, so that the additional instructions are
called at $8000.

And this would make it easy to crack it: remove the functions which
provide additional RAM at $a000 and install the Simon's BASIC ROM from
$a000 in the RAM at the same address, then enable the RAM at $a000
permanently.

--
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss

Harry Potter

unread,
Dec 6, 2013, 11:13:01 AM12/6/13
to
On Friday, December 6, 2013 10:27:21 AM UTC-5, Frank Buss wrote:
> The CRT file format description says more about Simon's BASIC:
>
> http://ist.uwaterloo.ca/~schepers/formats/CRT.TXT
>
> | SIMONS BASIC permanently uses 16 kB ($4000) bytes of cartridge memory
> | from $8000-$BFFF. However, through some custom bank-switching logic the
> | upper area ($A000-$BFFF) may be disabled so Simons BASIC may use it as
> | additional RAM. Writing a value of $01 to address location $DE00 banks
> | in ROM, $00 disables ROM and enables RAM.
> |
> | The CRT file contains two CHIP blocks of length $2000 each, the first
> | block having a start address of $8000, the second block $A000. In the
> | cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1 to
> | indicate the RESET/power-up configuration of 8 kB ROM.
>
> So I guess the Simon's BASIC programm did it the easy way in order to
> have the original instructions as well: just patching some functions in
> the original BASIC at $a000, so that the additional instructions are
> called at $8000.
>
Or, the hi ROM could be disabled whenever the BASIC ROM V2 services are needed, i.e. parsing the instructions, calculating figures or reading data/variables, and re-enabled for functions that don't need BASIC, i.e. graphics or special disk commands.

> And this would make it easy to crack it: remove the functions which
> provide additional RAM at $a000 and install the Simon's BASIC ROM from
> $a000 in the RAM at the same address, then enable the RAM at $a000
> permanently.
>
I think that the cartridge switches between BASIC V2 and Simon's BASIC at $A000 often in the code for different functionality. Again, a simple write to $01 would do the task.

Harry Potter

unread,
Dec 6, 2013, 11:24:12 AM12/6/13
to
On Friday, December 6, 2013 11:13:01 AM UTC-5, Harry Potter wrote:
> Or, the hi ROM could be disabled whenever the BASIC ROM V2 services are needed, i.e. parsing the instructions, calculating figures or reading data/variables, and re-enabled for functions that don't need BASIC, i.e. graphics or special disk commands.
>
> I think that the cartridge switches between BASIC V2 and Simon's BASIC at $A000 often in the code for different functionality. Again, a simple write to $01 would do the task.

Sorry, I'm a little confused: the documentation snippet in the last post said that writing $00 to $DE00 enables RAM, but it was implied here that it banks in BASIC ROM V2 instead. I'll go with CRT.TXT, instead. I have that file, along with print-outs of different sections. It would take only a few minutes to access it. However, I'm trying to implement Simon's BASIC in my GenCart64 libraries, but the test program writes to a variable to $A000 and tries to read it after writing $00 and $01 to $DE00 and calling a Simon's ROM function, also residing at $A000, to wait for a key-press, the latter *always* works, but the former returns garbage, never the written value--the garbage may be the first two bytes of the function.

Harry Potter

unread,
Dec 17, 2013, 1:38:50 PM12/17/13
to
I'm sorry for being pushy :( , but I really want to implement a Simon's cartridge setup for GenCart64. The problem is, no matter whether I write 0 or 1 to $DE00, the Simon's BASIC ROM at $A000-$BFFF seems to *always* be visible. I am using WinVice 2.2 and am wondering if there's a bug in the emulator or in my documentation. I could probably implement Hidden64 to the library, but I don't think ROMs would need it, unless, of course, it is a large cartridge and needs large files loaded in.

Frank Buss

unread,
Dec 17, 2013, 6:06:35 PM12/17/13
to
Harry Potter wrote:
> I'm sorry for being pushy :( , but I really want to implement a
> Simon's cartridge setup for GenCart64. The problem is, no matter
> whether I write 0 or 1 to $DE00, the Simon's BASIC ROM at $A000-$BFFF
> seems to *always* be visible.

The documentation is wrong, at least the one I can find here:

http://ist.uwaterloo.ca/~schepers/formats/CRT.TXT

Is there a new version of this description somewhere?

You can find the relevant source code for Vice in this file:

http://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/c64/cart/simonsbasic.c

The comment at the beginning says:

- reading io1 switches to 8k game config (bank 0 at $8000)
- writing io1 switches to 16k game config (bank 0 at $8000, bank 1 at $a000)

And this is the implementation:

static BYTE simon_io1_read(WORD addr)
{
cart_config_changed_slotmain(0, 0, CMODE_READ);
return 0;
}

static void simon_io1_store(WORD addr, BYTE value)
{
cart_config_changed_slotmain(1, 1, CMODE_WRITE);
}

The "cart_config_changed_slotmain" function is implemented in
c64cartmem.c. The first two parameters defines which mapping is used
during phi=1 and phi=0 (for the CPU and for the VIC, looks like some
cartridges can use different memory mappings depending on if the CPU
wants to access the cartridge, or if the VIC wants to access it, which
sounds interesting). The important lines in this function are these:

export_slotmain.game = mode_phi2 & 1;
export_slotmain.exrom = ((mode_phi2 >> 1) & 1) ^ 1;

The meaning of GAME and EXROM are inverted in Vice, so on a real Simons'
BASIC cartridge the EXROM line is always 0, and if you read $de00, the
GAME line will be set to 1, switching to 8k game config. If you write to
$de00, the GAME line will be set to 0, switching to 16k game config.

You can set breakpoints in Vice for read and write access to $de00
("break load de00" and "break store de00"). Looks like there is some
clever code to use parts of the old C64 BASIC interpreter ROM, and then
switching to the Simons' ROM at $a000, if some new stuff from Simons'
BASIC is needed, which is not in the $8000-$9fff area.

Harry Potter

unread,
Dec 18, 2013, 9:22:38 AM12/18/13
to
On Tuesday, December 17, 2013 6:06:35 PM UTC-5, Frank Buss wrote:
> The comment at the beginning says:
>
> - reading io1 switches to 8k game config (bank 0 at $8000)
> - writing io1 switches to 16k game config (bank 0 at $8000, bank 1 at $a000)
>
Thank you. That should help! :)
0 new messages