From feb0e3eb37b21ecfd72770b8e21c358ce2b287ee Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Sun, 30 Apr 2023 08:35:26 -0700
Subject: [PATCH] Format and link fix 2006/grothe/README.md
---
2006/grothe/README.md | 115 ++++++++++++++++++++++++------------------
1 file changed, 66 insertions(+), 49 deletions(-)
diff --git a/2006/grothe/README.md b/2006/grothe/README.md
index 20a414d0f..26f18310b 100644
--- a/2006/grothe/README.md
+++ b/2006/grothe/README.md
@@ -1,9 +1,7 @@
-# Most Obfuscaed Audio
+# Most Obfuscated Audio
- Aaron Grothe
- 2205 South 51st Street
- Omaha, NE 68106
- US
+Aaron Grothe
+US
## To build:
@@ -43,86 +41,105 @@ feature to this entry. :-)
## Selected Author's Comments:
The program draws patterns on the screen that can be picked up by a
-shortwave radio. It emulates the frequencies for an old fashion touch
-tone phone, so old songs can be played by hitting 0-9,#, and *.
+[shortwave radio](https://en.wikipedia.org/wiki/Shortwave_radio). It emulates
+the frequencies for an old fashion touch tone phone, so old songs can be played
+by hitting `0-9`,`#`, and `*`.
To be able to run the program you need to determine the following
-parameters
+parameters:
- carrier_freq - base frequency used to host music
- pixelclock - refresh rate of the monitor
- horizontal_total - total scan along the horizontal axis
+```
+ carrier_freq - base frequency used to host music
+ pixelclock - refresh rate of the monitor
+ horizontal_total - total scan along the horizontal axis
+```
-If you have xvidtune installed you can get the pixelclock and
-horizontal total with the following command
+If you have `xvidtune` installed you can get the `pixelclock` and
+`horizontal_total` with the following command
- xvidtune -show | head -n 1 |
- awk '{ print "pixelclock " $2 * 1000000 " horizontal_total = " $6 }'
+```sh
+xvidtune -show | head -n 1 | awk '{ print "pixelclock " $2 * 1000000 " horizontal_total = " $6 }'
+```
-example from my laptops
+Example from my laptops:
- ./grothe 65000000 10000000 1344 < twinkle.txt
+```sh
+./grothe 65000000 10000000 1344 < twinkle.txt
+```
Even if the user gets a setting off, the sound will usually be able to be
-heard on AM at a multiple of the original frequency
+heard on [AM](https://en.wikipedia.org/wiki/AM_broadcasting) at a multiple of
+the original frequency.
The core idea of using a machine to play music on AM radio goes all the
-way back to the Altair computers and Timex Sinclair ZX-81s.
+way back to the [Altair computers](https://en.wikipedia.org/wiki/Altair_8800)
+and [Timex Sinclair ZX-81](https://en.wikipedia.org/wiki/ZX81)s.
### Several example songs
-Olympic Fanfare - from antang@phakt.usc.edu - Tony
+Olympic Fanfare - from `antang@phakt.usc.edu` - Tony:
+```
4-9-91231,2222-321123123-9-91231,2222-32112321
+```
-Twinkle Twinkle Little Star - from fsufunkyb@aol.com - Ben Schmidt
+Twinkle Twinkle Little Star - from `fsufunkyb@aol.com` - Ben Schmidt:
+```
1199##9-6633221-9966332-9966332-1199#9-6633221-
+```
-Generic Arabian Tune - from rdippold@qualcomm.com -Ron "Asbestos" Dippold
+Generic Arabian Tune - from `rdippold@qualcomm.com` - Ron "Asbestos" Dippold:
+```
453,54,4569564459,9#95458,8987453 54
+```
Others can be found by doing a search for "touch tone phone songs".
### Obfuscations
- Some numbers expressed in Octal, some in hex and some in decimal
- "A foolish consistency is the hobgoblin of little minds" -
- Ralph Waldo Emerson
-- Funky scoping, looking at the nanosleep section and
- XsetWindowAttributes declares local variables
-- Algorithm is very weird, uses y dimension to draw carrier frequency
- and x dimension to draw audio frequency, based on Erik Thiele's
- Tempest for Eliza
-- lack of #defines confuses many people :-)
-- figuring out your pixelclock and horizontal total and which carrier
- frequency to use can be an exercise in obfuscation for the user
-- use of commas in various places, confuses most c code beautifiers
+ "A foolish consistency is the hobgoblin of little minds" - Ralph Waldo
+ Emerson.
+
+- Funky scoping, looking at the nanosleep section and `XsetWindowAttributes`
+declares local variables.
+- Algorithm is very weird, uses `y` dimension to draw carrier frequency
+ and `x` dimension to draw audio frequency, based on [Erik
+ Thiele](http://www.erikyyy.de)'s
+ [Tempest for Eliza](http://www.erikyyy.de/tempest/).
+- lack of `#define`s confuses many people :-)
+- figuring out your `pixelclock` and `horizontal_total` and which `carrier_freq`
+ to use can be an exercise in obfuscation for the user.
+- use of commas in various places, confuses most C code beautifiers
sometimes making the beautified code harder to read
-- use of static to ensure initilization is EVIL and done in several
+- use of `static` to ensure initialization is EVIL and done in several
places
-- uses static declarations & voids function returns we don't care about
- making the code harder to read
-- does sound using only X11 libs, no other libs required
-- demonstrates tempest emissions in a fun/easy way
-- follows good programming practices of actually setting exit codes and
- giving usage when run with incorrect parameters
+- uses `static` declarations & `void` function returns we don't care about
+ making the code harder to read.
+- does sound using only [X11 libs](https://en.wikipedia.org/wiki/Xlib), no other
+libs required.
+- demonstrates tempest emissions in a fun/easy way.
+- follows good programming practices of actually setting exit codes and giving
+usage when run with incorrect parameters.
### References
-Tempest for Eliza - Basis for Algorithms
+[Tempest for Eliza - Basis for Algorithms](http://www.erikyyy.de/tempest/).
->
+[Tempest
+AM](https://web.archive.org/web/20070612152538if_/http://silcnet.org/priikone/programs/tempest-AM-1.0.tar.gz)
+\- Another early program in this field. See
+[here](https://web.archive.org/web/20070612152538/http://silcnet.org/priikone/programs.php?lang=en)
+for a bit more information on the program (search for `Tempest-AM Radio Signal
+Transmitter`).
-Tempest AM - Another early program in this field
+The paper
+[Soft Tempest: Hidden Data Transmission Using Electromagnetic
+Emanations](https://www.cl.cam.ac.uk/~mgk25/ih98-tempest.pdf) by Markus G.
+Kuhn's and Ross J. Anderson's.
->
-
-Paper by Markus G. Kuhn's and Ross J. Anderson's,
-"Soft Tempest: Hidden Data Transmission Using Electromagnetic Emanations"
-
->
## Copyright and CC BY-SA 4.0 License: