DataMuseum.dk

Presents historical artifacts from the history of:

Q1 computer

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Q1 computer

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦7e6095499⟧ Q1_Text, reclen=79

    Length: 7742 (0x1e3e)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »AKTSAL1«

Derivation

└─⟦ff53f924a⟧ Bits:30008653 DDMQ1-0093_Nya_bokforingssystemet_II_original
    └─⟦this⟧ »AKTSAL1« 

Text

/*FÖRSTA RADEN*/                                                               
/*AKTSAL GER AKTUELLA SALDON PÅ KONTO:1020,1041,1211,2010,3,TOM ANGIVEN DAG    
KLART: 780625   PROGR:TD */                                                    
                                                                               
DCL VERFIL FILE;CALL KFILE(VERFIL);                                            
                                                                               
DCL 1 VER,2 KO FIXED(4),2 AVD FIXED(2),2 PROJ FIXED(4),2 DAT FIXED(4),         
2 TYP CHAR(1),2 VERNR FIXED(6),2 BEL FIXED(11,2),2 KOD CHAR(1);                
                                                                               
DCL 1 SAM,2 SKO FIXED(4),2 SAVD FIXED(2),2 SPROJ FIXED(4),                     
2 SAD(12) FIXED(11,2),2 SAK(12) FIXED(11,2);                                   
                                                                               
DCL 1 KTX,2 KSTR,3 KONTO FIXED(4),3 Z CHAR(1),2 K CHAR(4),2 TEXT CHAR(34),     
2 IB FIXED(13,2);                                                              
                                                                               
DCL 1 DATREC,2 DAG CHAR(6),2 MON CHAR(3),2 MNR FIXED(2),2 SK(14) CHAR(1),      
2 CO FIXED(1),2 HUVKOD(12) CHAR(1);                                            
DCL 1 XDATREC,2 XDAG CHAR(9),2 XMNR FIXED(2),2 XSK(14) CHAR(1),2 XCO FIXED(1), 
2 XHUVKOD(12) CHAR(1);                                                         
XDAG='XXXXXX   ';XMNR=0;                                                       
DCL DATFIL FILE,XXMNR FIXED(2),KTOTX FILE,RAD FIXED(2),IND FIXED(1),           
S CHAR(1),Q FIXED(1),ADAG FIXED(2),SAMFIL FILE,                                
XKO FIXED(4),AKO(10) FIXED(4) INIT(1020,1041,1211,2010,3,0,0,0,0,0),           
KD FIXED(13,2),KK FIXED(13,2),QKTO BINARY,QSAM BINARY,QVER BINARY,             
RECNR BINARY,I BINARY,                                                         
JUMP FIXED(1),C CHAR(20) INIT('-------------9V.99'),                           
KIB FIXED(13,2);                                                               
OPEN KTOTX;OPEN DATFIL;OPEN VERFIL;OPEN SAMFIL;                                
READ FILE(DATFIL)INTO(DATREC);IF DAG='XXXXXX' THEN GO TO SLUTT;                
DO I=1 TO 14;XSK(I)=SK(I);END;XCO=CO;DO I=1 TO 12;XHUVKOD(I)=HUVKOD(I);END;    
PUT FILE(D) SKIP EDIT(' ')(A(37))('***        AKTUELLA SALDON        ***')     
(A(74))('STÄLL IN PERFORERINGEN')(A(37))('TRYCK SEDAN RETURN.')(A(37));        
GET SKIP LIST(S);                                                              
PUT FILE(D)SKIP EDIT('KONTOSTÄLLNINGEN SKA AVSE VILKEN DAG I MÅNADEN')         
(A(47))(MON)(A(3))('?')(A(22));GET SKIP LIST(ADAG);                            
PUT FILE(D) SKIP EDIT(' ')(A(42))('*** UTSKRIFT PÅGÅR ***')(A(69));            
IND=0;JUMP=0;RAD=5;                                                            
I=0;RECNR=0;                                                                   
RUB:PUT SKIP(RAD)EDIT('AKTUELL SALDOSTÄLLNING ')(A)(ADAG)(A)                   
(' ')(A)(MON)(A)(',PÅ KONTON:')(A);                                            
DO III=1 TO 10;IF AKO(III)¬=0 THEN PUT EDIT(AKO(III))(A)(',')(A);END;          
PUT EDIT('       UTSKRIFTSDATUM:')(A)(DAG)(A(10))SKIP(2)EDIT                   
('KONTO')(A(8))('BENÄMNING')(A(43))('ING SALDO')(A(15))                        
('AKT MÅN DEB')(A(17))('AKT MÅN KRE')(A(17))('AKT MÅN SAL')(A(15))             
('AKT UTG SALDO')(A)SKIP;                                                      
RAD=45;                                                                        
NY:UNSPEC(SAMFIL)=0;UNSPEC(VERFIL)=0;UNSPEC(KTOTX)=0;                          
I=I+1;II=1;KD=0;KK=0;KIB=0;QSAM=0;QVER=0;QKTO=0;BEL=0;                         
DO III=1 TO 12;SAD(III)=0;SAK(III)=0;END;                                      
IF AKO(I)=0 THEN GO TO UT;                                                     
IF AKO(I)<1000 THEN DO;                                                        
UNSPEC(SAMFIL)=0;UNSPEC(VERFIL)=0;UNSPEC(KTOTX)=0;II=10;                       
IF AKO(I)<100 THEN II=100;IF AKO(I)<10 THEN II=1000;                           
KTOIN:ON ENDFILE GOTO SAMIN;READ FILE(KTOTX)INTO(KTX);                         
IF KONTO<1000 THEN GOTO KTOIN;                                                 
J=KONTO/II;IF J¬=AKO(I) THEN GOTO KTOIN;                                       
QKTO=1;                                                                        
SAMIN:ON ENDFILE GO TO SAMUT1;READ FILE(SAMFIL)INTO(SAM);                      
J=SKO/II;                                                                      
IF J¬=AKO(I) THEN GO TO SAMIN;                                                 
QSAM=1;                                                                        
SAMUT1:ON ENDFILE GO TO VERUT1;READ FILE(VERFIL)INTO(VER);                     
J=KO/II;                                                                       
IF J¬=AKO(I) THEN GO TO SAMUT1;                                                
QVER=1;                                                                        
VERUT1:END;                                                                    
ELSE DO;ON ERROR GO TO SAMUT2;READ KEY(AKO(I))FILE(SAMFIL)INTO(SAM);           
QSAM=1;                                                                        
SAMUT2:KONTO=AKO(I);Z='A';                                                     
ON ERROR GOTO KTOUT2;READ KEY(KSTR)FILE(KTOTX)INTO(KTX);                       
QKTO=1;                                                                        
KTOUT2:ON ERROR GO TO VERUT2;READ KEY(AKO(I))FILE(VERFIL)INTO(VER);            
QVER=1;                                                                        
VERUT2:END;                                                                    
ACKSAM:IF QSAM=1 THEN DO III=1 TO MNR-1;KIB=KIB+SAD(III)-SAK(III);END;         
ON ENDFILE GO TO ACKVER;READ FILE(SAMFIL)INTO(SAM);                            
J=SKO/II;IF J¬=AKO(I) THEN GO TO ACKVER;                                       
QSAM=1;GO TO ACKSAM;                                                           
ACKVER:XXMNR=MNR-4;IF XXMNR<1 THEN XXMNR=XXMNR+12;                             
IF QVER=1&((DAT-100*XXMNR)<=ADAG) THEN DO;                                     
IF KOD='D' THEN KD=KD+BEL;IF KOD='K' THEN KK=KK+BEL;                           
END;                                                                           
ON ENDFILE GO TO ACKIB;READ FILE(VERFIL)INTO(VER);                             
J=KO/II;IF J¬=AKO(I) THEN GO TO ACKIB;                                         
QVER=1;GO TO ACKVER;                                                           
ACKIB:IF QKTO=1&Z='A' THEN DO;                                                 
KIB=KIB+IB;END;                                                                
ON ENDFILE GOTO PRT;READ FILE(KTOTX)INTO(KTX);                                 
J=KONTO/II;IF J¬=AKO(I) THEN GOTO PRT;                                         
QKTO=1;GOTO ACKIB;                                                             
PRT:KONTO=AKO(I);Z='A';                                                        
ON ERROR GO TO EJTXT;READ KEY(KSTR)FILE(KTOTX)INTO(KTX);GO TO KOPRT;           
EJTXT:TEXT='*** KONTOT SAKNAS I KONTOPLANEN   ';                               
KOPRT:PUT SKIP EDIT(AKO(I))(P'ZZZZ9   ')(TEXT)(A(35))(KIB)(PC)(KD)(PC)(KK)(PC) 
(KD-KK)(PC)(KIB+KD-KK)(PC)SKIP;RAD=RAD-2;                                      
GO TO NY;                                                                      
UT:PUT SKIP(RAD-5);                                                            
SLUTT:CALL LOAD('BOKRUT',6);END;