;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; SYSROUT33 - Get Resource Info on a PCI Device ; IN: AL = 33D (?H) ; BX = PCI(Sub)Class ; CL = Index in the list ; OUT:AL = 0 If Ok, > 0 If Failed ; BL = IRQ Used ; BH = (INT) Used ; CL = I/O Resources Used ; CH = Memory Resources Used ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; SYSROUT33_CODE DW 0 ; SYSROUT33_FOUND DB 0 ; SYSROUT33_FOUNDOK DB 0 ; SYSROUT33_SCANINDEX DB 0 ; SYSROUT33_IRQ DB 0 ; SYSROUT33_INT DB 0 ; SYSROUT33_IOS DB 0 ; SYSROUT33_MEM DB 0 SYSROUT33: POP EAX ; ebp used instead of bp ; push bp ; mov bp,sp ; sub sp,12 push ebp mov ebp, esp sub esp, 16 ; %define SYSROUT33_CODE bp-2 ; %define SYSROUT33_FOUND bp-3 ; %define SYSROUT33_FOUNDOK bp-4 ; %define SYSROUT33_SCANINDEX bp-5 ; %define SYSROUT33_IOINDEX bp-6 ; %define SYSROUT33_IRQ bp-7 ; %define SYSROUT33_INT bp-8 ; %define SYSROUT33_IOS bp-9 ; %define SYSROUT33_MEM bp-10 %define SYSROUT33_CODE ebp-2 %define SYSROUT33_FOUND ebp-3 %define SYSROUT33_FOUNDOK ebp-4 %define SYSROUT33_SCANINDEX ebp-5 %define SYSROUT33_IOINDEX ebp-6 %define SYSROUT33_IRQ ebp-7 %define SYSROUT33_INT ebp-8 %define SYSROUT33_IOS ebp-9 %define SYSROUT33_MEM ebp-10 PUSHAD MOV AL, 0FFH MOV [SYSROUT33_FOUNDOK], AL MOV [SYSROUT33_SCANINDEX], CL MOV [SYSROUT33_CODE], BX XOR AL, AL MOV [SYSROUT33_FOUND], AL MOV ESI, PCILIST SCANNEXTPCIDEVICE2: MOV AX, [DS:ESI] XCHG AL, AH CMP AX, 0FFFFH JE PCIDEVICESCANDONE2 CMP AX, [SYSROUT33_CODE] JNE PCINOTTHISDEVICE2 MOV AL, [SYSROUT33_FOUND] CMP AL, [SYSROUT33_SCANINDEX] JNE PCINOTTHISDEVICEINDEX2 MOV AL, [DS:ESI+16] MOV [SYSROUT33_IRQ], AL ; IRQ MOV AL, [DS:ESI+17] MOV [SYSROUT33_INT], AL ; INTERRUPT LINE ?! MOV AL, [DS:ESI+18] MOV [SYSROUT33_IOS], AL ; I/O ADDRESSES MOV AL, [DS:ESI+19] MOV [SYSROUT33_MEM], AL ; MEMORY ADDRESSES XOR AL, AL MOV [SYSROUT33_FOUNDOK], AL JMP PCIDEVICESCANDONE2 PCINOTTHISDEVICEINDEX2: MOV AL, [SYSROUT33_FOUND] INC AL MOV [SYSROUT33_FOUND], AL PCINOTTHISDEVICE2: ADD ESI, 64 JMP SCANNEXTPCIDEVICE2 PCIDEVICESCANDONE2: POPAD MOV AL, [SYSROUT33_FOUNDOK] MOV BL, [SYSROUT33_IRQ] MOV BH, [SYSROUT33_INT] MOV CL, [SYSROUT33_IOS] MOV CH, [SYSROUT33_MEM] ; mov sp,bp ; pop bp mov esp, ebp pop ebp ; POP DS POP FS IRETD