1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        EMPDEL:  CTC PAYROLL PROGRAM, PART 25 OF 34
4  REM
5  REM        36213  REV B  6/73
6  REM
7  REM ****  CONTRIBUTED PROGRAM **************************************
90  H$='29'31'13'26'30
91  REM * DELETES EMPLOYEES FROM FILE *
92  REM * RE-LINKS FREE EMPLOYEE NUMBERS IF USER DESIRES *
93  DIM E$[22],A$[20],C$[10],H$[5],D$[5]
94  DIM E[17],F[32]
95  C$="0123456789"
100  FILES E1,E2,EP1,EP2,ETRAN,EAUX
200  READ E9,E7
210  DATA 2,17
220  N1=2*E9+1
300  GOSUB 9200
310  T2=T3=T4=T5=T6=T7=0
320  PRINT H$[1,2]"ENTER TODAY'S DATE (MDDYY)";
330  INPUT D1
340  IF D1<10^6 AND D1>9999 THEN 350
345  PRINT '7'7'7"INVALID DATE"
347  GOTO 320
350  D2=INT(D1/10^4)
355  IF D2<1 OR D2>12 THEN 345
360  D3=INT((D1-D2*10^4)/100)
365  IF D3<1 OR D3>31 THEN 345
370  D4=D1-D2*10^4-D3*100
375  IF D4<72 THEN 345
400  T1=1
410  D$="D"
420  PRINT H$[1,2];
1000  PRINT 
1005  PRINT "DELETE EMP#";
1010  INPUT A$
1015  IF A$="END" THEN 2000
1020  GOSUB 4000
1030  IF B1 THEN 1005
1035  U6=Z
1040  GOSUB 4085
1045  IF B1 THEN 1050
1046  PRINT '7'7'7"EMP# NOT ON FILE";H$[3,5];
1048  GOTO 1005
1050  PRINT E$;
1051  INPUT A$
1052  IF A$[1,1]="Y" THEN 1055
1053  PRINT H$[3,4];H$[4,5];
1054  GOTO 1000
1055  MAT E=ZER
1057  MAT F=ZER
1060  E[1]=-1
1065  REM
1070  E$=""
1075  PRINT #N,R1;E$
1080  MAT  PRINT #N;E
1085  MAT  PRINT #(N+E9),R1;F
1090  GOSUB 9300
1095  GOTO 1000
2000  PRINT "DO YOU WANT TO ADD ALL DELETED EMP#S TO THE UNUSED EMP#";
2005  PRINT " LIST";
2010  INPUT A$
2020  IF A$[1,1]#"Y" THEN 9999
2025  D$="G"
2030  PRINT "W A I T !"
2035  A9=M9=A8=0
2037  U8=1000+E9*200+1
2040  FOR U6=1001 TO U8
2042  IF U6=U8 THEN 2110
2045  Z=U6
2047  B1=0
2050  GOSUB 4020
2060  IF B1 THEN 9999
2070  GOSUB 4085
2080  IF  NOT B1 THEN 2090
2085  M9=U6
2087  GOTO 2210
2090  IF A9 THEN 2110
2100  A9=U6
2110  IF  NOT A8 THEN 2200
2140  Z=A8
2150  GOSUB 4020
2160  GOSUB 4085
2165  IF B1 THEN 3000
2170  E[2]=U6
2180  PRINT #N,R1;E$
2190  MAT  PRINT #N;E
2200  A8=U6
2210  NEXT U6
2212  IF A9 THEN 2220
2214  PRINT '7'7'7'7"NO FREE EMP#'S LEFT"
2216  STOP 
2220  PRINT #(N1+1),1;A9,M9
2222  E$=""
2224  U6=0
2226  GOSUB 9300
2230  END 
3000  PRINT '7'7'7'7'7'7'7"ERROR IN A8";A8;U6;
3010  STOP 
4000  REM
4002  GOSUB 4200
4005  IF  NOT B1 THEN 4015
4010  PRINT '7'7'7'7"INVALID DATA";H$[3,5];
4011  B1=1
4012  RETURN 
4015  IF Z<1001 THEN 4010
4020  R=Z-1000
4050  FOR I=1 TO E9
4055  IF R <= I*200 THEN 4080
4060  NEXT I
4065  PRINT "EMP#>";1000+E9*200;" FILE SPACE LIMIT";H$[3,5];
4070  B1=1
4075  RETURN 
4080  N=I
4081  R1=R-(I-1)*200
4082  RETURN 
4085  B1=0
4087  READ #N,R1;E$
4090  FOR I=1 TO E7
4095  READ #N;E[I]
4100  NEXT I
4130  IF E[1]=-1 THEN 4155
4150  B1=1
4152  MAT  READ #(N+E9),R1;F
4155  RETURN 
4200  B1=Z=0
4210  FOR I1=1 TO LEN(A$)
4220  FOR I2=1 TO 10
4225  IF A$[I1,I1]=C$[I2,I2] THEN 4245
4230  NEXT I2
4240  B1=1
4242  RETURN 
4245  Z=Z*10+I2-1
4250  NEXT I1
4255  RETURN 
9200  IF  END #N1 THEN 9270
9210  FOR I=1 TO 200
9220  READ #N1,I;E$,U6,T1,D$,T2,T3,T4,T5,T6,D1,T7
9230  READ #N1;E$,U6,T1,D$,T2,T3,T4,T5,T6,D1,T7
9240  NEXT I
9250  PRINT '7'7'7"TRANSACTION FILE FULL--PLEASE EMPTY"
9260  STOP 
9270  IF  END #N1 THEN 9285
9275  RETURN 
9285  PRINT "TRANSACTION FILE AT EOF"
9290  STOP 
9300  PRINT #N1;E$[1,22],U6,T1,D$,T2,T3,T4,T5,T6,D1,T7
9310  IF TYP(-(N1))=3 THEN 9250
9315  PRINT #N1; END 
9320  RETURN 
9999  END 
