{->>>>Register Types Definition<<<<----------------------------}
{                                                              }
{ Filename : REGPACK.DEF -- Last Modified 10/20/85             }
{                                                              }
{ These two types should be declared (via this include file)   }
{ anywhere you will be making either software interrupt calls  }
{ or DOS calls.  Using a free union variant record construct,  }
{ a register may be accessed as either a complete 16-bit       }
{ register (Word) or two 8-bit register halves (HiByte and     }
{ LoByte.)  Assume a variable Registers of type Regpack.  To   }
{ access an entire register, do this:                          }
{                                                              }
{ Registers.AX.Word := $4406;   (Loads the whole AX register)  }
{                                                              }
{ To access one half of a register, do this:                   }
{                                                              }
{ Registers.AX.HiByte := $10;   (Loads AH only!)               }
{                                                              }
{ And don't forget...you CAN'T include this file inside        }
{ another include file!                                        }
{--------------------------------------------------------------}

TYPE
  Reg     = RECORD
              CASE Boolean OF
                False : (Word : Integer);
                True  : (LoByte,HiByte : Byte)
            END;

  Regpack = RECORD
              AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : Reg
            END;
{ Here we copy 