|
DataMuseum.dkPresents historical artifacts from the history of: Jet Computer Jet80 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Jet Computer Jet80 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - 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»