(* Bei Eingaben bis zum Zeilenende kommt es zum Absturz ! *)
(* Grund ist vermutlich eine Inkompatibilitaet zwischen *)
(* Kernal-INPUT und screen.a *)
const
winit = $1000;
wquit = $1003;
wswitch = $1006;
wsplit = $1009;
wunsplit = $100c;
whcopy = $100f;
var
i: integer ;
line: array [40] of char ;
procedure print;
var i: integer ;
begin
call (wswitch);
i:= 0;
while (line[i] <> 13) do
begin
write (chr(line[i]));
i:= i + 1;
end ;
writeln ;
call (wswitch);
end ;
procedure input;
var i: integer ;
begin
repeat
for i:= 0 to 40 do
line[i] := 32;
read (line);
if line[0] <> "." then
print;
until line[0] = ".";
end ;
procedure hcopy;
begin
call (wswitch);
call (whcopy);
call (wswitch);
end ;
procedure main ;
var
c: char ;
begin
repeat
write (chr(147));
write ("*");
read (c);
writeln (chr(c)); (* echo *)
case c of
"i": input;
"p": hcopy;
"q": begin ; end
else
begin
writeln ("Falscher Befehl, bitte Taste druecken");
read (c);
end
end ;
until c = "q";
end ;
begin
load (8,$1000,0,"pas_screen.prg");
if invalid = 64 then
begin
call (winit);
for i:=1 to 19 do
writeln ;
call (wsplit);
call (wswitch);
main;
call (wquit);
end
else
writeln ("fehler: ", invalid );
end .