home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
mac
/
0300
/
CCE_0385.ZIP
/
CCE_0385.PD
/
PLOTTER
/
PASCAL.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-06-29
|
1KB
|
57 lines
program plot;
(* algorithmus für plotter *)
var adr : long_integer;
str : string;
i,n : integer;
MaxX, MaxY,
LastWord,
WordsProZeile: long_integer;
function wpeek(adr:long_integer):integer; (* aus Pastrix *)
external;
procedure wpoke(adr: long_integer;wert:integer); (* aus Pastrix *)
external;
procedure setbit(var a: integer; bit: integer); (* setzt bit in a *)
var n: integer;
begin
n:=shl(1,bit);
a:=a | n;
end;
procedure punkt(x,y: integer);
var wordpos : long_integer;
xneu,wert : integer;
begin
wordpos:=y * WordsProZeile * 2 + (x div 16) * 2;
if wordpos<=LastWord * 2 then
begin
xneu:=15-(x mod 16);
wert:=wpeek(adr+wordpos);
setbit(wert,xneu);
wpoke(adr+wordpos,wert);
end;
end;
begin
Cmd_GetArg(1,str);
readv(str,adr);
Cmd_GetArg(2,str);
readv(str,MaxX);
Cmd_GetArg(3,str);
readv(str,MaxY);
WordsProZeile:=(MaxX+1) DIV 16;
LastWord :=((MaxX+1) * (MaxY+1) DIV 16)-1;
for i:=0 to MaxX do
punkt(i,Maxy div 2);
for i:=0 to maxy do
punkt(maxx div 2,i);
end.