What i'm really trying to understand is the address signalling in the amstrad cpc 6128 (not +). That seems the most difficult part of the schematics to me.
1) I understand the pal has no memory. It also has as input data bits 0,1,2, 6and7. I suppose for the MMR "register". I understand 6and7 is used to make the difference with
the gatearray. But how is the information about this "register" kept once written ? The gatearray surely doesn't store this, and anyway doesn't route any relevant signal.
2) (might be related?) the pal also outputs x1,x2,x3, not connected in the cpc. Are they unused ? or used in some other hardware ? Or only here to be used as (feedback) inputs for the other outputs ? (outputs can be used as input in a pal).
3) At first it seems we do have cpc 6128 schematics. But after checking, i've only found two such schematics :
- (bad) photos of what is found on the service manual, which covers only one version, and is known to be incomplete and/or with errors.
- the amazing work of 'pelrun' recreating the version 2, which is different.
Seeing how much work has been done in understanding the hardware otherwise, i'm really surprised not to find anything else. Not even a 'corrected' or 'annotated', or just
'better resolution' of the one in service manual.
Did I miss something ??
x1, x2, and x3 are signals that are the outputs of the D-latch flip-flops implemented in the PAL. They store the mixer settings for the 64KB main and 64KB secondary memory.
x1, x2, and x3 are used inside the PAL.
D6&D7 are signals that establish the PAL setting as byte &C0+b2,b1,b0. The PAL output produces new values AD15 and AD14, which are sent to the LS153 multiplexers.
Oh ? So there's actually some memory in the pal ?
I didn't think it was possible to have a flip-flop, i thought the pal was only combinatorial, mixing inputs with and/or to create outputs.
My understanding was that pal16l8 are only combinatorial, while pal16r8 have an added flip-flop on each output. But the CPC uses the pal16l8.
The three D-latch flip-flops are MADE of simple gates.
You have feedback acting as a latch
Q0 = ( D7ANDD6 & nRESET & D0 & !A15 & !nIOWR
# !D7 AND D6 & nRESET & Q0
# nRESET & A15 & Q0
# nRESET & nIOWR & Q0 );
Quote from: orzel on Yesterday at 15:01My understanding was that pal16l8 are only combinatorial,
While there are no discrete "flip-flop blocks" in a PAL16L8, that doesn't mean you can't make them. All that's needed is the ability to feed one or more outputs back in as inputs, and even the non-registered parts have that.
Ok, I understand now, thanks a lot.