{ unit Atari Portfolio snimani C520 voltmetru }

unit AU_C520;

interface

function C520ready:boolean;
function C520:integer;

implementation

function C520ready:boolean;
var status : byte;
begin
  C520ready := false;
  asm
            mov  bx,$0000
            mov  dx,$8078
            in   al,dx
            mov  cl,al
    @loop:  mov  al,0
    @lop1:  inc  al
            cmp  al,0
            jnz  @lop1
            inc  bx
            cmp  bl,bh
            jz   @konec
            in   al,dx
            cmp  al,cl
            jz   @loop
            mov  al,1
    @konec: mov  status,al
  end;
  If status = 1 then C520ready := true;
end;

function C520sejmi(maska : byte):byte;
var sejmi : byte;
begin
  asm
            mov  cl,maska
            mov  dx,$8078
    @loop:  in   al,dx
            mov  bl,al
            and  al,$70
            cmp  al,cl
            jnz  @loop
            in   al,dx
            cmp  al,bl
            jnz  @loop
            and  al,$0F
            mov  sejmi,al
  end;
  C520sejmi := sejmi;
end;

function C520:integer;
var a : integer;
begin
  a := 100 * C520sejmi($30);
  a := a + (10 * C520sejmi($50));
  a := a + (C520sejmi($60));
  C520 := a;
end;
end.