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

⟦4d6d6894d⟧ Q1_Text, reclen=79

    Length: 27571 (0x6bb3)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »STAMNTA«

Derivation

└─⟦934333717⟧ Bits:30008597 DDMQ1-0029_Demonstration_Disk_SOURCE_Single_Density_Sept_77
    └─⟦this⟧ »STAMNTA« 

Text

/*DEMONSTRATION GENERAL LEDGER SYSTEM*/                                        
/*MARCO*/                                                                      
DCL    1 TRAN,                                                                 
       2 ACCT BINARY,                                                          
       2 YEAR(13) BINARY,                                                      
       2 MONTH(13) BINARY,                                                     
       2 DAY(13) BINARY,                                                       
       2 V#(13) BINARY,                                                        
       2 V#1(13) BINARY,                                                       
       2 AMT(13) FLOAT(9),                                                     
       2 DES(13) CHAR(18);                                                     
DCL    TRANFL FILE;                                                            
DCL NN CHAR(5);                                                                
DCL    TDAY CHAR(8),   NG FLOAT(9),                                            
       PDAY CHAR(8),N# CHAR(6),                                                
       DAYY CHAR(8),                                                           
       DA(3) BINARY,                                                           
       N FLOAT(2),                                                             
       XN CHAR(2),                                                             
       NO1 FLOAT(9),                                                           
       ND FLOAT(3), REM FLOAT(2), CON(2) CHAR(1) INIT(' ','-'),                
       YYAR BINARY, VOU CHAR(8), VO CHAR(8), XA FLOAT(3),                      
       VF FLOAT(8), XB FLOAT(3), XC FLOAT(3),                                  
       B50 CHAR(49) INIT('                                                 '), 
       B10 CHAR(9) INIT('         '),                                          
       X CHAR(3), Q FLOAT(1), A CHAR(1), B CHAR(1), C CHAR(1),Y FLOAT(2),      
       D CHAR(1), E CHAR(1), FF CHAR(1),                                       
       DR FLOAT(9), CR FLOAT(9), CUDR FLOAT(9),                                
       CUCR FLOAT(9), OPDR FLOAT(9), OPCR FLOAT(9),                            
       NEDR FLOAT(9), NECR FLOAT(9), CLCR FLOAT(9),                            
       CLDR FLOAT(9), NET FLOAT(9), CLBAL FLOAT(9);                            
FAN:   PROCEDURE(IYAR);                                                        
       DCL IYAR FLOAT(2), IQQ FLOAT(2);                                        
       IQQ=2; IF IYAR=0 THEN GO TO REFAN;                                      
       X=BööC;       DR=X;                                                     
       X=DööEööFF;   CR=X;                                                     
       IF V#(1)=DR & V#1(1)=CR THEN IQQ=1;                                     
REFAN: RETURN(IQQ); END;                                                       
ROU:   PROCEDURE; DCL STORE CHAR(4);                                           
       STORE=100+V#(1); B=SUBSTR(STORE,2,1);                                   
       C=SUBSTR(STORE,3,1); STORE=1000+V#1(1);                                 
       D=SUBSTR(STORE,2,1); E=SUBSTR(STORE,3,1);                               
       FF=SUBSTR(STORE,4,1);                                                   
       RETURN; END;                                                            
FUN:   PROCEDURE(A1);                                                          
       DCL A1 CHAR(1);                                                         
       Q=2; A1='1';                                                            
RM:    GET LIST(B,C,D,E,FF);                                                   
       REM=((A1*6)+(B*5)+(C*4)+(D*3)+(E*2)+FF);                                
RS:    IF REM<7 THEN GO TO REMAIN; REM=REM-7; GO TO RS;                        
REMAIN:IF REM¬=0 THEN GO TO ERR;                                               
RT:Y=D*10+E;X=Y; ND=B*5+Y;    ND=ND+1; Q=1;                                    
                                                  GO TO CDY;                   
ERR:   PUT FILE(DISPLAY) SKIP LIST('A/C NO. ERROR, TRY AGAIN');                
       GET SKIP LIST(X);      Q=2; GO TO CDY;                                  
CDY:   RETURN(Q); END;                                                         
DATE:  PROCEDURE(I1,I2,I3,DAT);                                                
       DCL I1 BINARY, I2 BINARY, I3 BINARY, DAT CHAR(8);                       
       DAT='  /  /  '; INN=1; DA(1)=I1; DA(2)=I2; DA(3)=I3;                    
       DO IN=1 TO 3;                                                           
       N=DA(IN);       XN=N;                                                   
       IF LENGTH(XN)=1 THEN XN='0'ööN;                                         
       SUBSTR(DAT,INN,2)=XN;                                                   
       INN=INN+3;       END;                                                   
       RETURN;  END;                                                           
NUMD:  PROCEDURE(NE);                                                          
       DCL NE FLOAT(9);                                                        
       NM=1; NO1=NE; IF NO1>=0 THEN GO TO OKK;                                 
       NM=2; NO1=NO1-NO1*2;                                                    
OKK:   PUT FILE(DISPLAY) EDIT(NO1)(P'ZZZZZZZ9V.99') (CON(NM))(A(1));           
       RETURN; END;                                                            
NUM:   PROCEDURE(NO);                                                          
       DCL NO FLOAT(9);                                                        
       NO1=NO; NM=1; IF NO1>=0 THEN GO TO OK;                                  
       NM=2;   NO1=NO1-NO1*2;                                                  
OK:    PUT LIST('        ');                                                   
       PUT EDIT(NO1)(P'ZZZZZZZZZ9V.99') (CON(NM))(A(2));                       
       RETURN;                                                                 
       END;                                                                    
SEEOF: PROCEDURE(FL);                                                          
       DCL FL(1) BINARY;                                                       
       FL(1)=FL(6);                                                            
       RETURN; END;ND=0; III=0; NEDR=0; NECR=0; CLDR=0;                        
ASK:   PUT FILE(DISPLAY) SKIP LIST('DATE (DAY MONTH YEAR): ');                 
       GET LIST(DAY(1),DAY(2),DAY(3));                                         
       IF DAY(1)>31 THEN GO TO ASK; IF DAY(2)>12 THEN GO TO ASK;               
       CALL DATE(DAY(1),DAY(2),DAY(3),TDAY);                                   
       OPEN TRANFL;                                                            
       READ FILE (TRANFL) INTO (TRAN);                                         
  IF ACCT¬=0 THEN GO TO ST; IF SUBSTR(DES(1),1,8)¬='  TRANFL' THEN GO TO ST;   
       CALL DATE(DAY(2),MONTH(2),YEAR(2),PDAY);                                
MAIN:  PUT FILE(DISPLAY) SKIP LIST('A)TRIAL BALANCE,');                        
       PUT FILE(DISPLAY) LIST('                     B)LEDGER PRINT OUT,');     
       PUT FILE(DISPLAY) LIST('                  C)ENQUIRY OR');               
      PUT FILE(DISPLAY) LIST('                         D)BALANCE SHEET:');     
       GET SKIP LIST(X);                                                       
       IF SUBSTR(X,1,1)='A' THEN GO TO TRIAL;                                  
       IF SUBSTR(X,1,1)='B' THEN GO TO LED;                                    
       IF SUBSTR(X,1,1)='C' THEN GO TO ENQ;                                    
       IF SUBSTR(X,1,1)='D' THEN GO TO BS;                                     
       IF SUBSTR(X,1,3)='END' THEN GO TO STT;                                  
       GO TO MAIN;                                                             
TRIAL: OPEN TRANFL;                                                            
       READ FILE(TRANFL) INTO (TRAN);                                          
       CUDR=0; CUCR=0; OPDR=0; OPCR=0; CLCR=0;                                 
       CLCR=0; MPG=0;  CLDR=0;  NEDR=0;  NECR=0;                               
HEAD:  MPG=MPG+1;    K=56;                                                     
       PUT SKIP EDIT(B50)(A(50)) (B10)(A(10));                                 
       PUT LIST('     A B C INT''L CORP'); DO I=1 TO 200; END;                 
       PUT SKIP(2) EDIT(B50)(A(50))(B10)(A(10));                               
       PUT EDIT('       TRIAL BALANCE')(A(20)); DO I=1 TO 200; END;            
       PUT SKIP(2); PUT LIST('          ');                                    
       PUT LIST('       DATE: ');                                              
       PUT EDIT(TDAY)(A(8))(B10)(A(10))(B10)(A(10))(B10)(A(10));               
       PUT LIST('PERIOD ENDING: ');                                            
       PUT EDIT(PDAY)(A(8))(B10)(A(10))(B10)(A(10))(B10)(A(10));               
       PUT LIST('PAGE: ');                                                     
       PUT EDIT (MPG)(P'Z9');                                                  
       XA=2; PUT SKIP(XA);                                                     
       PUT SKIP LIST('ACCT#            DESCRIPTION');                          
       PUT EDIT(B10)(A(10));                                                   
       PUT LIST('  OPENING BALANCE');                                          
       PUT LIST('          CURRENT DEBIT         CURRENT CREDIT');             
       PUT LIST('            CURRENT NET        CLOSING BALANCE');             
       XA=2;   PUT SKIP(XA);                                                   
       CALL SEEOF(TRANFL);                                                     
       LAST=UNSPEC(TRANFL)-1;                                                  
       OPEN TRANFL;  READ FILE(TRANFL) INTO (TRAN);                            
AGA:  IF UNSPEC(TRANFL)>LAST THEN GO TO FIN;                                   
       READ FILE(TRANFL) INTO (TRAN);                                          
       IF YEAR(1)=0 THEN GO TO AGA;                                            
                     DR=0; CR=0; NET=0; CLBAL=AMT(1); M=DAY(1)-1;              
       IF M=1 THEN GO TO EXIT;                                                 
       DO I=2 TO M;                                                            
       IF AMT(I)>0 THEN DR=DR+AMT(I);                                          
       IF AMT(I)<0 THEN CR=CR-AMT(I);                                          
       END;                                                                    
       NET=DR-CR; CLBAL=AMT(1)+NET;                                            
       CUDR=CUDR+DR;  CUCR=CUCR+CR;                                            
 IF NET>0 THEN NEDR=NEDR+NET;ELSE NECR=NECR+NET;                               
EXIT:  IF AMT(1)>0 THEN OPDR=OPDR+AMT(1);                                      
       IF AMT(1)<0 THEN OPCR=OPCR+AMT(1);                                      
       IF CLBAL>0 THEN CLDR=CLDR+CLBAL;                                        
       IF CLBAL<0 THEN CLCR=CLCR+CLBAL;                                        
       CALL ROU;                                                               
       PUT SKIP LIST('1');                                                     
       NN=BööCööDööEööFF;PUT EDIT(NN)(A(6));                                   
    PUT LIST('        ');                                                      
       PUT EDIT(DES(1))(A(19));          NG=AMT(1);                            
       CALL NUM(NG);                                                           
       CALL NUM(DR);CALL NUM(CR);                                              
       CALL NUM(NET);CALL NUM(CLBAL);                                          
       K=K-1; IF K<13 THEN GO TO HEAD;                                         
       GO TO AGA;                                                              
FIN:   XA=2;  PUT SKIP(XA);                                                    
       PUT SKIP EDIT(B10)(A(10));  PUT LIST('       ');                        
       PUT LIST('C/F              ');                                          
       CALL NUM(OPDR);  CALL NUM(CUDR);                                        
       CALL NUM(CUCR);  CALL NUM(NEDR);                                        
       CALL NUM(CLDR);                                                         
       PUT SKIP EDIT(B10)(A(10))(B10)(A(10))(B10)(A(10));                      
  PUT LIST('    '); CALL NUM(OPCR);                                            
       PUT EDIT(B10)(A(10))(B10)(A(10))(B10)(A(10))(B10)(A(10));               
       PUT LIST('      ');                                                     
       CALL NUM(NECR);  CALL NUM(CLCR);                                        
       K=K-4; PUT SKIP(K);                                                     
       GO TO MAIN;                                                             
LED:   PUT FILE(DISPLAY) SKIP LIST('LEDGER PRINTOUT ACCOUNT NO.: ');           
       GET SKIP LIST(A);                                                       
       IF A='E' THEN GO TO MAIN;    IF A¬='1' THEN GO TO MAIN;                 
 IF FUN(A)¬=1  THEN GO TO LED;                                                 
       III=ND-1; UNSPEC(TRANFL)=III;READ FILE(TRANFL) INTO(TRAN);              
                       IF FAN(YEAR(1))¬=1 THEN PUT SKIP LIST(YEAR(1));         
       DR=0; CR=0; CLBAL=AMT(1); CALL ROU;                                     
       PUT SKIP EDIT(B50)(A(50))(B10)(A(10));                                  
       PUT LIST('     A B C INT''L CORP');                                     
       PUT SKIP(2) EDIT(B10)(A(10))(B50)(A(50));                               
       PUT LIST('     LEDGER PRINTOUT');                                       
       PUT SKIP(2) EDIT(B10)(A(10));                                           
       PUT LIST('        DATE: ');                                             
       PUT EDIT(TDAY)(A(9))(B10)(A(10))(B10)(A(10))(B10)(A(10));               
       PUT LIST('PERIOD ENDING: ');                                            
       PUT EDIT(PDAY)(A(9))(B10)(A(10))(B10)(A(10))(B10)(A(10));               
       PUT LIST('PAGE:1');                                                     
       PUT SKIP(2)EDIT(B10)(A(10));                                            
       PUT LIST('ACCOUNT NO.: ','1');                                          
       NN=BööCööDööEööFF; PUT EDIT(NN)(A(6)); PUT LIST('         ');           
       PUT LIST('ACCOUNT NAME: ');                                             
       PUT EDIT(DES(1))(A(19));                                                
       PUT SKIP(2) EDIT (B10)(A(10));                                          
       PUT LIST('DATE        VOUCHER       ');                                 
       PUT LIST('   DESCRIPTION ');                                            
       PUT EDIT(B10)(A(10))(B10)(A(10));                                       
       PUT LIST('  BALANCE            ');                                      
       PUT EDIT(B10)(A(10));                                                   
       PUT LIST('DEBIT      ');                                                
       PUT EDIT(B10)(A(10));                                                   
       PUT LIST('CREDIT');                                                     
       XA=2;  PUT SKIP(XA);                                                    
       PUT SKIP EDIT(B50)(A(50));                                              
       PUT LIST('      B/F');NG=AMT(1);                                        
       CALL NUM(NG);                                                           
       M=DAY(1)-1;   IF M=1 THEN GO TO ENL;                                    
       XA=2; PUT SKIP(XA);                                                     
       DO I=2 TO M;                                                            
       CALL DATE(DAY(I), MONTH(I),YEAR(I),DAYY);                               
       VOU='0'ööVOU;  VF=V#(I); VF=VF*250+V#1(I);                              
       VO=VF; LL=LENGTH(VO); MM=9-LL;                                          
       SUBSTR(VOU,MM,LL)=VO;                                                   
       PUT SKIP EDIT(B10)(A(10))(B10)(A(10));                                  
       PUT SKIP LIST('        ');                                              
       PUT EDIT(DAYY)(A(9));                                                   
       PUT LIST('     ');                                                      
       PUT EDIT(VOU)(A(9));                                                    
       PUT LIST('      ');                                                     
       PUT EDIT(DES(I))(A(19))(B10)(A(10))(B10)(A(10))(B10)(A(10));            
       PUT EDIT(B10)(A(10));                                                   
       IF AMT(I)>0 THEN DR=DR+AMT(I);                                          
       IF AMT(I)<0 THEN DO JK=1 TO 1;                                          
       CR=CR-AMT(I);  PUT EDIT(B10)(A(10))(B10)(A(10));                        
       PUT LIST('  '); AMT(I)=AMT(I)-AMT(I)*2; END;                            
       PUT EDIT(AMT(I))(P'ZZZZZZZ9V.99');                                      
       END;                                                                    
       CLBAL=AMT(1)+DR-CR;                                                     
       GO TO CF;                                                               
ENL:   PUT SKIP(2) EDIT(B50)(A(50));                                           
       PUT LIST(' NO TRANSACTION ');                                           
CF:    PUT SKIP(2) EDIT(B50)(A(50));                                           
       PUT LIST('      C/F');                                                  
       CALL NUM(CLBAL);  K=52-M;                                               
       PUT SKIP(K);   GO TO LED;                                               
ENQ:   PUT FILE(DISPLAY) SKIP LIST('ENQUIRE ACCOUNT NO.: ');                   
       GET SKIP LIST(A);                                                       
       IF SUBSTR(A,1,1)='E' THEN GO TO MAIN;                                   
       IF FUN(A)¬=1 THEN GO TO ENQ;                                            
       III=ND-1; UNSPEC(TRANFL)=III; READ FILE(TRANFL) INTO(TRAN);             
       IF FAN(YEAR(1))¬=1 THEN GO TO ENQ;                                      
       M=DAY(1)-1; DR=0; CR=0; CLBAL=AMT(1);                                   
       IF M=1 THEN GO TO NOQ;                                                  
       DO I=2 TO M;                                                            
       IF AMT(I)>0 THEN DR=DR+AMT(I);                                          
       IF AMT(I)<0 THEN CR=CR-AMT(I);                                          
       END;                                                                    
       CLBAL=AMT(1)+DR-CR;                                                     
NOQ:   PUT FILE(DISPLAY) SKIP LIST('ACCOUNT NO     :   ',A,B,C,D,E);           
     PUT FILE(DISPLAY) EDIT (FF)(A(13))('DESCRIPTION')(A(15))(':')(A(2))       
     (DES(1))(A(20));                                                          
     PUT FILE(DISPLAY) LIST('OPENING BALANCE: '); NG=AMT(1);CALL NUMD(NG);     
       PUT FILE(DISPLAY) LIST('        CURRENT DEBIT  : ');                    
       CALL NUMD(DR); PUT FILE(DISPLAY) LIST('        CURRENT CREDIT : ');     
       CALL NUMD(CR); PUT FILE(DISPLAY) LIST('        CLOSING BALANCE: ');     
       CALL NUMD(CLBAL);                                                       
       GET LIST(X);                                                            
       IF SUBSTR(X,1,3)='END' THEN GO TO MAIN;                                 
       IF SUBSTR(X,1,1)='P' THEN GO TO PENQ;GO TO ENQ;                         
PENQ:  CALL ROU;  PUT SKIP LIST('1');                                          
       NN=BööCööDööEööFF; PUT EDIT(NN)(A(8));                                  
       PUT LIST('        '); PUT EDIT(DES(1))(A(18));                          
       PUT LIST('      OPENING BALANCE: ');          NG=AMT(1);                
       CALL NUM(NG);                                                           
       PUT SKIP EDIT(B10)(A(10))(B10)(A(10))(B10)(A(10));                      
       PUT LIST('           CURRENT DEBIT  : ');                               
       CALL NUM(DR);                                                           
       PUT SKIP EDIT(B10)(A(10))(B10)(A(10))(B10)(A(10));                      
       PUT LIST('           CURRENT CREDIT : ');                               
       CALL NUM(CR);                                                           
       PUT SKIP EDIT(B10)(A(10))(B10)(A(10))(B10)(A(10));                      
       PUT LIST('           CLOSING BALANCE: ');                               
       CALL NUM(CLBAL);                                                        
       XA=2; PUT SKIP(XA); GO TO ENQ;                                          
BS:    CUDR=2; III=CUDR-1; UNSPEC(TRANFL)=III; OPDR=0; OPCR=0;                 
       PUT SKIP  EDIT(B10)(A(10))(B10)(A(10))(B10)(A(10));                     
       PUT LIST('     A B C INT''L CORP');                                     
       PUT SKIP(2)EDIT(B10)(A(10))(B10)(A(10))(B10)(A(10));                    
       PUT LIST('      BALANCE SHEET');                                        
       PUT SKIP(2) LIST('     DATE: ');                                        
       PUT EDIT(TDAY)(A(9))(B10)(A(10));                                       
       PUT LIST(' PERIOD ENDING: ');                                           
       PUT EDIT(PDAY)(A(9));                                                   
       PUT SKIP(3) LIST('       DESCRIPTION ');                                
       PUT EDIT(B10)(A(10))(B10)(A(10));                                       
       PUT LIST('ASSETS');                                                     
       PUT EDIT(B10)(A(10));                                                   
       PUT LIST('   LIABILITIES');                                             
       XB=3; PUT SKIP(XB);                                                     
AA:    READ FILE(TRANFL) INTO(TRAN);                                           
       IF YEAR(1)=0 THEN GO TO AA;                                             
       IF V#(1)=40 THEN GO TO ENBS;                                            
       CLBAL=AMT(1);   M=DAY(1)-1;                                             
       IF M=1 THEN GO TO ENPA;                                                 
       DR=0; CR=0;                                                             
       DO I=2 TO M;                                                            
       IF AMT(I)>0 THEN DR=DR+AMT(I);                                          
       IF AMT(I)<0 THEN CR=CR-AMT(I);                                          
       END; CLBAL=AMT(1)+DR-CR;                                                
ENPA:  IF CLBAL>0 THEN OPDR=OPDR+CLBAL;                                        
       IF CLBAL<0 THEN OPCR=OPCR-CLBAL;                                        
       PUT SKIP LIST('     ');                                                 
       PUT EDIT(DES(1))(A(19));                                                
       IF CLBAL<0 THEN DO I=1 TO 1;                                            
  CLBAL=CLBAL-CLBAL*2;PUT EDIT(B10)(A(10))(B10)(A(10));                        
       PUT LIST('    '); END;                                                  
       PUT EDIT(B10)(A(10))(CLBAL)(P'ZZZZZZZ9V.99');                           
       GO TO AA;                                                               
ENBS:  XA=2; PUT SKIP(XA); DR=0; CR=0;                                         
       PUT SKIP EDIT(B10)(A(10))(B10)(A(10))(B10)(A(10));                      
       PUT LIST('    ');                                                       
       PUT EDIT(OPDR)(P'ZZZZZZZ9V.99');                                        
       PUT LIST('   ');                                                        
       PUT EDIT(B10)(A(10))(OPCR)(P'ZZZZZZZ9V.99');                            
       CUDR=OPDR-OPCR;                                                         
       IF CUDR>0 THEN DR=CUDR;                                                 
       IF CUDR<0 THEN CR=CUDR-CUDR*2;                                          
       OPDR=OPDR+CR;   OPCR=OPCR+DR;                                           
       PUT SKIP(2) LIST('       TO P & L ACCOUNT');                            
       DR=CUDR;  IF CUDR>0 THEN CUDR=CUDR-CUDR*2;                              
       IF DR>0 THEN DO I=1 TO 1;                                               
       PUT EDIT(B10)(A(10))(B10)(A(10));                                       
       PUT LIST('    ');                                                       
       END; PUT EDIT(B10)(A(10)) (CUDR)(P'ZZZZZZZZ9V.99');                     
       PUT SKIP(2) EDIT(B10)(A(10))(B10)(A(10))(B10)(A(10));                   
       PUT LIST('    ');                                                       
       PUT EDIT(OPDR)(P'ZZZZZZZ9V.99');                                        
       PUT LIST('  ');                                                         
       PUT EDIT(B10)(A(10)) (OPCR)(P'ZZZZZZZZ9V.99');                          
       XC=39;  PUT SKIP(XC);   GO TO MAIN;                                     
STT:   PUT FILE(DISPLAY) SKIP LIST('READY FOR MONTHLY UPDATE? ');              
       GET SKIP LIST(X);                                                       
       IF SUBSTR(X,1,1)='Y' THEN GO TO STS;                                    
       IF SUBSTR(X,1,1)='E' THEN GO TO ST;                                     
       GO TO STT;                                                              
STS:   OPEN TRANFL;                                                            
       CALL SEEOF(TRANFL);                                                     
       LAST=UNSPEC(TRANFL)-1;                                                  
       OPEN TRANFL; READ FILE(TRANFL) INTO (TRAN);                             
BB:    IF UNSPEC(TRANFL)>LAST THEN GO TO ST;                                   
       READ FILE(TRANFL) INTO (TRAN);                                          
       IF YEAR(1)=0 THEN GO TO BB;                                             
       IF MONTH(1)=0 & DAY(1)=2 THEN GO TO BB;                                 
       M=DAY(1)-1; DR=0; CR=0;                                                 
       DO I=2 TO M;                                                            
       IF AMT(I)>0 THEN DR=DR+AMT(I);                                          
       IF AMT(I)<0 THEN CR=CR-AMT(I);                                          
       END;                                                                    
       AMT(1)=AMT(1)+DR-CR;                                                    
       DAY(1)=2;  MONTH(1)=0;                                                  
       REWRITE FILE(TRANFL) FROM (TRAN);                                       
       GO TO BB;                                                               
ST:    END;