BIOS Interrupt & Port I/O Routines      Created with PowerBASIC for DOS 3.50
Copyright (C) 2002 by Bla 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
-----------------------------------------------------------------------------
