Re: 8520 dissection
Posted: Thu Oct 20, 2022 7:00 am
14c) is just a NAND gate with push/pull output,
sensing if the CPU wants to read/write the TOD MSB.
So I had integrated it into 14b).
;---
14b) TOD control
When the TOD LSB is written with high_active register write control signal W_TOD_LSB,
the "TOD count enable" RS flipflop is set at the start of the next PHI2 cycle,
what enables TOD counting with low_active signal TOD_CEN#
when high_active signal TOD_DET1 from "5b) TOD pad" signals
that there was a rising edge at the TOD pad.
When the CPU writes the TOD MSB, or when RES is active,
the "TOD count enable" RS flipflop (buit from two NOR gates) is cleared,
what disables TOD counting.
;
Note:
This means after RES was active, you would have to write TOD LSB to enable TOD counting.
"Writing TOD MSB" means:
LOW_active write enable signal WE# is active, //generated in "2) CS#, R/W#"
High_active select signal SEL_$A is active, //generated in "6) address decoder"
CRB7 control register B Bit is 0.
;...
When the CPU reads TOD MSB, the "TOD read sample/hold" RS flipflop
(built from two NOR gates) is set, and TOD_RHOLD goes active,
freezing the TOD read latches.
When the CPU reads TOD LSB with high_active register read control signal R_TOD_LSB,
or when RES is active, the "TOD read sample hold" RS flipflop is cleared,
and TOD_RSAMPLE goes active, making the TOD read latches transparent again.
"Reading TOD MSB" means:
LOW_active read enable signal RD# is active, //generated in "2) CS#, R/W#"
High_active select signal SEL_$A is active, //generated in "6) address decoder"
CRB7 control register B Bit is 0.
;...
Short form:
TOD MSB write > disable TOD counting
TOD LSB write > enable TOD counting //you have to do that after RES was active
TOD MSB read > freeze TOD read latches
TOD LSB read > make TOD read latches transparent again.
sensing if the CPU wants to read/write the TOD MSB.
So I had integrated it into 14b).
;---
14b) TOD control
When the TOD LSB is written with high_active register write control signal W_TOD_LSB,
the "TOD count enable" RS flipflop is set at the start of the next PHI2 cycle,
what enables TOD counting with low_active signal TOD_CEN#
when high_active signal TOD_DET1 from "5b) TOD pad" signals
that there was a rising edge at the TOD pad.
When the CPU writes the TOD MSB, or when RES is active,
the "TOD count enable" RS flipflop (buit from two NOR gates) is cleared,
what disables TOD counting.
;
Note:
This means after RES was active, you would have to write TOD LSB to enable TOD counting.
"Writing TOD MSB" means:
LOW_active write enable signal WE# is active, //generated in "2) CS#, R/W#"
High_active select signal SEL_$A is active, //generated in "6) address decoder"
CRB7 control register B Bit is 0.
;...
When the CPU reads TOD MSB, the "TOD read sample/hold" RS flipflop
(built from two NOR gates) is set, and TOD_RHOLD goes active,
freezing the TOD read latches.
When the CPU reads TOD LSB with high_active register read control signal R_TOD_LSB,
or when RES is active, the "TOD read sample hold" RS flipflop is cleared,
and TOD_RSAMPLE goes active, making the TOD read latches transparent again.
"Reading TOD MSB" means:
LOW_active read enable signal RD# is active, //generated in "2) CS#, R/W#"
High_active select signal SEL_$A is active, //generated in "6) address decoder"
CRB7 control register B Bit is 0.
;...
Short form:
TOD MSB write > disable TOD counting
TOD LSB write > enable TOD counting //you have to do that after RES was active
TOD MSB read > freeze TOD read latches
TOD LSB read > make TOD read latches transparent again.