BIOS Interrupt & Port I/O Routines Created with PowerBASIC for DOS 3.50 Copyright (C) 2002 by B‚la Valek E-mail: bvalek2@freemail.hu Version date: 10-20-2002 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Miscellaneous from BIOS, Port, and Memory. BIOS-Port, not Bio-Sport... :) Routines are for: (see them listed at the end of this document) ßßßßßßßßßßßßßßßßßßß - SVGA graphics (see speed tests below) - Bios data - Direct Disk I/O - Keyboard - Paralel printer - Rebooting - Timer The SUBs XYStr and XYStrBack use .FNT files. They are inefficient, but if you look at the speed tests, it does not matters here. However, they can handle DOS fonts of any vertical size, and 8 pixels wide. This unit was originally created for personal purposes, it has no version numbering. If you want the latest edition, get one with the latest version date. For more information on this unit or interrupts, refer to a BIOS manual. Files: ßßßßßßßß - BIOSPORT.PBU the unit - BIOSPORT.BAS the source - BIOSPORT.INC DECLAREs - MEMORY .INC memory data - EXAMPLE1.BAS memory data example - EXAMPLE2.BAS font example - EXAMPLE3.BAS drawing example. Displayed a (possibly) working sample source in a programming language that does not exists... - TEST .BAS screen mode speed test - COPYING GNU/GPL document - README .TXT this document - sample font files (.FNT) for XYStr and XYStrBack Screen modes speed test: ßßßßßßßßßßßßßßßßßßßßßßßßßß (* Mode number may be different in other videocards) (Mode 13h uses direct memory writing, much faster than BIOS) Fill screen with PutPixel Fill 320x200 box Mode Resolution Time (seconds) Time (seconds) Absolute Relative Absolute Relative *5Fh 640x480x256 15.05078 304.6038 3.130859 63.3636 *5Eh 1024x768x256 38.11719 771.4312 3.076172 62.25682 *5Ch 800x600x256 22.73828 460.1865 3.021484 61.15002 13h 320x200x256 0.049411 1 0.049411 1 12h 640x480x 16 12.08398 244.5605 2.525391 51.10989 11h 640x480x 2 11.91992 241.2402 2.525391 51.10989 10h 640x350x 16 8.623047 174.5167 2.470703 50.00309 0Eh 640x200x 16 4.777344 96.68583 2.416016 48.89631 0Dh 320x200x 16 2.361328 47.78952 2.361328 47.78952 06h 640x200x 2 3.021484 61.15002 1.539063 31.14818 05h 320x200x 16 1.482422 30.00186 1.482422 30.00186 04h 320x200x 16 1.427734 28.89506 1.427734 28.89506 Routines: ßßßßßßßßßßß ----------------------------------------------------------------------------- SetVideo - Set video mode SetCursor - Set cursor type PutCursor - Set cursor position GetCursor - Read cursor position GetPen - Read light pen ActivePage - Select active display page ScrollUp - Scroll active page up ScrollDown - Scroll active page down GetAtCursor - Read character and attribute at cursor PutAtCursorC - Write character and attribute at cursor PutAtCursor - Write character at current cursor SetColorPal - Set Color Palette PutPixel - Write graphics pixel at coordinate GetPixel - Read graphics pixel at coordinate PutChar - Write text in teletype mode GetVideo - Get current video state SetDAC - Set DAC color register PutStr - Write String ----------------------------------------------------------------------------- PutLine - Draw line Box - Draw box FillBox - Draw filled box Ellipse - Draw ellipse FillEllipse - Draw filled ellipse Teletype - Write string XYStr - Write string at coordinate using fonts XYStrBack - Write string with background color ----------------------------------------------------------------------------- SetPalette - Set 256 color palette Reboot - Reboot PC in DOS or close command line in Windows WaitFrame - Wait for video enabled signal ----------------------------------------------------------------------------- Equipment - Equipment determination Memory - Memory size determination ----------------------------------------------------------------------------- ResetDisk - Reset Disk System GetDisk - Get Disk Status ReadSector - Read Disk Sectors WriteSector - Write Disk Sectors VerifySector - Verify Disk Sectors ----------------------------------------------------------------------------- WaitKey - Wait for keystroke and read GetKey - Get keystroke status GetShift - Get shift status ----------------------------------------------------------------------------- LPrintChar - Print character InitPrinter - Initialize printer port PrinterStatus - Read printer port status ----------------------------------------------------------------------------- Bootstrap - Bootstrap loader ----------------------------------------------------------------------------- ReadClock - Read system clock counter SetClock - Set system clock counter -----------------------------------------------------------------------------