Q&A

  • 최용일 님 조금만 더 얘기해주세요..^^
안녕하세요..

우선 제글에 응해주셔서 감사하구요.



정확한 저의 질문은 이겁니다.

이건 소스중 일부입니다...



Function Tform1.xchg(a,b : byte) : Word;

var

tmp : registers; {이부분입니다.}

begin

tmp.al:=a; {이부분}

tmp.ah:=b;

xchg:=tmp.ax;

end;



procedure Tform1.bios_call(swit,head,tr,se,no : byte);

var

count : integer;

regs : registers;

begin

count:=0;

with regs do

repeat

begin

{서비스 번호} ah :=swit;

{섹터의 교환수} al:=no;

{헤드번호} dh:=head;

{장치드라이버 번호a=0,b=1} dl:=drive;

{트랙 번호} ch:=se;

{버퍼 세그먼트} es:=seg(buffer);

{버퍼 오프셋} bx:=ofs(buffer);

{인터럽트 호출 롬 바이오스} intr($13,regs);

end;

reset_diskio;

inc(count);

until count =2;

end;

{다시한번 부탁드립니다.^^}

그럼 수고하세요..

1  COMMENTS
  • Profile
    최용일 2001.06.12 01:39
    안녕하세요. 최용일입니다...



    흠~ 이런식은 터보파스칼에서만 지원하는 것이구요... 델파이에서는 이런식으로 레지스터를 제어하는 방법은 베공하지 않으니까 인라인어셈블리로 바꾸세요...



    ^^ 항상 즐코하세요...



    biz wrote:

    > 안녕하세요..

    > 우선 제글에 응해주셔서 감사하구요.

    >

    > 정확한 저의 질문은 이겁니다.

    > 이건 소스중 일부입니다...

    >

    > Function Tform1.xchg(a,b : byte) : Word;

    > var

    > tmp : registers; {이부분입니다.}

    > begin

    > tmp.al:=a; {이부분}

    > tmp.ah:=b;

    > xchg:=tmp.ax;

    > end;

    >

    > procedure Tform1.bios_call(swit,head,tr,se,no : byte);

    > var

    > count : integer;

    > regs : registers;

    > begin

    > count:=0;

    > with regs do

    > repeat

    > begin

    > {서비스 번호} ah :=swit;

    > {섹터의 교환수} al:=no;

    > {헤드번호} dh:=head;

    > {장치드라이버 번호a=0,b=1} dl:=drive;

    > {트랙 번호} ch:=se;

    > {버퍼 세그먼트} es:=seg(buffer);

    > {버퍼 오프셋} bx:=ofs(buffer);

    > {인터럽트 호출 롬 바이오스} intr($13,regs);

    > end;

    > reset_diskio;

    > inc(count);

    > until count =2;

    > end;

    > {다시한번 부탁드립니다.^^}

    > 그럼 수고하세요..