[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]