Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > RR memory map during freeze?
2016-02-09 18:12
tlr

Registered: Sep 2003
Posts: 1790
RR memory map during freeze?

I'm a bit confused about the memory map in the freeze state. Unfortunately I do not have a real RR so I can't analyse it myself. Anyone cares to enlighten me?

Jens explicitly states in Inside_Replay.txt that no RAM can be visible in the $8000-$9FFF area during freeze, but that $DE00 (or $DF00) is possible.
Quote:
Freeze:
ROM is mapped to $e000-$ffff, bank 0 is active directly after Freeze. Writing to bits 0 and 1 of the $de00 register will have no effect on GAME and EXROM.
RAM can be selected and used in $df00 or $de02, respectively, but not in $8000. Banking bits work, so you have full read access to the ROM, and access to up to four RAM pages with the AllowBank bit set (minus 2 bytes if REU
compatible bit is set).
Cz states this in his Inside_Replay_Essentials.txt:
Quote:
Being in freeze mode allows ROM banks to be mapped by $de00 as before but of course they are mapped to $e000. RAM can only be accessed on the free I/O1 area.
In spite of this it seems vice (r30505) has RAM enabled at both $8000 and $DE00 (or $DF00) during the frozen state before acking it.

From examining the 1541U2 code (3.0beta5) it looks like no RAM can be visible at $DE00 (or $DF00) during freeze which also seems to be wrong.

I was hoping that RAM at $DE00 was mapped in automatically in the freeze state so I could save regs there to avoid trashing the stack unnecessarily.

Which is it?
 
... 10 posts hidden. Click here to view all posts....
 
2016-02-10 23:17
chatGPZ

Registered: Dec 2001
Posts: 11386
the difference is that the nordic/atomic power cartridge has one additional mapping mode, see here. basically set 0xde00 to 0x22 to enable 16k game mode with 8k rom at 8000 and 8k ram at a000.
the values used for this mode are invalid (and unused) for regular AR/RR.
i can also try on an actual retro replay, but unless you are using said mapping modes it shouldnt make a difference :)
2016-02-11 20:00
tlr

Registered: Sep 2003
Posts: 1790
Interesting. I hadn't seen that documented before.

Meanwhile I've updated rr-freeze quite a lot so it can now visualize the mapping. It looks rather weird in vice so I'd be very interested to see what it does on your hw if you have the time.
2016-02-12 00:14
chatGPZ

Registered: Dec 2001
Posts: 11386
*please* add more elaborated description in the readme =)
2016-02-12 07:35
tlr

Registered: Sep 2003
Posts: 1790
Will do. Going away travelling for a week starting tomorrow though.
Short story: memory prefilled with tags so the program can determine which bank it sees in a particular area. Bank scanning is done with bit 1 and 0 of de00 set to 00.
2016-02-12 11:30
tlr

Registered: Sep 2003
Posts: 1790
I added a little more information to the readme. From what i can see in vice it looks like the exrom/game bits aren't properly disabled when in the frozen state. And should banking the E000 rom really be possible there?

I have a list of features to add but it'll be a week or two. Feel free to ask questions so i know what's missing the most in the docs.
2016-02-23 12:29
tlr

Registered: Sep 2003
Posts: 1790
I've improved the program further, and also added a save feature with an offline analysis tool, see below.

What it doesn't check but perhaps ought to:
- what happens with the mapping after KILL in the "random" state.
- what happens with the mapping _during_ when the ack bit is set =1.

From the dump below you can at least see the anomaly that bank EXROM/GAME selection is still possible, even when in the freezed state. This is supposedly not the case on the real HW although I don't have it to test.

Questions? Comments?

link: testprogs/C64/carts/rr-freeze/

analyzing file: dumps/dump_x64_r30583.prg
  program: RR-FREEZE R05, format: 0

<RESET>

--- RST ---
 detected initial state:
  9E:A*  BE:-   DE:-   DF:A*  FE:- 

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
-------------

$40 -> $DE01  (REU-Comp=1, NoFreeze=0, AllowBank=0)

--- CNFD ---
 detected initial state:
  9E:A*  BE:-   DE:A*  DF:-   FE:- 

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
-------------

$88 -> $DE00  ("random" mapping, bank 5 in ROM)
$8C -> $DE00 (kill)

<FREEZE>

--- FRZ ---
 detected initial state:
  9E:0   BE:-   DE:0   DF:-   FE:A*

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
-------------

$60 -> $DE00  (ACK)
$20 -> $DE00

--- ACKD ---
 detected initial state:
  9E:0*  BE:-   DE:0   DF:-   FE:- 

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
-------------


LEGEND:
   0-7   -> RAM banks 0-7, an '*' means read only.
   A-H   -> ROM banks 0-7, should have an '*', otherwise it is writable (!)
   -     -> no cart detected
   ?     -> mapping mismatch (e.g $de not mapped to $9e and similar)
2016-02-23 18:52
tlr

Registered: Sep 2003
Posts: 1790
Need help dumping on RR and 1541U2. If you feel you can spare the time, please send me a PM for instructions.

Here's a dump from hoxs v1.0.8.7:
analyzing file: dumps/dump_hoxs64_v1087.prg
  program: RR-FREEZE R05, format: 0

<RESET>

--- RST ---
 detected initial state:
  9E:A*  BE:-   DE:-   DF:A*  FE:- 

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
-------------

$40 -> $DE01  (REU-Comp=1, NoFreeze=0, AllowBank=0)

--- CNFD ---
 detected initial state:
  9E:A*  BE:-   DE:A*  DF:-   FE:- 

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
-------------

$88 -> $DE00  ("random" mapping, bank 5 in ROM)
$8C -> $DE00 (kill)

<FREEZE>

--- FRZ ---
 detected initial state:
  9E:A*  BE:-   DE:A*  DF:-   FE:A*

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
-------------

$60 -> $DE00  (ACK)
$20 -> $DE00

--- ACKD ---
 detected initial state:
  9E:0   BE:-   DE:0   DF:-   FE:- 

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* B* C* D* E* F* G* H*    A* B* C* D* E* F* G* H* 
-------------


LEGEND:
   0-7   -> RAM banks 0-7, an '*' means read only.
   A-H   -> ROM banks 0-7, should have an '*', otherwise it is writable (!)
   -     -> no cart detected
   ?     -> mapping mismatch (e.g $de not mapped to $9e and similar)
2016-02-25 17:16
tlr

Registered: Sep 2003
Posts: 1790
Impetigo kindly contributed data from his Retro Replay cartridge, which gives some rather interesting discrepancies.

For instance, this passage from Jens' document doesn't seem to hold up:
Freeze:
ROM is mapped to $e000-$ffff, bank 0 is active directly after Freeze. Writing
to bits 0 and 1 of the $de00 register will have no effect on GAME and EXROM.
RAM can be selected and used in $df00 or $de02, respectively, but not in
$8000. Banking bits work, so you have full read access to the ROM, and access
to up to four RAM pages with the AllowBank bit set (minus 2 bytes if REU
compatible bit is set). You should leave this memory map ASAP by setting bit
6 of $de00, because C-64 RAM in the $e000 area is not available, and you
don't have control of the GAME and EXROM lines.

Also note the strange banking behaviour of the kernal area in ultimax mode with the ram bit set.

analyzing file: dumps/dump_rr_40_impetigo.prg
  program: RR-FREEZE R05, format: 0

<RESET>

--- RST ---
 detected initial state:
  9E:A*  BE:-   DE:-   DF:A*  FE:- 

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    -  -  -  -  -  -  -  -  
  BE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: 0  0  0  0  0  0  0  0     -  -  -  -  -  -  -  -  
  FE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
-------------

$40 -> $DE01  (REU-Comp=1, NoFreeze=0, AllowBank=0)

--- CNFD ---
 detected initial state:
  9E:A*  BE:-   DE:A*  DF:-   FE:- 

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    -  -  -  -  -  -  -  -  
  BE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
  DE: 0  0  0  0  0  0  0  0     -  -  -  -  -  -  -  -  
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     -  -  -  -  -  -  -  -  
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
-------------

$88 -> $DE00  ("random" mapping, bank 5 in ROM)
$8C -> $DE00 (kill)

<FREEZE>

--- FRZ ---
 detected initial state:
  9E:-   BE:-   DE:-   DF:-   FE:A*

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
-------------

$60 -> $DE00  (ACK)
$20 -> $DE00

--- ACKD ---
 detected initial state:
  9E:0*  BE:-   DE:0   DF:-   FE:- 

 scan of all banks/modes:
      x01xx000 -> $DE00 (RAM)    x00xx000 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx001 -> $DE00 (RAM)    x00xx001 -> $DE00 (ROM)
  9E: 0* 1* 2* 3* 0* 1* 2* 3*    -  -  -  -  -  -  -  -  
  BE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
  DE: 0  0  0  0  0  0  0  0     -  -  -  -  -  -  -  -  
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx010 -> $DE00 (RAM)    x00xx010 -> $DE00 (ROM)
  9E: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     A* B* C* D* E* F* G* H* 
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
      x01xx011 -> $DE00 (RAM)    x00xx011 -> $DE00 (ROM)
  9E: 0  1  2  3  0  1  2  3     A* B* C* D* E* F* G* H* 
  BE: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  DE: 0  0  0  0  0  0  0  0     -  -  -  -  -  -  -  -  
  DF: -  -  -  -  -  -  -  -     -  -  -  -  -  -  -  -  
  FE: A* A* A* A* E* E* E* E*    A* B* C* D* E* F* G* H* 
-------------


LEGEND:
   0-7   -> RAM banks 0-7, an '*' means read only.
   A-H   -> ROM banks 0-7, should have an '*', otherwise it is writable (!)
   -     -> no cart detected
   ?     -> mapping mismatch (e.g $de not mapped to $9e and similar)
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
sln.pixelrat
Freeze/Blazon
Guests online: 82
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Diskmag Editors
1 Magic  (9.8)
2 hedning  (9.6)
3 Jazzcat  (9.5)
4 Elwix  (9.1)
5 Remix  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.085 sec.