]> code.bitgloo.com Git - clyne/advent-of-code.git/commitdiff
add day 1
authorClyne Sullivan <clyne@bitgloo.com>
Thu, 1 Dec 2022 12:59:42 +0000 (07:59 -0500)
committerClyne Sullivan <clyne@bitgloo.com>
Thu, 1 Dec 2022 12:59:42 +0000 (07:59 -0500)
day1/README.md [new file with mode: 0644]
day1/part1.bas [new file with mode: 0644]
day1/part2.bas [new file with mode: 0644]
day1/proof.jpg [new file with mode: 0755]

diff --git a/day1/README.md b/day1/README.md
new file mode 100644 (file)
index 0000000..5d3243d
--- /dev/null
@@ -0,0 +1,10 @@
+These challenges were completed on an Apple \]\[ GS using Applesoft BASIC.
+
+This required connecting the Apple to a modern computer over serial to receive the input data and upload the final source code. Communications ran at 19200 baud. More setup details will be added in the future.
+
+Each part takes about a minute and a half to execute.
+
+Here's a picture of the results of part2.bas on the Apple:
+
+![](https://raw.githubusercontent.com/tcsullivan/advent-of-code/master/day1/proof.jpg)
+
diff --git a/day1/part1.bas b/day1/part1.bas
new file mode 100644 (file)
index 0000000..353eea5
--- /dev/null
@@ -0,0 +1,25 @@
+REM Advent of Code 2022: Day 1, part 1
+REM Written in Applesoft BASIC
+
+ 10  ONERR  GOTO 900
+ 20 MOST = 0:CURR = 0
+ 30  PRINT  CHR$ (4),"OPEN INPUT"
+ 40  PRINT  CHR$ (4),"READ INPUT"
+ 100 S$ = ""
+ 110  GET C$
+ 120  IF  ASC (C$) = 13 GOTO 200
+ 130 S$ = S$ + C$
+ 135  GET D$
+ 140  GOTO 110
+ 200 V =  VAL (S$)
+ 205  GET D$
+ 210  IF V = 0 GOTO 300
+ 220 CURR = CURR + V
+ 230  GOTO 100
+ 300  IF MOST < CURR THEN MOST = CURR
+ 310 CURR = 0
+ 320  PRINT MOST
+ 330  GOTO 100
+ 900  PRINT  CHR$ (4),"CLOSE"
+ 910  END 
+
diff --git a/day1/part2.bas b/day1/part2.bas
new file mode 100644 (file)
index 0000000..4ea4835
--- /dev/null
@@ -0,0 +1,30 @@
+REM Advent of Code 2022: Day 1, part 1
+REM Written in Applesoft BASIC
+
+ 10  ONERR  GOTO 900
+ 20  DIM CALS(200):CURR = 0
+ 30  PRINT  CHR$ (4),"OPEN INPUT"
+ 40  PRINT  CHR$ (4),"READ INPUT"
+ 100 S$ = ""
+ 110  GET C$
+ 120  IF  ASC (C$) = 13 GOTO 200
+ 130 S$ = S$ + C$
+ 135  GET D$
+ 140  GOTO 110
+ 200 V =  VAL (S$)
+ 205  GET D$
+ 210  IF V = 0 GOTO 300
+ 220 CURR = CURR + V
+ 230  GOTO 100
+ 300  FOR I = 0 TO 5
+ 310  IF CURR = CALS(I) GOTO 360
+ 320  IF CURR < CALS(I) THEN  NEXT I
+ 330  FOR J = 3 TO I STEP  - 1:CALS(J + 1) = CALS(J): NEXT 
+ 340 CALS(I) = CURR
+ 350  PRINT CALS(0),CALS(1),CALS(2)
+ 360 CURR = 0
+ 370  GOTO 100
+ 900  PRINT  CHR$ (4),"CLOSE"
+ 910  PRINT CALS(0) + CALS(1) + CALS(2)
+ 920  END 
+
diff --git a/day1/proof.jpg b/day1/proof.jpg
new file mode 100755 (executable)
index 0000000..87ef51d
Binary files /dev/null and b/day1/proof.jpg differ