|
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: 13825 (0x3601) Types: Q1_Text, reclen=79 Notes: q1file Names: »KONTUT_U«
└─⟦45145b6cc⟧ Bits:30008636 DDMQ1-0075_Bokrut_diskett_2_Original_JÅ_800504_PL1_LMC └─⟦this⟧ »KONTUT_U«
/* KONTUT ÄR ENRUTIN FÖR UTSKRIFT AV SMMTLIGA KONTERINGAR UNDER EN MÅNAD BEGRÄNSNINGARNA ANGES SOM KONTO OCH AVDELNINGS GRÄNSER EN ELLER FLERA MÅNADER KAN OMFATTAS AV RAPPORTEN PRG JÅ 800504 */ DCL FILNAMN CHAR(1), FIL FILE, 1 VER_STR, 2 VER_ID, 3 AVD CHAR(3), 3 KONTO FIXED(4), 2 DAT FIXED(4), 2 VERNR FIXED(7), 2 VTXT CHAR(20), 2 BEL FIXED(11,2), 2 KOD CHAR(1), 1 IN_STR(64), 2 CH CHAR(40), IN_SIZE BINARY INIT(64), D_T BINARY INIT(37), VERSION CHAR(37) INIT('KONTUT Version 2.1 800609'), 1 BREC, 2 FILLER FIXED(11), 2 DATUM CHAR(6), 2 S_STR, 3 SKONTO FIXED(4), 3 SAVD CHAR(3), 2 E_STR, 3 EKONTO FIXED(4), 3 EAVD CHAR(3), 1 VERID_STR, 2 T66 CHAR(3), T6 CHAR(3), T8 CHAR(8), SLUT BINARY, OK BINARY, MAX_P_FIL BINARY INIT(0), MAX_P_STR BINARY INIT(0), POS_STR BINARY INIT(0), SDEB FIXED(11,2) INIT(0), SKRE FIXED(11,2) INIT(0), TDEB FIXED(11,2) INIT(0), TKRE FIXED(11,2) INIT(0), RAD BINARY INIT(0), SIDA BINARY INIT(1), C CHAR(16) INIT('-----------9V.99'), 1 DATREC, 2 FIRMA_NAMN CHAR(20) INIT(' '); START:PROC; PUT FILE(D) SKIP EDIT(VERSION)(A(D_T*2)); RETURN; END; RUB:PROC; PUT SKIP(RAD+3) EDIT(FIRMA_NAMN)(A) SKIP(2) EDIT ('KONTOUTDRAG OMFATTANDE KONTO ')(A)(SKONTO)(A(5))(SAVD)(A)(' TILL ') (A)(EKONTO)(A(5))(EAVD)(A(10)) (' DATUM ')(A)(DATUM)(A)(' SIDA ')(A) (SIDA)(A) SKIP(2) EDIT('VER.NR TEXT')(A(33)) ('BOKF.DATUM KONTO AVD. ')(A) ('DEBET KREDIT')(A) SKIP; RAD=40; SIDA=SIDA+1; RETURN; END; SKRIV_KONTO_AVD_SUM:PROC; PUT SKIP EDIT('SUMMA')(X(48),A(9))(SDEB)(PC)(SKRE)(PC)(SDEB-SKRE)(PC) SKIP; RAD=RAD-2; SDEB=0; SKRE=0; T6=T66; RETURN; END; DO_EXIT:PROC; CALL SKRIV_KONTO_AVD_SUM; PUT SKIP(2) EDIT('TOTALT')(X(48),A(9))(TDEB)(PC)(TKRE)(PC)(TDEB-TKRE) (PC) SKIP(RAD-2); STOP; END; OPEN_FIL:PROC; OPEN FIL; CALL SEOF(FIL); MAX_P_FIL=UNSPEC(FIL); UNSPEC(FIL)=0; SLUT=0; RETURN; END; GET_POST:PROC; IF POS_STR = MAX_P_STR THEN DO; IF MAX_P_FIL = 0 THEN DO; SLUT=1; RETURN; END; ELSE DO; ON ENDFILE GO TO VIDARE; READ FILE(FIL) INTO(IN_STR); VIDARE: MAX_P_STR=IN_SIZE; IF MAX_P_STR > MAX_P_FIL THEN MAX_P_STR=MAX_P_FIL; MAX_P_FIL=MAX_P_FIL-MAX_P_STR; POS_STR=1; END; END; ELSE DO; POS_STR=POS_STR+1; END; VER_STR=IN_STR(POS_STR); VERID_STR=VER_ID; RETURN; END; SKRIV_RAD:PROC; IF RAD < 7 THEN CALL RUB; PUT SKIP EDIT(VERNR)(A(10))(VTXT)(A(28))(DAT)(P'99.99',X(3))(KONTO) (A(7))(AVD)(A(4)); IF KOD = 'K' THEN DO; PUT EDIT(' ')(A(15)); SKRE=SKRE+BEL; TKRE=TKRE+BEL; END; IF KOD = 'D' THEN DO; SDEB=SDEB+BEL; TDEB=TDEB+BEL; END; PUT EDIT(BEL)(PC); RAD=RAD-1; RETURN; END; /* H Ä R B Ö R J A R H U V U D P R O G R A M M E T */ CALL START; CALL OPEN_FIL; CALL GET_POST; BREC=VER_STR; CALL RUB; CALL GET_POST; IF SLUT THEN CALL DO_EXIT; CALL SKRIV_RAD; T6=T66; POST_LOOP: CALL GET_POST; IF SLUT THEN CALL DO_EXIT; IF T66 ¬= T6 THEN CALL SKRIV_KONTO_AVD_SUM; CALL SKRIV_RAD; GO TO POST_LOOP; END;