From 63cb27c091a8b4b419846f64aa7d541375944703 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan <clyne@bitgloo.com> Date: Tue, 6 Dec 2022 08:29:28 -0500 Subject: day6: basic for both parts --- day6/both.bas | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ day6/part1.bas | 61 -------------------------------- 2 files changed, 110 insertions(+), 61 deletions(-) create mode 100644 day6/both.bas delete mode 100644 day6/part1.bas diff --git a/day6/both.bas b/day6/both.bas new file mode 100644 index 0000000..d5a70a3 --- /dev/null +++ b/day6/both.bas @@ -0,0 +1,110 @@ +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 + diff --git a/day6/part1.bas b/day6/part1.bas deleted file mode 100644 index cb04c43..0000000 --- a/day6/part1.bas +++ /dev/null @@ -1,61 +0,0 @@ -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 - -- cgit v1.2.3