User talk:Furrtek
Cyberwillis: Hi
(Cyberwillis: Wednesday, February 25, 2026 12:59:22 AM)
Hi! Congratulations in taking the charge for the Wiki page !
I would like to understand one change that you made recently. I've noticed you have changed an information in NEO-ZMC page, regarding the bank switching activation.
From:
- Set SDA0~15 = $8103, select 16KiB bank 1 in window 3 (Why $8103 and not just $0103 ?)
To:
- Set SDA0~15 = $810B, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)
This is a work I had done more or less, 22+ years ago, directly on the hardware and in fact I had published earlier a big table related to all the precise possibilities of the Chip I had found that time. | NEO-ZMC (Table).
There is evidence of a different ZMC release? How did you get this $810B activation?
Let me know.
- Thanks ! Hoping nothing didn't break in the transition. About the edit, it's true that setting the address bus to $xx03 would work, but that means the z80 is accessing port $03, not $0B, so that wouldn't toggle SDRD0 and wouldn't effectively set the bank. NEO-ZMC does see 3 when writing to port $0B since it's only connected to SDA0 and SDA1. I'm guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ? Do you remember why you had to set SDA15 ? Looking at the logic in ZMC2, it shouldn't be required.--Furrtek (talk) 03:42, 25 February 2026 (CET)
(Cyberwillis: Wednesday, February 25, 2026 5:45:20 AM)
Hi again, Sorry, the only thing i just noticed that is broken is my ZMC schematic I uploaded in 2011, for some reasn has the wrong pinouts, I will upload the correct one soon I find it.
Q:"I'm guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ?" A: More or less like that but not manually. I sent signals from a device I had built. Before attack the the CMC I had to study the ZMC first.
Q1: "NEO-ZMC does see 3 when writing to port $0B since it's only connected to SDA0 and SDA1." Q2: "Do you remember why you had to set SDA15?" A: There aren't just 2 bits to be set. In fact are 10 bits to be set. A 4MBit M1 Rom has 32 words to correct access all the 32 banks. The lower bank being $8003 and the higher is $9F03. This is trivial for the NEO-ZMC, not so trivial for NEO-CMC that uses the same logic plus a Checksum key to keep everything sinchronized and being decrypted.
We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.--Furrtek (talk) 06:52, 25 February 2026 (CET)
Q: Looking at the logic in ZMC2, it shouldn't be required A: I didn't had an AES cartridge in hand to test it out. The ZMC seems to be embedded in ZMC2 in some way, because ZMC behaves the same way in CMC AES and MVS, with different set of pins for Cs and S
Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.--Furrtek (talk) 06:52, 25 February 2026 (CET)
Q: Why $8003 and not just $0003 ? A: I believe the Z80 access the M1 as if was a RAM ($8000-$FFFF) opposed to ROM space ($0000-$7FFF), to mirror the bank on internal RAM. The M1 is being accessed all the time after millisseconds the hardware is turned on
That's a port address, not memory. Window 3 only has a 5-bit latch for its bank number, so SDA[15:13] don't matter.--Furrtek (talk) 06:52, 25 February 2026 (CET)
(Cyberwillis: Wednesday, February 25, 2026 7:24:31 AM)
We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes. Yes we are still only talking about ZMC, may be technically be different from the point of view of the Z80 but to me is the same, because I had to access ZMC / CMC to get access to M1 in the same way. This is what I tried to let it clear. If you had confirmed that to access the ZMC / CMC (transparent to NEO-GEO) needs a B but for the ZMC point of view it sees a 3, what is the correct pattern to use ? We will talk about components in the point of view of the processor accessing it or the point of view of what the chip need to be setted ?
It's true that it's the NEO-ZMC component page, but since it's only meant to be used in a specific way (haven't seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren't connected and only SDA[1:0] matters to the chip. --Furrtek (talk) 08:43, 25 February 2026 (CET)
Yes the ZMC logic is in ZMC2. Logic in CMC is a different story. What do you mean a different story? Ignoring the part of the Scramble and ignoring the part of S1 and Cs is the same ZMC there that has to be accessed the same way, what part of this is not clear?
Ok, good to know the ZMC logic hasn't evolved in CMC. --Furrtek (talk) 08:43, 25 February 2026 (CET)
(Cyberwillis: Wednesday, February 25, 2026 3:54:43 PM)
It's true that it's the NEO-ZMC component page, but since it's only meant to be used in a specific way (haven't seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren't connected and only SDA[1:0] matters to the chip. Ok, help me out here to understand your point, lets walk though the setting of second bank: - SRD0 set to 0 (write mode) - With P15~0 receiving $8103 (1000 0001 0000 0011), ZMC will receive $207 (10000001------11 => 10 0000 0111). - SRD0 should change to lock the bank set: 0 to 1 (fix bank) - SRD0 should keep in 1 (read mode) - With P15~0 receiving $8000~$BFFF, the ZMC will be now mapping to the range $4000~7FFF at the M1. - sure the a0 a1 as 00, 01, 10, 11 will set different banking ranges in total: 00=64k m1, 01=128K m1, 10=256K m1, 11=512K m1. In the page you said, instead $8103, the Z80 send $810B. The point is, how the Z80 sending $810B will be converted to P15~0 receiving $8103?
--Furrtek (talk) 23:30, 25 February 2026 (CET)
$810B: 1000000100001011 full SDA[15:0] bus $8103: 10000001------11 as seen by NEO-ZMC
(Cyberwillis: Thursday, February 26, 2026 at 8:41:34 AM)
Ok. I was thinking there was more into it, or some kind of limitation from the z80, and I was wondering how then it would be able to later cover all the range of the memory if from setting the banking would have such limitation. I will review the WORD setting if was really necessary SDA15=1 or was just a convenience. Thank you for the clarifications !