, , , ( ).
erase(f: file) , f. , , {$I}.
rename(f: file; s: string) , f, , s. , .
chdir(s: string) , s. , .
getdir(disk: byte; s:string) s (0 ― , 1 ― , 2 ― ..).
mkdir(s: string) s . , .
rmdir(s: string) s . , .
( , ) :
(#9);
(#10) ( , );
(#11);
(#13) ( ; UNIX );
(#26);
(#32).
: , . .
:
1. .
2. .
3. .
4. .
, .
22 : BIOS DOS,
:
: TURBO PASCAL 7.1
: ,
: 2 .
:
.. . . . .: , 2008. . 153-163.
: 2 .
:
1. , .
2. .
3. .
|
|
*.
, , :
1) ― , ;
2) .
, , , :
00 ― ( 4D5A) ;
02 ― ;
04 ― 512 , ;
06 ― ;
08 ― 16- () ( , );
0 ― , ;
0 ― . , . . 0000 , FFFF ― . , ;
0 ― ;
10 ― , SP ;
12 ― ― ( ) ;
14 ― , IP ;
16 ― . CS;
18 ― 1- ;
1 ― : 0 , ;
1 ― , , 06.
512 , . 06 , . , 1 , 2- 2- . (PSP) COMMAND.COM, . COMMAND.COM :
― ;
― ( 04 08) ;
― ( 0E);
― SS SP ;
|
|
― DS ES PSP;
― CS PSP ( 16) CS. PSP, 256 (100H). CS:IP , .. . CS SS , DS ( ES) :
Mov AX,datasegname; { DS}
Mov DS,AX; { }
- .
:
― . , - 64 . - , -; - - 512- -.
― . - , - . , , -, .
― . - , DS . - .
― . - DS. - , . - , PSP ― 256 , DOS - - . 100 PSP, ORG 100H.
, . , .
:
type
Proc = procedure;
SwapProc = procedure(var X, Y: Integer);
StrProc = procedure(S: String);
MathFunc = function(X: Real): Real;
DeviceFunc = function(var F: text): Integer;
MaxFunc = function(A, B: Real; F: MathFunc): Real;
― .
. :
* nil;
* ;
* .
, .
, , :
var
P: SwapProc;
F: MathFunc;
procedure Swap(var A, B: Integer); far;
var
Temp: Integer;
begin
Temp:= A;
A:= B;
B:= Temp;
end;
function Tan(Angle: Real); far;
begin
Tan:= Sin(Angle) / Cos(Angle);
end;
P F :
P:= Swap;
F:= Tan;
P F :
P(I, J); { Swap(I, J) }
X:= F(X); { X:= Tan(X) }
, nil, . nil , , nil, : if @P <> nil then P(I, J);
|
|
@ , P , .
: =0; 0,5; 1,0 .
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 |
:
1. .
2. .
BIOS DOS, .