|
|
DataMuseum.dkPresents historical artifacts from the history of: Q1 computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Q1 computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 13193 (0x3389)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »V41_1:2«
└─⟦60d3ae5fc⟧ Bits:30008760 50001599
└─⟦this⟧ »V41_1:2«
/* V4 ÄR ETT PROGRAM FÖR UTSKRIFT AV KONTO,UKONTO & IK-SLAG.
V 0:1
PRG JÅ 780907 */
DCL 1 KONTOSTR,
2 KONTO5 CHAR(5),
2 SDATUM5 FIXED(6),
2 TEXT5 CHAR(32),
2 UHMARK5 CHAR(1),
2 LISTB BINARY,
2 IKB BINARY;
/* 46 BYTES */
DCL 1 UKSTR,
2 KONTO3 CHAR(3),
2 SDATUM3 FIXED(6),
2 TEXT CHAR(32),
2 UHMARK CHAR(1);
/* 40 BYTES */
DCL 1 FSTR,
2 FIL1 FILE;
DCL 1 STR,
2 XN CHAR(24) INIT(' KONTOP ');
DCL T70 CHAR(70) INIT
('KONTO TEXT SDATUM UM LISTM UK IKSLAG'),
T74 CHAR(74) INIT
(' 12345 0123456789'),
TAB(5) CHAR(25) INIT('KONTOPLAN ',
'U-KONTOTABELL ',
'K-SLAGSTABELL ',
'ALLA KONTON ',
'ENDAST 5-SIFFRIGA KONTON '),
LISTM CHAR(5),
UK CHAR(1),
IKSLAG CHAR(10),
TOM CHAR(10) INIT(' '),
NAMN(2) CHAR(10) INIT('KVV/KWAROS','AROS'),
SDATUM CHAR(6),
KONTO CHAR(5),
FIL BINARY,
SIDA BINARY INIT(0),
R BINARY INIT(0),
S CHAR(1),
DATUM CHAR(6),
P POINTER,
D BASED(P) CHAR(6),
PP POINTER,
1 STRX BASED(PP),
2 X CHAR(2),
2 Y CHAR(2),
2 FIRMA CHAR(1),
2 OP_KOD BINARY,
2 RADANT BINARY,
VERSION CHAR (47) INIT (' V41 Version 1.2 790412');
STRGEN:PROC;
IF FIL=1 THEN DO;
LISTM=TOM;
IKSLAG=TOM;
J=1;
DO I=1 TO 5;
IF (J&LISTB)=J THEN SUBSTR(LISTM,I,1)='1';
J=J*2;
END;
J=1;
DO I=0 TO 9;
UK=I;
IF (J&IKB)=J THEN SUBSTR(IKSLAG,I+1,1)=UK;
J=J*2;
END;
UK=' ';
IF (J & IKB) = J THEN UK='1';
SDATUM=SDATUM5;
TEXT=TEXT5;
UHMARK=UHMARK5;
RETURN;
END;
ELSE DO;
SDATUM=SDATUM3;
RETURN;
END;
END;
RUB:PROC;
SIDA=SIDA+1;
PUT SKIP(R+4) EDIT(NAMN(FIRMA-7))(A(19))(TAB(FIL))(A)(TAB(S+3))(A)
(' ')(A(6))('19')(A)(DATUM)(A(2))('-')(A)(SUBSTR(DATUM,3,2))(A(2))
('-')(A)(SUBSTR(DATUM,5,2))(A(5))('SID')(A(4))(SIDA)(A) SKIP(2);
IF FIL=1 THEN PUT EDIT(T70)(A)SKIP EDIT(T74)(A)SKIP;
ELSE PUT EDIT(T70)(A(51))SKIP(2);
R= RADANT - 8;
RETURN;
END;
SKRIV:PROC;
PUT SKIP EDIT(KONTO)(A(7))(TEXT)(A(34));
IF SDATUM=0 THEN PUT EDIT(TOM)(A(8))(UHMARK)(A(4));
ELSE PUT EDIT(SDATUM)(A(8))(UHMARK)(A(4));
IF FIL=1 THEN PUT EDIT(LISTM)(A(7))(UK)(A(4))(IKSLAG)(A);
R=R-1;
RETURN;
END;
FRAEGA:PROC;
PUT FILE(D) SKIP EDIT('SKA ALLA KONTO SKRIVAS UT, ELLER')(A(47))
('BARA DE')(A(8))(J)(A)('-SIFFRIGA')(A(38))
('DVS DE SOMM ÄR AKTUELLA VID KONTERING')(A(47))
('1 = ALLA')(A(47))('2 = ENDAST')(A(11))(J)(A)('-SIFFRIGA')(A(35));
GET SKIP LIST(S);
IF VERIFY(S,'12')=0 THEN GO TO UT;
PUT FILE(D) SKIP EDIT(VERSION)(A(105))('*** UTSKRIFT PÅGÅR ***')
(A(36));
CALL CORED(0);
RETURN;
END;
/* H Ä R B Ö R J A R H U V U D P R O G R A M M E T */
START:
UNSPEC(P)=16570;
UNSPEC(PP)=16616;
CALL DATCHECK(DATUM);
IF DATUM='0 ' THEN GO TO UT;
D='0';
J=5;
FIL=Y;
IF FIL¬=1 THEN DO;
SUBSTR(TAB(5),8,1)='3';
J=3;
END;
IF FIL=2 THEN XN=' UKONTOP ';
IF FIL=3 THEN XN=' KSKONTOP';
FSTR=STR;
OPEN FIL1;
CALL FRAEGA;
L0: IF R<5 THEN CALL RUB;
L1: IF FIL=1 THEN DO;
ON ENDFILE GO TO UT;
READ FILE(FIL1) INTO(KONTOSTR);
KONTO=KONTO5;
END;
ELSE DO;
ON ENDFILE GO TO UT;
READ FILE(FIL1) INTO(UKSTR);
KONTO=KONTO3;
END;
IF (SUBSTR(KONTO,J,1)=' ') & (S='2') THEN GO TO L1;
CALL STRGEN;
CALL SKRIV;
GO TO L0;
UT: D=DATUM;
PUT SKIP(R);
CALL PLOAD('Q ');
END;