IBM 500 manual BIOS Interrupts

Models: 500

1 63
Download 63 pages 17.46 Kb
Page 22
Image 22
3.4BIOS Interrupts

SurePOS 500 4846-XX5 Technical Reference

Thermal management

3.4BIOS Interrupts

This section lists the supported interrupt in DOS. Refer to the IBM Personal System/2 and Personal Computer BIOS Interface Technical Reference for additional information.

Int 02h – NMI

Int 05h - Print Screen

Memory Location 50:00h.

This is a byte memory location. A value of 00h indicates that the print screen successfully completed or was not invoked. A value of 01h indicates that a print screen is in progress and subsequent print screens are ignored. A value of FFh indicates that the print screen terminated due to an error.

Int 08h - System Timer

This interrupt modifies memory locations 40:6Ch, 40:70h, 40:40h, and 40:3Fh. It also invokes interrupt 1Ch.

Memory Location 40:6Ch

This dword is incremented every Int 08h tick or 18.2 times per second. The memory location is reset to 00000000h when a 24-hour duration has elapsed.

Memory Location 40:70h

This byte has a value of 00h until a 24 hour duration has elapsed. It is then set to 01h. The byte must be manually reset back to 00h.

Memory Location 40:40h

This byte is decremented every interrupt 08h tick or 18.2 times per second. If the timer goes to 00h, the floppy motor is turned off and resets the floppy flags in memory location 40:3Fh.

Int 09h – Keyboard

Called on every make or break keystroke. The 32-byte buffer starting at 40:1Eh is updated at the address pointed by the keyboard buffer tail pointer. The keyboard buffer tail pointer at memory location 40:1Ch is incremented by 2 unless it extends past the keyboard buffer, in which case it wraps. When a key is read, the keyboard buffer head pointer at memory location 40:1Ah is incremented by 2 unless it extends pass the keyboard buffer, in which case it wraps. Special keys such as CTRL, ALT, or Shift update the status at memory location 40:17h, 40:18h and 40:96h. A CTRL-ALT-DELETE key sequence sets the reset flag at memory location 40:72h to 1234h and jumps to the reset vector.

Pressing the Pause key causes the interrupt handler to loop until a valid ASCII keystroke occurs. Pressing the Print Screen key causes an Interrupt 05h to be issued.

A CTRL-BREAK sequence causes Interrupt 1Bh to be issued.

Pressing the SysReq key causes Interrupt 15h Function 85h (System Request Key Pressed) to be issued.

Any make keystroke causes Interrupt 15h Function 91h, Subfunction 02h (Interrupt complete from Keyboard) to be issued.

After any scan code is read from I/O port 60h and Int 15h, Function 4Fh (Keyboard Intercept) is issued. An EOI is issued upon returning from the Keyboard Intercept.

Memory Location 40:1Eh

This location is the start of a 32-byte keyboard buffer.

Memory Location 40:1Ah

This word points to the next character in the keyboard buffer.

Memory Location 40:1Ch

This word points to the last character in the keyboard buffer. If the value equals the value in memory location 40:1Ah, the keyboard buffer is empty. If the value is two bytes from the contents of memory location 40:1Ah, the keyboard buffer is full.

Memory Location 40:17h

This byte contains the keyboard status byte.

Memory Location 40:18h

This byte contains the extended keyboard status byte.

Page 22 of 63

Page 22
Image 22
IBM 500 manual BIOS Interrupts