[Back to FAQ SWAG index] [Back to Main SWAG index] [Original]

    {
    MARK OUELLET

    >  How  can  I  read what appears to be an Array from the Registers value
    >  (this is after  making  the  interrupt  call,  and  is  returned  With
    >  information...   I'll   be   durned   if   I  know  how  to  use  it):

    > values upon return
    > AX    = clear on successful (or whatever ... not important)
    > ES:DX = see table 2.1
    >
    > table 2.1
    > offset - info (size)
    > -----------------------------
    > 00h    - blah blah (4 Bytes)
    > 03h    - blah blah (16 Bytes)
    > etc ....
    >
    > And the ES:DX usually points to what appears to be a Record, or a buffer
    > of data using an offset to identify what's what.  How can I use and/or
    > access this info?
    }

     Type
        TablePtr = ^Table
        Table = Record
          BlahBlah1 : LongInt; { 4Bytes }
          BlahBlah2 : Array[1..16] of Byte;
          .
          .
          etc....
        end;
    {
        if using Intr() or MSDos() and the Registers  structure  defined  in
    Dos.tpu then:
    }
    Var
      Regs    : Registers;   {Defined in Dos.tpu}
      MyTable : TablePtr;

    begin
      Regs.AX := ??;
      Regs.BX := ??;
      Intr(Regs);
      TablePtr := Ptr(Regs.ES, Regs.DX);

      Write(TablePtr^.BlahBlah1);
      .
      .
      etc...

[Back to FAQ SWAG index] [Back to Main SWAG index] [Original]