GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


archive:programming:ibmbios
        I B M   P C   B I O S   S e r v i c e   R o u t i n e s  
         Adapted from IBM Technical Reference Release 11/08/82
                           by Roy Smith

—————————————————————————- Vector Interrupt BIOS Entry Address Number Name label


00-03 0 Divide by Zero D11 04-07 1 Single Step D11 08-0B 2 Nonmaskable NMI_INT 0C-0F 3 Breakpoint D11 10-13 4 Overflow D11 14-17 5 Print Screen PRINT_SCREEN 18-1B 6 Reserved D11 1C-1F 7 Reserved D11

—- Hardware Service Routines ——————————————— 20-23 8 Time of Day Service TIMER_INT 24-27 9 Keyboard Service KB_INT 28-2B A Reserved D11 2C-2F B Communications Service COM2: D11 30-33 C Communications Service COM1: D11 34-37 D Disk Service D11 38-3B E Diskette Service DISK_INT 3C-3F F Printer Service D11


40-43 10 Video I/O VIDEO_IO 44-47 11 Equipment Check EQUIPMENT 48-4B 12 Memory MEMORY_SIZE_DETERMINE 4C-4F 13 Diskette/Disk I/O DISKETTE_IO 50-53 14 Communications RS232_IO 54-57 15 Cassette CASSETTE_IO 58-5B 16 Keyboard I/O KEYBOARD_IO 5C-5F 17 Printer PRINTER_IO 60-63 18 Resident BASIC F600:0000 64-67 19 Bootstrap BOOT_STRAP 68-6B 1A Time of Day TIME_OF_DAY 6C-6F 1B Keyboard Break DUMMY_RETURN 70-73 1C Timer Tick (18.2 per second) DUMMY_RETURN 74-77 1D Video Initialization VIDEO_PARMS 78-7B 1E Diskette Operating Parameters DISK_BASE 7C-7F 1F Video Graphics Characters 0 +————————————————————————–+

I B M P C B I O S I n t e r f a c e R o u t i n e s

+————————————————————————–+ Intr Func In Out Comments

#  (AH)  Regs      Regs

10 ————— Video I/O ——————————————— — 0 Set CRT Mode

         AL                   0=40 x 25 Black & white     1= 40 x 25 Color
                              2=80 x 25 Black & white     3= 80 x 25 Color
                              4=320 x 200 Medium resolution color
                              5=320 x 200 Medium resolution black & white
                              6=640 x 200 High resolution black & white

— 1 Set Cursor Type

         CH                   Start scan line (0-7 C/G, 0-14 Mono)
         CL                   End scan line (set start to 20H for no curs.)

— 2 Set Cursor Position

         DH,DL                Row, column (0,0 = Home)
         BH                   Video page

— 3 Read Cursor Position

         BH                   Video page
                   DH,DL      Row, column (0,0 = Home)

— 4 Read Light Pen

                   AH         0=Light pen not trig, 1=valid info in regs:
                   DH,DL      Row, column of character LP position
                   CH         Raster line
                   BX         Pixel column (0-319 med-res,0-619 hi-res)

— 5 Select Active Page

         AL                   New page (0-7 for 40x25,0-3 for 80x25)

— 6 Scroll Active Page Up — 7 Scroll Active Page Down

         AL                   Number of lines to scroll (0 if entire screen)
         CH,CL                Row, column of upper left corner
         DH,DL                Row, column of lower right corner
         BH                   Attribute to use in blanked lines

— 8 Read Attribute / Character at current cursor position

         BH                   Video page
                   AL         Character read
                   AH         Attribute of char (alpha modes only)

— 9 Write Attribute / Character at current cursor position

         BH                   Video page
         CX                   Count of characters to write
         AL                   Character to write
         BL                   Attribute to write

— A Write Character only at current cursor position

         BH                   Video page
         CX                   Count of characters to write
         AL                   Character to write

— B Set Color Palette

         BH                   Palette color ID being set
         BL                   Color value to be used with that color ID

— C Write Dot

         DX,CX                Row, column number
         AL                   Color value (If bit 7=1, value is OR'ed in)

— D Read Dot

         DX,CX                Row, column number
                   AL         Dot read

— E Write Teletype to Active Page

         AL                   Character to write
         BL                   Foreground color in graphics mode

— F Get Current Video State

                   AL         Mode currently set (see func. 0)
                   AH         Columns on screen

+————————————————————————–+

I B M P C B I O S I n t e r f a c e R o u t i n e s

+————————————————————————–+ Intr Func In Out Comments

#  (AH)  Regs      Regs

11 ————————————————-+ Intr Func In Out Comments

#  (AH)  Regs      Regs

11 ————— Equipment ———————————————

         None
                   AX         Equipment attached : Bits set as follows
                                    A H               A L
                              0 0 X 0 0 0 0 X   0 0 0 0 0 0 X 0
                              ---   - -----     --- --- ---   -
                               1    2   3        4   5   6    7
                           1  Number of printers
                           2  Game I/O
                           3  RS232 cards
                           4  Drives
                           5  Initial video mode
                           6  System board RAM
                           7  IPL from diskette

12 ————– Memory Size ———————————————

         None
                   AX         Number of bytes in Kbytes

13 ————- Diskette I/O ——————————————— — 0 Reset Diskette System

         None      None       Hard resets all diskette drives, recal req'd

— 1 Read Diskette Status

                   AL         Status byte : Bits set as follows
                              80        Attachment failed to respond
                              40        Seek operation failed
                              20        NEC controller failure
                              10        Bad CRC on diskette read
                              09        Attempt to DMA across a 64k bound
                              08        DMA overrun on operation
                              04        DMA overrun on operation
                              03        Write attempted on wrt prot disk
                              02        Address mark not found
                              01        Bad command passed to diskette I/O

— 2 Read the desired sectors into memory — 3 Write the desired sectors from memory — 4 Verify the desired sectors — 5 Format the desired track

         DL                   Drive number (0-3)
         DH                   Head number
         CH                   Track number
         CL                   Sector number
         AL                   Number of sectors (not used for format)
         ES:BX                Address of buffer (not used for verify)
                   AH         Status of operation (see above)
                   CY         1 if failed, 0 if ok

+————————————————————————–+

I B M P C B I O S I n t e r f a c e R o u t i n e s

+————————————————————————–+ Intr Func In Out Comments

#  (AH)  Regs      Regs

14 ————- RS-232 I/O ———————————————– — 0 Initialize Communications Port

         DX                   Interface card (0=COM1:, 1=COM2:)
         AL                   Parameters to set up : Bits are as follows
                                    A L
                              0 0 0 0 0 0 0 0 
                              --- - --- -----
                               1  2  3    4
                           1  Word length (10=7 bit, 11=8 bit)
                           2  Stopbits (0=1, 1=2)
                           3  Parity (00=none, gth (10=7 bit, 11=8 bit)
                           2  Stopbits (0=1, 1=2)
                           3  Parity (00=none, 01=odd, 11=even)
                           4  Baud (000=110, 001=150, 010=300, 011=600,
                                 100=1200, 101=2400, 110=4800, 111=9600)
                   AH         Set as in status (call 3)

— 1 Send Character to 100=1200, 101=2400, 110=4800, 111=9600)

                   AH         Set as in status (call 3)

— 1 Send Character to Communications Line

         DX                   Interface card (0=COM1:, 1=COM2:)
         AL                   Character to send
                   AH         Set as in status (call 3)

— 2 Recieve Character from Communications Line

         DX                   Interface card (0=COM1:, 1=COM2:)
                   AL         Character
                   AH         0 if no error, set as status if nonzero

— 3 Get Communications Status

         DX                   Interface card (0=COM1:, 1=COM2:)
                   AH         Line status : Bits set as follows
                              80        Time out
                              40        Transmit shift reg empty
                              20        Transmit holding reg empty
                              10        Break detect
                              08        Framing error
                              04        Parity error
                              02        Overrun error
                              01        Data ready
                   AL         Modem status : Bits set as follows
                              80        Recieved line signal detect
                              40        Ring indicator
                              20        Data set ready
                              10        Clear to send
                              08        Delta recieved line signal detect
                              04        Trailing edge ring detector
                              02        Delta data set ready
                              01        Delta clear to send 

15 ———– Cassette I/O —-( Obsolete )——————————- +————————————————————————–+

I B M P C B I O S I n t e r f a c e R o u t i n e s

+————————————————————————–+ Intr Func In Out Comments

#  (AH)  Regs      Regs

16 ———– Keyboard I/O ———————————————– — 0 Read Next Character

                   AL         Character struck
                   AH         Scan code of key

— 1 Check Typeahead Status

                   ZF         1 if no key available, 0 if key available
                   AL,AH      Character/Scan code if available. Keystroke
                              remains in buffer.

— 2 Get Current Shift Status

                   AL         Shift flag status : Bits set as follows
                              80        Insert state
                              40        Caps lock state
                              20        Num lock state
                              10        Scroll lock state
                              08        Alt shift is depressed
                              04        Ctl shift is depressed
                              02        Left shift is depressed
                              01        Right shift is depressed

17 ———– Printer I/O ———————————————— — 0 Print Character

         DX                   Printer to be used (0,1,2)
         AL                   Character to print
                   AH         Status set as in call 2

— 1 Initialize Printer Port

         DX                   Printer to be used (0,1,2)
                   AH         Status set as in call 2

— 2 Get Printer Status

         DX                   Printer to be used (0,1,2)
                   AH         Printer status : Bits set as follows
                              80        Not busy (ready?)
                              40        Acknowledge
                              20        Out of paper
                              10        Selected
                              08        I/O error
                              01        Time out
/data/webs/external/dokuwiki/data/pages/archive/programming/ibmbios.txt · Last modified: 1999/08/01 17:20 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki