Vielleicht kannst du ja damit was anfangen:
Code:
Procedure ReadAT;
  Var Error       : Integer;
      JT          : Word;                             // Chip-Temperatur
      B1,B2,B3,B4 : Byte;
      Dummy       : Byte;
  Begin
    For Dummy:=0 to 1 do
      Excl(PortC,5+Dummy);
      SDelay(200);
      B1:=SPIInpByte1;
      B2:=SPIInpByte1;
      B3:=SPIInpByte1;
      B4:=SPIInpByte1;
      Error:=((256*Integer(B3))+Integer(B4)) and $0007;
      If Error>0
        then
          ATError[Dummy]:=Error;
        else
          ATError[Dummy]:=0;
        EndIf;
      JT:=((Word(B3)*256)+Word(B4)) SHR 8;
      If (B1 and $80)=$80
        then
          AT[Dummy]:=(-1*((((not((256*Integer(B1))+Integer(B2))) and $0FFF)+1) SHR 4))-JT+20;
        else
          AT[Dummy]:=(((256*Integer(B1))+Integer(B2)) SHR 4)-JT + 21;  // Temperatur-Korrektur
        EndIf;
      Incl(PortC,5+Dummy);
      EndFor;
  End ReadAT;
PortC,5 und6 sind die /CS der beiden MAX (ich hatte 2 in der Schaltung).

Harry