home *** CD-ROM | disk | FTP | other *** search
- procedure page_07;
-
- const
- mouseint = $33;
-
- var
- xbyte : byte;
- xword1 : word;
- xword2 : word;
-
- begin
- caption2('Keyboard');
- writeln;
- caption3('BIOS support for enhanced keyboard');
- with regs do
- begin
- AH:=$02;
- intr($16, regs);
- xbyte:=AL;
- AX:=$1200 + xbyte xor $FF;
- intr($16, regs);
- if AL = xbyte then
- begin
- write('yes');
- caption3('Enhanced keyboard present');
- yesorno(mem[BIOSdseg : $0096] and $10 = $10)
- end
- else
- writeln('no');
- (* PC Magazine 6:15 p.378 *)
- AH:=$02;
- intr($16, regs);
- offoron('Insert ', AL and $80 = $80);
- offoron('Caps Lock ', AL and $40 = $40);
- offoron('Num Lock ', AL and $20 = $20);
- offoron('Scroll Lock', AL and $10 = $10)
- end;
- caption3('Buffer start');
- xword1:=memw[BIOSdseg : $0080];
- segofs(BIOSdseg, xword1);
- caption3(' end');
- xword2:=memw[BIOSdseg : $0082];
- segofs(BIOSdseg, xword2);
- caption3(' size (keystrokes)');
- writeln((xword2 - xword1) shr 1 - 1);
- caption2('Internal modem/serial printer');
- yesorno(equip and $2000 = $2000);
- caption2('Game port');
- yesorno(equip and $1000 = $1000);
- caption2('Mouse');
- with regs do
- begin
- AX:=$0000;
- intr(mouseint, regs);
- if AX = $FFFF then
- begin
- writeln('yes');
- caption3('Buttons');
- writeln(BX);
- caption3('EGA register support');
- AH:=$FA;
- BX:=0;
- Intr($10, regs);
- if BX <> 0 then
- begin
- Write('yes');
- caption3('version');
- Writeln(Mem[ES:BX], Chr(country[9]), Mem[ES:BX+1])
- end
- else
- Writeln('no');
- caption3('Save state buffer size (bytes)');
- AX:=$0015;
- intr(mouseint, regs);
- writeln(BX);
- caption3('Mickeys/pixel (horizontal)');
- AX:=$001B;
- intr(mouseint, regs);
- write(BX : 5);
- caption3(' (vertical)');
- writeln(CX : 5);
- caption3('Double speed threshold');
- writeln(DX);
- caption3('Current display page');
- AX:=$001E;
- intr(mouseint, regs);
- writeln(BX);
- caption3('Language');
- AX:=$0023;
- intr(mouseint, regs);
- if AX < $FFFF then
- case BX of
- 0: Writeln('English');
- 1: Writeln('French');
- 2: Writeln('Dutch');
- 3: Writeln('German');
- 4: Writeln('Swedish');
- 5: Writeln('Finnish');
- 6: Writeln('Spanish');
- 7: Writeln('Portuguese');
- 8: Writeln('Italian')
- else
- unknown('language', BX, 4)
- end {case BX}
- else
- writeln('N/A');
- caption3('Driver version');
- AX:=$0024;
- intr(mouseint, regs);
- if AX < $FFFF then
- begin
- write(BH, Chr(country[9]));
- zeropad(BL);
- writeln;
- caption3('Type');
- case CH of
- $01 : writeln('bus');
- $02 : writeln('serial');
- $03 : writeln('InPort');
- $04 : writeln('PS/2');
- $05 : writeln('HP')
- else
- unknown('mouse', CH, 2)
- end;
- caption3('Interrupt');
- case CL of
- $00 : writeln('PS/2');
- $02..$05, $07 : writeln('IRQ', CL)
- else
- unknown('interrupt', CL, 2)
- end
- end
- else
- dontknow
- end
- else
- writeln('no')
- end
- end;