SAU
                                                                        |                                                          |
                1       IBM BIOS QUICK REFERENCE SUMMARY                |  2                                                       |
                              by DAVID E. POWELL                        |                                                          |
                             All values are in hex                      |           Ŀ                |
                                                                        |            INT 09 - KEYBOARD INTERRUPT                 |
                           Ŀ                           |                           |
                            BIOS DATA AREA                            |                                                          |
                                                      |  INPUT PARAMETERS:   NONE                                |
                                                                        | OUTPUT PARAMETERS:   NONE                                |
               ADDR.  SIZE            DESCRIPTION                       |            MEMORY:                                       |
                                                                        |                                                          |
               40:00  WORD    COM1 PORT ADDRESS                         |  Ŀ                                       |
               40:02  WORD    COM2 PORT ADDRESS                         |  76543210 40:17                                 |
               40:04  WORD    COM3 PORT ADDRESS                         |                                         |
               40:06  WORD    COM4 PORT ADDRESS                         |                                                  |
               40:08  WORD    LPT1 PORT ADDRESS                         |           RIGHT SHIFT KEY DEPRESSED         |
               40:0A  WORD    LPT2 PORT ADDRESS                         |          LEFT SHIFT KEY DEPRESSED          |
               40:0C  WORD    LPT3 PORT ADDRESS                         |         CONTROL SHIFT KEY DEPRESSED       |
               40:0E  WORD    LPT4 PORT ADDRESS                         |        ALTERNATE SHIFT KEY DEPRESSED     |
               40:10  WORD    EQUIPMENT FLAG (SEE INT 11)               |       SCROLL LOCK STATE HAS BEEN TOGGLED|
               40:13  WORD    MEMORY SIZE IN KBYTES                     |      NUM LOCK STATE HAS BEEN TOGGLED   |
               40:17  BYTE    KEYBOARD FLAG BYTE 0 (SEE INT 9)          |     CAPS LOCK STATE HAS BEEN TOGGLED  |
               40:18  BYTE    KEYBOARD FLAG BYTE 1 (SEE INT 9)          |    INSERT STATE IS ACTIVE            |
               40:19  BYTE    STORAGE FOR ALTERNATE KEYPAD ENTRY        |                                                          |
               40:1A  WORD    POINTER TO KEYBOARD BUFFER HEAD           |  Ŀ                                       |
               40:1C  WORD    POINTER TO KEYBOARD BUFFER TAIL           |  76543210 40:18                                 |
               40:1E  20BYTES KEYBOARD BUFFER                           |                                         |
               40:3E  BYTE    DRIVE RECALIBRATION STATUS                |                                                  |
               40:3F  BYTE    MOTOR STATUS                              |           LEFT CONTROL KEY DEPRESSED        |
               40:3E  BYTE    DRIVE RECALIBRATION STATUS                |          LEFT ALT SHIFT KEY DEPRESSED      |
               40:3F  BYTE    MOTOR STATUS                              |         SYSTEM KEY DEPRESSED AND HELD     |
               40:40  BYTE    MOTOR OFF COUNTER (DECR. BY TIMER)        |        SUSPEND KEY HAS BEEN TOGGLED      |
               40:41  BYTE    STATUS OF LAST DISKETTE OPERATION         |       SCROLL LOCK KEY IS DEPRESSED      |
               40:42  7 BYTES NEC STATUS                                |      NUM LOCK KEY IS DEPRESSED         |
               40:49  BYTE    CURRENT CRT MODE                          |     CAPS LOCK KEY IS DEPRESSED        |
               40:4A  WORD    NUMBER OF COLUMNS ON SCREEN               |    INSERT KEY IS DEPRESSED           |
               40:4C  WORD    REGEN BUFFER LENGTH IN BYTES              |                                                          |
               40:4E  WORD    STARTING OFFSET OF REGEN BUFFER           |  Ŀ                                       |
               40:50  8 WORDS CURSOR POSITION PAGES 1-8                 |  76543210 40:96                                 |
               40:60  BYTE    END LINE FOR CURSOR                       |                                         |
               40:61  BYTE    START LINE FOR CURSOR                     |                                                  |
               40:62  BYTE    CURRENT PAGE BEING DISPLAYED              |           LAST CODE WAS THE E1 HIDDEN CODE  |
               40:63  WORD    BASE PORT ADDRESS FOR ACTIVE DISPLAY      |          LAST CODE WAS THE E0 HIDDEN CODE  |
               40:65  BYTE    CURRENT SETTING OF THE 3X8 REGISTER       |         RIGHT CTL KEY DOWN                |
               40:66  BYTE    CURRENT PALETTE SETTING COLOR CARD        |        RIGHT ALT KEY DOWN                |
               40:67  DWORD   TEMP. STORAGE FOR SS:SP DURING SHUTDOWN   |        ALT GRAPHICS KEY DOWN (WT ONLY)   |
               40:6C  DWORD   TIMER COUNTER LOW WORD, HIGH WORD         |       ENHANCED KEYBOARD INSTALLED       |
               40:70  BYTE    24 HOUR TIMER OVERFLOW                    |      FORCE NUM LOCK IF RD ID & KBX     |
               40:71  BYTE    BIOS BREAK FLAG (BIT 7 = BREAK KEY HIT)   |     LAST CHAR WAS FIRST ID CHAR       |
               40:72  WORD    RESET FLAG (1234 = SOFT RESET)            |    DOING A READ ID (MUST BE BIT0)    |
               40:74  BYTE    STATUS OF LAST HARD DISK OPERATION        |                                                          |
               40:75  BYTE    NUMBER OF HARD FILES ATTACHED             |  Ŀ                                       |
               40:77  BYTE    PORT OFFSET TO CURRENT HF ADAPTER         |  76543210 40:97                                 |
               40:78  4 BYTES TIMEOUT VALUE FOR LPT1,LPT2,LPT3,LPT4     |                                         |
               40:7C  4 BYTES TIMEOUT VALUE FOR COM1,COM2,COM3,COM4     |                                                  |
               40:80  WORD    KEYBOARD BUFFER START OFFSET (SEG=40)     |           SCROLL LOCK INDICATOR             |
               40:82  WORD    KEYBOARD BUFFER END OFFSET (SEG=40H)      |          NUM LOCK INDICATOR                |
               40:84  BYTE    ROWS ON THE SCREEN (EGA ONLY)             |         CAPS LOCK INDICATOR               |
               40:85  WORD    BYTES PER CHARACTER (EGA ONLY)            |        CIRCUS SYSTEM INDICATOR           |
               40:87  BYTE    MODE OPTIONS (EGA ONLY)                   |       ACK RECEIVED                      |
               40:88  BYTE    FEATURE BIT SWITCHES (EGA ONLY)           |      RESEND RECEIVED FLAG              |
               40:8B  BYTE    LAST DISKETTE DATA RATE SELECTED          |     MODE INDICATOR UPDATE             |
               40:8C  BYTE    HARD FILE STATUS RETURNED BY CONTROLLER   |    KEYBOARD TRANSMIT ERROR FLAG      |
               40:8D  BYTE    HARD FILE ERROR RETURNED BY CONTROLLER    |                                                          |
               40:8E  BYTE    HARD FILE INTERRUPT (BIT 7=WORKING INT)   |                                                          |
               40:90  4 BYTES MEDIA STATE DRIVE 0,1,2,3                 |  40:1E = KEYBOARD BUFFER (20H BYTES)                     |
               40:94  2 BYTES TRACK CURRENTLY SEEKED TO DRIVE 0,1       |  40:1C = BUFFER TAIL POINTER                             |
               40:96  BYTE    KEYBOARD FLAG BYTE 3 (SEE INT 9)          |  40:72 = 1234H IF CTL-ALT-DEL PRESSED ON KEYBOARD        |
               40:97  BYTE    KEYBOARD FLAG BYTE 2 (SEE INT 9)          |    INT 05 INVOKED IF PRINT SCREEN KEY PRESSED.           |
               40:98  DWORD   POINTER TO USERS WAIT FLAG                |    INT 1B INVOKED IF CTL-BREAK KEY SEQUENCE PRESSED.     |
               40:9C  DWORD   USERS TIMEOUT VALUE IN MICROSECONDS       |    INT 15, AH=85 INVOKED ON PC/AT AND AFTER IF SYSTEM    |
               40:A0  BYTE    RTC WAIT FUNCTION IN USE                  |       REQUEST KEY IS PRESSED.                            |
               40:A1  BYTE    LANA DMA CHANNEL FLAGS                    |    INT 15, AH=4F INVOKED ON MACHINES AFTER PC/AT WITH    |
               40:A2  2 BYTES STATUS LANA 0,1                           |       AL = SCAN CODE                                     |
               40:A4  DWORD   SAVED HARDFILE INTERRUPT VECTOR           |                                                          |
               40:A8  DWORD   EGA POINTER TO PARAMETER TABLE            |                 Ŀ                  |
               40:B4  BYTE    KEYBOARD NMI CONTROL FLAGS (CONVERTIBLE)  |                  INT 10 - VIDEO BIOS                   |
               40:B5  DWORD   KEYBOARD BREAK PENDING FLAGS (CONVERTIBLE)|                                   |
               40:B9  BYTE    PORT 60 SINGLE BYTE QUEUE (CONVERTIBLE)   |                                                          |
               40:BA  BYTE    SCAN CODE OF LAST KEY (CONVERTIBLE)       |  INPUT PARAMETERS:                                       |
               40:BB  BYTE    POINTER TO NMI BUFFER HEAD (CONVERTIBLE)  |                                                          |
               40:BC  BYTE    POINTER TO NMI BUFFER TAIL (CONVERTIBLE)  |  AH = 00 - SET VIDEO MODE                                |
               40:BD  16BYTES NMI SCAN CODE BUFFER (CONVERTIBLE)        |                                                          |
               40:CE  WORD    DAY COUNTER (CONVERTIBLE AND AFTER)       |         AL = 00 - 40x25 ALPHANUMERIC B/W                 |
               50:00  BYTE    PRINT SCREEN STATUS BYTE                  |            = 01 - 40x25 ALPHANUMERIC COLOR               |
                                                                        |            = 02 - 80x25 ALPHANUMERIC B/W                 |
                           Ŀ                    |            = 03 - 80x25 ALPHANUMERIC COLOR               |
                            INT 05 - PRINT SCREEN                     |            = 04 - 320x200 COLOR GRAPHICS                 |
                                               |            = 05 - 320x200 B/W GRAPHICS                   |
                                                                        |            = 06 - 640x200 B/W GRAPHICS                   |
                                                                        |            = 07 - 80x25 MONOCHROME ALPHA                 |
                INPUT PARAMETERS:   NONE                                |            = 08 - 160x200 COLOR GRAPHICS (PCJR)          |
               OUTPUT PARAMETERS:   NONE                                |            = 09 - 320x200 COLOR GRAPHICS (PCJR)          |
                          MEMORY:                                       |            = 0A - 640x200 COLOR GRAPHICS (PCJR)          |
                                                                        |            = 0D - 320x200 MONOCHROME GRAPHICS (EGA +)    |
               50:0 = 00 - PRINT SCREEN HAS NOT BEEN CALLED, OR         |            = 0E - 640x200 MONOCHROME GRAPHICS (EGA +)    |
                           UPON RETURN FROM A CALL THERE WERE NO        |            = 0F - 640x350 MONOCHROME GRAPHICS (EGA +)    |
                           ERRORS.                                      |            = 10 - 640x350 MONOCHROME HI-RES (EGA +)      |
                                                                        |                                                          |
                    = 01 - PRINT SCREEN IS ALREADY IN PROGRESS.         |  AH = 01 - SET CURSOR TYPE                               |
                                                                        |                                                          |
                    = FF - ERROR ENCOUNTERED DURING PRINTING.           |         CH = TOP LINE FOR CURSOR (BITS 4-0)              |
                                                                        |         CL = BOTTOM LINE FOR CURSOR (BITS 4-0)           |
                                                                        |                                                          |
                           Ŀ                    |  AH = 02 - SET CURSOR POSITION                           |
                            INT 08 - SYSTEM TIMER                     |                                                          |
                                               |         DH = ROW                                         |
                                                                        |         DL = COLUMN                                      |
                INPUT PARAMETERS:   NONE                                |         BH = PAGE NUMBER (0 FOR GRAPHICS MODES)          |
               OUTPUT PARAMETERS:   NONE                                |                                                          |
                          MEMORY:                                       |  AH = 03 - READ CURSOR POSITION                          |
                                                                        |  ON EXIT:                                                |
               40:6C = NUMBER OF INTERRUPTS SINCE POWER ON (4 BYTES)    |         DH = ROW #                                       |
               40:70 = NUMBER OF DAYS SINCE POWER ON (1 BYTE)           |         DL = COLUMN #                                    |
               40:67 = DAY COUNTER ON ALL PRODUCTS AFTER PC/AT          |         CH = TOP LINE FOR CURSOR (BITS 4-0)              |
               40:40 = MOTOR CONTROL COUNT - GETS DECREMENTED           |         CL = BOTTOM LINE FOR CURSOR (BITS 4-0)           |
                       AND SHUTS OFF DISKETTE MOTOR IF ZERO             |                                                          |
                                                                        |                                                          |
               INT 1C INVOKED AS A USER INTERRUPT.                      |                                CONTINUED ON NEXT PANEL   |
                                                                        |                                                          |


                                                                        |                                                          |
                3                                                       | 4                                                        |
               INT 10 - VIDEO BIOS (CONTINUED)                          | INT 10 - VIDEO BIOS AH = 11 (CONTINUED)                  |
                                                                        |                                                          |
               AH = 04 - READ LIGHT PEN POSITION                        |           AL = 02 - ROM 8X8 DOUBLE DOT                   |
               ON EXIT:  AH = 0 IF LIGHT PEN SWITCH IS NOT TRIGGERED    |                     BL = BLOCK TO LOAD                   |
                         AH = 1 IF REGISTERS HAVE VALID VALUES          |                                                          |
                              DH = ROW                                  |           AL = 03 - SET BLOCK SPECIFIER                  |
                              DL = COLUMN                               |                     BL = CHARACTER GEN BLOCK SPECIFIER   |
                              CH = RASTER LINE (0-199)                  |                                                          |
                              CX = RASTER LINE ON NEW GRAPHICS MODES    |           AL = 10 - USER ALPHA LOAD                      |
                              BX = PIXEL COLUMN (0-319,639)             |                     ES:BP = POINTER TO USER TABLE        |
                                                                        |                     CX = COUNT TO STORE                  |
               AH = 05 - SELECT ACTIVE DISPLAY PAGE                     |                     DX = CHARACTER OFFSET INTO TABLE     |
                         AL = NEW PAGE INFO, SEE AH=0 FOR PAGE INFO     |                     BH = NUMBER OF BYTES PER CHARACTER   |
               FOR PCjr ONLY:                                           |                     BL = BLOCK TO LOAD                   |
                         AL = 80 TO READ CRT/CPU PAGE REGISTERS         |                                                          |
                            = 81 TO SET CPU PAGE REGISTER               |           AL = 11 - ROM MONOCHROME SET                   |
                              BL = CPU PAGE REGISTER                    |                     BL = BLOCK TO LOAD                   |
                            = 82 TO SET CRT PAGE REGISTER               |                                                          |
                              BH = CRT PAGE REGISTER                    |           AL = 12 - ROM 8X8 DOUBLE DOT                   |
                            = 83 TO SET CPU AND PAGE REGISTERS          |                     BL = BLOCK TO LOAD                   |
                              BH = CRT PAGE REGISTER                    |                                                          |
                              BL = CPU PAGE REGISTER                    |           AL = 20 - USER GRAPHICS CHARS INT 01FH (8X8)   |
               ON EXIT:                                                 |                     ES:BP = POINTER TO USER TABLE        |
                              BH = CRT PAGE REGISTER                    |                                                          |
                              BL = CPU PAGE REGISTER                    |           AL = 21 - USER GRAPHICS CHARS                  |
                                                                        |                     ES:BP = POINTER TO USER TABLE        |
               AH = 06 - SCROLL ACTIVE PAGE UP                          |                     CX = BYTES PER CHARACTER             |
                         AL = NUMBER OF LINES, INPUT LINES BLANKED      |                     BL = ROW SPECIFIER                   |
                         CX = ROW,COLUMN OF UPPER LEFT CORNER OF SCROLL |                          BL = 0 - USER SPECIFIED         |
                         DX = ROW,COLUMN OF LOWER RIGHT CORNER OF SCROLL|                                   DL = ROWS              |
                         BH = ATTRIBUTE TO BE USED ON BLANK LINE        |                          BL = 1 - 0E ROWS                |
                                                                        |                          BL = 2 - 19 ROWS                |
               AH = 07 - SCROLL ACTIVE PAGE DOWN                        |                          BL = 3 - 2B ROWS                |
                         AL = NUMBER OF LINES, INPUT LINES BLANKED      |                                                          |
                         CX = ROW,COLUMN OF UPPER LEFT CORNER OF SCROLL |           AL = 22 - ROM 8X14 SET                         |
                         DX = ROW,COLUMN OF LOWER RIGHT CORNER OF SCROLL|                     BL = ROW SPECIFIER                   |
                         BH = ATTRIBUTE TO BE USED ON BLANK LINE        |                                                          |
                                                                        |           AL = 23 - ROM 8X8 DOUBLE DOT                   |
               AH = 08 - READ ATTRIBUTE/CHARACTER AT CURSOR POSITION    |                     BL = ROW SPECIFIER                   |
                         BH = DISPLAY PAGE                              |                                                          |
               ON EXIT:                                                 |           AL = 30 - RETURN INFORMATION                   |
                         AL = CHARACTER AT CURRENT CURSOR POSITION      |                     ES:BP = POINTER TO TABLE             |
                         AH = ATTRIBUTE OF CHARACTER (ALPHA MODES ONLY) |                     DL = ROWS                            |
                                                                        |                     CX = POINTS                          |
               AH = 09 - WRITE ATTRIBUTE/CHARACTER AT CURSOR POSITION   |                     BH = INFORMATION DESIRED:            |
                         BH = DISPLAY PAGE                              |                        = 0 - INT 1F POINTER              |
                         CX = COUNT OF CHARACTERS TO WRITE              |                        = 1 - INT 44 POINTER              |
                         AL = CHARACTER TO WRITE                        |                        = 2 - ROM 8X14 POINTER            |
                         BL = ATTRIBUTE/COLOR OF CHARACTER. IF          |                        = 3 - ROM DOUBLE DOT POINTER      |
                              BIT 7=1 IN GRAPHICS MODE THEN XOR         |                        = 4 - ROM DOUBLE DOT POINTER (TOP)|
                              THE COLOR VALUE WITH ITS CURRENT VALUE    |                        = 5 - ROM ALPHA ALTERNATE 9X14    |
                                                                        |                                                          |
               AH = 0A - WRITE CHARACTER ONLY AT CURRENT CURSOR POSITION|    AH = 12 - ALTERNATE SELECT (EGA AND AFTER)            |
                         BH = DISPLAY PAGE                              |                                                          |
                         CX = COUNT OF CHARACTERS TO WRITE              |           BL = 10 - RETURN EGA INFORMATION               |
                         AL = CHARACTER TO WRITE                        |           ON EXIT:  BH = 0 IF COLOR MODE IS IN EFFECT    |
                         NOTE: SHOULD NOT BE USED IN GRAPHICS MODES     |                        = 1 IF MONO MODE IS IN EFFECT     |
                                                                        |                     BL = 0 IF 64K EGA MEMORY             |
               AH = 0B - SET COLOR PALETTE                              |                        = 0 IF 128K EGA MEMORY            |
                         BH = 0 FOR BACKGROUND, =1 FOR FOREGROUND       |                        = 0 IF 192K EGA MEMORY            |
                         BL = COLOR VALUE                               |                        = 0 IF 256K EGA MEMORY            |
                                                                        |                     CH = FEATURE BITS                    |
               AH = 0C - WRITE DOT                                      |                     CL = SWITCH SETTINGS                 |
                         BH = PAGE NUMBER                               |                                                          |
                         DX = ROW NUMBER                                |           BL = 20 - SELECT ALTERNATE PRINT SCREEN ROUTINE|
                         CX = COLUMN NUMBER                             |                                                          |
                         AL = COLOR VALUE (XOR'D IF BIT 7=1)            |    AH = 13 - WRITE STRING (EGA AND AFTER)                |
                                                                        |                                                          |
               AH = 0D - READ DOT                                       |           ES:BP = STRING TO BE WRITTEN                   |
                         BH = PAGE NUMBER                               |           CX = CHARACTER ONLY COUNT                      |
                         DX = ROW NUMBER                                |           DX = POSITION TO BEGIN STRING, IN CURSOR TERMS |
                         CX = COLUMN NUMBER                             |           BH = PAGE NUMBER                               |
                         AL = DOT READ UPON RETURN                      |           BL = ATTRIBUTE IF AL BIT 1=0                   |
                                                                        |           AL = TYPE OF WRITE:                            |
               AH = 0E - WRITE TELETYPE TO ACTIVE PAGE                  |                                                          |
                         AL = CHARACTER TO WRITE                        |           Ŀ                              |
                         BL = FOREGROUND COLOR IN GRAPHICS MODE         |           76543210 AL                           |
                         BH = PAGE NUMBER                               |                                         |
                                                                        |                                                  |
               AH = 0F - RETURN CURRENT VIDEO STATE                     |                    MOVE CURSOR              |
               ON EXIT:  AL = MODE CURRENTLY SET (SEE AH=0)             |                   STRING HAS ATTRIBUTES    |
                         AH = NUMBER OF CHARACTER COLUMNS ON SCREEN     |             NOT USED                 |
                         BH = CURRENT ACTIVE DISPLAY PAGE               |                                                          |
                                                                        |    AH = 14 - LOAD LCD CHAR FONT (CONVERTIBLE ONLY)       |
               AH = 10 - SET/GET PALETTE REGISTERS (EGA AND AFTER)      |                                                          |
                                                                        |           AL = 0 - LOAD USER SPECIFIED FONT              |
                         AL = 00 - SET INDIVIDUAL PALETTE REGISTER      |                    ES:DI = POINTER TO CHARACTER FONT     |
                                   BH = VALUE TO SET                    |                    CX = NUMBER OF CHARACTERS TO STORE    |
                                   BL = PALETTE REGISTER TO BE SET      |                    DX = CHAR OFFSET INTO RAM FONT AREA   |
                                                                        |                    BH = NUMBER OF BYTES PER CHARACTER    |
                         AL = 01 - SET OVERSCAN REGISTER                |                    BL = 0 - LOAD MAIN FONT (BLOCK 0)     |
                                   BH = VALUE TO SET                    |                       = 1 - LOAD ALTERNATE FONT (BLOCK 1)|
                                                                        |                                                          |
                         AL = 02 - SET ALL PALETTE REGS AND OVERSCAN    |           AL = 1 - LOAD SYSTEM ROM DEFAULT FONT          |
                                   ES:DX = POINTER TO 16-BYTE TABLE     |                    BL = 0 - LOAD MAIN FONT (BLOCK 0)     |
                                           OF REGISTER VALUES FOLLOWED  |                       = 1 - LOAD ALTERNATE FONT (BLOCK 1)|
                                           BY THE OVERSCAN VALUE        |                                                          |
                                                                        |           AL = 2 - SET MAPPING OF LCD HIGH INT. ATTR.    |
                         AL = 03 - TOGGLE THE INTENSIFY/BLINKING BIT    |                    BL = 0 - IGNORE HIGH INTENSITY ATTR.  |
                                   BL = 0 - ENABLE INTENSIFY            |                       = 1 - MAP HIGH INT. TO UNDERSCORE  |
                                   BL = 1 - ENABLE BLINKING             |                       = 2 - MAP HIGH INT. TO REVERSE VID.|
                                                                        |                       = 3 - MAP HI INT. TO SEL. ALT FONT |
               AH = 11 - CHARACTER GENERATOR ROUTINE (EGA AND AFTER)    |                                                          |
                                                                        |    AH = 15 - RETURN PHYSICAL DISPLAY PARMS (CONVERTIBLE) |
                         AL = 00 - USER ALPHA LOAD                      |           ON EXIT:                                       |
                                   ES:BP = POINTER TO USER TABLE        |           AX = ALTERNATD DISPLAY ADAPTER TYPE            |
                                   CX = COUNT TO STORE                  |           ES:DI = POINTER TO PARAMETER TABLE:            |
                                   DX = CHARACTER OFFSET INTO TABLE     |               WORD #          INFORMATION                |
                                   BL = BLOCK TO LOAD                   |                 1    MONITOR MODEL NUMBER                |
                                   BH = NUMBER OF BYTES PER CHARACTER   |                 2    VERTICAL PELS PER METER             |
                                                                        |                 3    HORIZONTAL PELS PER METER           |
                         AL = 01 - ROM MONOCHROME SET                   |                 4    TOTAL NUMBER OF VERTICAL PELS       |
                                   BL = BLOCK TO LOAD                   |                 5    TOTAL NUMBER OF HORIZONTAL PELS     |
                                                                        |                 6    HORIZ. PEL SEPERATION IN MICROMETERS|
                                                                        |                 7    VERT. PEL SEPERATION IN MICROMETERS |
                                                                        |                                                          |
                                                                        |                                                          |
                                              CONTINUED ON NEXT PANEL   |                                                          |


                                                                        |                                                          |
                5                                                       | 6  INT 13 - DISKETTE BIOS (CONTINUED)                    |
                      Ŀ              |                                                          |
                       INT 11 - EQUIPMENT DETERMINATION               |                 DISKETTE STATUS DEFINITIONS              |
                                    |                                                          |
                                                                        |   80 = TIME OUT                08 = DMA FAILURE         |
                INPUT PARAMETERS: NONE                                  |   40 = SEEK FAILURE            06 = MEDIA CHANGE        |
               OUTPUT PARAMETERS:                                       |   20 = NEC CONTROLLER FAILURE  04 = SECTOR NOT FOUND    |
                                                                        |   10 = CRC ERROR               03 = WRITE PROTECTED     |
               Ŀ                        |   0C = UNSUPPORTED TRACK       02 = BAD ADDRESS MARK    |
               FEDCBA9876543210 AX                     |   09 = DMA BOUNDARY ERROR      01 = INVALID FUNCTION    |
                                       |                                                          |
                                                        |         CY = 1 IF STATUS PRESENTED IS NOT ZERO           |
                                IPL DISKETTE INSTALLED |                                                          |
                               MATH COPROCESSOR       |               Ŀ               |
                              NOT USED               |                INT 13 - FIXED DISK BIOS                |
                             NOT USED               |                              |
                           INITIAL VIDEO MODE     |                                                          |
                         # OF DISKETTE DRIVES   |    UNLESS OTHERWISE NOTED, ALL FIXED DISK INTERRUPT      |
                        NOT USED               |    CALLS FUNCTION AS FOLLOWS:                            |
                     NUMBER OF RS232 CARDS  |    INPUT PARAMETERS:                                     |
                    NOT USED               |              AH = FUNCTION REQUEST NUMBER                |
                   INT. MODEM INSTALLED   |              AL = NUMBER OF SECTORS                      |
                 NUMBER OF PRINTERS     |              BX = ADDRESS OF USER BUFFER (ES = SEGMENT)  |
                                                                        |              CH = CYLINDER NUMBER                        |
                 NOTE: INITIAL VIDEO MODE (BITS 4 & 5)                  |                   (BITS 9,A = BITS 7,8 OF CL)            |
                   00 - UNUSED              01 - 40x25 COLOR CARD       |              CL = SECTOR NUMBER                          |
                   10 - 80x25 COLOR CARD    11 - 80x25 MONOCHROME CARD  |              DH = HEAD NUMBER                            |
                                                                        |              DL = DRIVE NUMBER, BIT 7=1                  |
                                                                        |    OUTPUT PARAMETERS:                                    |
                                                                        |              AH = STATUS OF OPERATION:                   |
                      Ŀ                |                                                          |
                       INT 12 - MEMORY SIZE DETERMINE                 |    BB = UNDEFINED ERROR      09 = DMA BOUNDARY ERROR    |
                                      |    AA = DRIVE NOT READY      08 = DMA FAILURE           |
                                                                        |    80 = TIME OUT             07 = PARAMETER ACT. FAIL   |
                   INPUT PARAMETERS:   NONE                             |    40 = SEEK FAILURE         05 = RESET FAILED          |
                  OUTPUT PARAMETERS:                                    |    20 = CONTROLLER FAILURE   04 = SECTOR NOT FOUND      |
                                                                        |    11 = DATA ECC CORRECTED   03 = WRITE PROTECT ERROR   |
                   AX = NUMBER OF CONTIGUOUS 1K BLOCKS OF MEMORY        |    10 = BAD ECC ON DISK READ 02 = BAD ADDRESS MARK      |
                                                                        |    0B = BAD TRACK DETECTED   01 = INVALID FUNCTION REQ. |
                             MEMORY:   NONE                             |    0A = BAD SECTOR DETECTED  00 = NO ERROR              |
                                                                        |                                                          |
                                                                        |              CY = 1 IF STATUS NOT ZERO                   |
                          Ŀ                    |                                                          |
                           INT 13 - DISKETTE BIOS                     |                                                          |
                                              |  AH = 00 - RESET FIXED DISK SYSTEM                       |
                                                                        |                                                          |
                   INPUT PARAMETERS:                                    |  AH = 01 - READ STATUS OF LAST OPERATION                 |
                                                                        |  ON EXIT:  AL = STATUS OF LAST OPERATION                 |
                   AH = 00 - RESET DISKETTE SYSTEM                      |                                                          |
                   ON EXIT:  AH = STATUS                                |  AH = 02 - READ THE DESIRED SECTORS INTO MEMORY          |
                                                                        |                                                          |
                   AH = 01 - READ STATUS OF LAST OPERATION              |  AH = 03 - WRITE THE DESIRED SECTORS FROM MEMORY         |
                   ON EXIT:  AH = STATUS                                |                                                          |
                                                                        |  AH = 04 - VERIFY THE DESIRED SECTORS                    |
                   AH = 02 - READ THE DESIRED SECTORS INTO MEMORY       |                                                          |
                             AL = NUMBER OF SECTORS                     |  AH = 05 - FORMAT THE DESIRED TRACK                      |
                             BX = ADDRESS OF BUFFER (ES=SEGMENT)        |         AL = INTERLEAVE VALUE (XT ONLY)                  |
                             CH = TRACK NUMBER                          |                                                          |
                             CL = SECTOR NUMBER                         |         BX = FORMAT BUFFER, SIZE = 512 BYTES             |
                             DH = HEAD NUMBER                           |              THE FIRST 2*(SECTORS/TRACK) BYTES           |
                             DL = DRIVE NUMBER (BIT 7=0)                |              CONTAIN F,N FOR EACH SECTOR.                |
                   ON EXIT:                                             |              F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR     |
                             AL = NUMBER OF SECTORS TRANSFERRED         |              N=SECTOR NUMBER                             |
                             AH = STATUS                                |                                                          |
                                                                        |  AH = 06 - FORMAT TRACK AND SET BAD SECTOR FLAGS         |
                   AH = 03 - WRITE THE DESIRES SECTORS FROM MEMORY      |            (VALID FOR XT AND PORTABLE ONLY)              |
                             AL,BX,CX,DX SAME AS AH=02                  |         AL = INTERLEAVE VALUE (XT ONLY)                  |
                                                                        |         BX = FORMAT BUFFER, SIZE = 512 BYTES             |
                   AH = 04 - VERIFY THE DESIRED SECTORS                 |              THE FIRST 2*(SECTORS/TRACK) BYTES           |
                             AL,BX,CX,DX SAME AS AH=02                  |              CONTAIN F,N FOR EACH SECTOR.                |
                                                                        |              F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR     |
                   AH = 05 - FORMAT THE DESIRED TRACK                   |              N=SECTOR NUMBER                             |
                             AL,BX,CX,DX SAME AS AH=02                  |                                                          |
                             BUFFER CONTAINS ADDRESS FIELDS OF THE      |  AH = 07 - FORMAT THE DRIVE STARTING AT THE DESIRED TRACK|
                             FORM C,H,R,N FOR EACH SECTOR FORMATTED     |            (VALID FOR XT AND PORTABLE ONLY)              |
                                                                        |         AL = INTERLEAVE VALUE (XT ONLY)                  |
                   AH = 06 - RESERVED FOR FIXED DISK                    |         BX = FORMAT BUFFER, SIZE = 512 BYTES             |
                                                                        |              THE FIRST 2*(SECTORS/TRACK) BYTES           |
                   AH = 07 - RESERVED FOR FIXED DISK                    |              CONTAIN F,N FOR EACH SECTOR.                |
                                                                        |              F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR     |
                   AH = 08 - READ DRIVE PARAMETERS                      |              N=SECTOR NUMBER                             |
                   ON EXIT:  AH = STATUS OF OPERATION                   |                                                          |
                                                                        |  AH = 08 - READ DRIVE PARAMETERS                         |
                   AH = 15 - READ DASD TYPE                             |  ON EXIT:                                                |
                             DL = DRIVE NUMBER                          |         DL = NUMBER OF CONSECUTIVE ACKNOWLEDGING DRIVES  |
                   ON EXIT:                                             |         DH = MAXIMUM USABLE VALUE FOR HEAD NUMBER        |
                             AH = 00 IF DRIVE NOT PRESENT               |         CH = MAXIMUM USEABLE VALUE FOR CYLINDER NUMBER   |
                                = 01 IF DISKETTE WITHOUT CHANGE LINE    |         CL = MAXIMUM USEABLE VALUE FOR SECTOR NUMBER     |
                                = 02 IF DISKETTE WITH CHANGE LINE       |              AND CYLINDER NUMBER HIGH BITS               |
                                                                        |                                                          |
                   AH = 16 - DISK CHANGE LINE STATUS                    |  AH = 09 - INITIALIZE DRIVE PAIR CHARACTERISTICS         |
                             DL = DRIVE NUMBER                          |                                                          |
                   ON EXIT:                                             |         INT 41 POINTS TO DATA BLOCK FOR DRIVE 80         |
                             AH = STATUS OF OPERATION                   |         INT 46 POINTS TO DATA BLOCK FOR DRIVE 81         |
                                                                        |                                                          |
                   AH = 17 - SET DASD TYPE FOR FORMAT                   |               DATA BLOCK DEFINITIONS:                    |
                             DL = DRIVE NUMBER                          |      +0 = MAXIMUM NUMBER OF CYLINDERS (DW)               |
                             AL = 01 - 360KB DISKETTE IN 360KB DRIVE    |      +2 = MAXIMUM NUMBER OF HEADS (DB)                   |
                                = 02 - 360KB DISKETTE IN 1.2M DRIVE     |      +3 = STARTING REDUCED WRITE CURRENT CYLINDER        |
                                = 03 - 1.2M DISKETTE IN 1.2M DRIVE      |           (DW - XT ONLY)                                 |
                                = 04 - 720KB DISKETTE IN 720KB DRIVE    |      +5 = STARTING WRITE PRECOMP CYLINDER (DW)           |
                   ON EXIT:                                             |      +7 = MAXIMUM ECC DATA BURST LENGTH (DB - XT ONLY)   |
                             AH = STATUS OF OPERATION                   |      +8 = CONTROL BYTE:                                  |
                                                                        |           Ŀ                              |
                   AH = 18 - SET MEDIA TYPE FOR FORMAT                  |           76543210                              |
                             DL = DRIVE NUMBER                          |                                         |
                             CH = LOWER 8 BITS OF NUMBER OF TRACKS      |                                                  |
                             CL = HIGH 2 BITS OF NUMBER OF TRACKS (6,7) |                  DRIVE OPTION             |
                                = SECTORS PER TRACK (BITS 0-5)          |               ALWAYS ZERO              |
                   ON EXIT:                                             |              DISABLE ECC RETRIES      |
                             ES:DI = POINTER TO 11-BYTE PARM TABLE      |             DISABLE ACCESS RETIRES   |
                             AH = 00 IF REQUESTED COMBINATION SUPPORTED |                                                          |
                                = 01 IF FUNCTION NOT AVAILABLE          |                                                          |
                                = 0C IF NOT SUPP. OR DRIVE TYPE UNKNOWN |                                                          |
                                = 80 IF THERE IS NO MEDIA IN THE DRIVE  |                                                          |
                                                                        |                                                          |
                                                                        |                                 CONTINUED ON NEXT PANEL  |
                                            CONTINUED ON NEXT PANEL     |                                                          |
                                                                        |                                                          |

