Retro Canada
Experienced Member
I noticed the Super PC/XT Bios didn't work for my 5150 especially when activating the IBM_PC=1 flag or using the PC/XT version with mono card.
It turns out it reads the SW1 wrong, there is the fix:
ifdef IBM_PC ; Read 5150 switch config
mov al, 0CCh
out dx, al ; Reset keyboard
in al, 60h ; Read config switches
shr al, 4
mov ah, al
The flags on 5150 are in the upper nibble, the PC/XT gets them from a lower nibble in other port, That's the mistake.
Now it works with any display and boots correctly from floppy.
It turns out it reads the SW1 wrong, there is the fix:
ifdef IBM_PC ; Read 5150 switch config
mov al, 0CCh
out dx, al ; Reset keyboard
in al, 60h ; Read config switches
shr al, 4
mov ah, al
The flags on 5150 are in the upper nibble, the PC/XT gets them from a lower nibble in other port, That's the mistake.
Now it works with any display and boots correctly from floppy.