(* 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 .