Dovolím si dnes pridať jeden prevzatý článok o možnosti detekcie procesora Z80 podľa registra Q.
Na procesoroch kompatibilných so Zilogom Z80 existuje register Q, ktorý slúži ako keš a oznamuje či nastala zmena príznakov poslednou vykonanou inštrukciou. Je to neprístupný vnútorný register, ktorý ovplyvňujú nedokumentované príznaky vo výstupe inštrukcií SCF a CCF. Toto správanie môže byť použité na detekciu procesora Z80 od NECu, ktorý nie je 100% kompatibilný so Zilogom a bežne sa používa v počítačoch Sinclair a Timex.
; Detekcia NEC Z80 ; Rui Ribeiro 2019 ; ; PRINT USR 50000 ; ; vráti: ; ; 0 pre NEC ; 1 pre Z80 kompatibilný so Zilogom ; ORG 50000 LD BC,1 ; BC = 1 - Z80 nie NEC XOR A ; A = 0 LD D,A ; D = A DEC D ; A-1 = $FF Q = 1 NOP ; Q = 0 CCF ; X = 1 a Y = 1 ak je to Zilog alebo iný kompatibilný ; X = 0 a Y = 0 ak je to NEC Z80 PUSH AF POP DE ; uloži F do E LD A,E AND $28 ; 00101000 - test X a Y RET NZ ; návrat ak je to Z80 a nie NEC DEC BC ; Z80 je NEC, BC = 0 RET
Použitím tejto rutiny pomocou PRINT USR 50000 zistíte či je procesor alebo emulátor Zilog kompatibilný. Návratová hodnota 1 znamená 100% kompatibilitu, hodnota 0 signalizuje NEC alebo iný nekompatibilný procesor.
Poznámka: Vďaka Miguelovi Capelovi za otestovanie rutiny na spektráckych a timexáckych Z80-tkách – menovite Z80A Mostek, NEC, Zilog a SGS.
Autor: Rui F Ribeiro
Zdroj: https://planetasinclair.blogspot.com/2019/12/dica-usar-registo-q-do-z80-detectar-z80.html
Thanks for the article, it was nice seeing it in Polish. Regards
Hi Rui. Actually it’s not Polish but Slovak. But I understand our Slavic languages might look quite similar for you.
Co to vyhodí na UB880?
Dik za preklad. Po tolkych rokoch som necakal, ze existuje nieco okolo Z80 neprebadane.
na Speccy2010 vysledok BC=0
Do tretice som vyskusal aj
Spectrum +2 gray ….BC=1
Spectrum +3…………..BC=1