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


Groups > comp.sys.apple2 > #19910 > unrolled thread

Double Hi-Res Demo in cc65 available for Download

Started by"Bill Buckels" <bbuckels@mts.net>
First post2014-05-22 22:34 -0500
Last post2014-06-01 20:44 -0500
Articles 9 — 4 participants

Back to article view | Back to comp.sys.apple2


Contents

  Double Hi-Res Demo in cc65 available for Download "Bill Buckels" <bbuckels@mts.net> - 2014-05-22 22:34 -0500
    Re: Double Hi-Res Demo in cc65 available for Download "Bill Buckels" <bbuckels@mts.net> - 2014-05-22 23:03 -0500
      Linker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download) David Schmidt <schmidtd@my-deja.com> - 2014-05-23 07:49 -0400
      Re: Double Hi-Res Demo in cc65 available for Download Antoine Vignau <antoine.vignau@laposte.net> - 2014-05-23 04:50 -0700
        Re: Double Hi-Res Demo in cc65 available for Download "Bill Buckels" <bbuckels@mts.net> - 2014-05-23 15:58 -0500
      Re: Double Hi-Res Demo in cc65 available for Download Payton Byrd <plbyrd@gmail.com> - 2014-05-23 06:42 -0700
        Re: Double Hi-Res Demo in cc65 available for Download "Bill Buckels" <bbuckels@mts.net> - 2014-05-23 16:22 -0500
    Re: Double Hi-Res Demo in cc65 available for Download "Bill Buckels" <bbuckels@mts.net> - 2014-05-25 17:06 -0500
    Re: Double Hi-Res Demo in cc65 available for Download - Doumentation, Demo, and Update "Bill Buckels" <bbuckels@mts.net> - 2014-06-01 20:44 -0500

#19910 — Double Hi-Res Demo in cc65 available for Download

From"Bill Buckels" <bbuckels@mts.net>
Date2014-05-22 22:34 -0500
SubjectDouble Hi-Res Demo in cc65 available for Download
Message-ID<llmfkk$mpi$1@speranza.aioe.org>
Download it Here:

http://www.appleoldies.ca/cc65/programs/dhgr/dhishow.zip

Includes working disk images and source code.

Documentation and more to follow.

Bill


[toc] | [next] | [standalone]


#19912

From"Bill Buckels" <bbuckels@mts.net>
Date2014-05-22 23:03 -0500
Message-ID<llmh9v$po4$1@speranza.aioe.org>
In reply to#19910
Bill Buckels wrote:
>http://www.appleoldies.ca/cc65/programs/dhgr/dhishow.zip

cc65's memory configuration is severely limited for DHGR as it now stands 
from what I know. I was unable to write a SYS program to load DHGR images. I 
managed to squeek this program in under Page 2 DHGR by using Oliver's 
loader.system.

I will write a detailed document similar to what I have done for DLGR about 
DHGR.

Then I will write some demos for Plottting of Graphics for each.

For DHGR Aztec C65 is currently a better bet at this time.

Has anyone else ever done DHGR in cc65? If so, I would love to look at the 
linker config file that was used. The lack of a screen hole option in cc65 
is a severely limiting factor that needs correcting. Overlays might be a 
work-around for this problem in cc65...

I am still thinking about it. If nobody has any firm information about DHGR 
in cc65 watch for the document. If anyone has firm info about changing the 
cc65 linker to create screen holes for graphics, I surely would like to see 
the code.

Bill




[toc] | [prev] | [next] | [standalone]


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

FromDavid Schmidt <schmidtd@my-deja.com>
Date2014-05-23 07:49 -0400
SubjectLinker Configs and Screen Holes (Was: Re: Double Hi-Res Demo in cc65 available for Download)
Message-ID<llnck1$kq9$1@dont-email.me>
In reply to#19912
On 5/23/2014 12:03 AM, Bill Buckels wrote:
> Has anyone else ever done DHGR in cc65? If so, I would love to look at the
> linker config file that was used. The lack of a screen hole option in cc65
> is a severely limiting factor that needs correcting.

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.  But I know a little about 
linker configs and how you tell cc65 where you intend to put stuff.  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?  [followups set to c.s.a2.programmer]

[toc] | [prev] | [next] | [standalone]


#19915

FromAntoine Vignau <antoine.vignau@laposte.net>
Date2014-05-23 04:50 -0700
Message-ID<168f64b2-e546-411f-b68c-41c1fbd558e4@googlegroups.com>
In reply to#19912
Nice work, as usual, Bill.
With the pair $C054 (main RAM) - $C055 (aux RAM), you block the use of two DGR pages. Using other softswitches ($C00x) would allow you to do page flipping in DGR.

00/C002  byte	w:RDMAINRAM
00/C003  byte	w:RDCARDRAM
00/C004  byte	w:WRMAINRAM
00/C005  byte	w:WRCARDRAM

Antoine

[toc] | [prev] | [next] | [standalone]


#19924

From"Bill Buckels" <bbuckels@mts.net>
Date2014-05-23 15:58 -0500
Message-ID<llocqj$em9$1@speranza.aioe.org>
In reply to#19915
"Antoine Vignau" <antoine.vignau@laposte.net> wrote:
>Nice work, as usual, Bill

Thanks Antoine.

>With the pair $C054 (main RAM) - $C055 (aux RAM), you block the use of two 
>DGR pages. Using other softswitches ($C00x) would allow you to do page 
>flipping in DGR.

>00/C002  byte w:RDMAINRAM
>00/C003  byte w:RDCARDRAM
>00/C004  byte w:WRMAINRAM
>00/C005  byte w:WRCARDRAM

I understand that (I think) but my problem is my C code needs to go 
somewhere.

In C I can't simply jump past Page1 and Page 2 but I know that reading a 
file to page 1 while displaying page 2 and vice-versa will give me an 
instant transition between slides which I think is your main point.

Bill 

[toc] | [prev] | [next] | [standalone]


#19916

FromPayton Byrd <plbyrd@gmail.com>
Date2014-05-23 06:42 -0700
Message-ID<7190568a-af38-46cf-a990-f1e54b2bddfa@googlegroups.com>
In reply to#19912
Bill,

I don't think you are approaching the problem with the right angle for cc65.  What you need to do is define memory segments for your holes.  Then, you need to define buffers in an assembler source that go into these holes

Example, create a memory region named "block1" and have it start at $a000 and run to $afff (I don't know the particulars of the apple, I'm just giving a generic example).  Next in the linker config add a segment called "block1segment" that uses block1 as BSS memory.

In your assembler file, use the following code

.export _block1hole
.segment "block1segment"

_block1hole:
    .repeat $FFF, i
        .byte $00
    .endrepeat

There maybe a macro for doing the FFF byte definition, I'm going off the top of my head right now.

Now, you can use _block1hold as a byte array in cc65. You need to define it in a header like this:

extern byte block1hole[0xFFF];

I hope this helps

[toc] | [prev] | [next] | [standalone]


#19925

From"Bill Buckels" <bbuckels@mts.net>
Date2014-05-23 16:22 -0500
Message-ID<lloe7f$i21$1@speranza.aioe.org>
In reply to#19916
"Payton Byrd" <plbyrd@gmail.com> wrote:

>I don't think you are approaching the problem with the right angle for 
>cc65.

Or vice-versa... but you are right of course. I am trying to do what I can 
in C, but I need to write some core routines in assembler to support the C.

>What you need to do is define memory segments for your holes.  Then, you 
>need to define buffers in an assembler source that go into these holes

<snip>

>I hope this helps.

Not until I can think like that. What I'd like to say right now is that is 
exactly the way I would do it. What I get out of this right now is that the 
cc65 linker already supports memory holes. I simply don't know how to use it 
to do so.

But leave it with me for an epiphany to take place. Once done it will no 
longer be a problem for me:)

Ok so the questions are then..

1. Would you add this new segment to the link library as an optional segment 
for programs that use DHGR graphics?

 2. Would you build a tgi graphics driver around this new segment and add 
that to the link library as well?

3. Since HGR and DHGR both use one or both of the same 2 pages of main 
memory, and DHGR additionally uses one or both of the same 2 pages of 
auxiliary memory, and cc65 supports two main types of program on the Apple 
II, BIN and SYS, is this too messy for a standard and a driver?

I still need some place to fit my code so I need to think about this some 
more.

Can I define several segments in a C program instead of using assembly? I 
need to RTFM.

Bill






Bill 

[toc] | [prev] | [next] | [standalone]


#19944

From"Bill Buckels" <bbuckels@mts.net>
Date2014-05-25 17:06 -0500
Message-ID<lltph7$nl2$1@speranza.aioe.org>
In reply to#19910
>"Bill Buckels" <bbuckels@mts.net> wrote:
>http://www.appleoldies.ca/cc65/programs/dhgr/dhishow.zip
>Includes working disk images and source code.
>Documentation and more to follow.

After talking with the guys, I decided to use page 1 of DHGR instead of page 
2 of DHGR.

Going to page 1 with a cc65 program start address at 0x4000 provides a 
considerable amount of more RAM than trying to squeek a program under page 
2. Oliver's loader.system has no problem loading a cc65 DHGR program using 
either page 1 or page 2 DHGR.

I am in the process of porting line drawing routines, and font routines, 
etc. for DHGR page 1 so I can see for sure that this is going to work in all 
cases, but this changes some things that in the final analysis probably 
provide pretty much the same amount of memory to a DHGR BIN program in cc65 
as in an Aztec C65 SYS program.

It also potentially provides the same free space under the program for 
useful buffers.

The best part is that only 1 address setting in the config file needs to 
change.

I have alot of code to move from Aztec C to make this all work. I am 
anticipating smaller fastert code in cc65, so I think the end result will be 
much better, and in most cases as efficient as pure 6502 machine code.

At this point I have 2 DHGR slideshows working, one with each configuration.

What I need is a complete graphics library.

Anyone who is interested can send me private mail until I am ready to 
publish this.

I do need to point out that a BIN program in Aztec C65 has more available 
memory, so the DOS 3.3 DHGR examples in Aztec C65 are especially efficient 
memory7 wize, but this adavantage is totally chewed-up with Aztec C65's 
bloated code due to cc65's  much smaller footprint and better use of the 
stack.

In some previous posts I boldly stated that doing DHGR in cc65 was trivial. 
I think in all fairness I'd better say that this is a very subjective 
statement.

After I provide you with my libraries and examples that will follow, doing 
DHGR in cc65 will become trivial. It's only program code after all. Using 
the standard config files that Oliver and Uz provide with very minor 
modifications will support DHGR but this is a very complicated business 
unless you have these routines "nailed cold".

Someone who has already done DHGR may have some success at this point, but 
that would not be possible without extreme programming and a really 
hard-core effort. After I am finsihed this part of the port, I am committed 
to providing everyone with a relatively effortless set of routines that will 
make DHGR in cc65 trivial.

However, having said that, you need to understand that C programming was 
never really for BASIC programmers. If you are stuck in a BASIC programming 
mindset this is not for you.

The same holds true for someone who is an ML programmer. If you are 
convinced that ML is an end in itself, you will likely not enjoy this very 
much.

If however, you know both BASIC and ML and you want to bang-off some cc65 
DHGR C programs, this will be an incredible toy for you. Just give me some 
time to complete this and write it up.

Bill



[toc] | [prev] | [next] | [standalone]


#20003 — Re: Double Hi-Res Demo in cc65 available for Download - Doumentation, Demo, and Update

From"Bill Buckels" <bbuckels@mts.net>
Date2014-06-01 20:44 -0500
SubjectRe: Double Hi-Res Demo in cc65 available for Download - Doumentation, Demo, and Update
Message-ID<lmgku0$8kp$1@speranza.aioe.org>
In reply to#19910
"Bill Buckels" <bbuckels@mts.net> wrote:
>Download it Here:
>http://www.appleoldies.ca/cc65/programs/dhgr/dhishow.zip
>Includes working disk images and source code.
>Documentation and more to follow.

Documentation is now complete.
Download it Here:

http://www.appleoldies.ca/cc65/docs/dhgr/dhishow.pdf

Source Code and Binaries are now complete.
Download them Here:

http://www.appleoldies.ca/cc65/programs/dhgr/dhishow.zip

A Large Demo in HDV and 2mg disk image formats is now available.
Download it here:

http://www.appleoldies.ca/cc65/programs/dhgr/dhishowdemo.zip

Well, it seems like I had a lot to say about Apple II Double Hi-Res 
Bitmapped Graphics again. For this demo release I decided to write a single 
program in cc65 and use conditional compilation and 2 different linker 
configuration files to produce 2 different binaries; one that uses the DHGR 
page one screen at $2000 and one that uses the page two screen at $4000.

The documentation says a little more about this.

In the course of this devlopment I produced quite a number of Apple IIe DHGR 
graphics files and I also had several laying around, so I produced some 
demos in addition to the sample disks that are still included with the 
distribution. Since I test using both AppleWin and the Kegs emulators, I 
provide an HDV image for AppleWin users and a couple of 2mg disk images for 
Kegs users in this demo.

I also provide the gif files that I used with ][gif and a ][gif working 
environment on the demo disks in case someone wants to go as crazy as I did 
and convert some gifs to DHGR files and build their own slide shows.

Or perhaps you'd rather tweak my cc65 code and add a mouse or some other 
features

But that's enough for now... the documentation tells the rest of it.(and 
then some).

All the best,

Bill



[toc] | [prev] | [standalone]


Back to top | Article view | comp.sys.apple2


csiph-web