GB 2015 day 1 part 1
This commit is contained in:
		
							parent
							
								
									4807c82bf9
								
							
						
					
					
						commit
						6db0e0618b
					
				| @ -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" | ||||
|  | ||||
| @ -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 | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										
											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