[channelf] Re: Pacman Graphics Demo

  • From: "Sean Riddle" <seanriddle@xxxxxxx>
  • To: <channelf@xxxxxxxxxxxxx>
  • Date: Sat, 30 Oct 2004 18:59:48 -0500

Kevin-

        There are others.  Some of them don't seem to be very useful, but
then again I don't have the Channel F programming guide and I haven't
disassembled enough code to understand how they use all the registers.  =
It
took me a while to understand $0107/$011e was used to push/pop the K
register onto a stack using scratchpad register 59 as the stack pointer.
This allows for more than 2 levels of subroutine calls.  Most of the
subroutines start out with
        LR K,P
        PI $0107
and end with
        PI $011e
        PK
so they can be called from other subroutines.

        Here are a few other useful BIOS calls I know of:

$0099 - prompt with char in SP reg 0
$00c1 - wait for button 1-4 to be pressed, store in SP reg 4, delay for
debounce
$0224 - prompts for Time, Mode, Start (I also put this into my code)
$067c - like drawchar, but you provide DCI to the font to use

        I was using calls to $0091, $00c1 and $0224 in my program, but I
wound up copying the code into my program so I could modify it a little. =
 I
changed $0099 and $00c1 to increment a counter while they were waiting =
so I
could have a random #.  I removed the T? (time) prompt from $0224 since
Lights Out doesn't have a timed mode.  We've got a lot more ROM space to
play around with than the original programmers, so we can rewrite as =
needed.
In fact, the later, larger games use very little of the BIOS.  For =
instance,
cart 24 calls $00d0 to clear the screen, and that's it.

        The first thing the BIOS does on reset is zero all the scratchpad
registers, then it stores #$28 into sp reg 59, the stack pointer.  Then =
it
checks $0800 to see if it is #$55.  If so, a cart is assumed inserted =
and it
jumps to $0802 to start the game.  Otherwise it falls through to $081a =
to
let you select an internal game.

Sean

-----Original Message-----
From: channelf-bounce@xxxxxxxxxxxxx =
[mailto:channelf-bounce@xxxxxxxxxxxxx]
On Behalf Of Kevin Lipe
Sent: Saturday, October 30, 2004 4:29 PM
To: channelf@xxxxxxxxxxxxx
Subject: [channelf] Re: Pacman Graphics Demo

I'll get working on a header file right away, then... Sean, are all
the BIOS calls that are available in the source of Lights Out, or are
there more?

happy F8 hacking,
Kevin


On Sun, 31 Oct 2004 07:48:51 +1100, Andrew Davie
<atari2600@xxxxxxxxxxxxx> wrote:
> Time to start thinking about machine-specific header files for the =
Channel
> F.
> DASM provides these for the Atari 2600, and if you guys start a
standardised
> channel F header file that defines things like register values, =
colours,
> bitmasks, etc.. then things will be standardised from an early stage.
> I will be happy to include such a header file in the machine-specific
> support section of the DASM site.
> Cheers
> A
>=20
>=20
>=20
> ----- Original Message -----
> From: "Blackbird" <darivard@xxxxxxxxxxxxxxx>
> To: <channelf@xxxxxxxxxxxxx>
> Sent: Sunday, October 31, 2004 7:17 AM
> Subject: [channelf] Re: Pacman Graphics Demo
>=20
> >> or create a ves.h with all the BIOS calls
> >> in it for Channel F programmers to use? I can if it's needed...
> >
> > That sounds great! It definitely is needed... in addition, maybe =
some
> > constants could be added, like:
> >
> > ; colors
> > color_red equ $40
> > color_blue equ $80
> > color_green equ $00
> > color_bg equ $c0
> >
> > Which is easier to recognize than the actual hex values...
> >
> >> But yeah. I hope to see a really awesome Pacman port for Channel F
> >> sometime soon-- keep up the good work!
> >>
> >> Kevin
> >
> > I hope so too! Thanks!
> >
> >
>=20
>




Other related posts: