GB 2015 day 1 part 1
This commit is contained in:
parent
4807c82bf9
commit
6db0e0618b
@ -16,8 +16,9 @@ EntryPoint:
|
|||||||
ClearOAM
|
ClearOAM
|
||||||
LoadTiles
|
LoadTiles
|
||||||
|
|
||||||
MemClear current_frame, 1
|
MemClear current_frame, 2
|
||||||
MemClear current_floor, 2
|
MemClear current_floor, 2
|
||||||
|
MemClear first_basement_floor, 2
|
||||||
MemClear done_flag, 1
|
MemClear done_flag, 1
|
||||||
|
|
||||||
;; Initialize input_index
|
;; Initialize input_index
|
||||||
@ -39,67 +40,86 @@ CheckInput:
|
|||||||
|
|
||||||
cp a, "("
|
cp a, "("
|
||||||
jr z, GoingUp
|
jr z, GoingUp
|
||||||
jr GoingDown
|
cp a, ")"
|
||||||
|
jr z, GoingDown
|
||||||
|
jr GoingNowhere
|
||||||
GoingUp:
|
GoingUp:
|
||||||
call IncrementCurrentFloor
|
call IncrementCurrentFloor
|
||||||
jr GoingNowhere
|
jr GoingNowhere
|
||||||
GoingDown:
|
GoingDown:
|
||||||
|
ld a, [current_floor]
|
||||||
|
ld b, a
|
||||||
|
ld a, [current_floor + 1]
|
||||||
|
and a, b
|
||||||
|
call z, SaveBasementFloor
|
||||||
|
|
||||||
call DecrementCurrentFloor
|
call DecrementCurrentFloor
|
||||||
GoingNowhere:
|
GoingNowhere:
|
||||||
|
|
||||||
IncrementWord input_index
|
IncrementWord input_index
|
||||||
|
|
||||||
ld de, input_end
|
ld de, input_end
|
||||||
ld a, [input_index]
|
ld a, [input_index]
|
||||||
sub a, d
|
cp a, d
|
||||||
jr nz, CheckInput
|
jr nz, CheckInput
|
||||||
|
|
||||||
ld a, [input_index + 1]
|
ld a, [input_index + 1]
|
||||||
sub a, e
|
cp a, e
|
||||||
jr nz, CheckInput
|
jr nz, CheckInput
|
||||||
|
|
||||||
ld a, 1
|
ld a, 1
|
||||||
ld [done_flag], a
|
ld [done_flag], a
|
||||||
|
|
||||||
Done:
|
halt
|
||||||
|
nop
|
||||||
|
jr Done
|
||||||
|
|
||||||
|
Done:
|
||||||
halt
|
halt
|
||||||
nop
|
nop
|
||||||
jr Done
|
jr Done
|
||||||
|
|
||||||
IncrementCurrentFloor:
|
IncrementCurrentFloor:
|
||||||
ld hl, current_floor
|
ld a, [current_floor]
|
||||||
ld a, [hli]
|
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [hli]
|
ld a, [current_floor + 1]
|
||||||
ld c, a
|
ld c, a
|
||||||
|
|
||||||
inc bc
|
inc bc
|
||||||
|
|
||||||
ld hl, current_floor
|
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [hli], a
|
ld [current_floor], a
|
||||||
ld a, c
|
ld a, c
|
||||||
ld [hli], a
|
ld [current_floor + 1], a
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
DecrementCurrentFloor:
|
DecrementCurrentFloor:
|
||||||
ld hl, current_floor
|
ld a, [current_floor]
|
||||||
ld a, [hli]
|
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [hli]
|
ld a, [current_floor + 1]
|
||||||
ld c, a
|
ld c, a
|
||||||
|
|
||||||
dec bc
|
dec bc
|
||||||
|
|
||||||
ld hl, current_floor
|
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [hli], a
|
ld [current_floor], a
|
||||||
ld a, c
|
ld a, c
|
||||||
ld [hli], a
|
ld [current_floor + 1], a
|
||||||
|
|
||||||
ret
|
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
|
ret
|
||||||
|
|
||||||
VBlankHandler:
|
VBlankHandler:
|
||||||
@ -109,14 +129,19 @@ VBlankHandler:
|
|||||||
push HL
|
push HL
|
||||||
|
|
||||||
IncrementFrameCount
|
IncrementFrameCount
|
||||||
PrintByteHex current_frame, 0, 0
|
|
||||||
PrintByte current_frame, 0, 1
|
PrintString part_1_string, 0, 1
|
||||||
PrintByteHex current_floor, 0, 2
|
PrintString part_2_string, 0, 2
|
||||||
PrintByteHex current_floor + 1, 2, 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]
|
ld a, [done_flag]
|
||||||
cp a, 1
|
cp a, 1
|
||||||
jr z, NotDone
|
jp nz, NotDone
|
||||||
PrintString done_string, 3, 3
|
PrintString done_string, 3, 3
|
||||||
|
PrintByte current_floor + 1, 8, 1
|
||||||
|
;; PrintByte first_basement_floor + 1, 8, 2
|
||||||
|
|
||||||
NotDone:
|
NotDone:
|
||||||
pop HL
|
pop HL
|
||||||
@ -126,8 +151,9 @@ NotDone:
|
|||||||
reti
|
reti
|
||||||
|
|
||||||
SECTION "High RAM", HRAM
|
SECTION "High RAM", HRAM
|
||||||
current_floor: DS 2
|
current_floor: DS 2
|
||||||
done_flag: DS 1
|
first_basement_floor: DS 2
|
||||||
|
done_flag: DS 1
|
||||||
|
|
||||||
SECTION "Input", ROM0
|
SECTION "Input", ROM0
|
||||||
input:
|
input:
|
||||||
@ -138,4 +164,10 @@ done_string:
|
|||||||
db "Done", 0
|
db "Done", 0
|
||||||
done_string_end:
|
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"
|
INCLUDE "lib/tiles.asm"
|
||||||
|
@ -13,7 +13,9 @@ fi
|
|||||||
|
|
||||||
set -e
|
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
|
rgblink -o $year/$day/main.gb $year/$day/main.o
|
||||||
rgbfix -v -p 0xFF $year/$day/main.gb
|
rgbfix -v -p 0xFF $year/$day/main.gb
|
||||||
|
|
||||||
|
BIN
gb/lib/text.2bpp
BIN
gb/lib/text.2bpp
Binary file not shown.
BIN
gb/lib/text.png
BIN
gb/lib/text.png
Binary file not shown.
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Loading…
Reference in New Issue
Block a user