--- title: "Quick-Pay" id: 72042 type: "computer_media" slug: "quick-pay" url: "http://localhost/computer_media/quick-pay/" markdown_url: "http://localhost/computer_media/quick-pay.md" published_at: "2026-10-20T14:07:38+00:00" modified_at: "2026-10-20T14:19:28+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/6_QUICK-PAY.png" excerpt: "A payroll calculator for one employee at a time, with time-and-a-half overtime worked out daily, weekly over 40 hours, or per pay period." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 1000" slug: "ts1000" taxonomy: "post_tag" url: "http://localhost/tag/ts1000/" model: - name: "Timex/Sinclair 1000" slug: "ts-1000" taxonomy: "model" url: "http://localhost/model/ts-1000/" indiv: - name: "Gene G. Buza" slug: "gene-g-buza" taxonomy: "indiv" url: "http://localhost/indiv/gene-g-buza/" genre: - name: "Business" slug: "business" taxonomy: "genre" url: "http://localhost/type/business/" media_contents: - id: 72046 title: "Synchro-Sette May 1984" type: "computer_media" url: "http://localhost/computer_media/synchro-sette-may-1984/" media_type: "Program" programmers: - name: "Gene G. Buza" slug: "gene-g-buza" taxonomy: "indiv" url: "http://localhost/indiv/gene-g-buza/" mediadate: "1984" images: - url: "http://localhost/wp-content/uploads/2026/10/6_QUICK-PAY.png" media_type_tags: "Business" --- # Quick-Pay Works out an employee’s wages for a pay period. The menu has three ways to handle overtime: hours entered separately (8-hour overtime), hours over 40 in the week counted as overtime, and a monthly or twice-monthly period with overtime entered separately. The program asks for the employee’s name, hourly rate, hours and deductions, then prints a pay statement with overtime at time and a half. Pressing `Z` copies the statement to the ZX printer. *** ## Program Analysis ### Program Structure Lines 100–360 draw a frame with `PLOT` and show the three-item menu. Each option has a block for its inputs (1000, 2000 and 3000). Option 2 splits any hours above 40 into overtime at lines 2500–2540. All three continue into the shared deductions, date and statement code from line 1110. The data-entry screen is cleared by calling `SCROLL` 22 times, and the statement is then printed from the top. ### Potential Issues - The labels for net and gross pay are swapped: “NET PAY” (line 1290) shows the total before deductions, and “GROSS PAY” (line 1310) shows it after deductions. - Options 1 and 3 do exactly the same calculation and differ only in their prompts. ## Source Code ``` 100 FAST 110 CLS 120 FOR N=0 TO 63 130 PLOT N,43 140 PLOT N,0 150 IF N<43 THEN PLOT 0,N 160 IF N<43 THEN PLOT 63,N 170 NEXT N 200 PRINT AT 2,7;"█[Q][U][I][C][K]█[P][A][Y][R][O][L][L]█" 210 PRINT AT 4,4;"8 HOUR OVERTIME";TAB 26;"█[1]█" 220 PRINT AT 6,4;"40 HOUR OVERTIME";TAB 26;"█[2]█" 230 PRINT AT 8,4;"MONTHLY OR BI-MONTHLY";AT 9,4;"WITH 8 HOUR OVERTIME";TAB 26;"█[3]█" 250 SLOW 300 PRINT AT 19,6;"█[E][N][T][E][R]█[O][N][E]█[O][F]█[A][B][O][V][E]█";AT 19,6;" ENTER ONE OF ABOVE " 310 LET A$=INKEY$ 320 IF CODE A$<29 OR CODE A$>31 THEN GOTO 300 330 FAST 340 CLS 350 SLOW 360 GOTO VAL A$*1000 1000 PRINT "WHAT IS THE EMPLOYEE NAME?" 1010 INPUT N$ 1020 PRINT N$ 1030 PRINT ,,"WHAT IS THE HOURLY WAGE?" 1040 INPUT HW 1050 PRINT "HOURLY WAGE IS $";HW 1060 PRINT ,,"TOTAL WEEKS REGULAR HOURS?" 1070 INPUT RH 1080 PRINT RH;" REGULAR HOURS" 1090 PRINT ,,"TOTAL WEEKS OVERTIME HOURS?" 1095 INPUT OT 1100 PRINT OT;" OVERTIME HOURS" 1110 PRINT ,,"TOTAL DEDUCTIONS = "; 1120 INPUT TD 1130 PRINT "$";TD 1170 PRINT ,,"WHAT IS THE DATE ENDING THE PAY PERIOD?" 1180 INPUT D$ 1190 PRINT "DATE: ";D$ 1200 FOR N=1 TO 22 1210 SCROLL 1220 NEXT N 1230 PRINT AT 0,0;"WAGE FOR PERIOD ENDING ";D$ 1240 PRINT "EMPLOYEE - ";N$ 1250 PRINT ,,RH;" REGULAR HOURS AT ";HW;"/HR" 1260 PRINT "= $";RH*HW 1270 PRINT ,,OT;" OVERTIME HOURS AT ";1.5*HW;"/HR" 1280 PRINT "= $";OT*HW*1.5 1290 PRINT ,,"NET PAY = $";RH*HW+OT*HW*1.5 1300 PRINT "TOTAL DEDUCTIONS = ";TD 1310 PRINT ,,"GROSS PAY = $";RH*HW+OT*HW*1.5-TD 1500 PAUSE 40000 1510 IF INKEY$ ="Z" THEN COPY 1520 FAST 1530 RUN 2000 PRINT "WHAT IS THE EMPLOYEE NAME?" 2010 INPUT N$ 2020 PRINT N$ 2030 PRINT ,,"WHAT IS THE HOURLY WAGE?" 2040 INPUT HW 2050 PRINT "HOURLY WAGE IS $";HW 2060 PRINT ,,"TOTAL WEEKS HOURS WORKED?" 2070 INPUT RH 2200 IF RH>40 THEN GOTO 2500 2210 PRINT RH;" REGULAR HOURS" 2220 LET OT=0 2230 GOTO 1110 2500 LET OT=RH-40 2510 LET RH=40 2520 PRINT RH;" REGULAR HOURS" 2530 PRINT OT;" OVERTIME HOURS" 2540 GOTO 1110 3000 PRINT "WHAT IS THE EMPLOYEE NAME?" 3010 INPUT N$ 3020 PRINT N$ 3030 PRINT ,,"WHAT IS THE HOURLY WAGE?" 3040 INPUT HW 3050 PRINT "HOURLY WAGE IS $";HW 3060 PRINT ,,"TOTAL HOURS WORKED IN PERIOD?" 3070 INPUT RH 3080 PRINT RH;" REGULAR HOURS" 3090 PRINT ,,"TOTAL PERIOD OVERTIME HOURS?" 3100 INPUT OT 3110 PRINT OT;" OVERTIME HOURS" 3120 GOTO 1110 9998 SAVE "QUICK-PA[Y]" 9999 RUN ```