Amateur OS interrupt services



        Sphinx C-- already comes with a nice library of
    routines that use the BIOS so I will be using them
    and building others as needed. Because I am using
    these routines and because the BIOS calls both use
    the AX register, I decided to use the DH for interrupts.
    Bellow is a list of the interrupts.

    INT 0x20        System interrupts
        DH=0x00    Return system
                    input     nothing
                    output    nothing
 
    INT 0x21        File system interrupts
        DH=0x00    MOUNT_FLOPPY()
                    input    nothing
                    output   reads the BPB into memory
                             and loads the variables.
                             Used by the DIR and exec commands
        DH=0x01    Load_BPB()
                    input    nothing
                    output   loads BPB into 8000:0200
                             Used by MOUNT_FLOPPY()
        DH=0x02    Decode_BPB()
                    input     nothing
                    ouput     loads values into BPB vars
                              Used by MOUNT_FLOPPY()
        

    INT 0x22        Video interrupts
        DH=0x00    Beep()
                    input     nothing
                    return    nothing
        DH=0x01    GOTOXY()
                    input     AL=xloc BL=yloc
                    returns   nothing
        DH=0x02    GOTOXYZ()
                    input     AL=xloc BL=yloc CL=page
                    output    nothing
        DH=0x03    GETXY()
                    input     nothing
                    output    AH=cursor row
                              AL=cursor column
                              CH=cursor start line
                              CL=cursor end line
        DH=0x04    GETXYZ()
                    input     nothing
                    output    AH=cursor row
                              AL=cursor column
                              BH=video page
                              CH=cursor start line
                              CL=cursor end line
        DH=0x05    WRITE()
                    input     AL=charactor to print
                    output    nothing
        DH=0x06    WRITELN()
                    input     nothing
                    output    nothing
        DH=0x07    AMOS_WRITE(AX)
                    input     AX=pointer to string to print
                    output    nothing
        DH=0x08    WRITEWORD(AX)
                    input     AX=word to print
                    output    nothing
        DH=0x09    WRITEINT(AX)
                    input     AX=integer to print
                    output    nothing
        DH=0x0A    WRITEDWORD(EAX)
                    input     EAX=dword to print
                    output    nothing
        DH=0x0B    WRITELONG(EAX)
                    input     EAX=Long to write
                    output    nothing
        DH=0x0C    WRITEDIGITS(AX)
                    input     AX=Digits to write
                    output    nothing
        DH=0x0D    WRITEHEX(AX)
                    input     AX=hex word to write
                    output    nothing
        DH=0x0E    Clr()
                    input     nothing
                    output    nothing
        DH=0x0F    Check_VGA()
                    input     nothing
                    output    BL=0x08    VGA installed
                              BL=0x0C    MCGA installed
        DH=0x10    SetVGA()
                    input     nothing
                    output    nothing
        DH=0x11    SHOWVGA()
                    input     AX=pointer to string
                              BX=attribute of character
 

    INT 0x23        Keyboard interrupts

    INT 0x24        Memory Management

    If you have a comment or question, please feel free
    to send me an Email.