|
@@ -22,7 +22,7 @@ interface
|
|
|
|
|
|
Var
|
|
Var
|
|
ScreenWidth,
|
|
ScreenWidth,
|
|
- ScreenHeight : longint;
|
|
|
|
|
|
+ ScreenHeight : word;
|
|
|
|
|
|
implementation
|
|
implementation
|
|
|
|
|
|
@@ -86,7 +86,7 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
-function GetScreenHeight : longint;
|
|
|
|
|
|
+function GetScreenHeight : word;
|
|
begin
|
|
begin
|
|
getscreenheight:=mem[$40:$84]+1;
|
|
getscreenheight:=mem[$40:$84]+1;
|
|
If mem[$40:$84]=0 then
|
|
If mem[$40:$84]=0 then
|
|
@@ -94,7 +94,7 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
-function GetScreenWidth : longint;
|
|
|
|
|
|
+function GetScreenWidth : word;
|
|
begin
|
|
begin
|
|
getscreenwidth:=memw[$40:$4a];
|
|
getscreenwidth:=memw[$40:$4a];
|
|
end;
|
|
end;
|
|
@@ -138,7 +138,7 @@ Function FullWin:boolean;
|
|
}
|
|
}
|
|
begin
|
|
begin
|
|
FullWin:=(WinMin.X=0) and (WinMin.Y=0) and
|
|
FullWin:=(WinMin.X=0) and (WinMin.Y=0) and
|
|
- ((WinMax.X+1)=ScreenWidth) and ((WinMax.Y+1)=ScreenHeight);
|
|
|
|
|
|
+ (word(WinMax.X+1)=ScreenWidth) and (word(WinMax.Y+1)=ScreenHeight);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
@@ -243,8 +243,8 @@ Procedure Window(X1, Y1, X2, Y2: Byte);
|
|
Set screen window to the specified coordinates.
|
|
Set screen window to the specified coordinates.
|
|
}
|
|
}
|
|
Begin
|
|
Begin
|
|
- if (X1>X2) or (X2>ScreenWidth) or
|
|
|
|
- (Y1>Y2) or (Y2>ScreenHeight) then
|
|
|
|
|
|
+ if (X1>X2) or (word(X2)>ScreenWidth) or
|
|
|
|
+ (Y1>Y2) or (word(Y2)>ScreenHeight) then
|
|
exit;
|
|
exit;
|
|
WindMin:=((Y1-1) Shl 8)+(X1-1);
|
|
WindMin:=((Y1-1) Shl 8)+(X1-1);
|
|
WindMax:=((Y2-1) Shl 8)+(X2-1);
|
|
WindMax:=((Y2-1) Shl 8)+(X2-1);
|
|
@@ -258,7 +258,7 @@ Procedure ClrScr;
|
|
}
|
|
}
|
|
var
|
|
var
|
|
fil : word;
|
|
fil : word;
|
|
- y : longint;
|
|
|
|
|
|
+ y : word;
|
|
begin
|
|
begin
|
|
fil:=32 or (textattr shl 8);
|
|
fil:=32 or (textattr shl 8);
|
|
if FullWin then
|
|
if FullWin then
|
|
@@ -266,7 +266,7 @@ begin
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
for y:=WinMin.Y to WinMax.Y do
|
|
for y:=WinMin.Y to WinMax.Y do
|
|
- DosmemFillWord(VidSeg,(y*ScreenWidth+WinMin.X)*2,WinMax.X-WinMin.X+1,fil);
|
|
|
|
|
|
+ DosmemFillWord(VidSeg,(y*ScreenWidth+word(WinMin.X))*2,WinMax.X-WinMin.X+1,fil);
|
|
end;
|
|
end;
|
|
Gotoxy(1,1);
|
|
Gotoxy(1,1);
|
|
end;
|
|
end;
|
|
@@ -283,7 +283,7 @@ Begin
|
|
GetScreenCursor(x,y);
|
|
GetScreenCursor(x,y);
|
|
fil:=32 or (textattr shl 8);
|
|
fil:=32 or (textattr shl 8);
|
|
if x<=(WinMax.X+1) then
|
|
if x<=(WinMax.X+1) then
|
|
- DosmemFillword(VidSeg,((y-1)*ScreenWidth+(x-1))*2,WinMax.X-x+2,fil);
|
|
|
|
|
|
+ DosmemFillword(VidSeg,(word(y-1)*ScreenWidth+word(x-1))*2,WinMax.X-x+2,fil);
|
|
End;
|
|
End;
|
|
|
|
|
|
|
|
|
|
@@ -500,7 +500,7 @@ end;
|
|
HighLevel Crt Functions
|
|
HighLevel Crt Functions
|
|
****************************************************************************}
|
|
****************************************************************************}
|
|
|
|
|
|
-procedure removeline(y : longint);
|
|
|
|
|
|
+procedure removeline(y : word);
|
|
var
|
|
var
|
|
fil : word;
|
|
fil : word;
|
|
begin
|
|
begin
|
|
@@ -508,11 +508,11 @@ begin
|
|
y:=WinMin.Y+y;
|
|
y:=WinMin.Y+y;
|
|
While (y<=WinMax.Y) do
|
|
While (y<=WinMax.Y) do
|
|
begin
|
|
begin
|
|
- dosmemmove(VidSeg,(y*ScreenWidth+WinMin.X)*2,
|
|
|
|
- VidSeg,((y-1)*ScreenWidth+WinMin.X)*2,(WinMax.X-WinMin.X+1)*2);
|
|
|
|
|
|
+ dosmemmove(VidSeg,(y*ScreenWidth+word(WinMin.X))*2,
|
|
|
|
+ VidSeg,((y-1)*ScreenWidth+word(WinMin.X))*2,(WinMax.X-WinMin.X+1)*2);
|
|
inc(y);
|
|
inc(y);
|
|
end;
|
|
end;
|
|
- dosmemfillword(VidSeg,(WinMax.Y*ScreenWidth+WinMin.X)*2,(WinMax.X-WinMin.X+1),fil);
|
|
|
|
|
|
+ dosmemfillword(VidSeg,(word(WinMax.Y)*ScreenWidth+word(WinMin.X))*2,(WinMax.X-WinMin.X+1),fil);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
@@ -524,7 +524,7 @@ end;
|
|
|
|
|
|
procedure insline;
|
|
procedure insline;
|
|
var
|
|
var
|
|
- my,y : longint;
|
|
|
|
|
|
+ my,y : smallint;
|
|
fil : word;
|
|
fil : word;
|
|
begin
|
|
begin
|
|
fil:=32 or (textattr shl 8);
|
|
fil:=32 or (textattr shl 8);
|
|
@@ -532,11 +532,11 @@ begin
|
|
my:=WinMax.Y-WinMin.Y;
|
|
my:=WinMax.Y-WinMin.Y;
|
|
while (my>=y) do
|
|
while (my>=y) do
|
|
begin
|
|
begin
|
|
- dosmemmove(VidSeg,((WinMin.Y+my-1)*ScreenWidth+WinMin.X)*2,
|
|
|
|
- VidSeg,((WinMin.Y+my)*ScreenWidth+WinMin.X)*2,(WinMax.X-WinMin.X+1)*2);
|
|
|
|
|
|
+ dosmemmove(VidSeg,(word(WinMin.Y+my-1)*ScreenWidth+word(WinMin.X))*2,
|
|
|
|
+ VidSeg,(word(WinMin.Y+my)*ScreenWidth+word(WinMin.X))*2,(WinMax.X-WinMin.X+1)*2);
|
|
dec(my);
|
|
dec(my);
|
|
end;
|
|
end;
|
|
- dosmemfillword(VidSeg,((WinMin.Y+y-1)*ScreenWidth+WinMin.X)*2,(WinMax.X-WinMin.X+1),fil);
|
|
|
|
|
|
+ dosmemfillword(VidSeg,(word(WinMin.Y+y-1)*ScreenWidth+word(WinMin.X))*2,(WinMax.X-WinMin.X+1),fil);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
@@ -604,7 +604,7 @@ begin
|
|
end;
|
|
end;
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
- memw[VidSeg:((CurrY-1)*ScreenWidth+(CurrX-1))*2]:=(textattr shl 8) or byte(c);
|
|
|
|
|
|
+ memw[VidSeg:(word(CurrY-1)*ScreenWidth+word(CurrX-1))*2]:=(textattr shl 8) or byte(c);
|
|
inc(CurrX);
|
|
inc(CurrX);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
@@ -779,7 +779,7 @@ begin
|
|
VidSeg := $b800
|
|
VidSeg := $b800
|
|
else
|
|
else
|
|
VidSeg := $b000;
|
|
VidSeg := $b000;
|
|
- TextAttr:=mem[VidSeg:((y-1)*ScreenWidth+(x-1))*2+1];
|
|
|
|
|
|
+ TextAttr:=mem[VidSeg:(word(y-1)*ScreenWidth+word(x-1))*2+1];
|
|
{ Redirect the standard output }
|
|
{ Redirect the standard output }
|
|
assigncrt(Output);
|
|
assigncrt(Output);
|
|
Rewrite(Output);
|
|
Rewrite(Output);
|