--- title: "Attenuator Pads" id: 72088 type: "computer_media" slug: "attenuator-pads" url: "http://localhost/computer_media/attenuator-pads/" markdown_url: "http://localhost/computer_media/attenuator-pads.md" published_at: "2026-10-21T05:34:31+00:00" modified_at: "2026-10-21T05:34:31+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/pads-1.png" excerpt: "Calculates resistor values for H, T and minimum-loss L attenuator pads from the loss and the input and output impedances, and draws each pad as a text diagram." post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Lawrence G. Friedman" slug: "lawrence-g-friedman" taxonomy: "indiv" url: "http://localhost/indiv/lawrence-g-friedman/" - name: "Ronald Ginardi" slug: "ronald-ginardi" taxonomy: "indiv" url: "http://localhost/indiv/ronald-ginardi/" genre: - name: "Electronics" slug: "electronics" taxonomy: "genre" url: "http://localhost/type/electronics/" media_type: "Program" programmers: - name: "Lawrence G. Friedman" slug: "lawrence-g-friedman" taxonomy: "indiv" url: "http://localhost/indiv/lawrence-g-friedman/" - name: "Ronald Ginardi" slug: "ronald-ginardi" taxonomy: "indiv" url: "http://localhost/indiv/ronald-ginardi/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Attenuator%20Pads%20%28198x%29%28Friedman%2C%20Larry%3B%20Ginardi%2C%20Ronald%29%28TS2068%29%28US%29%28Program%29.zip" tsrun_member: "Attenuator Pads (198x)(Friedman, Larry; Ginardi, Ronald)(TS2068)(US)(Program)/Attenuator Pads (198x)(Friedman, Larry; Ginardi, Ronald)(TS2068)(US)(Program).tap" mediadate: "1985" images: - url: "http://localhost/wp-content/uploads/2026/10/pads-1.png" - url: "http://localhost/wp-content/uploads/2026/10/pads-2.png" related_content: - id: 72916 title: "Attenuator Network Design" type: "computer_media" url: "http://localhost/computer_media/attenuator-network-design/" media_type_tags: "Electronics" license: false --- # Attenuator Pads Designs resistive attenuator pads. For an H or T pad you enter the loss in dB and the input and output impedances, and the program calculates the series and shunt resistors. For an L pad, the minimum-loss matching type, you enter the larger and smaller impedances and it works out both resistors and the resulting loss. Results appear on a character-drawn schematic, with `xxxx` for the series resistors and a column of `X` for the shunt arm, labelled with values rounded to the nearest ohm. `REM` lines credit Larry Friedman and Ron G and say the program is written in "Universal BASIC". They cite "Attenuators and Minimum Loss Pads", from the December 1985 Radio-Electronics Computer Digest, and are dated 11-1-85. ## Program Analysis ### Program Structure - Lines 60–130: the pad-type menu. - Lines 140–200: the H and T calculation. The power ratio is `N=EXP(Db*0.230259)` (10dB/10), the shunt arm is `R3=2*SQR(N*z1*z2)/(N-1)`, and the two series arms are `R1=z1*(N+1)/(N-1)-R3` and `R2=z2*(N+1)/(N-1)-R3`. - Lines 1000–1120: the H pad diagram, which splits each series arm in half between the top and bottom legs. - Lines 2000–2110: the T pad diagram, which is reused for the L pad. - Lines 3000–3090: the L pad, using `R1=SQR(z1*(z1-z2))`, `R2=z1*z2/R1` and a minimum loss of `20*log10(SQR(z1/z2)+SQR(z1/z2-1))`, with `LOG` written as `LN(...)/2.30259`. ### Notable Techniques - Only `PRINT`, `TAB` and plain characters are used, with no colour or graphics characters, in keeping with the "Universal BASIC" note. ### Potential Issues - The T pad diagram prints only `R1` and the shunt `R3`. The output-side series resistor `R2` is calculated but never shown, which matters when the input and output impedances differ. - A pad type below 1 is not rejected. The program runs the H/T calculation and goes straight to the "Do it again?" prompt without printing anything. This program comes from a Larken disk in the TS User Group collection. For tape, the LKDOS prefix in the save line was removed. It was tested in ZEsarUX. ## Source Code ``` 10 REM attenuator pads 12 REM by 14 REM Larry Friedman & Ron G 16 REM Calculates H, T, L Pads 18 REM In Universal BASIC 20 REM 30 REM Attenuators and Minimum 35 REM Loss Pads 40 REM 43 REM Dec 85 Radio 45 REM Electronics 49 REM Computer Digest 51 REM 53 REM 11-1-85 55 INK 0: PAPER 7: BORDER 7: CLS 58 REM 60 CLS : LET z1=0: LET z2=0: LET Db=0 70 PRINT TAB (10);"1 = H Pad" 80 PRINT TAB (10);"2 = T Pad" 90 PRINT TAB (10);"3 = L Pad" 100 INPUT "Enter Pad Type (1, 2, or 3) ";T 110 CLS 120 IF T=3 THEN GO TO 3000 130 IF T>3 THEN GO TO 60 140 INPUT "Input Loss in Db ";Db 150 LET N=EXP ((Db)*0.230259) 160 INPUT "Input Z in ";z1 170 INPUT "Input Z out ";z2 180 LET R3=(2*SQR (N*z1*z2))/(N-1) 190 LET R1=z1*((N+1)/(N-1))-R3 200 LET R2=z2*((N+1)/(N-1))-R3 210 CLS 220 IF T=1 THEN GO TO 1000 230 IF T=2 THEN GO TO 2000 240 CLS 250 INPUT "Do it again? (Y or N) ";q$ 260 IF q$="Y" OR q$="y" THEN GO TO 110 270 CLS 280 STOP 1000 PRINT " ";INT (R1/2+.5);TAB (16);INT (R2/2+.5) 1010 PRINT "----xxxx--------xxxx----" 1020 PRINT TAB 12;"!"'TAB (12);"!" 1030 PRINT TAB (12);"X" 1040 PRINT TAB (12);"X ";INT (R3+.5) 1050 PRINT TAB (12);"X" 1060 PRINT TAB 12;"!"'TAB (12);"!" 1070 PRINT "----xxxx--------xxxx----" 1080 PRINT " ";INT (R1/2+.5);TAB (16);INT (R2/2+.5) 1090 PRINT 1100 PRINT z1;" ohms in, ";z2;" ohms out " 1110 PRINT " Loss in Db = ";Db 1120 GO TO 250 2000 PRINT " ";INT (R1+.5) 2010 PRINT "----xxxx----------------" 2020 PRINT TAB 12;"!"'TAB (12);"!" 2030 PRINT TAB (12);"X" 2040 PRINT TAB (12);"X ";INT (R3+.5) 2050 PRINT TAB (12);"X" 2060 PRINT TAB 12;"!"'TAB (12);"!" 2070 PRINT "------------------------" 2080 PRINT 2090 PRINT z1;" ohms in, ";z2;" ohms out " 2095 IF T=3 THEN GO TO 250 2100 PRINT " Loss in Db = ";Db 2110 GO TO 250 3000 INPUT "Input larger Z ";z1 3010 INPUT "Input smaller Z ";z2 3020 IF z2>z1 THEN PRINT "ERROR": GO TO 3000 3030 LET R1=SQR (z1*(z1-z2)) 3040 LET R2=(z1*z2)/R1 3050 LET R3=R2 3060 LET L=20*LN (SQR (z1/z2)+SQR ((z1/z2)-1))/2.30259 3070 CLS 3080 PRINT "Loss is ";L;" Db" 3090 GO TO 2000 9000 RANDOMIZE USR 100: SAVE "pads.Ba" LINE 1 ```