Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.apple2.programmer > #1215

Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download)

From "Bill Buckels" <bbuckels@mts.net>
Newsgroups comp.sys.apple2.programmer
Subject Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download)
Date 2014-05-23 21:45 -0500
Organization Aioe.org NNTP Server
Message-ID <llp13i$nt1$1@speranza.aioe.org> (permalink)
References <llmfkk$mpi$1@speranza.aioe.org> <llmh9v$po4$1@speranza.aioe.org> <llnck1$kq9$1@dont-email.me>

Show all headers | View raw


"David Schmidt" <schmidtd@my-deja.com> wrote:
>I don't do graphics, so I have no idea why screen holes are important to 
>DHGR and when/how they need to be poked.

Some terminology:

A "Screen Hole" is  a memory hole in a C65 program is an area of memory that 
the code jumps past to avoid the screen memory. It is not BSS memory. It is 
part of the program, and its is initialized data and makes the program 
larger.

You don't poke screen holes. You place bitmapped graphics in them for 
display. If your program code covers the screen and you overwrite it with a 
graphic image then you will crash into the monitor. That is why screen holes 
are important to DHGR.

In a prodos sys program that loads at 0x2000 and uses page 2 to do HGR and 
DHGR graphics, a screen hole of 8192 bytes is placed in the program at 
0x4000. An HGR image of a title screen often embedded in such a program can 
be displayed on startup without loading from disk.

Memory holes in a C65 program can be placed anywhere and of any size.

>But I know a little about linker configs and how you tell cc65 where you 
>intend to put stuff.

Thank goodness... so in English now:

I want to build a program in cc65 that runs code both above and below screen 
memory on the apple II, but this does not seem possible without modifying 
the linker. I don't know enough about the linker anyway to muck with it.

So I need to link 8192 bytes in some segment explicitly to screen memory  at 
address 0x4000 in main memory.

Of course I would also like to organize the program so the code runs at 
0x6000 and above if possible as well as below 0x4000 but avoids the screen 
memory. So I assume that the best use of memory is to use loader.system:

1. Root Module including main() loads at 0x803
2.screen segment at 0x4000
3. 0x6000 Root module continues... or Overlays are loaded

In auxmem:

4. Screen segment at 0x4000

>Can you explain in simple (and hopefully brief) terms what you need to 
>accomplish - and what you expect the linker to do to enable you to do it?

Does this give you enough information?

Bill

Back to comp.sys.apple2.programmer | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) "Bill Buckels" <bbuckels@mts.net> - 2014-05-23 21:45 -0500
  Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) Michael J. Mahon <mjmahon@aol.com> - 2014-05-23 22:20 -0500
    Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) "Bill Buckels" <bbuckels@mts.net> - 2014-05-23 23:03 -0500
      Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) David Schmidt <schmidtd@my-deja.com> - 2014-05-24 00:18 -0400
        Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) "Bill Buckels" <bbuckels@mts.net> - 2014-05-24 08:49 -0500
      Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) "Bill Buckels" <bbuckels@mts.net> - 2014-05-24 10:58 -0500
      Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) Michael J. Mahon <mjmahon@aol.com> - 2014-05-24 11:04 -0500
        Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) "Bill Buckels" <bbuckels@mts.net> - 2014-05-24 14:28 -0500
          Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) ol.sc@web.de (Oliver Schmidt) - 2014-05-30 21:20 +0000
            Re: Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) "Bill Buckels" <bbuckels@mts.net> - 2014-05-30 18:35 -0500

csiph-web