On Sat, 25 May 2024, Chuck Guzis via cctalk wrote:
I think it was
indeed the way to tell NEC V20 and other x86 chips apart:
good if you wanted to make seamless use of the 8080 emulation mode).
Is this something you've actually verified? Seems to be a bit of an
urban legend. I can test it on a V20 system if you don't have one.
You mean the 8080 emulation mode or the CPU detection via AAD/AAM?
If the latter, then I'm fairly sure I verified that as we had a lab full
of V20 PC/XT clones back at the university (mind it's been ~30 years now
though) and here's a piece of code of mine I could find from back in the
day, dated Mar 10th, 1996:
; - <group> = 00:
; 00 - 8088
; 01 - 8086
; 02 - V20 (NEC)
; 03 - V30 (NEC)
; >= 04 - reserved (do not use)
[...]
; 8088, 8086, V20 or V30
MOV AH,001H
AAD 000H
JZ CHKBUS
ADD [CPUDSC],002H
; <description> = 00 or 02
CHKBUS: CALL DETBUS
; <description> incremented if 16-bit data bus
ADD [CPUDSC],AL
JMP EDTCPU
This replaced older code going back to Oct 11th, 1993 that instead did:
MOV AL,040H
MUL AL
JNZ CHKBUS
I cannot remember anymore why I made this change: it may well have been
for the sake of it as I was eager to experiment with odd stuff. I can't
imagine myself making a change though that would regress things.
As to the former I meant to try it and had documentation, but that has
never materialised. I did a little 8080 programming, but not much and
with actual 8080 hardware only.
Feel free to make any tests you want with your V20 though as my memory
could be tricking me after so many years. I haven't come across a V20
ever since 1990s.
Maciej