|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3584 (0xe00)
Types: TextFile
Names: »PAGEBOX.PAS«
└─⟦d814f614c⟧ Bits:30008872 EDB Trænings- og Erhvervs Center / Almen Nyttig Data Service
└─⟦this⟧ »PAGEBOX.PAS«
program jk;
(* program .....: jk.pas
udarbejdet af: john e.k. knudsen
den .........: oktober 1988
*)
(* bemærk at CONFI skal være defineret for LINE med følgende værdier
hastighed 1200 baud
databit 7
paritet lige
*)
var
SIDER : ARRAYÆ1..400Å OF STRINGÆ80Å;
SIDENR : ARRAYÆ1..50Å OF INTEGER;
TEGN : STRINGÆ1Å;
T : TEXT;
LNR : INTEGER;
SNR : INTEGER;
K : INTEGER;
J : INTEGER;
SIDELGD : INTEGER;
SIDSTE : INTEGER;
i, q, valg : integer;
c : char;
res : integer;
teller : integer;
tgn : integer;
CONST
DELSCR = 12;
label
FOREVER,
NYSIDE,
igen,
ud;
function rdrstatus : boolean;
var res : byte;
begin
code
$2A,$01,$00, (* LD HL,(1) *)
$01,$4A,$00, (* LD BC,04AH *)
$09, (* ADD HL,BC *)
$CD,*+7, (* CALL L1 *)
$32,RES, (* LD (RES),A *)
$18,1, (* JR L2 *)
$E9; (* L1: JP (HL) *)
(* L2: *)
rdrstatus := (res > 0);
end;
(*
BEGIN
igen:
for i := 1 to 500 do
begin
if rdrstatus then
begin
teller := teller + 1;
write('signal modtaget på porten !!! --> ',teller);
read(aux,c);
tgn := ord(c);
if tegn = 0 then writeln('blå tast');
if tegn = 192 then writeln('grøn tast');
if tegn = 240 then writeln('gul tast');
if tegn = 252 then writeln('rød tast');
end;
END;
*)
PROCEDURE GOTOXY(X,Y: INTEGER);
BEGIN
WRITE(CHR(6),CHR(Y+32),CHR(X+32));
END;
BEGIN
ASSIGN(T,'TEKST.TXT'); RESET(T);
LNR := 0;
WRITE(CHR(DELSCR));
SIDELGD := 0;
SNR := 0;
WHILE NOT EOF(T) DO
BEGIN
LNR := LNR + 1;
READLN(T,SIDERÆLNRÅ);
IF POS('<**>',SIDERÆLNRÅ) > 0 THEN BEGIN
SNR := SNR + 1;
SIDENRÆSNRÅ := LNR;
END;
END;
CLOSE(T);
SIDSTE := SNR;
SNR := 0;
FOREVER:
WRITE(CHR(DELSCR));
SIDELGD := 0;
FOR I := 1 TO LNR DO BEGIN
NYSIDE:
IF POS('<**>',SIDERÆIÅ) = 0 THEN BEGIN
K := LEN(SIDERÆIÅ);
IF K > 0 THEN SIDELGD := SIDELGD + 1;
WRITELN(SIDERÆIÅ);
END;
IF POS('<**>',SIDERÆIÅ) > 0 THEN BEGIN
GOTOXY(0,24);
WRITE(' ');
FOR K := 1 TO SIDELGD DO BEGIN
WRITE('.');
END;
WRITE('. > NÆSTE SIDE ...');
FOR K := 1 TO SIDELGD DO BEGIN
GOTOXY(K,24);
WRITE(' ');
FOR J := 1 TO 1400 DO BEGIN
if keypress then begin
goto ud;
end;
IF RDRSTATUS THEN BEGIN
READ(AUX,C);
SNR := SNR + 1;
IF SIDSTE = SNR THEN BEGIN
SNR := 1;
(* GOTO UD; *)
END;
I := SIDENRÆSNRÅ + 1;
sidelgd := 0;
write(chr(delscr));
GOTO NYSIDE;
END;
END;
END;
WRITE(CHR(DELSCR));
SIDELGD := 0;
END;
END;
GOTO FOREVER;
UD:
END.
«eof»