In many of the PS/2 routines you may need to check if the system is a microchannel computer. This routine does that check, setting the Carry flag if the system does not have the microchannel bus. If it is a microchannel system, the Carry flag is clear and the AL register holds the number of microchannel 'slots'. Be aware that some of the system planar resources may be identified as a 'slot'.
;---------------------------------------------- ; CheckMCA Assembly routine ; ; This routine checks whether the system has a ; Micro Channel (MCA) bus. ; ; Returns: ; CF clear if Micro Channel bus ; AL = Number of MCA slots (0 for 7552) ; CF set on failure or if not Micro Channel bus ; AL = 0 ; ; Destroys AX,BX,ES,FLAGS ;---------------------------------------------- CheckMCA proc near ; Check for MCA system mov AH, C0h int 15h mov AL, 0 ; default to 0 slots jc Failure ; Leave if call unsupported test byte ptr ES:[BX+5], 2 ; MCA flag bit? jz Failure ; Leave if not MCA system ; Detect 7552 (non-standard MCA) cmp byte ptr ES:[BX+2], FCh ; IBM 286? jne Slots cmp byte ptr ES:[BX+3], 6 ; 7552 Gearbox? je Success ; Report MCA w/ zero slots on 7552 ; Get slot count Slots: cli ; mask interrupts mov AL, 1 out 75h, AL ; NVRAM index high out 4Fh, AL ; delay (dummy I/O op.) mov AL, 8Eh out 74h, AL ; NVRAM index high out 4Fh, AL ; delay (dummy I/O op.) in AL, 76h ; NVRAM data from index 18Eh sti ; allow interrupts cmp AL, 8 ; # of slots must be <= 8 jbe Success mov AL, 4 ; default to 4 slots Success: clc retn Failure: stc retn CheckMCA endp
Note: The PS/2 Model 50, 50Z, and 55SX, as well as the Industrial Models 7541/7542 (because both are based on a Model 50Z planar) lack the 2Kb "Extended CMOS RAM" that is used for a microchannel configuration of more than four adapters. The IBM 7552 "Gearbox" (BIOS Model FCh, Submodel 06h) has microchannel adapter interposers that can be installed, but implements the microchannel configuration by a different method from later designs, therefore it is excluded by this detection routine.
Last updated 7 March 2022