|
|
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: 17664 (0x4500)
Types: TextFile
Names: »A1-300.PAS«
└─⟦09ad82a35⟧ Bits:30002863 PolyPascal-80 V3.10 for JET80 CP/M
└─⟦this⟧ »A1-300.PAS«
PROGRAM AYTST; (*UDSKRIFT DATO: 12/11 - 85. VOL.I *)
(*REV. DATO: 12/11 - 85. VOL.I *)
(*KSJ*)
CONST
DELIMLANG = 1;RAPHOVLANG = 1;
HNDTYPLANG = 2; SEKNRLANG = 2; FYLDNLANG = 2;
SALDOLANG = 6; DEBETLANG = 6; BSVARLANG = 6;
TIDSPLANG = 11; IDLANG = 12; FTALLLANG = 20;
AKTFEJLANG = 24;
SKILLETEGN = ',';
MAXFEJL = 17; (*ANTAL DEFINEREDE FEJLKODER*)
TYPE
AYSTRDATA = RECORD
TIDSP:STRING(.TIDSPLANG.);
RAPHOV:STRING(.RAPHOVLANG.);
ID:STRING(.IDLANG.);
HNDTYP:STRING(.HNDTYPLANG.);
SEKNR:STRING(.SEKNRLANG.);
FYLDN:STRING(.FYLDNLANG.);
SALDO:STRING(.SALDOLANG.);
DEBET:STRING(.DEBETLANG.);
BSVAR:STRING(.BSVARLANG.);
AKTFEJ:STRING(.AKTFEJLANG.);
FTALL:STRING(.FTALLLANG.);
END;
KALENDER = RECORD
SEKUND:STRING(.2.);
MINUT:STRING(.2.);
TIMER:STRING(.2.);
DAGNR:STRING(.1.);
DATO:STRING(.2.);
MANED:STRING(.2.);
ARSTAL:STRING(.2.);
NAVN:STRING(.7.);
END;
IDSTATUS = RECORD
DELMARK:STRING(.1.);
IDNUMMER:STRING(.12.);
STATUS:STRING(.1.);
END;
JOBSTAT = RECORD
JOB1:INTEGER; JOBTIME1:STRING(.4.);
JOB2:INTEGER; JOBTIME2:STRING(.4.);
JOB3:INTEGER; JOBTIME3:STRING(.4.);
DAYFILENAME:STRING(.12.);
END;
FEJLKODER = ARRAY(.1..24.) OF STRING(.26.);
STR1 = STRING(.1.);
STR2 = STRING(.2.);
STR6 = STRING(.6.);
STR7 = STRING(.7.);
STR12 = STRING(.12.);
STR14 = STRING(.14.);
STR40 = STRING(.40.);
STR50 = STRING(.50.);
STR110 = STRING(.110.);
VAR
TBUF:STR14;
STED,PRINTERSTATUS:INTEGER;
A,B,FEJLPOINTER: INTEGER;
PORTSTATUS,TOMINDIK,FEJLINDIK: STR1;
RAPTYP:STR2;
NUTID:STR6;
AKTIONSTID1,AKTIONSTID2,AKTIONSTID3:STR6;
KOMMASALDO:STR7;
FILNAVN:STR12;
OVERSKRIFT,TEKST_ET:STR40;
TEKST_TO,TEKST_TRE:STR50;
DBBUF:STR110;
IBUF,DVAR:STR110;
JOBSTATUS: JOBSTAT;
TEMP,SRAPIND: AYSTRDATA;
DAG: KALENDER;
FEJL:FEJLKODER;
MENUFIL:FILE;
JOBFIL: FILE OF JOBSTAT;
DBFIL: TEXT;
DATAFIL: FILE OF AYSTRDATA;
IDFIL:FILE OF IDSTATUS;
PROCEDURE INITIALISER_SIO;
(* INTERFACEMODUL MELLEM COMPASPASCAL
OG EN SIOPORT I JET-80 COMPUTEREN.*)
BEGIN CODE
$3E,$18, $D3,$01, $3E,$04, $D3,$01,
$3E,$84, $D3,$01, $3E,$03, $D3,$01,
$3E,$E1, $D3,$01, $3E,$05, $D3,$01,
$3E,$6A, $D3,$01, $3E,$02, $D3,$01,
$3E,$00, $D3,$01, $3E,$01, $D3,$01,
$3E,$00, $D3,$01, $3E,$06, $D3,$01,
$3E,$00, $D3,$01, $3E,$07, $D3,$01,
$3E,$00, $D3,$01, $3E,$47, $D3,$08,
$3E,$80, $D3,$08;
END;
PROCEDURE DATAIND_ASCII;
BEGIN
IBUF:='';
BEGIN CODE
$AF,$47,$4F,$57,$5F,$67,$6F,$FD,$21,IBUF,$DD,$21,IBUF,$FD,$23,
(*DUMMY MODTAGELSE AF FØRSTE BYTE I DATARAPPORT*)
(*---------------------------------------------*)
(* $DB,
$01,$E6,$01,$28,$FA,$DB,$00, *)
(*---------------------------------------------*)
$06,$00,$DB,
$01,$E6,$01,$28,$FA,$DB,$00,$57,$04,$83,$5F,$7A,$E6,$C0,$FE,$C0,$28,$02,
$CB,$DD,$7A,$E6,$3F,$4F,$DB,$01,$E6,$01,$28,$FA,$DB,$00,$57,$04,$83,$5F,
$7A,$E6,
$C0,$FE,$C0, $28,$02,
$CB,$DD,$7A,$E6,$30,$FE,$20,$20,$04,$CB,$C5,$18,$08,$FE,$10,
$28,$02,
$CB,$DD,$CB,$85,$CB,$55,$28,$0B,$7A,$E6,$0F,$FE,$0F,$20,$19,$CB,$CD,$18,
$15,$7A,$E6,$0F,$C6,$30,$DD,$34,$00,$FD,$77,$00,$FD,$23,$CB,$8D,$CB,$D5,
$18,$02,$18,$99,$DB,$01,$E6,$01,$28,$FA,$DB,$00,$57,$04,$CB,$4D,$20,$64,
$83,$5F,$CB,$45,$28,$34,$7A,$1F,$1F,$1F,$1F,$E6,$0F,$FE,$0A,$20,$04,$3E,
$20,$18,$02,$C6,$30,$FD,$77,$00,$FD,$23,$DD,$34,$00,$7A,$E6,$0F,
$FE,$0A,$20,$04,$3E,$20,$18,$02,$C6,$30,$FD,$77,$00,$FD,$23,$DD,$34,$00,
$78,$B9,$28,$B8,$18,$B8,$CB,$7A,$20,$04,$3E,$30,$18,$02,$3E,$31,$FD,$77,
$00,$FD,$23,$DD,$34,$00,$CB,$72,$20,$04,$3E,$30,$18,$02,$3E,$31,$FD,$77,
$00,$FD,$23,$DD,$34,$00,$18,$06,$18,$8E,$18,$8E,$18,$72,$CB,$6A,$20,$04,
$3E,$30,$18,$02,$3E,$31,$FD,$77,$00,$FD,$23,$DD,$34,$00,$CB,$62,$20,$04,
$3E,$30,$18,$02,$3E,$31,$FD,$77,$00,$FD,$23,$DD,$34,$00,
$CB,$5A,$20,$04,$3E,$30,$18,$02,$3E,$31,$FD,$77,$00,$FD,$23,$DD,$34,$00,
$CB,$52,$20,$04,$3E,$30,$18,$02,$3E,$31,$FD,$77,$00,$FD,$23,$DD,$34,$00,
$CB,$4A,$20,$04,$3E,$30,$18,$02,$3E,$31,$FD,$77,$00,$FD,$23,$DD,$34,$00,
$CB,$42,$20,$04,$3E,$30,$18,$02,$3E,$31,$FD,$77,$00,$FD,$23,$DD,$34,$00,
$78,$B9,$28,$8A,$18,$8A,$CB,$5D,$18,$04,$7A,$BB,$28,$33,$FD,$21,IBUF,
$3E,$06,$FD,$77,$00,
$FD,$23, $3E,$20,$FD,$77,$00,$FD,$23,$3E,$45,$FD,$77,$00,$FD,$23,$3E,$52,
$FD,$77,$00,$FD,$23,$3E,$52,
$FD,$77,$00,$FD,$23,$3E,$4F,$FD,$77,$00,$FD,$23,$3E,$52,$FD,$77,$00,$00,
$3E,$05,$D3,$01, $3E,$6A,$D3,$01;
END;
END;
PROCEDURE SET_RECIEVE_ON;
BEGIN CODE
$3E,$05,$D3,$01, $3E,$EA,$D3,$01;
END;
PROCEDURE SET_RECIEVE_OFF;
BEGIN CODE
$3E,$05,$D3,$01, $3E,$6A,$D3,$01;
END;
PROCEDURE LAS_REALTIME_CLOCK;
BEGIN
TBUF:='';
BEGIN CODE
$3E,$0F,$D3,$7B,$3E,$03,$D3,$7B,$21,TBUF,$3E,$0D,$77,$23,$0E,$0D,$3E,$01,
$77,$23,$0D,$20,$FB,$3E,$CF,$D3,$7B,$3E,$0F,$D3,$7B,$21,TBUF,$3E,$0D,$77,
$23,$0E,$0D,$7D,$E6,$0F,$57,$3E,$CF,$D3,$7B,$3E,$00,$D3,$7B,$7A,$F6,$90,
$D3,$79,$E6,$7F,$D3,$79,$3E,$36,$3D,$20,$FD,$3E,$CF,$D3,$7B,$3E,$0F,$D3,
$7B,$3E,$30,$D3,$79,$3E,$03,$3D,$20,$FD,$DB,$79,$E6,$0F,$57,$3E,$00,$D3,
$79,$7A,$77,$23,$0D,$20,$C6,$DD,$21,TBUF,$21,TBUF, $AF,$77 ,$16,$02,$1E,
$07,$23,
$06,$03,$4E,$23,$7E,$2B,$A3,$C6,$30,$77,$23,$DD,$34,$00,$79,$E6,$0F,$C6,
$30,$77,$23,$DD,$34,$00,$05,$20,$E7,$15,$28,$0E,$7E,$E6,$07,$C6,$30,$77,
$23,$DD,$34,$00,$1E,$0F,$18,$D4;
END;
DAG.SEKUND:=COPY(TBUF,1,2);
DAG.MINUT:=COPY(TBUF,3,2);
DAG.TIMER:=COPY(TBUF,5,2);
DAG.DAGNR:=COPY(TBUF,7,1);
DAG.DATO:=COPY(TBUF,8,2);
DAG.MANED:=COPY(TBUF,10,2);
DAG.ARSTAL:=COPY(TBUF,12,2);
IF DAG.DAGNR='0' THEN DAG.NAVN:='SØNDAG' ELSE
IF DAG.DAGNR='1' THEN DAG.NAVN:='MANDAG' ELSE
IF DAG.DAGNR='2' THEN DAG.NAVN:='TIRSDAG' ELSE
IF DAG.DAGNR='3' THEN DAG.NAVN:='ONSDAG' ELSE
IF DAG.DAGNR='4' THEN DAG.NAVN:='TORSDAG' ELSE
IF DAG.DAGNR='5' THEN DAG.NAVN:='FREDAG' ELSE
IF DAG.DAGNR='6' THEN DAG.NAVN:='LØRDAG' ELSE
DAG.DAGNR:='ERRORDG';
END;
PROCEDURE INIT_FEJLKODETEKST;
BEGIN
FEJL(.1.):='DØR 1 (TEKNIKRUM) ÅBEN';
FEJL(.2.):='DØR 2 (MØNTRUM) ÅBEN';
FEJL(.3.):='MIKROTELEFON AFBRUDT';
FEJL(.4.):='MØNTKASSETTE UDTAGET';
FEJL(.5.):='MØNTKASSETTE MANGLER';
FEJL(.6.):='MØNTKASSETTE 99% FULD';
FEJL(.7.):='INDLØB BLOKERET';
FEJL(.8.):='UDLØB BLOKERET';
FEJL(.9.):='LAGERDETEKTOR BLOKERET';
FEJL(.10.):='INDKASSERINGSDET. BLOKERET';
FEJL(.11.):='MØNTKASSETTE 80% FULD';
FEJL(.12.):='SORTERING MISLYKKET';
FEJL(.13.):='INDKASSERING MISLYKKET';
FEJL(.14.):='TILBAGEBETALING MISLYKKET';
FEJL(.15.):='WATCH DOG RESET';
FEJL(.16.):='TILFÆLDIGT RESET';
FEJL(.17.):='RAM CHECKSUM FEJL';
END;
PROCEDURE FORMATER_INDDATA;
VAR
I:INTEGER;
BEGIN
I:=1;
TEMP.TIDSP:=DAG.DATO+DAG.MANED+DAG.ARSTAL+'-'+DAG.TIMER+DAG.MINUT;
TEMP.RAPHOV:=COPY(IBUF,I,RAPHOVLANG);
I:=I+RAPHOVLANG;
TEMP.ID:=COPY(IBUF,I,IDLANG);
I:=I+IDLANG;
TEMP.HNDTYP:=COPY(IBUF,I,HNDTYPLANG);
I:=I+HNDTYPLANG;
TEMP.SEKNR:=COPY(IBUF,I,SEKNRLANG);
I:=I+SEKNRLANG;
TEMP.FYLDN:=COPY(IBUF,I,FYLDNLANG);
I:=I+FYLDNLANG;
TEMP.SALDO:=COPY(IBUF,I,SALDOLANG);
I:=I+SALDOLANG;
TEMP.DEBET:=COPY(IBUF,I,DEBETLANG);
I:=I+DEBETLANG;
TEMP.BSVAR:=COPY(IBUF,I,BSVARLANG);
I:=I+BSVARLANG;
TEMP.AKTFEJ:=COPY(IBUF,I,AKTFEJLANG);
I:=I+AKTFEJLANG;
IF RAPTYP='00' THEN
TEMP.FTALL:=COPY(IBUF,I,FTALLLANG)
ELSE
TEMP.FTALL:=' ';
I:=I+FTALLLANG;
END;
PROCEDURE CHECK_ID;
VAR
FILIDSTA,NYIDSTA:IDSTATUS;
N,I,FUND:INTEGER;
BEGIN
NYIDSTA.IDNUMMER:=TEMP.ID;
ASSIGN(IDFIL,'IDSTAT.DAT');
RESET(IDFIL);
I:=0; N:=0;
WHILE NOT EOF(IDFIL) DO
BEGIN
N:=N+1;
READ(IDFIL,FILIDSTA);
FUND:=POS(NYIDSTA.IDNUMMER,FILIDSTA.IDNUMMER);
IF FUND<>0 THEN
BEGIN
I:=I+1;
FILIDSTA.STATUS:='*';
SEEK(IDFIL,N-1);
WRITE(IDFIL,FILIDSTA);
END;
END;
IF I=0 THEN
BEGIN
NYIDSTA.STATUS:='*';
SEEK(IDFIL,LENGTH(IDFIL));
WRITE(IDFIL,NYIDSTA);
END;
CLOSE(IDFIL)
END;
PROCEDURE RESET_IDSTATUS;
VAR
IDRESET:IDSTATUS;
I:INTEGER;
BEGIN
I:=0;
WRITELN(CLRHOM); WRITELN(LST,^L);
WRITELN;
WRITELN(DAG.DATO,'/',DAG.MANED,'-',DAG.ARSTAL,' KL.: ',
DAG.TIMER,':',DAG.MINUT);
WRITELN(LST,DAG.DATO,'/',DAG.MANED,'-',DAG.ARSTAL,' KL.: ',
DAG.TIMER,':',DAG.MINUT);
ASSIGN(IDFIL,'IDSTAT.DAT');
RESET(IDFIL);
WHILE NOT EOF(IDFIL) DO
BEGIN
READ(IDFIL,IDRESET);
IF IDRESET.STATUS<>'*'
THEN BEGIN
I:=I+1;
WRITELN('DØGNRAPPORT IKKE MODTAGET FRA AY4 IDNUMMER: '
,IDRESET.IDNUMMER);
WRITELN(LST,'DØGNRAPPORT IKKE MODTAGET FRA AY4 IDNUMMER: '
,IDRESET.IDNUMMER);
END
ELSE BEGIN
SEEK(IDFIL,POSITION(IDFIL)-1);
IDRESET.STATUS:=' ';
WRITE(IDFIL,IDRESET);
END;
END;
IF I=0 THEN BEGIN
WRITELN('INGEN "DØGNRAPPORTER" SAVNES FRA FORLØBNE DØGN');
WRITELN(LST,'INGEN "DØGNRAPPORTER" SAVNES FRA FORLØBNE DØGN');
END ELSE BEGIN
WRITELN(I,' MØNTTELEFONER HAR IKKE AFSENDT DØGNRAPPORT');
WRITELN(LST,I,' MØNTTELEFONER HAR IKKE AFSENDT DØGNRAPPORT');
END;
CLOSE(IDFIL);
END;
PROCEDURE DECOD_FEJLSTATUS;
BEGIN
FOR FEJLPOINTER:=1 TO LEN(TEMP.AKTFEJ) DO
BEGIN
FEJLINDIK:=COPY(TEMP.AKTFEJ,FEJLPOINTER,1);
IF FEJLINDIK>'1' THEN WRITELN('ERROR I FEJLKODEOPLYSNING') ELSE
IF FEJLINDIK<'0' THEN WRITELN('ERROR I FEJLKODEOPLYSNING') ELSE
IF FEJLINDIK='1' THEN
IF FEJLPOINTER>MAXFEJL THEN WRITELN('FEJLKODE IKKE IMPLEMENTERET')
ELSE
IF PRINTERSTATUS=1 THEN WRITELN(LST,FEJL(.FEJLPOINTER.))
ELSE
WRITELN(FEJL(.FEJLPOINTER.));
END;
END;
PROCEDURE SKRIVNYRECORD;
BEGIN
ASSIGN(DATAFIL,'B:'+JOBSTATUS.DAYFILENAME+'.DAT');
RESET(DATAFIL);
SEEK(DATAFIL,LENGTH(DATAFIL));
WRITE(DATAFIL,TEMP);
CLOSE(DATAFIL);
END;
PROCEDURE SKRIV_PA_PRINTER;
BEGIN
WRITELN(LST);
WRITELN(LST,OVERSKRIFT);
WRITELN(LST);
WRITE(LST,'DATO: ',DAG.NAVN,' DEN ',DAG.DATO,'/',DAG.MANED,
'-',DAG.ARSTAL);
WRITELN(LST,' TID: ',DAG.TIMER,'.',DAG.MINUT,'.',DAG.SEKUND);
WRITELN(LST);
WRITELN(LST,'TELEFONENS NUMMER: ',TEMP.ID);
WRITELN(LST);
WRITELN(LST,'BETALTE DEBITERINGSPULSER: ',TEMP.DEBET,' STK.');
WRITELN(LST,'B-SVARS PULSER...........: ',TEMP.BSVAR,' STK.');
WRITELN(LST,'MØNTBOXENS FYLDNING......: ',TEMP.FYLDN,' %');
WRITELN(LST,'MØNTTELEFONENS INT. SALDO: ',KOMMASALDO,' KR.');
WRITELN(LST);
WRITELN(LST);
WRITELN(LST,TEKST_ET);
WRITELN(LST);
WRITELN(LST,TEKST_TO);
WRITELN(LST,TEKST_TRE);
PRINTERSTATUS:=1;
IF TOMINDIK='0' THEN DECOD_FEJLSTATUS;
PRINTERSTATUS:=0;
WRITELN(LST,^L);
END;
PROCEDURE SKRIV_RAPP_PA_SKARM;
BEGIN
KOMMASALDO:=COPY(TEMP.SALDO,1,4)+','+COPY(TEMP.SALDO,5,2);
WRITELN(CLRHOM);
WRITELN(^Æ,'=$ ');
WRITELN(' ',OVERSKRIFT);
WRITELN;
WRITE('DATO: ',DAG.NAVN,' DEN ',DAG.DATO,'/',DAG.MANED,
'-',DAG.ARSTAL);
WRITELN(' TID: ',DAG.TIMER,'.',DAG.MINUT,'.',DAG.SEKUND);
WRITELN;
WRITELN('TELEFONENS NUMMER: ',TEMP.ID);
WRITELN;
WRITELN('BETALTE DEBITERINGSPULSER: ',TEMP.DEBET,' STK.');
WRITELN('B-SVARS PULSER...........: ',TEMP.BSVAR,' STK.');
WRITELN('MØNTBOXENS FYLDNING......: ',TEMP.FYLDN,' %');
WRITELN('MØNTTELEFONENS INT. SALDO: ',KOMMASALDO,' KR.');
WRITELN;
WRITELN;
WRITELN(TEKST_ET);
WRITELN;
WRITELN(TEKST_TO);
WRITELN(TEKST_TRE);
IF TOMINDIK='0' THEN DECOD_FEJLSTATUS;
(* SKRIV_PA_PRINTER; *)
WRITELN;
TEKST_ET:='';
TEKST_TO:='';
TEKST_TRE:='';
END;
PROCEDURE AY4RAPP_TIL_DBASEFORM;
VAR
I,N,X:INTEGER;
DBCHAR:CHAR;
BEGIN
ASSIGN(DBFIL,'B:'+JOBSTATUS.DAYFILENAME+'.TXT'); REWRITE(DBFIL);
ASSIGN(DATAFIL,'B:'+JOBSTATUS.DAYFILENAME+'.DAT'); RESET(DATAFIL);
FOR X:=LENGTH(DATAFIL)-1 DOWNTO 0 DO
BEGIN
SEEK(DATAFIL,X);
READ(DATAFIL,SRAPIND);
DBBUF:=SRAPIND.TIDSP+SKILLETEGN+
SRAPIND.RAPHOV+SKILLETEGN+SRAPIND.ID+SKILLETEGN+
SRAPIND.HNDTYP+SKILLETEGN+SRAPIND.SEKNR+SKILLETEGN+
SRAPIND.FYLDN+SKILLETEGN+SRAPIND.SALDO+SKILLETEGN+
SRAPIND.DEBET+SKILLETEGN+SRAPIND.BSVAR+SKILLETEGN+
SRAPIND.AKTFEJ+SKILLETEGN+SRAPIND.FTALL+^M^J;
N:=LEN(DBBUF);
FOR I:=1 TO N DO
BEGIN
DBCHAR:=COPY(DBBUF,I,1);
WRITE(DBFIL,DBCHAR);
END;
END;
CLOSE(DATAFIL);
CLOSE(DBFIL);
END;
PROCEDURE STRAKSRAPP;
BEGIN
SKRIVNYRECORD;
TOMINDIK:=COPY(TEMP.AKTFEJ,2,1);
IF TOMINDIK='1' THEN
BEGIN
OVERSKRIFT:='TØMNINGSRAPPORT FRA MØNTTELEFON AY4';
TEKST_ET:='OPTALT I BANK............: ____,__ KR.';
TEKST_TO:='DIFFERENCE...............: ____,__ KR.';
SKRIV_RAPP_PA_SKARM;
END
ELSE
BEGIN
OVERSKRIFT:='FEJLRAPPORT FRA MØNTTELEFON TYPE AY4';
TEKST_ET:='AKTUELLE FEJL:';
SKRIV_RAPP_PA_SKARM;
END;
WRITELN;
END;
PROCEDURE DOGNRAPP;
VAR
I:INTEGER;
TEMPTEKST:STRING(.2.);
BEGIN
SKRIVNYRECORD;
CHECK_ID;
TOMINDIK:='0';
OVERSKRIFT:='DØGNRAPPORT FRA MØNTTELEFON TYPE AY4';
TEKST_ET:='FEJL I DET FORLØBNE DØGN';
TEKST_TO:='FEJLKODE: 12 13 14 15 21 22 23 24 25 26';
TEKST_TRE:='ANTAL : ';
I:=1;
TEMPTEKST:='';
WHILE I<20 DO BEGIN
TEMPTEKST:=COPY(TEMP.FTALL,I,2);
TEKST_TRE:=TEKST_TRE+TEMPTEKST+' ';
I:=I+2;
END;
SKRIV_RAPP_PA_SKARM;
WRITELN;
END;
PROCEDURE DIAGNOSERAPP;
BEGIN
TOMINDIK:='0';
OVERSKRIFT:='DIAGNOSERAPPORT! (GEMMES IKKE PÅ DISK)';
TEKST_ET:='AKTUELLE FEJL:';
SKRIV_RAPP_PA_SKARM;
WRITELN;
END;
PROCEDURE HENTPORTDATA;
(*HENTER DATA PAA PORT, DER PLACERES I "IBUF" SOM STRING *)
(*"RAPTYP" INDEHOLDER INFORMATION OM RAPPORTTYPEN: *)
(* 00 = DØGNRAPPORT *)
(* 33 = DIAGNOSERAPPORT *)
(* ANDET= STRAKSRAPPORT *)
VAR
I: INTEGER;
BEGIN
DATAIND_ASCII;
LAS_REALTIME_CLOCK;
WRITELN(IBUF);
I:=1+RAPHOVLANG+IDLANG;
RAPTYP:=COPY(IBUF,I,2);
FORMATER_INDDATA;
IF RAPTYP='00' THEN DOGNRAPP ELSE
IF RAPTYP='33' THEN DIAGNOSERAPP ELSE STRAKSRAPP;
END;
PROCEDURE CHECK_SIODATA;
BEGIN
PORTSTATUS:='';
BEGIN CODE
$3E,$05,$D3,$01, $3E,$EA,$D3,$01,
$21,PORTSTATUS,$3E,$01,$77,$23,$DB,$01,$E6,$01,$20,$05,$3E,$30,$77,$18,$03,
$3E,$31,$77,$00;
END;
IF PORTSTATUS='1' THEN HENTPORTDATA;
END;
PROCEDURE RESET_DAYFILE;
BEGIN
FILNAVN:=DAG.ARSTAL+DAG.MANED+DAG.DATO;
ASSIGN(DATAFIL,'B:'+FILNAVN+'.DAT');
REWRITE(DATAFIL);
CLOSE(DATAFIL);
ASSIGN(JOBFIL,'JOBSTAT.DAT');
RESET(JOBFIL);
READ(JOBFIL,JOBSTATUS);
JOBSTATUS.DAYFILENAME:=FILNAVN;
JOBSTATUS.JOB2:=1;
SEEK(JOBFIL,0);
WRITE(JOBFIL,JOBSTATUS);
CLOSE(JOBFIL);
END;
PROCEDURE RESET_JOBSTATUS;
BEGIN
ASSIGN(JOBFIL,'JOBSTAT.DAT');
RESET(JOBFIL);
READ(JOBFIL,JOBSTATUS);
JOBSTATUS.JOB1:=0;
JOBSTATUS.JOB2:=0;
JOBSTATUS.JOB3:=0;
SEEK(JOBFIL,0);
WRITE(JOBFIL,JOBSTATUS);
CLOSE(JOBFIL);
END;
BEGIN
WRITELN(^Æ,'A'); WRITELN(^Æ,'.0');
WRITELN(CLRHOM);
TEKST_ET:=''; TEKST_TO:=''; TEKST_TRE:='';
INIT_FEJLKODETEKST;
INITIALISER_SIO;
ASSIGN(JOBFIL,'JOBSTAT.DAT');
RESET(JOBFIL);
READ(JOBFIL,JOBSTATUS);
CLOSE(JOBFIL);
A:=3; B:=4;
WHILE NOT KEYPRESS DO
BEGIN
SET_RECIEVE_OFF;
LAS_REALTIME_CLOCK;
NUTID:=COPY(TBUF,A,B);
WRITELN(^Æ,'=!!',RVSON,DAG.DATO,'/',DAG.MANED,'-',
DAG.ARSTAL,' KL. ',DAG.TIMER,':',
DAG.MINUT,':',DAG.SEKUND,RVSOFF);
WRITE(^Æ,'=!Å',RVSON,'AY4 DATAMODTAGER',RVSOFF);
WRITELN;
IF NUTID= JOBSTATUS.JOBTIME1 THEN
IF JOBSTATUS.JOB1=0 THEN
BEGIN
RESET_IDSTATUS;
JOBSTATUS.JOB1:=1;
END;
IF NUTID= JOBSTATUS.JOBTIME2 THEN
IF JOBSTATUS.JOB2=0 THEN
BEGIN
AY4RAPP_TIL_DBASEFORM;
RESET_DAYFILE;
JOBSTATUS.JOB2:=1;
END;
IF NUTID= JOBSTATUS.JOBTIME3 THEN
IF JOBSTATUS.JOB3=0 THEN
BEGIN
RESET_JOBSTATUS;
JOBSTATUS.JOB3:=1;
END;
SET_RECIEVE_ON;
CHECK_SIODATA;
END;
SET_RECIEVE_OFF;
WRITELN(^Æ,'.1');
AY4RAPP_TIL_DBASEFORM;
ASSIGN(MENUFIL,'B1.COM'); EXECUTE(MENUFIL);
END.
«eof»