From 6db0e0618bb923549f3dacba4d84f09cd0056cd0 Mon Sep 17 00:00:00 2001 From: Bill Rossi Date: Sun, 29 Dec 2024 18:10:38 -0500 Subject: [PATCH] GB 2015 day 1 part 1 --- gb/2015/1/not_quite_lisp.asm | 82 ++++++++++++++++++++++++----------- gb/bin/run | 4 +- gb/lib/text.2bpp | Bin 2048 -> 2048 bytes gb/lib/text.png | Bin 1210 -> 1210 bytes 4 files changed, 60 insertions(+), 26 deletions(-) diff --git a/gb/2015/1/not_quite_lisp.asm b/gb/2015/1/not_quite_lisp.asm index 9c4862e..e3e5ad2 100644 --- a/gb/2015/1/not_quite_lisp.asm +++ b/gb/2015/1/not_quite_lisp.asm @@ -16,8 +16,9 @@ EntryPoint: ClearOAM LoadTiles - MemClear current_frame, 1 + MemClear current_frame, 2 MemClear current_floor, 2 + MemClear first_basement_floor, 2 MemClear done_flag, 1 ;; Initialize input_index @@ -39,67 +40,86 @@ CheckInput: cp a, "(" jr z, GoingUp - jr GoingDown + cp a, ")" + jr z, GoingDown + jr GoingNowhere GoingUp: call IncrementCurrentFloor jr GoingNowhere GoingDown: + ld a, [current_floor] + ld b, a + ld a, [current_floor + 1] + and a, b + call z, SaveBasementFloor + call DecrementCurrentFloor GoingNowhere: - IncrementWord input_index ld de, input_end ld a, [input_index] - sub a, d + cp a, d jr nz, CheckInput ld a, [input_index + 1] - sub a, e + cp a, e jr nz, CheckInput ld a, 1 ld [done_flag], a + halt + nop + jr Done + Done: - halt nop jr Done IncrementCurrentFloor: - ld hl, current_floor - ld a, [hli] + ld a, [current_floor] ld b, a - ld a, [hli] + ld a, [current_floor + 1] ld c, a inc bc - ld hl, current_floor ld a, b - ld [hli], a + ld [current_floor], a ld a, c - ld [hli], a + ld [current_floor + 1], a ret DecrementCurrentFloor: - ld hl, current_floor - ld a, [hli] + ld a, [current_floor] ld b, a - ld a, [hli] + ld a, [current_floor + 1] ld c, a dec bc - ld hl, current_floor ld a, b - ld [hli], a + ld [current_floor], a ld a, c - ld [hli], a + ld [current_floor + 1], a ret + +SaveBasementFloor: + ld a, [first_basement_floor] + ld b, a + ld a, [first_basement_floor + 1] + or a, b + ret nz + + ld a, [input_index] + ld [first_basement_floor], a + ld a, [input_index + 1] + ld [first_basement_floor + 1], a + ret VBlankHandler: @@ -109,14 +129,19 @@ VBlankHandler: push HL IncrementFrameCount - PrintByteHex current_frame, 0, 0 - PrintByte current_frame, 0, 1 - PrintByteHex current_floor, 0, 2 - PrintByteHex current_floor + 1, 2, 2 + + PrintString part_1_string, 0, 1 + PrintString part_2_string, 0, 2 + ;; PrintByteHex current_frame, 0, 0 + ;; PrintByte current_frame, 0, 1 + ;; PrintByteHex current_floor, 0, 2 + ;; PrintByteHex current_floor + 1, 2, 2 ld a, [done_flag] cp a, 1 - jr z, NotDone + jp nz, NotDone PrintString done_string, 3, 3 + PrintByte current_floor + 1, 8, 1 + ;; PrintByte first_basement_floor + 1, 8, 2 NotDone: pop HL @@ -126,8 +151,9 @@ NotDone: reti SECTION "High RAM", HRAM -current_floor: DS 2 -done_flag: DS 1 +current_floor: DS 2 +first_basement_floor: DS 2 +done_flag: DS 1 SECTION "Input", ROM0 input: @@ -138,4 +164,10 @@ done_string: db "Done", 0 done_string_end: +part_1_string: db "Part 1: " +part_1_string_end: + +part_2_string: db "Part 2: " +part_2_string_end: + INCLUDE "lib/tiles.asm" diff --git a/gb/bin/run b/gb/bin/run index 3b97017..e2af740 100755 --- a/gb/bin/run +++ b/gb/bin/run @@ -13,7 +13,9 @@ fi set -e -rgbasm -o $year/$day/main.o $source_file -H -Wall +rgbgfx -o lib/text.2bpp lib/text.png + +rgbasm -o $year/$day/main.o $source_file -H -Wall -E rgblink -o $year/$day/main.gb $year/$day/main.o rgbfix -v -p 0xFF $year/$day/main.gb diff --git a/gb/lib/text.2bpp b/gb/lib/text.2bpp index 3462eee86fe20cef9cd6c8494697fabacea764ca..e86d4d1dd686b809265ff856a7e8aae640e29785 100644 GIT binary patch delta 26 dcmZn=Xb{-2gqceM2pAYZ}nn30O4pH~ znkj1afS!7RSpZsIfFCAZYs^w>yz3=eHB3&BV&+kLgf0`%uyq*J=v&7NTqa<7fMg;g z&|?PNxGN91T^}d>m6tip1Zwr79HiINYmtVU!$GPSWF7!uI}U$S@Qn9_N$+vp)3-30 zK(F(`jI{U>?S*KSXik9c!;mHZOZ|mbCtB>7qtTk1tTbTDI6fjYS~Srsgp~%ghB?ba z_sSl<{JTw{=Pk~dLYthR=H>Cmw9b&lOKWsI$UH#6JrBU}ocUYU*K@pi1isfZem8;M zzJPaqjmY!GbVYyBRwr4n^UyH2#ykw*^*zl?3wr3YCeXqJfSjq-*rH~jy?H9pYcc_e z`KVa0)ej5Lm_PGj2*-Jg5Uf>S@AJLu@%)GOam0RDJM{pQB0zawDP8tX|cxVf`q zWdglr=Q8Ign+F)|1CF+N0OCtgYb>SiA8qphl>oRnX~BO{HxIy6g|#?OVaxOUmNb^tHL>gq{0CbP7zq#kz3T|Ow#R40 zCe2ZcJ&u3WiXMTxqkz@naFtnr_7;4d(6oeQYJA})d9$<;nxUx8g_EBB6o1waoY zo{sTM9U}mM&(HPs$KQ|D^(qgLn77vLXWG04KfVuWjloCUJOJ}ANO(IzGdn?S0@vI6 a`X3ZbT;$p8&qn+p{T;ATFzgkp0P2fS0CXji61J;8Kcl^b$ zW{O%ppr>A77J!x);D<@q8ne_I?|O+=4U-e3n0b^Qq00m`SdPP6(zlKmxJ8ENq&+6&Pt(VPI?hapS+m--8>PPEuDN24`2S!uwQaePE*v}mGN2rCU}4Re-< z?v*`y`FEQ@&s&@^g*G`s&CBDBX`La9m)7Wbka>WBdmez{IrF!yujhF42z;++{B8oh zeF5+K8j56}%txmFD=b>S4jd>Wr>wB7)7WB|(O`wGd069~uu|>^5d-GJH*JJ_` z^HH&0s~;AgF@NU65RUT}Ay})v-sgMQum2KicL2DgkhD(t>}ZZXSTC3Tttm!j|XxEphrh zz}y+q>H%Bi^*tImv@c+(2Sj2>K}5ocjrRJ8p0j{dvurj2ZQN@j68#np#ADptE)$R* z;4u+vmDuwVtS`W<0r)`?_CK;mSzr!>QazxzD%>*OYhu|K_z$)oFcKd6d)EGOblMF_*2$sHAJbJXHQsJX3(I$vz^{|#~{xz^4Ro;&h- z;U;PQeTqpgidZ^Hn1{Wzfi(dPZ{p$kK%%7zjcI??iIRuTZlB1Mo`a?Lu+>?DqB|rH zXn8QDFs1~gF>kHg&$M|9etaL$8iS9xc>v~LknnbbW_E(u1g^LB a^*