File: h_bios.e
Created: 22th/Dec/2003
Author: Hayden McKay
E-Mail: hmck1@dodo.com.au


h_bios.e

Function Descriptions:
ext_segment: Returns segment of extended BIOS area.
equipment: Returns POST equipment word.
mem_size: Returns main memmory size in KB.
keyb_flags: Returns lock & modifier key states.
keyb_special: Returns special key states.
adv_keyb_flags: Returns advanced keyboard flags.
adv_keyb_flags2: Returns advanced keyboard flags & LED states.
keyb_head_offset: Returns offset in segment 40 of first key in keyboard buffer.
keyb_tail_offset: Returns offset in segment 40 of last key in keyboard buffer.
keyb_start_offset: Returns offset in segment 40 of the start of the keyboard buffer.
keyb_end_offset: Returns offset in segment 40 of the end of the keyboard buffer.
keyb_ctrl_c: Returns high bit set id ctrl break occurs.
disk_return: Returns int 13s return status byte.
disk_0_media: Returns media type of diskette 0.
disk_1_media: Returns media type of diskette 1.
hdd_return: Returns status of last hdd operation.
hdd_number: Returns number of HDDs n.b. some BIOSes include CD-ROMS.
video_mode: Returns current video mode.
video_colums: Returns numberof colums.
video_page: Returns number of bytes in a page n.b. not always exact.
video_mem_offset: Returns offset of current page to video segment.
video_current_page: Returns current page number.
video_base_port: Returns base port number for monitor.
video_last_color: Returns info on last color used in text mode.
video_rows: Returns number of rows (EGA+).
video_char_hight: Returns scan line hight of a character (EGA+).
video_options: Returns options for video card (EGA+).
video_control: Returns pointer to video control block (EGA+).
serial_1_addr: Returns address of serial port 1.
serial_2_addr: Returns address of serial port 2.
serial_3_addr: Returns address of serial port 3.
serial_4_addr: Returns address of serial port 4.
parallel_1_addr: Returns address of parallel port 1.
parallel_2_addr: Returns address of parallel port 2.
parallel_3_addr: Returns address of parallel port 3.
serial_number: Returns number of serial ports.
parallel_number: Returns number of parallel ports.
print_screen: Returns status of print screen.

Licence & Disclaimer


Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to not alter it and redistribute it
freely in any way, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software or remove the original
authors' names.
2. Altered source versions are not permitted as such, and must not
be misrepresented as being the original software.
3. All software distributions, without modifications, must be
distributed under this license. And any later versions, in which case,
you should replace this notice with an appropriate one.
If this software is distributed as part of a larger product,
this item does not apply to the rest of the product.
4. If you use this software in a product, an acknowledgment in the
product documentation is required. If the software for the product
is not freely distributed, you must include information on how to
freely obtain the original software.

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

If you want to distribute this software in a way not allowed by this
license, or distribute the software under different license terms, contact
the authors for permission.


Functions

Note: when using this library especialy in conjunction with the wait_key() command, events are'nt always trapped or reported properly.
The way arround this is to use the equal command,
Ex:
if equal(16,keyb_flags()) then
....Some code to do.
end if

integer = ext_segment()
Returns segment of extended BIOS area.



integer = equipment()
Returns POST equipment word.



integer = mem_size()
Returns main memmory size in KB.



integer = keyb_flags()
Returns lock & modifier key states.



integer = keyb_special()
Returns special key states.



integer = adv_keyb_flags()
Returns advanced keyboard flags.



integer = adv_keyb_flags2()
Returns advanced keyboard flags & LED states.



integer = keyb_head_offset()
Returns offset in segment 40 of first key in keyboard buffer.



integer= keyb_tail_offset()
Returns offset in segment 40 of last key in keyboard buffer.



integer = keyb_start_offset()
Returns offset in segment 40 of the start of the keyboard buffer.



integer = keyb_end_offset()
Returns offset in segment 40 of the end of the keyboard buffer.



integer = keyb_ctrl_c()
Returns high bit set id ctrl break occurs.



integer = disk_return()
Returns int 13s return status byte.



integer = disk_0_media()
Returns media type of diskette 0.



integer = disk_1_media()
Returns media type of diskette 1.



integer = hdd_return()
Returns status of last hdd operation.



integer = hdd_number()
Returns number of HDDs n.b. some BIOSes include CD-ROMS.



integer = video_mode()
Returns current video mode. n.b. sometimes #FF if SVGA?



integer = video_colums()
Returns number of colums n.b. sometimes #50 if 80 colums.



integer = video_page()
Returns number of bytes in a page n.b. not always exact.



integer = video_mem_offset()
Returns offset of current page to video segment.



integer= video_current_page()
Returns current page number.



integer = video_base_port()
Returns base port number for monitor.



integer = video_last_color()
Returns info on last color used in text mode.



integer = video_rows()
Returns number of rows (EGA+).



integer = video_char_hight()
Returns scan line hight of a character (EGA+).



integer = video_options()
Returns options for video card (EGA+).



integer = video_control()
Returns pointer to video control block (EGA+).



integer = serial_1_addr()
Returns address of serial port 1.



integer = serial_2_addr()
Returns address of serial port 2.



integer = serial_3_addr()
Returns address of serial port 3.



integer = serial_4_addr()
Returns address of serial port 4.



integer = parallel_1_addr()
Returns address of parallel port 1.



integer= parallel_2_addr()
Returns address of parallel port 2.



integer = parallel_3_addr()
Returns address of parallel port 3.



integer = serial_number()
Returns number of serial ports.



integer = parallel_number()
Returns number of parallel ports.



integer = print_screen()
Returns status of print screen.