안녕하세요..
우선 제글에 응해주셔서 감사하구요.
정확한 저의 질문은 이겁니다.
이건 소스중 일부입니다...
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;
{다시한번 부탁드립니다.^^}
그럼 수고하세요..
흠~ 이런식은 터보파스칼에서만 지원하는 것이구요... 델파이에서는 이런식으로 레지스터를 제어하는 방법은 베공하지 않으니까 인라인어셈블리로 바꾸세요...
^^ 항상 즐코하세요...
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;
> {다시한번 부탁드립니다.^^}
> 그럼 수고하세요..