home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1996 May
/
PCW596.iso
/
polskie
/
eduk
/
genfast
/
demo_01.pak
/
DEMO2.DA_
< prev
next >
Wrap
Text File
|
1996-02-08
|
2KB
|
58 lines
; DEMO 2
[1!]
@ShowScreen;
@SetPosition(30,30);
To demo prezentuje mechanizm Æadowania zewnætrznych procedur,
których kod znajduje siæ na dysku w odpowiednich plikach.
Så to skompilowane zbiory z instrukcjami w jæzyku assembler
o maksymalnie uproszczonej postaci (bez przesuniæcia o 100h bajtów
typowego dla zbiorów typu .COM, ani bez innych elementów typowych
dla plików .EXE).
<#32>
<#32>
@SetColors(1,15);
Teraz zostanie zaÆadowany do pamiæci zbiór DEMO.SYS i wykonany.
Procedura zawarta w tym zbiorze zamienia warto₧ci znajdujåce siæ
w poszczególnych rejestrach (AX z DX i BX z CX)...
<#32>
@SetColors(4,15);
Warto₧ci rejestrów AX, BX, CX i DX, jakie wywoÆana procedura zwróciÆa
znajdujå siæ w zmiennych %A, %B, %C i %D. Så one zaprezentowane
poniºej. W analogiczny sposób moºna przekazaì wywoÆywanej procedurze
warto₧ci tych czterech rejestrów - poprzez zapisanie ich w
odpowiednich zmiennych.
@LoadCode('DEMO.SYS');
@GetErrorCode;
@If (%Z <> 0) then goto:3;
@A := 1;
@B := 2;
@C := 3;
@D := 4;
@ExecuteCode;
@Rectangle(50,290,140,390);
@SetColors(15,15);
@SetPosition(70,307);
@FastWrite('AX =');
@SetPosition(70,327);
@FastWrite('BX =');
@SetPosition(70,347);
@FastWrite('CX =');
@SetPosition(70,367);
@FastWrite('DX =');
@WriteValue(100,300,130,320,0,0,%A);
@WriteValue(100,320,130,340,0,0,%B);
@WriteValue(100,340,130,360,0,0,%C);
@WriteValue(100,360,130,380,0,0,%D);
[2]
; ustalenie strony poza zakresem, aby nacisniecie przycisku
; "z reka w prawa strone" spowodowalo po prostu wyjscie do menu
@SetCurrentPage(4);
@CheckEvents;
[3]
@MessageBox('BÆåd','Brak pliku DEMO.SYS');
@goto:2;