--- /dev/null
+REM Advent of Code 2022: Day 6, part 1 and 2
+REM Written in Applesoft BASIC
+
+ 5 HOME
+ 10 A = 1000
+ 20 R = 0
+ 50 PRINT CHR$ (4),"OPEN INPUT"
+ 60 PRINT CHR$ (4),"READ INPUT"
+ 70 ONERR GOTO 900
+ 100 PRINT "INITIALIZING COMMUNICATION SYSTEM";
+ 105 A = 350
+ 110 FOR I = 0 TO 6
+ 120 GOSUB 1000
+ 130 PRINT ".";
+ 140 NEXT I
+ 150 PRINT
+ 200 PRINT "OPENING SIGNAL DATASTREAM";
+ 210 FOR I = 0 TO 6
+ 220 GOSUB 1000
+ 230 PRINT ".";
+ 240 NEXT I
+ 250 PRINT
+ 260 PRINT
+ 300 PRINT "SCANNING FOR START-OF-PACKET MARKER:"
+ 310 HTAB 1
+ 320 VTAB 8
+ 330 PRINT "||||";
+ 340 HTAB 1
+ 350 VTAB 10
+ 360 PRINT "||||";
+ 400 HTAB 1
+ 410 VTAB 9
+ 420 PRINT S$;
+ 430 IF LEN (S$) > = 4 GOTO 500
+ 440 GET C$
+ 450 S$ = C$ + S$
+ 455 IF LEN (S$) > 40 THEN S$ = MID$ (S$,1,40)
+ 460 A = 80
+ 470 GOSUB 1000
+ 475 R = R + 1
+ 480 GOTO 400
+ 500 HTAB 1
+ 510 VTAB 7
+ 530 IF MID$ (S$,1,1) = MID$ (S$,2,1) THEN PRINT "/\ ";: GOTO 600
+ 540 IF MID$ (S$,1,1) = MID$ (S$,3,1) THEN PRINT "/-\ ";: GOTO 600
+ 550 IF MID$ (S$,1,1) = MID$ (S$,4,1) THEN PRINT "/--\";: GOTO 600
+ 560 IF MID$ (S$,2,1) = MID$ (S$,3,1) THEN PRINT " /\ ";: GOTO 600
+ 570 IF MID$ (S$,2,1) = MID$ (S$,4,1) THEN PRINT " /-\";: GOTO 600
+ 580 IF MID$ (S$,3,1) = MID$ (S$,4,1) THEN PRINT " /\";: GOTO 600
+ 590 PRINT " ";
+ 595 GOTO 700
+ 600 GOTO 440
+ 620 VTAB 14
+ 700 HTAB 1
+ 710 VTAB 13
+ 715 A = 1300
+ 720 PRINT "MARKER FOUND AT INDEX ";R;"."
+ 725 GOSUB 1000
+ 730 PRINT
+ 740 PRINT "ENGAGING FULL-SPEED SEARCH FOR START-OF-MESSAGE MARKER:"
+ 750 GOSUB 1000
+ 760 GOTO 2000
+ 900 PRINT CHR$ (4),"CLOSE"
+ 910 END
+ 1000 FOR Z = 0 TO A: NEXT Z
+ 1010 RETURN
+ 2000 HTAB 1
+ 2010 VTAB 19
+ 2020 PRINT "||||||||||||||";
+ 2030 HTAB 1
+ 2040 VTAB 21
+ 2050 PRINT "||||||||||||||";
+ 2060 PRINT CHR$ (4),"CLOSE"
+ 2070 PRINT CHR$ (4),"OPEN INPUT"
+ 2080 PRINT CHR$ (4),"READ INPUT"
+ 2090 S$ = "":R = 0
+ 2095 M = 0
+ 2100 HTAB 1
+ 2110 VTAB 20
+ 2120 PRINT S$;
+ 2130 GET C$
+ 2140 S$ = C$ + S$
+ 2145 R = R + 1
+ 2150 IF LEN (S$) < 14 GOTO 2100
+ 2160 IF LEN (S$) > 40 THEN S$ = MID$ (S$,1,40)
+ 2170 IF M > 0 THEN M = M - 1: GOTO 2100
+ 2190 I = 1
+ 2200 M = 0
+ 2210 FOR J = I + 1 TO 14
+ 2220 IF MID$ (S$,I,1) = MID$ (S$,J,1) THEN M = J:J = 14
+ 2230 NEXT J
+ 2240 IF M < > 0 GOTO 2300
+ 2250 I = I + 1
+ 2260 IF I < 14 GOTO 2200
+ 2270 GOTO 2400
+ 2300 HTAB I
+ 2310 VTAB 18
+ 2314 PRINT " ";
+ 2318 HTAB I
+ 2320 FOR J = I TO M
+ 2330 PRINT "-";
+ 2340 NEXT J
+ 2345 M = 14 - M
+ 2350 GOTO 2100
+ 2400 HTAB 1
+ 2410 VTAB 23
+ 2420 PRINT "MESSAGE FOUND AT INDEX ";R"."
+ 2425 GOSUB 1000
+ 2430 GOTO 900
+
+++ /dev/null
-REM Advent of Code 2022: Day 6, part 1
-REM Written in Applesoft BASIC
-
- 5 HOME
- 10 A = 1000
- 20 R = 0
- 50 PRINT CHR$ (4),"OPEN INPUT"
- 60 PRINT CHR$ (4),"READ INPUT"
- 70 ONERR GOTO 900
- 100 PRINT "INITIALIZING COMMUNICATION SYSTEM";
- 105 A = 350
- 110 FOR I = 0 TO 6
- 120 GOSUB 1000
- 130 PRINT ".";
- 140 NEXT I
- 150 PRINT
- 200 PRINT "OPENING SIGNAL DATASTREAM";
- 210 FOR I = 0 TO 6
- 220 GOSUB 1000
- 230 PRINT ".";
- 240 NEXT I
- 250 PRINT
- 260 PRINT
- 300 PRINT "SCANNING FOR START-OF-PACKET MARKER:"
- 310 HTAB 1
- 320 VTAB 8
- 330 PRINT "||||";
- 340 HTAB 1
- 350 VTAB 10
- 360 PRINT "||||";
- 400 HTAB 1
- 410 VTAB 9
- 420 PRINT S$;
- 430 IF LEN (S$) > = 4 GOTO 500
- 440 GET C$
- 450 S$ = C$ + S$
- 455 IF LEN (S$) > 40 THEN S$ = MID$ (S$,1,40)
- 460 A = 80
- 470 GOSUB 1000
- 475 R = R + 1
- 480 GOTO 400
- 500 HTAB 1
- 510 VTAB 7
- 530 IF MID$ (S$,1,1) = MID$ (S$,2,1) THEN PRINT "/\ ";: GOTO 600
- 540 IF MID$ (S$,1,1) = MID$ (S$,3,1) THEN PRINT "/-\ ";: GOTO 600
- 550 IF MID$ (S$,1,1) = MID$ (S$,4,1) THEN PRINT "/--\";: GOTO 600
- 560 IF MID$ (S$,2,1) = MID$ (S$,3,1) THEN PRINT " /\ ";: GOTO 600
- 570 IF MID$ (S$,2,1) = MID$ (S$,4,1) THEN PRINT " /-\";: GOTO 600
- 580 IF MID$ (S$,3,1) = MID$ (S$,4,1) THEN PRINT " /\";: GOTO 600
- 590 PRINT " ";
- 595 GOTO 700
- 600 GOTO 440
- 620 VTAB 14
- 700 HTAB 1
- 710 VTAB 13
- 720 PRINT "MARKER FOUND AT INDEX ";R;"."
- 900 PRINT CHR$ (4),"CLOSE"
- 910 END
- 1000 FOR Z = 0 TO A: NEXT Z
- 1010 RETURN
-