but wait! this means that I can run this chip if the CPU's clock out/system clock is 4MHz...
system clock in my test setup is 2MHz, so if I use 74ls04 it will definitely work
Yes it should work.
Being new you need to look at big picture.
Just because you got one small part to work that does not mean to total system will work!
All timing must be in bounds for NSC800 to function properly.
This is not a change that could be made to an existing system and be expected to work. It could work fine or it could mess up the timing and make it fail or intermittent.
An existing system could use ALE as a signal that states ADDRESS Valid & Stable. This is no longer true when 74ls374 is used as A0-A7 is not stable or valid.
ALE is an important signal when you read data sheet.
In the data sheet A0-A15 is valid and has been on the bus for a time before ALE. The timing of other signals is based on ALE
Need to remember that the 74ls373 is a follow input then hold the input.
The 74ls374 is put input on output some time after clock edge with a delay from clock edge while changing.
So with the 74ls374, you have high address (a8-A15) address data valid & stable before ALE and low address(A0-A7) becomes valid some time after ALE and down stream circuits must handle this change properly.
All parts that use the separate A0-A7 have less time.
If you look a little closer at how long AD0-AD7 is valid after ALE
th(ADL) is 30ns for 4mhz part, 35ns for 3.5mhz part, 60ns for 3mhz part.
This suggests that internal time delays in the NSC800 logic creates these signals.
Look at and OPCODE read cycle or Memory read using 4mhz part.
Low address is valid at TS(AD) {40ns} before ALE
RD gos low tDAR {160ns} after ALE
So for the 74ls373 low address is stable 200ns before - the time it takes for input to output delay of 74ls373(36-38ns) before RD low.
With 74ls374 and inverter you have 160ns - 10-15 ns for inverter - input to output delay of 74ls374 (32-38ns) before RD low
So low address stable time is now 50-60ns less.
I went in to detail here while this little change is fresh in your mind.
What looks ok in a small part of circuit, could easily break the system.
The point I am trying to make here is that one small change can have a huge effect on the remaining parts of the system.
You have to get the logic correct.
You also have to get all the time delays accounted for.
Need to keep this in mind when working with logic.