Re: [cc65] Banking out ROM (was: TGI preview)

From: Fatih Aygün <>
Date: 2009-11-15 14:44:50


Shawn Jefferson wrote:

> Unless you are going to package a special DOS with your program I'd stay
> away from stuff that low.  Cartridge is $400 of course, that's fine.

Of course :)

> The high $1Fxx's from what I recall, so $2000 should be fine.

I wonder why it's not the default start address then. Programs that use R: stuff
or any other low loading drivers or extra drive buffers can easily set the start 
address higher from the ld65 command line. The default shouldn't be that high
because it's not the typical case imho.

> I guess this can only be used in programs that don't make use of the OS
> functions in any way?

No, you can use any official OS function like CIOV, SIOV or whatever. There are
stubs in low memory that handle the switching. What you can't do is to use the
extra RAM as an input or output buffer for that functions. Other than that everything
I tested seemed to work.

*** wrote:

> > How do those platforms handle disk i/o?
> Two ways to achieve that is either bank-in, do the i/o, bank out or copy ROM to 
> RAM, and use those portions of RAM, which do not interfere with the 
> functionality you still need from the now mutable ROM image. In practice I 
> believe the first method is more common.

Hmm... There are some five versions of the OS ROMs for Atari XL/XE. I'm not sure 
if they have those functions in the same places. But it might be worth investigating.

> Well, on the Commie it "obviously" works ;-) It is so because the ROM is 
> banked-in on read only. On write, the RAM is being accessed, which as simple as 
> it looks makes lot of things easier. E.g. to make any of the ROMs mutable, a 
> simple loop

The Atari800 emulator doesn't work that way. Unfortunately I think that's how the
real hardware works. It would be much nicer if it was designed like Commodore but
it is what it is :(

> Now I don't know how are the ROMs wired on Ataris but if you can't write over 
> the ROMs to get to the RAM beneath, I would assume that you are to use some I/O 
> buffers, read the data in there, bank the ROM out and move the data. Yeah - not 
> very much appealing.

That would require decoding the function parameters, almost the same amount of code
to implement them. Not an option I think :(


Daniel Serpell wrote:

>> On the real hardware, I have an sio2pc program and a virtual dos (I call it PseuDos) 
>> that just forwards the requests to the PC in the shortest possible time andallows me 
>> to load as low as $800 :)
> Do you have that available somewhere? sounds interesting!

Not yet. I've got lots of half finished software lying in my hard disk. I definitely should clean
them up and release some them. I'm somewhat motivated and got some free time nowadays.
That project will be my priority since it's the most demanded (by 1 person, that being you :)). 
I'll let you know when it's done.

> [detailed memory requirements for several DOSes]

Thanks for the info. It seems to support the proposal of setting the default start address to
$2000 for Atari platform.


To unsubscribe from the list send mail to with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Sun Nov 15 14:44:58 2009

This archive was generated by hypermail 2.1.8 : 2009-11-15 14:45:01 CET