RE: Assemblers for the 65816 processor

From: Steve Judd (sjudd_at_ffd2.com)
Date: 2003-12-04 06:20:51

Hey Nick,

> There's RAM at both, but the $D2xx is supposedly reserved for use by the
> "system" and the $D3xx page is available for users.
> 
> There's a reasonable series of articles in Commodore World and Go64 which
> seem to go beyond the detail in the SuperCPU handbook, perhaps this
> information needs to be consolidated and edited... well, a starting point...
> 
> But I'm sure guy live Steve Judd and those working on WiNGs understand a lot
> more through their experiences with the device...

Nah, if you've read the Commodore World articles you know as much as
anyone; I certainly don't know much.

As to bank 1 RAM, all I remember is that a) it is all available as RAM,
b) most of that RAM is used by the SCPU for things like RAMlink routines,
c) the upper RAM is mirrored into bank 0.  Somewhere (El Cheapo perhaps?)
I tried storing stuff in bank 1 but it made things like RAMlink stop
functioning; I believe Jolse just blows it all away, since he doesn't use
any of the ROM routines.  The mirrored upper RAM is pretty useful, since
it means you can effectively modify/rewrite the ROMs (or even blank them
out altogether so you can run Matthew Montchalain programs with purity),
and it's also a handy place to put routines, jump points, etc. -- for
example, Sirius puts a long jump at $D300 so that sys $d300/sys 54016 will
restart it, even on a restart.  I'm thinking that PeekPokePatch uses the
bank 1 trick as well.

For a long time I thought it would be neat to have a "SuperCPU PRG" to put
into C=Hacking.  In addition to the common-knowledge stuff like the
registers and the interrupts, I've always wondered just what was stored
where in RAM, what the startup sequence is (where Elwix's cool spaceship
animation is stored), etc.  I vaguely recall that the reserved system RAM
at $Fxxxxx contains ROM images for different machines, things like that.
It's not hugely important, since programming the SCPU is pretty
straightforward, but it would be nice to get it all written down.
Weirdly, I started SCPU coding again a few weeks ago; maybe now is a good
time for this to happen, at last.

The other dream involves the /ABORTB pin on the 65816.  Not only is this
the perfect ultimate freeze mechanism, but Doug Cotton said they actually
used it often while debugging the SCPU, so it's even been tested.

Anyways...

-Steve

P.S. Sirius definitely won't work without SuperRAM/bank 1/$01.  El Cheapo
     probably won't work, but could be made to work.  JamaicaMON ought
     to work ok, and if it doesn't it should be easy to modify.  I believe
     dreammon requires superram (it's what, 200 blocks or something?).
     I don't know about VAss16 or Lemon/Leamon/whatever it is.  If
     nothing else, you can just poke opcodes directly, something simple
     like ldy #$40:phy:pla:jmp $ffd2 (a0 40 5a 48 4c d2 ff).


       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.