From 44d26b77c45668c9b0c99894a4294cec004361fe Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Fri, 16 Jul 2021 08:09:42 -0700 Subject: . --- linux/advent2017/1a.mu | 65 -------------------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 linux/advent2017/1a.mu (limited to 'linux/advent2017') diff --git a/linux/advent2017/1a.mu b/linux/advent2017/1a.mu deleted file mode 100644 index 2f639080..00000000 --- a/linux/advent2017/1a.mu +++ /dev/null @@ -1,65 +0,0 @@ -# Advent of code 2017, problem 1a -# https://adventofcode.com/2017/day/1 -# -# Mu solution by Sumeet Agarwal and Kartik Agaram -# https://archive.org/details/2021-06-02-akkartik-sumeet -# -# To build on Linux: -# $ git clone https://github.com/akkartik/mu -# $ cd mu/linux -# $ ./translate advent2017/1a.mu # emits a.elf -# To run on Linux: -# Download https://adventofcode.com/2017/day/1/input -# $ ./a.elf < input -# Type in the number returned at https://adventofcode.com/2017/day/1 - -fn main -> _/ebx: int { - var input_stream: (stream byte 0x8000) - var input_stream_addr/esi: (addr stream byte) <- address input_stream - - var sum/edi: int <- copy 0 - read-line-from-real-keyboard input_stream_addr - - var temp/eax: int <- read_digit input_stream_addr - var first_digit/ebx: int <- copy temp - var this_digit/edx: int <- copy temp - - { - var done?/eax: boolean <- stream-empty? input_stream_addr - compare done?, 1 - break-if-= - - var next_digit/eax: int <- read_digit input_stream_addr - # hacky newline check - compare next_digit, 0 - break-if-< - - { - compare this_digit, next_digit - break-if-!= - sum <- add this_digit - } - - this_digit <- copy next_digit - - loop - } - - # the last iteration will need to compare the last number to the first - { - compare this_digit, first_digit - break-if-!= - sum <- add this_digit - } - - print-int32-decimal 0, sum - - return 0/ok -} - -fn read_digit input_stream_addr: (addr stream byte) -> _/eax: int { - var next_digit/eax: byte <- read-byte input_stream_addr - next_digit <- subtract 0x30 - var next_digit/eax: int <- copy next_digit - return next_digit -} -- cgit 1.4.1-2-gfad0