I believe almost all CPCs use NMOS cpus.
NMOS:
OUT (C),0
LD A,R/LD A,I -> P/V flag is cleared if interrupt is received during the execution of these commands.
CMOS:
OUT (C),0 actually does OUT (C),255
LD A,R/LD A,I -> no bug
I tested the Z80 in my GX4000 and CPCs and all are NMOS. Are there any CPCs with CMOS Z80's?
Quote from: arnoldemu on 14:43, 06 January 16
I believe almost all CPCs use NMOS cpus.
NMOS:
OUT (C),0
LD A,R/LD A,I -> P/V flag is cleared if interrupt is received during the execution of these commands.
CMOS:
OUT (C),0 actually does OUT (C),255
LD A,R/LD A,I -> no bug
I tested the Z80 in my GX4000 and CPCs and all are NMOS. Are there any CPCs with CMOS Z80's?
I do not think Amstrad ever used a CMOS Z80.
Even on the later Plus/GX4000, it's a NMOS Z8400 (CMOS would be Z84C00)
Using a CMOS Z80 into a CPC will cause some programs failure.
For example, STarKos will not work!
Why this?
Quote from: TFM on 17:46, 06 January 16
Why this?
Programs which use "OUT (C),0" will not work on CMOS. It doesn't out 0, it outs 255!
Quote from: arnoldemu on 18:35, 06 January 16
Programs which use "OUT (C),0" will not work on CMOS. It doesn't out 0, it outs 255!
Oh crap! I didn't know! But this can be used to test the CPU version then, right? OUT to a port which you can read again, PSG port f.e. On the other hand if nobody uses CMOS why to bother? But good to know. Thanks for your valuable insights Sir! :) :)
Quote from: TFM on 18:46, 06 January 16
Oh crap! I didn't know! But this can be used to test the CPU version then, right? OUT to a port which you can read again, PSG port f.e. On the other hand if nobody uses CMOS why to bother? But good to know. Thanks for your valuable insights Sir! :) :)
correct.
But I think nobody uses cmos.