Format/typo check 2019/giles/README.md

This commit is contained in:
Cody Boone Ferguson committed 2023-12-19 12:22:38 -08:00
1 parent 48520aa50c
commit f25d431417
1 file changed
+7 -4
+7 -4
View File
@@ -51,11 +51,12 @@ under a free license.
This program has also been successfully compiled on Windows, with both the [Tiny This program has also been successfully compiled on Windows, with both the [Tiny
C Compiler](https://bellard.org/tcc/) and Microsoft's C/C++ compiler. However, C Compiler](https://bellard.org/tcc/) and Microsoft's C/C++ compiler. However,
the latter reports warnings about loss of information when converting floats, the latter reports warnings about loss of information when converting `float`s,
and that `void (*)()` and `void (*)(void)` are not the same thing. and that `void (*)()` and `void (*)(void)` are not the same thing.
Interesting fact: The size of the program from `./iocccsize -i` is 2019. Interesting fact: The size of the program from `./iocccsize -i` is 2019.
#### How to use: #### How to use:
```sh ```sh
@@ -98,6 +99,7 @@ print `Bad input file` or `Wave file must be 16 bits,1-2 channels.` depending on
what it thinks the problem is. If the output file cannot be opened, the program what it thinks the problem is. If the output file cannot be opened, the program
will print `Can't open output file`. will print `Can't open output file`.
### Assumptions: ### Assumptions:
1. The code is compiled using the C99 or C11 standard. 1. The code is compiled using the C99 or C11 standard.
@@ -107,6 +109,7 @@ represents the number zero.
4. `int16_t` and `int32_t` are 2's-complement, `sizeof(int16_t) == 2` and 4. `int16_t` and `int32_t` are 2's-complement, `sizeof(int16_t) == 2` and
`sizeof(int32_t) == 4`. `sizeof(int32_t) == 4`.
### Obfuscations ### Obfuscations
The main obfuscation is that digital signal processing algorithms are inherently The main obfuscation is that digital signal processing algorithms are inherently
@@ -143,8 +146,8 @@ to decipher it.
`#define`s are used to abbreviate the code, which has a side effect of making it `#define`s are used to abbreviate the code, which has a side effect of making it
very slightly harder to read. very slightly harder to read.
* `k` is just a general-purpose replacement for 16. * `k` is just a general-purpose replacement for `16`.
* `i` is the number of delay-lines to allocate and use (currently 24). * `i` is the number of delay-lines to allocate and use (currently `24`).
* `q` is an abbreviation for multiplying two elements of `w[]` together. * `q` is an abbreviation for multiplying two elements of `w[]` together.
* `u()` is used to display percentages with proper rounding. * `u()` is used to display percentages with proper rounding.
* `j()` imposes an upper limit on a floating-point value, and then negates it. * `j()` imposes an upper limit on a floating-point value, and then negates it.
@@ -186,7 +189,7 @@ As many values as possible have been crammed into arrays. `float w[]` contains:
All of the strings are concatenated together and "encrypted" by breaking the All of the strings are concatenated together and "encrypted" by breaking the
string into 4-byte chunks (by casting it to an `int32_t*`), and then XORing the string into 4-byte chunks (by casting it to an `int32_t*`), and then XORing the
sequence of ints with a known numeric sequence. The "decryption" is not done sequence of `int`s with a known numeric sequence. The "decryption" is not done
in-place, to avoid writing over the string constant. in-place, to avoid writing over the string constant.
`int32_t *c` is a pointer that points into `f[]`, except that it is often `int32_t *c` is a pointer that points into `f[]`, except that it is often