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

⟦e0507fd88⟧ Q1_Text, reclen=79

    Length: 12561 (0x3111)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »MSABRES1«

Derivation

└─⟦e048455f8⟧ Bits:30008637 DDMQ1-0076_MSABRES1_ej_testkort_med_MSAB_data
    └─⟦this⟧ »MSABRES1« 

Text

                                                                               
DCL 1 KPL,                                                                     
    2 KONTO CHAR(4) INIT(' '),                                                 
    2 STK CHAR(1) INIT(' '),                                                   
    2 BEN CHAR(34) INIT(' '),                                                  
    2 ACD(12) FIXED(10,2) INIT(0,0,0,0,0,0,0,0,0,0,0,0),                       
    2 ACK(12) FIXED(10,2) INIT(0,0,0,0,0,0,0,0,0,0,0,0),                       
    2 IB FIXED(11,2) INIT(0);                                                  
DCL 1 KPLB,                                                                    
    2 KTO CHAR(4) INIT(' '),                                                   
    2 BENA CHAR(34) INIT(' ');                                                 
DCL 1 HJ,                                                                      
    2 KT CHAR(4) INIT(' '),                                                    
    2 BN CHAR(34) INIT(' '), 2 Y FIXED(1),                                     
    2 AD FIXED(12,2)INIT(0),                                                   
    2 AK FIXED(12,2)INIT(0),                                                   
    2 UTG FIXED(12,2)INIT(0);                                                  
DCL PD(9) FIXED(12,2),PK(9) FIXED(12,2),PS(9) FIXED(12,2),I FIXED(3);          
DO I=1 TO 9;PD(I)=0;PK(I)=0;PS(I)=0;END;                                       
DCL TX1 CHAR(50) INIT('          SUMMA FÖRSÄLJING:');                          
DCL TX2 CHAR(50) INIT('          SUMMA ÖVRIGA INTÄKTER:');                     
DCL TX3 CHAR(50) INIT('          SUMMA VAROR:');                               
DCL TX4 CHAR(50) INIT('          SUMMA LÖNER OCH PERSONALKOSTNADER:');         
DCL TX5 CHAR(55)INIT('          SUMMA ÖVRIGA KOSTNADER:');                     
DCL TX6 CHAR(50) INIT('          RÖRELSERESULTAT FÖRE AVSKRIVNINGAR:');        
DCL TX7 CHAR(50)INIT('          RÖRELSERESULTAT EFTER AVSKRIVNINGAR');         
DCL TX8 CHAR(60) INIT('          RESULT EFTER FIN.INTÄKTER OCH KOSTNADER:');   
DCL TX9 CHAR(60)INIT('          REDOVISAT RESULTAT:');                         
DCL TX10 CHAR(50)INIT('          REDOVISTAT RESULTAT:');                       
DCL TX CHAR(60),DEL FIXED(1);                                                  
DCL A1 FIXED(12,2),A2 FIXED(12,2),D1 FIXED(12,2),D2 FIXED(12,2),D3 FIXED(12,2);
DCL D4 FIXED(12,2),K1 FIXED(12,2),K2 FIXED(12,2),K3 FIXED(12,2),K4 FIXED(12,2);
DCL S1 FIXED(12,2),S2 FIXED(12,2),S3 FIXED(12,2),S4 FIXED(12,2);               
DCL KOO CHAR(6) INIT(' ');DCL UT1 FIXED(12,2);UT1=0;DCL R FIXED(3);R=48;       
A1=0;A2=0;D1=0;D2=0;D3=0;D4=0;K1=0;K2=0;K3=0;K4=0;S1=0;S2=0;S3=0;S4=0;XX1=0;   
DCL MM CHAR(8),PP FIXED(3),NI FIXED(1);DCL SIDA FIXED(3);SIDA=1;               
DCL R1 CHAR(25) INIT('RESULTATRÄKNING');                                       
DCL R2 CHAR(25) INIT('SIDA:');                                                 
DCL R3 CHAR(40) INIT('KONTO     BENÄMNING');                                   
DCL R4 CHAR(55) INIT('PERIOD SALDO        ACK.SALDO       ');                  
DCL R4A CHAR(8) INIT('       ');                                               
DCL R5 CHAR(10)INIT('DATUM:'), R6 CHAR(10)INIT('PERIOD:');                     
DCL R7 CHAR(25) INIT('NIVÅ:');                                                 
DCL R8 CHAR(25) INIT('KONTOKLASS');                                            
DCL R9 CHAR(25) INIT('KONTOGRUPP');                                            
DCL R10 CHAR(25) INIT('KONTO');                                                
DCL R11 CHAR(25) INIT('SAMTLIGA KONTON');                                      
DCL R12 CHAR(25);                                                              
DCL TRO FIXED(7,4);                                                            
DCL ABB CHAR(3) INIT(' '), KO CHAR(6),A FIXED(1);A=0;                          
DCL XX FILE;OPEN XX;DCL KPLAN FILE;OPEN KPLAN;DCL KPLANB FILE;OPEN KPLANB;     
UT=0;DCL NI1 CHAR(3), NI2 CHAR(3), NI2B CHAR(2), NI3 CHAR(3);                  
DCL NI4 FIXED(1);                                                              
PUT FILE(DISP)SKIP LIST('ÄR KPLAN SORTERAD? '); GET SKIP LIST(ABB);            
 IF(ABB = 'NEJ') THEN GO TO SLUT;                                              
PUT FILE(DISP)SKIP LIST('DATUM '); GET SKIP LIST(MM);                          
PUT FILE(DISP) SKIP LIST('PERIOD(=MM) '); GET SKIP LIST(PP);                   
PUT FILE(DISP) SKIP LIST('NIVÅ? 1,2,3 EL 4 ');  GET SKIP LIST(NI);             
IF (NI=1) THEN R12=R8;IF (NI=2) THEN R12=R9;IF (NI=3) THEN R12=R10;            
DCL AA CHAR(1)INIT(' '); IF (NI=4) THEN R12=R11;                               
UX=0;UY=0;RX=0;RY=0;PUT FILE(D) SKIP LIST(' ');OPEN KPLAN;OPEN KPLANB;         
ARX=1;FG=1;KO='3     '; GO TO ST;                                              
START:ON ENDFILE GO TO NEX;READ FILE(KPLAN)INTO(KPL);                          
ST:IF (SUBSTR(KONTO,1,1)<3) THEN GO TO START;                                  
IF(SUBSTR(KONTO,1,2)=88)THEN GO TO NEX;                                        
IF(SUBSTR(KO,1,1) ¬= SUBSTR(KONTO,1,1) ) THEN GO TO NEXT;                      
A1=0;A2=0;DO J=1 TO PP-1;A1=A1+ACD(J);A2=A2+ACK(J);END;SAL=A1-A2;              
BN=BEN; KT=KONTO;AD=ACD(PP);AK=ACK(PP);UTG=IB+SAL+(AD-AK);                     
AD=-AD;AK=-AK; UTG=-UTG;                                                       
KO=KONTO;UT1=UT1+UTG;/*NI2B=SUBSTR(KO,1,2);I=1;                                
IF(NI2B=30)THEN DO;Y=1;I=1;END; IF(NI2B>30&NI2B<=39)THEN DO;Y=2;I=2;END;       
IF(NI2B>39 &NI2B<=49)THEN DO;Y=3;I=3;END; IF(NI2B>49&NI2B<=59)THEN DO;Y=4;     
I=4;END;IF(NI2B>59 & NI2B<=78)THEN DO;I=5;Y=5; END;                            
IF(NI2B=79)THEN DO;Y=6;I =6;END; IF(NI2B>79 &NI2B<=81)THEN DO;Y=7;I=7; END;    
IF(NI2B>81 & NI2B<=87)THEN DO;Y=8;I=8;END; IF(NI2B>=88&NI2B<89)THEN DO;Y=9;I=9;
END;  PD(I)=PD(I)+AD; PK(I)=PK(I)+AK; PS(I)=PS(I)+UTG;  */                     
IF(SUBSTR(KONTO,1,2)=79&FG=1)THEN DO; U78=UX-(-UY);R78=RX-(-RY);FG=0;END;      
IF(SUBSTR(KONTO,1,1)=3)THEN DO;UX=UX+UTG;RX=RX+(AD-AK);END;                    
IF(SUBSTR(KONTO,1,1)>3)THEN DO;RY=RY+(AD-AK); UY=UY+UTG; END;                  
WRITE FILE(XX)FROM(HJ);GO TO START;                                            
NEXT:CLOSE XX; OPEN XX; XX1=1;A=0;                                             
IF(R>=48)THEN GO TO RUB;                                                       
XXIN: KOO=KT;                                                                  
ON ENDFILE GO TO BYTXX;READ FILE(XX) INTO(HJ);D4=AD;K4=AK;S4=UTG;              
IF (XX1=1) THEN DO;KOO=KT;XX1=0;END;                                           
XXINBB:IF(SUBSTR(KOO,4,1)=' ') THEN GO TO NN2BB;                               
IF (SUBSTR(KT,4,1)=' ') THEN GO TO NN2B;                                       
IF (SUBSTR(KT,1,3) = SUBSTR(KOO,1,3))THEN GO TO NN4;                           
GO TO NN2B;                                                                    
NN4:IF (NI=3)&(SUBSTR(KT,4,1)¬=' ') THEN NI4=0;ELSE NI4=1;A=4;                 
IF(SUBSTR(KT,1,2)=79&ARX=1)THEN DO;PUT SKIP(2)EDIT                             
('RESULTAT FÖRE AVSKRIVNINGAR')                                                
(A(42))(R78)(P'------------9V.99')(U78)(P'------------9V.99');PUT SKIP(2);     
ARX=0;R=R+4; END;IF(R>=48)THEN GO TO RUB;                                      
IF (NI>2)&(NI4=1) THEN DO;                                                     
PUT SKIP EDIT(KT)(A(10))(BN)(A(32))(D4-K4)(P'------------9V.99');              
PUT EDIT(S4)(P'------------9V.99');                                            
R=R+1;END;                                                                     
D3=D3+D4;K3=K3+K4;S3=S3+S4;IF (SUBSTR(KT,4,1)=' ') THEN DO;                    
D2=D2+D3;K2=K2+K3;S2=S2+S3;D3=0;K3=0;S3=0;                                     
END;IF (R>=48) THEN GO TO RUB;GO TO XXIN;                                      
NN2B:NI3=SUBSTR(KOO,1,3);READ KEY(NI3) FILE(KPLANB) INTO(KPLB);A=3;            
IF (NI>2) THEN DO;                                                             
PUT SKIP(2) EDIT(KTO)(A(10))(BENA)(A(32))(D3-K3)(P'------------9V.99');        
PUT EDIT(S3)(P'------------9V.99');                                            
PUT SKIP;R=R+3;END;                                                            
D2=D2+D3;K2=K2+K3;S2=S2+S3;D3=0;K3=0;S3=0;IF (R>=48) THEN GO TO RUB;           
NN2BB:IF (SUBSTR(KT,1,2)=SUBSTR(KOO,1,2)) THEN GO TO XXINB;                    
NN2A:NI2=(SUBSTR(KOO,1,2)) CAT ' ';READ KEY(NI2) FILE(KPLANB) INTO(KPLB);A=2;  
NI2B=(SUBSTR(NI2,1,2));IF (NI>1) THEN DO;                                      
PUT SKIP(2) EDIT(KTO)(A(10))(BENA)(A(32))(D2-K2)(P'------------9V.99');        
PUT EDIT(S2)(P'------------9V.99');                                            
PUT SKIP;R=R+3;END;                                                            
DEL=0;/*IF (Y=1) THEN DO;TX=TX1;I=1;DEL=1;END;                                 
IF(Y=2)THEN DO;TX=TX2;DEL=1;I=2;END;IF(Y=3)THEN DO;TX=TX3;DEL=1;I=3;           
END;   IF (Y=4)THEN DO;TX=TX4;I=4;DEL=1;END;                                   
IF (Y=4) THEN DO;TX=TX5;I=5;DEL=1;  END;                                       
IF (Y=5) THEN DO;TX=TX7;I=6;DEL=1;END;                                         
IF (Y=6) THEN DO;TX=TX8;I=7;DEL=1;END;                                         
IF(Y=7)THEN DO; I=8;TX=TX9;DEL=1; END;                                         
IF(Y=8)THEN DO; I=9; TX=TX10;DEL=1; END;                                       
IF (R>=48) THEN GO TO RUB;                                                     
NN2AB:A=5;IF (DEL=1)&(NI>1) THEN DO; TRO=((PS(I)*100)/UT1)+0.005;              
PUT SKIP(2) EDIT(TX)(A(42))(PD(I)-PK(I))(P'------------9V.99');                
PUT EDIT(PS(I))(P'------------9V.99');                                         
PUT SKIP;IF(Y=6)THEN DO; PX=(PD(3)+PD(4)+PD(5))-(PK(3)+PK(4)+PK(5));           
PUT SKIP(2)EDIT(TX)(A(65))(PX)(P'------------9V.99');PY=PS(3)+PS(4)+PS(5);     
PUT EDIT(PY)(P'------------9V.99'); R=R+2; END;                                
R=R+3;END; */ IF(R>=48)THEN GO TO RUB;                                         
NN2AB:A=5;D1=D1+D2;K1=K1+K2;S1=S1+S2;D2=0;K2=0;S2=0;                           
IF(NI2='87 ')THEN DO;PUT SKIP(2)EDIT('RESULTAT EFTER FIN. INT. & KOSTN')       
(A(42))(RX-(-RY))(P'------------9V.99')(UX-(-UY))(P'------------9V.99');R=R+4; 
PUT SKIP(2);END; IF(R>=48)THEN GO TO RUB;                                      
NN2AC: IF (SUBSTR(KT,1,1)=SUBSTR(KOO,1,1)) THEN GO TO XXINB;                   
NN1:NI1=SUBSTR(KOO,1,1) CAT '  ';READ KEY(NI1) FILE(KPLANB) INTO(KPLB);A=1;    
IF(SUBSTR(KONTO,1,2)=88)THEN GO TO SLUT;                                       
PUT SKIP(2) EDIT(KTO)(A(10))(BENA)(A(32))(D1-K1)(P'------------9V.99');        
PUT EDIT(S1)(P'------------9V.99');PUT SKIP(2);                                
R=R+4;IF(R>=48)THEN GO TO RUB;                                                 
IF(NI1='7  ')THEN DO;PUT SKIP(2)EDIT('RESULTAT EFTER AVSKRIVNINGAR')(A(42));   
PUT EDIT(RX-(-RY))(P'------------9V.99')(UX-(-UY))(P'------------9V.99');      
PUT SKIP(2);R=R+4; END;                                                        
D1=0;K1=0;S1=0;KO=KONTO;OPEN XX;                                               
IF (UT=1) THEN GO TO SLUT;IF (SUBSTR(KOO,1,1)=1) THEN DO;PUT SKIP(4);R=R+4;END;
UT1=0;IF (R>=48) THEN GO TO RUB;GO TO ST;                                      
XXINB:KOO=KT;GO TO NN4;                                                        
BYTXX: KT=' ';GO TO XXINBB;                                                    
NEX:UT=1;GO TO NEXT;                                                           
RUB: R=R-36;IF (SIDA¬=1) THEN PUT SKIP(5);                                     
PUT SKIP(4) EDIT(R1)(A(17))(R7)(A(6))(NI)(A(3))(R12)(A(19))(R6)(A(8));         
PUT EDIT(PP)(A(40))(R5)(A(7))(MM)(A(11))(R2)(A(6))(SIDA)(A(10));               
PUT SKIP(2) EDIT(R3)(A(46));                                                   
PUT EDIT(R4)(A(55));IF (NI¬=1) THEN DO;PUT EDIT(R4A)(A(10));END;SIDA=SIDA+1;   
PUT SKIP;                                                                      
IF(A=4)THEN GO TO XXIN; IF(A=3)THEN GO TO NN2BB; IF(A=2)THEN GO TO NN2AB;      
IF(A=1)THEN GO TO ST; IF(A=0)THEN GO TO XXIN; IF(A=5)THEN GO TO NN2AC;         
SLUT:PUT SKIP(2)EDIT('RÖRELSERESULTAT')(A(42))                                 
(RX-(-RY))(P'------------9V.99')(UX-(-UY))                                     
(P'------------9V.99');END;