1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        ECAT:  CTC PAYROLL PROGRAM, PART 7 OF 34
4  REM
5  REM        36213  REV B  6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
8  H$=""
9  REM * PRINTS EMPLOYEE NAME-# OR #-NAME CAT *
10  DIM E$[30],X$[10]
11  DIM H$[2],E[17]
100  FILES E1,E2,EAUX,ESRTF
150  PRINT "WHICH PRINTER: (1) ACCOUNTING (2) ABDICK";
155  INPUT P5
160  IF P5=1 OR P5=2 THEN 200
165  PRINT '7'7'7'7'7"WHAT";
170  GOTO 155
200  E9=2
205  E7=17
210  READ #(E9+1),1;A9,M9
220  PRINT H$"ENTER TODAY'S DATE";
230  INPUT X$
250  L=LEN(X$)
260  IF L>4 AND L<7 THEN 280
270  PRINT '7'7"INVALID DATE"
275  GOTO 220
280  PRINT "ENTER 'NUMBER-NAME' OR 'NAME-NUMBER'";
290  INPUT E$
300  IF E$#"NUMBER-NAME" THEN 330
310  X0=1
320  GOTO 350
330  IF E$#"NAME-NUMBER" THEN 340
335  X0=2
337  GOTO 350
340  PRINT '7'7'7"WHAT";
345  GOTO 290
350  PRINT " "'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18;
355  K=4
360  GOSUB 9910
370  PRINT TAB(30)"P  A  Y  R  O  L  L";
380  K=1
390  GOSUB 9900
400  PRINT TAB(15)"E M P L O Y E E  *";E$;"*  C A T A L O G U E";
410  K=1
420  GOSUB 9900
430  PRINT TAB(36);
440  IF L=6 THEN 470
450  PRINT X$[1,1]"/";X$[2,3]"/";X$[4,5];
460  GOTO 480
470  PRINT X$[1,2]"/";X$[3,4]"/";X$[5,6];
480  P8=9
485  GOSUB 6000
490  GOSUB 8000
500  GOTO X0 OF 1000,2000
1000  FOR I1=1001 TO M9
1010  GOSUB 3200
1015  GOSUB 3300
1017  IF  NOT B1 THEN 1100
1020  Z$="####"
1030  Z[1]=I1
1040  PRINT TAB(16);
1050  GOSUB 9000
1060  PRINT TAB(23);E$;
1070  GOSUB 4000
1090  GOSUB 3000
1100  NEXT I1
1110  END 
2000  READ #(E9+2);J9
2005  FOR J1=1 TO J9
2010  READ #(E9+2);I1
2020  GOSUB 3200
2030  READ #N,R1;E$
2040  PRINT TAB(15);E$;TAB(41);
2050  Z$="####"
2060  Z[1]=I1
2070  GOSUB 9000
2075  GOSUB 4000
2080  GOSUB 3000
2090  NEXT J1
2095  END 
3000  REM
3005  K=1
3010  GOSUB 9900
3020  P9=P9+2
3030  IF P9<60 THEN 3070
3040  GOTO P5 OF 3045,3055
3045  PRINT " "'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18;
3050  GOTO 3065
3055  K=66-P9
3060  GOSUB 9910
3065  GOSUB 8000
3070  RETURN 
3200  R=I1-1000
3210  FOR I=1 TO E9
3220  IF R <= I*200 THEN 3260
3230  NEXT I
3240  PRINT "M9>"1000+E9*200
3250  END 
3260  N=I
3270  R1=R-(I-1)*200
3300  B1=0
3305  READ #N,R1;E$
3310  MAT  READ #N;E
3320  IF E[1]=-1 THEN 3360
3330  X=INT(E[1]/10^4)
3340  S2=INT((E[1]-X*10^4)/100)
3350  S4=INT(E[2]/1000)
3355  B1=1
3360  RETURN 
4000  PRINT TAB(54);
4010  X$=" "
4020  Z$="##     ##"
4030  Z[1]=S4
4040  Z[2]=S2
4050  GOSUB 9000
4060  RETURN 
6000  GOTO P5 OF 6005,6030
6005  PRINT '13;
6010  RETURN 
6030  PRINT 
6040  RETURN 
8000  K=4
8005  GOSUB 9910
8010  GOTO X0 OF 8040,8020
8020  PRINT TAB(15)"NAME";TAB(40)"NUMBER";
8030  GOTO 8045
8040  PRINT TAB(15)"NUMBER";TAB(23)"NAME";
8045  PRINT TAB(52)"STATE   DEPT";
8050  K=2
8060  GOSUB 9900
8070  P9=7+P8
8080  P8=0
8090  RETURN 
9000  REM
9003  LET Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9004  DIM Y$[10],Z$[72]
9005  LET Y$="0123456789"
9006  LET Z0=Z9-1
9007  LET Z0=Z0+1
9008  IF Z0=LEN(Z$)+1 THEN 9059
9009  IF Z$[Z0,Z0]="#" THEN 9016
9010  IF Z$[Z0,Z0+1]=".#" THEN 9016
9011  IF Z$[Z0,Z0+1]="+#" THEN 9014
9012  PRINT Z$[Z0,Z0];
9013  GOTO 9007
9014  LET Z4=0
9015  GOTO 9007
9016  LET Z=100
9017  LET Z6=Z[Z2]
9018  LET Z9=Z0-1
9019  LET Z9=Z9+1
9020  IF Z$[Z9,Z9]="." THEN 9023
9021  IF Z$[Z9,Z9]="#" THEN 9019
9022  GOTO 9027
9023  IF Z5#1 THEN 9027
9024  LET Z5=0
9025  LET Z=Z9
9026  GOTO 9019
9027  IF Z#100 THEN 9029
9028  LET Z=Z9
9029  IF Z4=1 THEN 9034
9030  IF Z6 >= 0 THEN 9033
9031  PRINT "-";
9032  GOTO 9034
9033  PRINT " ";
9034  LET Z6=ABS(Z6)+10^(Z-Z9-1)
9035  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
9036  IF Z$[Z-Z1,Z-Z1]#"." THEN 9041
9037  PRINT ".";
9038  LET Z3=0
9039  LET Z7=2
9040  GOTO 9055
9041  LET Z8=INT(Z6/(10^(Z1+Z7-2)))
9042  IF Z6<10^(Z-Z0) THEN 9045
9043  PRINT "#";
9044  GOTO 9055
9045  LET Z6=Z6-Z8*10^(Z1+Z7-2)
9046  IF Y$[Z8+1,Z8+1]="0" THEN 9048
9047  LET Z3=0
9048  IF Z3=0 THEN 9054
9049  IF Z1#1 THEN 9052
9050  PRINT "0";
9051  GOTO 9055
9052  PRINT " ";
9053  GOTO 9055
9054  PRINT Y$[Z8+1,Z8+1];
9055  NEXT Z1
9056  LET Z3=Z4=Z5=Z7=1
9057  LET Z2=Z2+1
9058  GOTO 9006
9059  RETURN 
9900  GOSUB 6000
9910  FOR I=1 TO K
9920  PRINT "         ";
9930  GOSUB 6000
9940  NEXT I
9950  RETURN 
9999  END 
