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

⟦e8f73cdbf⟧ Q1_Text, reclen=79

    Length: 68098 (0x10a02)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »TAXPGM_S«

Derivation

└─⟦415b26bc8⟧ Bits:30008568 DDMQ1-0003_Source_For_Q1_Payroll_Package_Diskette_1_1
    └─⟦this⟧ »TAXPGM_S« 

Text

/* Taxfile Record Length 330 w/ 4 Such Records Each State/City/Federal  */     
/* SECTIONED Sunday - March 26th 1978          */                              
                                                                               
DCL OTHERTAX FILE;                                                             
DCL F_OR_C(2)     CHAR(4)  INIT('FICA','SUI ');                                
DCL F_OR_D(2)     CHAR(4)  INIT('FUTA','SDI ');                                
DCL BIGTAX        FIXED(5,3);                                                  
DCL T_CODE        CHAR(1);                                                     
DCL ANS           CHAR(1);                                                     
DCL ANS2          CHAR(2);                                                     
DCL ANS3          CHAR(3);                                                     
DCL ANS7          CHAR(7);                                                     
DCL ANS_AMT       FIXED(7,2);                                                  
DCL HOURS5        CHAR(5);                                                     
DCL DEDN          FIXED(7,2);                                                  
DCL DATE          CHAR(6);                                                     
DCL MARYTAL(2)    CHAR(10) INIT('SINGLE','MARRIED');                           
DCL PERP          FIXED(3,1);                                                  
DCL MORE_TAX      FIXED(4,2);                                                  
DCL PAYFREQ(4) CHAR(10) INIT('MONTHLY','SemiMONTLY','BiWEEKLY','WEEKLY');      
DCL 1 OTHER,                                                                   
      2 OTAX(4),  /* 1-MONTHLY 2-SemiMONTHLY 3-BiWEEKLY 4-WEEKLY    */         
        3 STOC       CHAR(2),      /* STATE                         */         
        3 OOWH       CHAR(1),      /* 1-4:STATE TAX 5:CITY 9:FEDTAX */         
        3 OOWC       CHAR(5),      /* 1st 5 Char of CITY if CITYTAX */         
        3 OXM$       FIXED(6,2),   /* Exemption $ Amount            */         
        3 OMOC       CHAR(1),      /* 1-Marital figures in TAX      */         
                                   /* Determination 2-It don't      */         
        3 TSPX       FIXED(4,4),   /* Commuter or Transportat'n TAX */         
       /* NOTE TSPX DOES NOT take Marital Status into consideration */         
       /* NOR DOES it provide for a Base Wage Amount - is this OK ? */         
        3 OS_D(2),                 /* 1-SUI  2-Disability  EMPLOYEE */         
          4 ORATE    FIXED(4,4),                                               
          4 OBASE    FIXED(7,2),                                               
        3 ODWGS(2)   FIXED(7,2),   /* For Deductions Computation    */         
        3 ODAMT(2)   FIXED(5,2),   /* Deduction Amounts             */         
        3 O_PCT      FIXED(3,3),   /* Gross Wages * PCT             */         
        3 OLESS      FIXED(5,2),   /* minus LESS = Deduction        */         
        3 OM(2),                 /* 1-SINGLE   2-MARRIED          */           
          4 OBLT(14) FIXED(7,2),   /* "BUT LESS THAN" Wages         */         
          4 OBTX(14) FIXED(5,2),   /* base TAX Amount               */         
          4 OPCT(14) FIXED(3,3);   /* % To be applied to            */         
                                   /* Gross Wages - OBLT(I-1)       */         
DCL 1 OTAXES,                                                                  
      2 ST_C         CHAR(2),                                                  
      2 O_WH         CHAR(1),                                                  
      2 O_WC         CHAR(5),                                                  
      2 OEXM$        FIXED(6,2),                                               
      2 OMAR         CHAR(1),                                                  
      2 TRNX         FIXED(4,4),                                               
      2 O_SD(2),                                                               
        3 ORA        FIXED(4,4),                                               
        3 OBA        FIXED(7,2),                                               
      2 WAGEZ(2)     FIXED(7,2),                                               
      2 D_AMT(2)     FIXED(5,2),                                               
      2 PCT          FIXED(3,3),                                               
      2 LESS         FIXED(5,2),                                               
      2 MARS(2),                                                               
        3 SOBLT(14)  FIXED(7,2),                                               
        3 SOBTX(14)  FIXED(5,2),                                               
        3 SOPCT(14)  FIXED(3,3);                                               
                                                                               
DCL 1 S_OR_M,                      /* ***  Single  OR  Married  *** */         
      2 R_MAX(14)    FIXED(7,2),                                               
      2 B_TAX(14)    FIXED(5,2),                                               
      2 PCT_DIF(14)  FIXED(3,3);                                               
                                                                               
DCL 1 SUITABLE,    /* State Tax = SUI, Federal Tax = FICA           */         
      2 SPC          FIXED(4,4),                                               
      2 SW_B         FIXED(7,2);                                               
                                                                               
DCL 1 DISABILTY,   /* State Tax = Disability, Federal Tax = FUTA    */         
      2 DP_C         FIXED(4,4),                                               
      2 DW_B         FIXED(7,2);                                               
                                                                               
RMSG: PUT FILE(D) SKIP LIST('THIS ROUTINE NOT YET INCLUDED');                  
      GET SKIP LIST('');                                                       
      GOTO EOP;                                                                
                                                                               
/* *** Taxfiles Re-Initialization & Creation Routines *** */                   
                                                                               
/* PRINT ROUTINES for TAX FILE PROGRAM - April  2nd 1978 */                    
                                                                               
/*********************************************/                                
/*                                           */                                
/* BEWARE DEDN in PUT Statements - $$$9V.99  */                                
/* Is not Large enuf to show true content of */                                
/* Variable - It Was Increased fm FIXED(6,2) */                                
/*                                           */                                
/*********************************************/                                
                                                                               
PRINTLIST:PROC;                                                                
       UNSPEC(OTHERTAX) = 0;                                                   
       KKEY = 0;                                                               
RR:    ON ENDFILE GOTO PL_MSG;                                                 
       READ FILE(OTHERTAX) INTO(OTAX);                                         
       KKEY = KKEY + 1;                                                        
       IF (STOC = '00') THEN GOTO RR;                                          
       IF (STOC = 'FD') THEN DO;                                               
          PUT SKIP EDIT('FEDERAL  Tax File')(A);                               
          GOTO RR;                                                             
          END;                                                                 
       PUT SKIP EDIT(STOC)(A)(' STATE ')(A);                                   
       IF (OOWH = '2') THEN DO;                                                
          PUT EDIT(' - ')(A)(OOWC)(A)(' City ')(A);                            
          END;                                                                 
       PUT EDIT('Tax File')(A);                                                
       GOTO RR;                                                                
PL_MSG:                                                                        
       IF (KKEY > 0) THEN GOTO PLR;                                            
       KKEY = 57;                                                              
       GOTO PLR;                                                               
PLR:   PUT SKIP;                                                               
       RETURN;                                                                 
END;                                                                           
                                                                               
XPLAIN_T:PROC;                                                                 
      PUT SKIP(5);                                                             
      PUT SKIP EDIT('TAXFILES ARE SET-UP ALONG THE EXACT')(A)                  
      (' CALCULATION METHOD. ')(A);                                            
      PUT SKIP(4);                                                             
      PUT SKIP EDIT('WHERE TAX CALCULATIONS PROVIDE FOR')(A)                   
      (' DEDUCTIONS -')(A(26))('YOU WILL BE PROMPTED FOR')(A);                 
      PUT SKIP;                                                                
      PUT SKIP EDIT('W1, W2, D1, D2, ADJ, &')(X(60),A);                        
      PUT SKIP EDIT('ö GROSS  WAGES ö  DEDUCTION  ö')(X(17),A);                
      PUT SKIP EDIT('-----------------')(A)('ö')(A)                            
      ('--------------ö-------------ö')(A)                                     
      (' ')(A(13))('PCT AS IN TABLE FOR EACH')(A);                             
      PUT SKIP EDIT('A)    LESS THAN  ö (W1) 9999.99 ö ')(A)                   
      ('(D1) 999.99 ö')(A);                                                    
      PUT SKIP EDIT('-----------------')(A)('ö')(A)                            
      ('--------------ö-------------ö')(A)                                     
      (' ')(A(13))('PAYFREQUENCY: MONTHLY,')(A);                               
      PUT SKIP EDIT('B)    MORE THAN  ö (W2) 9999.99 ö')(A)                    
      (' (D2) 999.99 ö')(A);                                                   
      PUT SKIP EDIT('Semi-MONTHLY, Bi-WEEKLY,')(X(60),A);                      
      PUT SKIP EDIT('(ADJ) 999.99   (PCT) 99.9')(X(19),A);                     
      PUT SKIP EDIT('& WEEKLY')(X(60),A);                                      
      PUT SKIP EDIT('FOR GROSS-WAGES BETWEEN A) & B) ABOVE')(A);               
      PUT SKIP EDIT('DEDUCTION = (GROSS-WAGES * PCT) - ADJ')(A);               
      PUT SKIP(7);                                                             
      PUT SKIP EDIT('FOR TAX AMOUNT TO BE WITHHELD -')(A);                     
      PUT SKIP(2);                                                             
      PUT SKIP EDIT(' WAGES AFTER DEDUCTIONS  ö  AMOUNT')(A)                   
      (' TO BE WITHHELD IS THE SUM OF -')(A);                                  
      PUT SKIP EDIT('     AND EXEMPTIONS      ö')(A);                          
      PUT SKIP EDIT('AT LEAST   ö   BUT LESS  ö    BASE')(A)                   
      ('   ö      ö  THIS %  ö EXCESS')(A);                                    
      PUT SKIP EDIT('ö     THAN    ö   AMOUNT  ö')(X(11),A)                    
      (' PLUS ö    OF    ö  OVER')(A);                                         
      PUT SKIP EDIT('-----------ö-------------ö-----------')(A)                
      ('ö')(A)('------')(A)('ö')(A)('----------')(A)                           
      ('ö')(A)('--------')(A);                                                 
      PUT SKIP EDIT('A)99999.99 ö (W)99999.99 ö(B) 999.99 ö')(A)               
      ('      ö (P) 99.9 ö   A)')(A);                                          
      PUT SKIP(3);                                                             
      PUT SKIP EDIT('YOU WILL BE PROMPTED FOR (W), ')(A)                       
      ('(B), & (P) AS IN TABLE FOR EACH')(A);                                  
      PUT SKIP;                                                                
      PUT SKIP EDIT('PAYFREQUENCY. YOU MAY ENTER UPTO')(A)                     
      (' 14 VALUES FOR EACH. FOR YOUR')(A);                                    
      PUT SKIP;                                                                
      PUT SKIP EDIT('LAST ENTRY, (WHERE (W) IS GIVEN AS: ')(A)                 
      (' "For A) and UP" ), ENTER')(A);                                        
      PUT SKIP;                                                                
      PUT SKIP EDIT('(W) =99999.99')(A);                                       
      PUT SKIP(15);                                                            
      RETURN;                                                                  
END;                                                                           
                                                                               
                                                                               
PRINT_FILE:PROC;                                                               
                                                                               
      IF (KKEY = 7) THEN DO;                                                   
         ANS2 = 'FD';                                                          
         GOTO PT0;                                                             
         END;                                                                  
                                                                               
      IF (KKEY = 3) THEN GOTO P2;                                              
                                                                               
PTX:  PUT FILE(D) SKIP EDIT('ENTER STATE CODE : ')(A);                         
      GET SKIP LIST(ANS2);                                                     
      PUT FILE(D) SKIP EDIT('IS THIS A CITY TAXTABLE ? ')(A);                  
PXR:  GET SKIP LIST(ANS3);                                                     
      ANS = SUBSTR(ANS3,1,1);                                                  
      IF (ANS = 'Y') THEN DO;                                                  
         PUT FILE(D) EDIT('  ENTER 1st 5 CHARACTERS OF CITY : ')(A);           
         GET SKIP LIST(HOURS5);                                                
         GOTO PT1;                                                             
         END;                                                                  
      IF (ANS ¬= 'N') THEN GOTO PXR;                                           
PT0:  HOURS5 = '*****';                                                        
PT1:  ON ERROR GOTO P_MSG1;                    /* MSG3 */                      
      READ KEY(ANS2) FILE(OTHERTAX) INTO(OTAX);                                
      IF (HOURS5 = '*****') & (OOWH ¬= '5') THEN GOTO P2;                      
      IF (HOURS5 = OOWC) THEN GOTO P2;                                         
                                                                               
/* IMPORTANT NOTE : Below Does Not Insure Correct State - */                   
/* Only That The City is The Same Name , BEWARE !         */                   
                                                                               
P1:   ON ENDFILE GOTO P_MSG3;                  /* MSG7 */                      
      READ FILE(OTHERTAX) INTO(OTAX);                                          
      IF (HOURS5 ¬= OOWC) THEN GOTO P1;                                        
      IF (STOC ¬= ANS2) THEN GOTO P1;                                          
P2:   N = 0;                                                                   
      IF (OMOC ¬= '2') THEN N = 1;                                             
PR:   DO I = 1 TO 4;                                                           
         OTAXES = OTAX(I);                                                     
         NAI = N;                                                              
         IF (N = 0) THEN NAI = 1;                                              
         S_OR_M = MARS(NAI);                                                   
/*       Put TEST to Skip Deductions HERE       */                             
                                                                               
                                                                               
      PUT SKIP(5);                                                             
      PUT SKIP EDIT('TAXFILE - ')(A);                                          
      IF (STOC = 'FD') THEN DO;                                                
         PUT EDIT('FEDERAL')(A);                                               
         GOTO P4;                                                              
         END;                                                                  
                                                                               
      PUT EDIT(STOC)(A)(' STATE -')(A);                                        
      IF (OOWH ¬= '5') THEN GOTO P4;                                           
      PUT EDIT(OOWC)(A)(' CITY -')(A);                                         
P4:   PUT SKIP(2);                                                             
      PUT SKIP EDIT(PAYFREQ(I))(A)( ' DEDUCTIONS TABLE -')(A);                 
      IF (N = 0) THEN GOTO PN;                                                 
      PUT EDIT(' FOR ')(A)(MARYTAL(NAI))(A);                                   
PN:   PUT SKIP;                                                                
      PUT SKIP EDIT('ö GROSS WAGES  ö  DEDUCTION  ö')(X(17),A);                
      PUT SKIP EDIT('-----------------ö--------------ö')(A)                    
      ('-------------ö')(A);                                                   
      PUT SKIP EDIT('      LESS THAN  ö (W1)')(A)(WAGEZ(1))                    
      (P'$$$$9V.99')(' ö (D1) ')(A)(D_AMT(1))(P'$$9V.99')(' ö')(A);            
      PUT SKIP EDIT('-----------------ö--------------ö')(A)                    
      ('-------------ö')(A);                                                   
      PUT SKIP EDIT('      MORE THAN  ö (W2)')(A)(WAGEZ(2))                    
      (P'$$$$9V.99')(' ö (D2) ')(A)(D_AMT(2))(P'$$9V.99')(' ö')(A);            
      PUT SKIP;                                                                
      PERP = PCT * 100;                                                        
      PUT SKIP EDIT('(ADJ) ')(X(19),A)(LESS)(P'$$9V.99')('   (PCT) ')          
      (A)(PERP)(P'99V.9')(' %')(A);                                            
      PUT SKIP(3);                                                             
      PUT SKIP EDIT('EXEMPTION AMOUNT FOR ')(A)                                
      (PAYFREQ(I))(A)(' PAY-FREQUENCY : ')(A)(OEXM$)(P'$$$9V.99');             
      PUT SKIP(3);                                                             
      PUT SKIP EDIT(PAYFREQ(I))(A)(' TAX TABLE -')(A);                         
      IF (N = 0) THEN GOTO PN2;                                                
      PUT EDIT(' For ')(A)(MARYTAL(NAI))(A);                                   
PN2:  PUT SKIP;                                                                
      PUT SKIP EDIT(' WAGES AFTER DEDUCTIONS  ö AMOUNT')(A)                    
      (' TO BE WITHHELD IS THE SUM OF -')(A);                                  
      PUT SKIP EDIT('     AND EXEMPTIONS      ö')(A);                          
      PUT SKIP EDIT('AT LEAST   ö   BUT LESS  ö    BASE')(A)                   
      ('   ö      ö  THIS %  ö EXCESS')(A);                                    
      PUT SKIP EDIT('ö     THAN    ö   AMOUNT  ö')(X(11),A)                    
      (' PLUS ö    OF    ö  OVER')(A);                                         
      DO J = 1 TO 14;                                                          
      PUT SKIP EDIT('-----------ö-------------ö-----------')(A)                
      ('ö------ö----------ö--------')(A);                                      
      PUT SKIP EDIT(J)(P'9')(')')(A);                                          
      DEDN = R_MAX(J - 1);                                                     
      PERP = PCT_DIF(J) * 100;                                                 
      IF (J = 1) THEN DEDN = 0;                                                
      PUT EDIT(DEDN)(P'$$$$9V.99')(' ö (W)')(A)                                
      (R_MAX(J))(P'$$$$9V.99')(' ö(B) ')(A)(B_TAX(J))(P'$$9V.99')              
      (' ö      ö (P) ')(A)(PERP)(P'99V.9')(' ö')(A)                           
      (DEDN)(P'$$$9V.99');                                                     
      IF (J = 14) THEN GOTO PN3;                                               
      IF (R_MAX(J + 1) = 0) THEN DO;                                           
         J = J + J;                                                            
         PUT SKIP(28 - J);                                                     
         GOTO PN4;                                                             
         END;                                                                  
                                                                               
PN3:  END;                                                                     
PN4:  PUT SKIP(8);                                                             
      END;                                                                     
      IF (N = 0) THEN GOTO EP;                                                 
      IF (N = 1) THEN DO;                                                      
      N = 2;                                                                   
      GOTO PR;                                                                 
      END;                                                                     
      GOTO EP;                                                                 
                                                                               
P_MSG1:                                                                        
      IF (ANS2 = 'FD') THEN GOTO P_MSG2;                                       
      PUT FILE(D) SKIP EDIT('SORRY - No ')(A(11))(ANS2)(A(2))                  
      (' State File In Your TaxFile')(A(27));                                  
      GET SKIP LIST('');                                                       
      GOTO EP;                                                                 
P_MSG2:                                                                        
      KKEY = 57;                                                               
      GOTO EP;                                                                 
P_MSG3:                                                                        
      PUT FILE(D) SKIP EDIT('NO ')(A(3))(HOURS5)(A(5))(ANS2)                   
      (A(2))(' File Found In Your TaxFile')(A(27));                            
      GET SKIP LIST('');                                                       
      GOTO EP;                                                                 
EP:   RETURN;                                                                  
END;                                                                           
                                                                               
/* TaxFile Initialization Module - March 29th 1978 */                          
                                                                               
TAX_INIT:PROC;                                                                 
                                                                               
      PUT FILE(D) SKIP EDIT('Your TaxFile has Not Been Initialized')           
      (A(47))('DO You Want to')(A(18))('1)Initialize Your Tax File')           
      (A(47))('2)Exit This Program')(A(49))('ENTER CHOICE : ')(A);             
TIR:  GET SKIP LIST(ANS);                                                      
      IF (ANS = '2') THEN GOTO TI2;                                            
      IF (ANS ¬= '1') THEN GOTO TIR;                                           
      GOTO TII;                                                                
TI2:  KKEY = 5;                                                                
      GOTO XTI;                                                                
TII:   OPEN OTHERTAX;                                                          
       ST_C = '00';                                                            
       OEXM$ = 0;                                                              
       TRNX = 0;                                                               
       PCT = 0;                                                                
       LESS = 0;                                                               
       SPC = 0;                                                                
       SW_B = 0;                                                               
                                                                               
       DO I = 1 TO 14;                                                         
       R_MAX(I) = 0;                                                           
       B_TAX(I) = 0;                                                           
       PCT_DIF(I) = 0;                                                         
       END;                                                                    
       R_MAX(14) = 99999.99;                                                   
       O_WH = '2';                                                             
       O_WC = ' ';                                                             
       ANS = '2';                                                              
BEG:   DO I = 1 TO 2;                                                          
       O_SD(I)  = SUITABLE;                                                    
       WAGEZ(I) = 99999;                                                       
       D_AMT(I) = 0;                                                           
       MARS(I) = S_OR_M;                                                       
       END;                                                                    
                                                                               
       OMAR = ANS;                                                             
                                                                               
       DO I = 1 TO 4;                                                          
       OTAX(I) = OTAXES;                                                       
       END;                                                                    
       WRITE FILE(OTHERTAX) FROM(OTAX);                                        
       IF (ST_C = '00') THEN DO;                                               
       ANS = '1';                                                              
       ST_C = 'FD';                                                            
       O_WH = '9';                                                             
       O_WC = ' ';                                                             
       GOTO BEG;                                                               
       END;                                                                    
                                                                               
       CLOSE OTHERTAX;                                                         
       CALL XPLAIN_T;                                                          
XTI:   RETURN;                                                                 
END;                                                                           
/* FICA and SUI/Unemployment Tax Change Routine */                             
                                                                               
F_OR_S:PROC;                                                                   
                                                                               
/************************************************************************/     
/*                                                                      */     
/* This Routine Applies To FEDERAL & STATE Files ONLY, NOT To CITY Ones */     
/*                                                                      */     
/************************************************************************/     
                                                                               
       ON ERROR GOTO FS_MSG;                                                   
       READ KEY(ANS2) FILE(OTHERTAX) INTO(OTAX);                               
          IF (VERIFY(OOWH,'12349') = 0) THEN DO;                               
RR_F_S:                                                                        
             ON ENDFILE GOTO FS_MSG;                                           
             READ FILE(OTHERTAX) INTO(OTAX);                                   
             IF (ANS2 ¬= STOC) ö (VERIFY(OOWH,'12349') = 0) THEN DO;           
                GOTO RR_F_S;                                                   
                END;                                                           
             END;                                                              
       SUITABLE = OS_D(1);                                                     
       DISABILTY = OS_D(2);                                                    
FSR:   MORE_TAX = SPC * 100;                                                   
       ANS3 = ANS2;                                                            
       IF (KKEY = 1) THEN ANS3 = '   ';                                        
       PUT FILE(D) SKIP EDIT(ANS3)(A(47))('CURRENT ')(A)                       
       (F_OR_C(KKEY))(A)(' Rate : ')(A)(MORE_TAX)(P'Z9V.99')                   
       ('% BASE Wage : ')(A)(SW_B)(P'ZZZZ9V.99')('NEW VALUES   ')(A)           
       ('Rate : ')(A);                                                         
       GET SKIP LIST(MORE_TAX);                                                
       PUT FILE(D) EDIT(MORE_TAX)(P'Z9V.99')('% BASE Wage : ')(A);             
       GET SKIP LIST(ANS_AMT);                                                 
       PUT FILE(D) EDIT(ANS_AMT)(P'ZZZZ9V.99')(' ')(A(8))                      
       (F_OR_D(KKEY))(A(4))(' Rate : ')(A(8));                                 
       BIGTAX = DP_C * 100;                                                    
       IF (KKEY = 1) THEN BIGTAX = DP_C;                                       
       PUT FILE(D) EDIT(BIGTAX)(P'Z9V.999')('% BASE Wage :')(A(13))            
       (DW_B)(P'ZZZZ9V.99')('NEW VALUES   ')(A(13))('Rate : ')                 
       (A(7));                                                                 
       GET SKIP LIST(BIGTAX);                                                  
       PUT FILE(D) EDIT(BIGTAX)(P'Z9V.999')('% BASE Wage :')(A(13));           
       GET SKIP LIST(DW_B);                                                    
       PUT FILE(D) EDIT(DW_B)(P'ZZZZ9V.99')('OK ? ')(A);                       
       GET SKIP LIST(ANS3);                                                    
       IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO FSR;                             
       SPC = MORE_TAX * .01;                                                   
       DP_C = BIGTAX * .01;                                                    
       IF (KKEY = 1) THEN DP_C = BIGTAX;                                       
       SW_B = ANS_AMT;                                                         
       DO I = 1 TO 4;                                                          
          OTAXES = OTAX(I);                                                    
          OS_D(1) = SUITABLE;                                                  
          OS_D(2) = DISABILTY;                                                 
          OTAX(I) = OTAXES;                                                    
          END;                                                                 
       UNSPEC(OTHERTAX) = UNSPEC(OTHERTAX) - 4;                                
       WRITE FILE(OTHERTAX) FROM(OTAX);                                        
       OPEN OTHERTAX;                                                          
       PUT SKIP(2);                                                            
       PUT SKIP EDIT('CURRENT Value ')(A)(ANS2)(A(3))(F_OR_C(KKEY))            
       (A)(' Rate : ')(A)(ORATE * 100)(P'Z9V.99')('% BASE Wage : ')            
       (A)(OBASE)(P'$$$$9V.99');                                               
       GOTO F_S_R;                                                             
FS_MSG:                                                                        
       IF (KKEY = 2) THEN DO;                                                  
          PUT FILE(D) SKIP EDIT(ANS2)(A)(' Tax Record NOT FOUND')(A);          
          GET SKIP LIST('');                                                   
          GOTO F_S_R;                                                          
          END;                                                                 
       KKEY = 57;                                                              
       GOTO F_S_R;                                                             
F_S_R: RETURN;                                                                 
END;                                                                           
                                                                               
/* FEDERAL RECORD ROUTINE HERE - Init & Re-Init are the Same */                
                                                                               
FEDERAL_TAX:PROC;                                                              
                                                                               
FTA0: ON ERROR GOTO TMSG;                                                      
      READ KEY('FD') FILE(OTHERTAX) INTO(OTAX);                                
      DO I = 1 TO 4;                                                           
      OTAXES = OTAX(I);                                                        
                                                                               
FTA:  PUT FILE(D) SKIP EDIT(PAYFREQ(I))(A(10))(' PAY FREQUENCY')(A(37))        
      ('EXEMPTION AMOUNT : ')(A);                                              
      GET SKIP LIST(OEXM$);                                                    
      PUT FILE(D) EDIT(OEXM$)(P'$$$9V.99')(' OK? ')(A);                        
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO FTA;                              
FM:   PUT FILE(D) SKIP EDIT('SOCIAL SECURITY TAX - FICA')(A(47))               
      ('ENTER  PCT : ')(A(12));                                                
                                                                               
/* MORE_TAX Should be Changed to FIXED(5,3), and         */                    
/* SPC, DP_C, ORA, ORATE Should be Changed to FIXED(5,5) */                    
      GET SKIP LIST(SPC);                                                      
                                                                               
      PUT FILE(D) EDIT(SPC)(P'V.999')('%')(A(6))                               
      ('TAXABLE WAGES : ')(A(16));                                             
      GET SKIP LIST(SW_B);                                                     
      PUT FILE(D) EDIT(SW_B)(P'$$$$9V.99')                                     
      (' FEDERAL DISABILITY - FUTA')(A(48))('ENTER  PCT : ')(A(13));           
      GET SKIP LIST(MORE_TAX);                                                 
      DP_C = (MORE_TAX * .01);                                                 
      PUT FILE(D) EDIT(MORE_TAX)(P'99V.99')('%')(A(5))                         
      ('TAXABLE WAGES : ')(A(16));                                             
      GET SKIP LIST(DW_B);                                                     
      PUT FILE(D) EDIT(DW_B)(P'$$$$9V.99')('OK ? ')(A);                        
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO FM;                               
                                                                               
FM2:  O_SD(1) = SUITABLE;                                                      
      O_SD(2) = DISABILTY;                                                     
                                                                               
FTA1: PUT FILE(D) SKIP EDIT('FOR DEDUCTIONS CONSIDERATION FOR ')(A)            
      (PAYFREQ(I))(A(14))('ENTER W1 : ')(A);                                   
      GET SKIP LIST(WAGEZ(1));                                                 
      PUT FILE(D) EDIT(WAGEZ(1))(P'$$$9V.99')('ENTER W2 : ')(X(8),A);          
      GET SKIP LIST(WAGEZ(2));                                                 
      PUT FILE(D) EDIT(WAGEZ(2))(P'$$$9V.99')('ENTER D1 : ')(X(3),A);          
      GET SKIP LIST(D_AMT(1));                                                 
      PUT FILE(D) EDIT(D_AMT(1))(P'$$9V.99')('ENTER D2 : ')(X(9),A);           
      GET SKIP LIST(D_AMT(2));                                                 
      PUT FILE(D) EDIT(D_AMT(2))(P'$$9V.99')('    ')(A)                        
      ('ENTER PCT : ')(A);                                                     
      GET SKIP LIST(PERP);                                                     
      PCT = (PERP * .01);                                                      
      PUT FILE(D) EDIT(PERP)(P'99V.9')('%     ')(A)                            
      ('    ENTER ADJ : ')(A);                                                 
      GET SKIP LIST(LESS);                                                     
      PUT FILE(D) EDIT(LESS)(P'$$9V.99')('  OK? ')(A);                         
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO FTA1;                             
      DO J = 1 TO 2;                                                           
      S_OR_M = MARS(J);                                                        
F10:  M = 7;                                                                   
F1:   M = M - 7;                                                               
F2:   PUT FILE(D) SKIP EDIT(PAYFREQ(I))(A(10))(' TX AMT TO BE ')(A)            
      ('WITHHELD FOR ')(A)(MARYTAL(J))(A(10));                                 
FTA2: DO L = 1 TO 7;                                                           
      M = M + 1;                                                               
      PUT FILE(D) EDIT(M)(P'99')(')')(A)('ENTER W:')(A);                       
      GET SKIP LIST(R_MAX(M));                                                 
      PUT FILE(D) EDIT(R_MAX(M))(P'$$$9V.99')(' ENTER B:')(A);                 
      GET SKIP LIST(B_TAX(M));                                                 
      PUT FILE(D) EDIT(B_TAX(M))(P'$$9V.99')(' ENTER P:')(A);                  
      GET SKIP LIST(PERP);                                                     
      PCT_DIF(M) = (PERP * .01);                                               
      PUT FILE(D) EDIT(PERP)(P'99V.9')('%')(A);                                
      END;                                                                     
      PUT FILE(D) EDIT('OK? ')(A);                                             
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO F1;                               
      MARS(J) = S_OR_M;                                                        
      IF (M < 9) THEN GOTO F2;                                                 
      END;                                                                     
      OTAX(I) = OTAXES;                                                        
      END;                                                                     
OFT1: UNSPEC(OTHERTAX) = UNSPEC(OTHERTAX) - 4;                                 
      WRITE FILE(OTHERTAX) FROM(OTAX);                                         
      OPEN OTHERTAX;                                                           
                                                                               
OFT2: KKEY = 3;                                                                
      N = 1;                                                                   
      CALL PRINT_FILE;                                                         
      GOTO FT_R;                                                               
TMSG:  KKEY = 57;                                                              
       GOTO FT_R;                                                              
                                                                               
FT_R: RETURN;                                                                  
END;                                                                           
                                                                               
/* THIS IS THE CITY and STATE ROUTINES for TAX PROGRAM */                      
                                                                               
STATE_CITY:PROC;                                                               
                                                                               
AST:  PUT FILE(D) SKIP EDIT('ENTER STATE CODE : ')(A);                         
      GET SKIP LIST(ANS2);                                                     
      PUT FILE(D) EDIT(ANS2)(A)(' OK? ')(A);                                   
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO AST;                              
                                                                               
AST1: PUT FILE(D) SKIP EDIT('IS THIS A CITY TAXTABLE ? ')(A);                  
A1R:  GET SKIP LIST(ANS3);                                                     
      ANS = SUBSTR(ANS3,1,1);                                                  
                                                                               
      HOURS5 = ' ';                  /* State Record */                        
      IF (ANS = 'Y') THEN DO;                                                  
         T_CODE = '5';               /* City  Record, No SUI or FICA */        
         K = 1;                               /* Re-Initializing Flag */       
AST2:    HOURS5 = ' ';                                                         
         PUT FILE(D) SKIP EDIT('ENTER 1st 5 CHARACTERS OF CITY : ')(A);        
         GET SKIP LIST(HOURS5);                                                
         PUT FILE(D) EDIT(HOURS5)(A)(' OK? ')(A);                              
         GET SKIP LIST(ANS3);                                                  
         IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO AST2;                          
      /* GOTO AST3;                            */                              
         ON ERROR GOTO NEW_C1;                                                 
         READ KEY(ANS2) FILE(OTHERTAX) INTO(OTAX);                             
         IF (OOWH ¬= '5') THEN DO;                                             
C_READ:     ON ENDFILE GOTO NEW_C2;                                            
            READ FILE(OTHERTAX) INTO(OTAX);                                    
            IF (ANS2 ¬= STOC) ö (HOURS5 ¬= OOWC) ö (OOWH ¬= '5') THEN DO;      
               GOTO C_READ;                                                    
               END;                                                            
            GOTO AS5;                                                          
            END;                                                               
         GOTO AS5;                                                             
NEW_C1:  PUT FILE(D) SKIP EDIT('NOTE: You Have No ')(A)(ANS2)(A)               
             (' STATE File In             Your Tax File')(A);                  
             GET SKIP LIST('');                                                
NEW_C2:  K = 0;                               /* New CITY Tax Record */        
         OPEN OTHERTAX;                                                        
         ON ERROR GOTO C_S_MSG;                                                
         READ KEY('00') FILE(OTHERTAX) INTO(OTAX);                             
         STOC = ANS2;                                                          
         OOWC = HOURS5;                                                        
         OOWH = '5';                                                           
         GOTO AS5;                                                             
         END;                                                                  
      IF (ANS ¬= 'N') THEN GOTO A1R;                                           
/*    T_CODE = '1';                              */                            
      K = 1;                                                                   
AST3: ON ERROR GOTO NEW_S2;  /* This is New State Rec w/ No City Yet */        
      READ KEY(ANS2) FILE(OTHERTAX) INTO(OTAX);                                
         IF (VERIFY(OOWH,'1234') = 0) THEN DO; /* Not a State File */          
ADR:     ON ENDFILE GOTO NEW_S1; /* New State but City Already In File */      
         READ FILE(OTHERTAX) INTO(OTAX);                                       
         IF (ANS2 ¬= STOC) ö (VERIFY(OOWH,'1234') = 0) THEN GOTO ADR;          
         GOTO GOT_REC;                                                         
         END;                                                                  
      GOTO GOT_REC;                                                            
NEW_S1:  PUT FILE(D) SKIP EDIT('You Have a ')(A)(ANS2)(A)                      
          (' CITY File, But No STATE One')(A);                                 
          GET SKIP LIST('');                                                   
NEW_S2:  K = 0;                                                                
      OPEN OTHERTAX;                                                           
      ON ERROR GOTO C_S_MSG;                                                   
      READ KEY('00') FILE(OTHERTAX) INTO(OTAX);                                
      STOC = ANS2;                                                             
      HOURS5 = ' ';                                                            
      OOWH = '2';                                                              
      GOTO GOT_REC;                                                            
/*   If found, then taxfile is being Re-Initialized & K = 1 */                 
/* If Not Found, Then This Is a New Tax Record, And K = 0 */                   
                                                                               
                                                                               
GOT_REC:                                                                       
      PUT FILE(D) SKIP EDIT('For ')(A(4))(STOC)(A(3))('State, Is SickPay')     
          (A(21))('1)SUI-SDI Taxable')(A(47))('2)FICA    Taxable')             
          (A(47))('3)BOTH    Taxable')(A(47))('4)NEITHER Taxable')             
          (A(49))('ENTER CHOICE : ')(A);                                       
GR_RE:                                                                         
      GET SKIP LIST(ANS);                                                      
      IF (VERIFY(ANS,'1234') = 0) THEN GOTO GR_RE;                             
      OOWH = ANS;                                                              
                                                                               
                                                                               
AS5:  PUT FILE(D) SKIP EDIT('FOR ')(A)(STOC)(A)(' TAX ')(A)                    
      ('CALCULATIONS, DOES MARITAL STATUS   MATTER? ')(A);                     
AST7: GET SKIP LIST(ANS3);                                                     
                                                                               
/*****************************/                                                
/* N is Marital Status Flag  */                                                
/* 1- Marital Status Matters */                                                
/* Zero - It Does not Matter */                                                
/*****************************/                                                
                                                                               
      ANS = SUBSTR(ANS3,1,1);                                                  
      N = 0;                                                                   
      IF (ANS = 'Y') THEN DO;                                                  
         N = 1;                                                                
         OMOC = '1';                                                           
         GOTO SM;                                                              
         END;                                                                  
      IF (ANS ¬= 'N') THEN GOTO AST7;                                          
      OMOC = '2';                                                              
/* CT:PUT FILE(D) SKIP EDIT(STOC)(A)(' COMMUTATION TAX-PERCENT : ')(A);        
      GET SKIP LIST(MORE_TAX);                                                 
      TRNX = (MORE_TAX * .01);                                                 
      PUT FILE(D) EDIT(MORE_TAX)(P'99V.99')('% OK? ')(A);                      
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO CT; */                            
                                                                               
SM:   SUITABLE = O_SD(1);                                                      
      DISABILTY = O_SD(2);                                                     
      IF (OOWH = '5') THEN GOTO AST5;                                          
      PUT FILE(D) SKIP EDIT(STOC)(A(3))('STATE UNEMPLOYMENT INSURANCE TAX')    
      (A(44))('ENTER  PCT : ')(A(13));                                         
      GET SKIP LIST(MORE_TAX);                                                 
      SPC = (MORE_TAX * .01);                                                  
      PUT FILE(D) EDIT(MORE_TAX)(P'99V.99')(' %')(A(5))                        
      ('TAXABLE WAGES : ')(A(16));                                             
      GET SKIP LIST(SW_B);                                                     
      PUT FILE(D) EDIT(SW_B)(P'$$$$9V.99')                                     
      (STOC)(A(3))('STATE DISABILITY INSURANCE TAX')(A(44))                    
      ('ENTER  PCT : ')(A(13));                                                
      GET SKIP LIST(MORE_TAX);                                                 
      DP_C = (MORE_TAX * .01);                                                 
      PUT FILE(D) EDIT(MORE_TAX)(P'99V.99')(' %')(A(5))                        
      ('TAXABLE WAGES : ')(A(16));                                             
      GET SKIP LIST(DW_B);                                                     
      PUT FILE(D) EDIT(DW_B)(P'$$$$9V.99')('OK ? ')(A);                        
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO SM;                               
                                                                               
SM2:  O_SD(1) = SUITABLE;                                                      
      O_SD(2) = DISABILTY;                                                     
                                                                               
AST5: DO I = 1 TO 4;                                                           
      OTAXES = OTAX(I);                                                        
      ST_C = STOC;                                                             
      O_WH = OOWH;                                                             
      O_WC = OOWC;                                                             
      O_SD(1) = SUITABLE;                                                      
      O_SD(2) = DISABILTY;                                                     
/*    TRNX = (MORE_TAX * .01);                   */                            
                                                                               
AST6: PUT FILE(D) SKIP EDIT(PAYFREQ(I))(A(10))(' PAY ')(A)                     
      ('FREQUENCY')(A(32))('EXEMPTION AMOUNT : ')(A);                          
A6R:  GET SKIP LIST(ANS7);                                                     
      IF (ANS7 = '       ') THEN GOTO AT14; /* Skip This P_FREQ */             
      IF (VERIFY(ANS7,' 0123456789.') = 0) THEN GOTO A6R;                      
      OEXM$ = ANS7;                                                            
      PUT FILE(D) EDIT(OEXM$)(P'$$$9V.99')(' OK? ')(A);                        
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO AST6;                             
                                                                               
AST8: PUT FILE(D) SKIP EDIT('FOR DEDUCTIONS CONSIDERATION FOR ')(A);           
      IF (VERIFY(O_WH,'1234') ¬= 0) THEN GOTO A81;                             
      PUT FILE(D) EDIT(O_WC)(A)(' CITY -')(A(9));                              
      GOTO A82;                                                                
A81:  PUT FILE(D)EDIT(ST_C)(A)(' STATE -')(A(12));                             
A82:  PUT FILE(D) EDIT('ENTER W1 : ')(A);                                      
A8R:  GET SKIP LIST(ANS7);                                                     
      IF (ANS7 = '       ') THEN GOTO ASTE; /** Skip DEDUCTIONS **/            
      IF (VERIFY(ANS7,' .0123456789') = 0) THEN GOTO A8R;                      
      WAGEZ(1) = ANS7;                                                         
      PUT FILE(D) EDIT(WAGEZ(1))(P'$$$9V.99')('ENTER W2 : ')                   
      (X(8),A);                                                                
      GET SKIP LIST(WAGEZ(2));                                                 
      PUT FILE(D) EDIT(WAGEZ(2))(P'$$$9V.99')(' ')(A(3))                       
      ('ENTER D1 : ')(A);                                                      
      GET SKIP LIST(D_AMT(1));                                                 
      PUT FILE(D) EDIT(D_AMT(1))(P'$$9V.99')('ENTER D2 : ')                    
      (X(9),A);                                                                
      GET SKIP LIST(D_AMT(2));                                                 
      PUT FILE(D) EDIT(D_AMT(2))(P'$$9V.99')('    ')(A)                        
      ('ENTER PCT : ')(A);                                                     
      GET SKIP LIST(PERP);                                                     
      PCT = (PERP * .01);                                                      
      PUT FILE(D) EDIT(PERP)(P'99V.9')('%     ')(A)                            
      ('    ENTER ADJ : ')(A);                                                 
      GET SKIP LIST(LESS);                                                     
      PUT FILE(D) EDIT(LESS)(P'$$9V.99')('   OK? ')(A);                        
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO AST8;                             
ASTE: DO J = 1 TO 2;                                                           
      S_OR_M = MARS(J);                                                        
                                                                               
AST9: M = 7;                                                                   
A9:   M = M - 7;                                                               
/* ** Provide to Indicate MARRIED or SINGLE in Display ** */                   
AT10: PUT FILE(D) SKIP EDIT('FOR TAX AMOUNT TO BE WITHHELD FOR ')(A);          
      IF (VERIFY(O_WH,'1234') ¬= 0) THEN GOTO AT12;                            
      PUT FILE(D) EDIT(O_WC)(A)(' CITY - ')(A);                                
      GOTO AT11;                                                               
AT12: PUT FILE(D) EDIT(ST_C)(A)(' STATE -   ')(A);                             
AT11: DO L = 1 TO 7;                                                           
      M = M + 1;                                                               
AT13: PUT FILE(D) EDIT(M)(P'99')(')')(A)('ENTER W:')(A);                       
G13:  GET SKIP LIST(ANS7);     /* MEANS TO SKIP XCESS DATA */                  
      JJ = 0;                                                                  
      IF (ANS7 = '       ') THEN DO;                                           
         JJ = 5;                                                               
         GOTO NA;                                                              
         END;                                                                  
      IF (VERIFY(ANS7,' .0123456789') = 0) THEN GOTO G13;                      
      R_MAX(M) = ANS7;                                                         
      PUT FILE(D) EDIT(R_MAX(M))(P'$$$9V.99')(' ENTER B:')(A);                 
      GET SKIP LIST(B_TAX(M));                                                 
      PUT FILE(D) EDIT(B_TAX(M))(P'$$9V.99')(' ENTER P:')(A);                  
      GET SKIP LIST(PERP);                                                     
      PCT_DIF(M) = (PERP * .01);                                               
      PUT FILE(D) EDIT(PERP)(P'99V.9')('%')(A);                                
      END;                                                                     
NA:   PUT FILE(D) EDIT('OK? ')(A);                                             
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO A9;                               
      IF (M < 9) & (JJ = 0) THEN GOTO AT10;                                    
      MARS(J) = S_OR_M;                                                        
      IF (N = 0) THEN DO;                                                      
         MARS(2) = S_OR_M;                                                     
         GOTO AT14;                                                            
         END;                                                                  
                                                                               
         END;                                                                  
AT14: OTAX(I) = OTAXES;                                                        
AT15: END;                                                                     
      IF (K = 0) THEN GOTO AT16;                                               
      UNSPEC(OTHERTAX) = UNSPEC(OTHERTAX) - 4;                                 
      WRITE FILE(OTHERTAX) FROM(OTAX);                                         
      OPEN OTHERTAX;                                                           
      GOTO CS_P;                                                               
AT16: CALL SEOF(OTHERTAX);                                                     
      WRITE FILE(OTHERTAX) FROM(OTAX);                                         
AT17: CLOSE OTHERTAX;                                                          
      OPEN OTHERTAX;                                                           
      GOTO CS_P;                                                               
                                                                               
C_S_MSG:                                                                       
      KKEY = 57;                                                               
      GOTO CSR;                                                                
CS_P: KKEY = 3;                                                                
      CALL PRINT_FILE;                                                         
                                                                               
CSR:  RETURN;                                                                  
END;                                                                           
                                                                               
/* MAIN Portion of TAX FILE PROGRAM                  */                        
                                                                               
      OPEN OTHERTAX;                                                           
      KKEY = 0;                                                                
TOP:  IF (KKEY = 5) THEN GOTO EOP;                                             
      PUT FILE(D) SKIP EDIT('DO YOU WANT')(A(27))('1)FEDERAL')                 
      (A(47))('2)STATE')(A(47))('3)FICA/FUTA')(A(47))('4)SUI/SDI')             
      (A(47))   /* ('5)Transportation Tax')(A(47)) */                          
      ('5)PrintLIST of FILES')(A(49))('ENTER CHOICE : ')(A);                   
                                                                               
TR:   GET SKIP LIST(ANS3);                                                     
      ANS = SUBSTR(ANS3,1,1);                                                  
      IF (ANS = 'E') ö (ANS = '0') THEN GOTO EOP;                              
      IF (VERIFY(ANS,'123456') = 0) THEN GOTO TR;                              
      IF (ANS = '1') THEN GOTO T1;             /* OFT */                       
      IF (ANS = '2') THEN GOTO T2;             /* OST */                       
      IF (ANS = '3') THEN GOTO T3;             /* FTA0 */                      
      IF (ANS = '4') THEN GOTO T4;             /* AST */                       
/*    IF (ANS = '5') THEN GOTO T5;                AST */                       
      GOTO T6;                                 /* HERE ANS = '5' */            
T1:   PUT FILE(D) SKIP EDIT('DO YOU WISH TO')(A(18))                           
      ('1)ALTER FEDERAL FILE')(A(47))('2)PRINT FILE LISTING')                  
      (A(49))('ENTER CHOICE : ')(A);                                           
T1R:  GET SKIP LIST(ANS3);                                                     
      ANS = SUBSTR(ANS3,1,1);                                                  
      IF (ANS = 'E') ö (ANS = '0') THEN GOTO TOP;                              
      IF (ANS = '2') THEN GOTO C_PRINT_F;                                      
      IF (ANS ¬= '1') THEN GOTO T1R;                                           
      KKEY = 0;                                                                
      CALL FEDERAL_TAX;                                                        
      IF (KKEY = 57) THEN CALL TAX_INIT;                                       
      GOTO TOP;                                                                
                                                                               
T2:   PUT FILE(D) SKIP EDIT('DO YOU WANT TO')(A(18))                           
      ('1)ADD or CHANGE FILE(S)')(A(47))('2)PRINT PARTICULAR FILE(S)')         
                                                                               
      (A(49))('ENTER CHOICE : ')(A);                                           
T2R:  GET SKIP LIST(ANS3);                                                     
      ANS = SUBSTR(ANS3,1,1);                                                  
      IF (ANS = 'E') ö (ANS = '0') THEN GOTO TOP;                              
      IF (ANS = '1') THEN GOTO C_STATE;        /* AST */                       
      IF (ANS = '2') THEN GOTO C_PRINT_S;      /* PTX */                       
      GOTO T2R;                                                                
C_STATE:                                                                       
      KKEY = 0;                                                                
      CALL STATE_CITY;                                                         
      IF (KKEY = 57) THEN CALL TAX_INIT;                                       
      GOTO TOP;                                                                
C_PRINT:                                                                       
      CALL PRINT_FILE;                                                         
      IF (KKEY = 57) THEN CALL TAX_INIT;                                       
      GOTO TOP;                                                                
C_PRINT_F:                                                                     
      KKEY = 7;                                                                
      GOTO C_PRINT;                                                            
C_PRINT_S:                                                                     
      KKEY = 0;                                                                
      GOTO C_PRINT;                                                            
                                                                               
/*    KKEY = 0;                                   */                           
T6:   CALL PRINTLIST;                                                          
      IF (KKEY = 57) THEN CALL TAX_INIT;                                       
      GOTO TOP;                                                                
                                                                               
T3:   ANS2 = 'FD';                                                             
      KKEY = 1;                                                                
      CALL F_OR_S;                                                             
      IF (KKEY = 57) THEN CALL TAX_INIT;                                       
      GOTO TOP;                                                                
                                                                               
T4:   PUT FILE(D) SKIP EDIT('ENTER STATE CODE : ')(A);                         
      GET SKIP LIST(ANS2);                                                     
      PUT FILE(D) EDIT(ANS2)(A)(' OK ? ')(A);                                  
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO T4;                               
      KKEY = 2;                                                                
      CALL F_OR_S;                                                             
      IF (KKEY = 57) THEN CALL TAX_INIT;                                       
      GOTO TOP;                                                                
                                                                               
/* T5:   KKEY = 0;                                                             
      CALL TRANS_COMMUTER;                                                     
      IF (KKEY = 57) THEN CALL TAX_INIT;                                       
      GOTO TOP;                                */                              
EOP:  END;