A 45-nettronics-net40-modem-the-wardialer/README.md => 45-nettronics-net40-modem-the-wardialer/README.md +10 -0
@@ 0,0 1,10 @@
+# NETronics NET40 Modem: The Wardialer
+
+## Stuff we know
+
+- Phone numbers are 11 digits long.
+- There can be 1 to 3 `X` placeholders in the starting number.
+- Phone number digits are never negative.
+- We can tell if a value is a number by testing if the value is `< 10` or `> -1`. Numbers will be true, but `X` will be false.
+- We can tell if our modem is connected if reading from `#DIAL` returns 1. If the connection was refusedm it will return 0.
+- We cannot optimistically write all possible numbers to file 301 because the file would be too large.
A 45-nettronics-net40-modem-the-wardialer/XA.exa => 45-nettronics-net40-modem-the-wardialer/XA.exa +27 -0
@@ 0,0 1,27 @@
+; BASIC DIAL AND CHECK
+GRAB 300
+LINK 800
+
+MARK READDIGIT
+COPY F X
+TEST X < 10
+FJMP REPLACE
+COPY X #DIAL
+JUMP CHECKEOF
+
+MARK REPLACE
+COPY 0 #DIAL
+
+MARK CHECKEOF
+TEST EOF
+FJMP READDIGIT
+
+TEST #DIAL = 1
+FJMP FAIL
+
+MARK SUCCESS
+COPY -1 #DIAL
+HALT
+
+MARK FAIL
+HALT
M README.md => README.md +1 -0
@@ 55,3 55,4 @@ They definitely aren't the most optimized, but I'm proud I got them to work at a
2. [Motor Vehicle Administration: Scheduling System](42-motor-vehicle-administration-scheduling-system)
3. [Cybermyth Studios: Accounting System](43-cybermyth-studios-accounting-system)
4. [U.S. Department of Defense: USAF Secure Facility](44-us-department-of-defense-usaf-secure-facility)
+5. [NETronics NET40 Modem: The Wardialer](45-nettronics-net40-modem-the-wardialer)