use screen size constants directly...
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
INCLUDE "hardware.inc"
|
||||
INCLUDE "automata.inc"
|
||||
|
||||
BUFFER_SIZE = SCRN_X_B * SCRN_Y_B
|
||||
|
||||
; automata buffers with 4 cells per byte
|
||||
; 2x2 bytes per cell, bit ordering:
|
||||
@@ -157,19 +158,19 @@ SECTION "Update Automata", ROM0
|
||||
UpdateAutomata:
|
||||
.topleft
|
||||
; handle top left corner
|
||||
ConwayGroup 1, (TILE_WIDTH + 1), TILE_WIDTH, (2 * TILE_WIDTH - 1), (TILE_WIDTH - 1), (BUFFER_SIZE - 1), (BUFFER_SIZE - TILE_WIDTH), (BUFFER_SIZE - TILE_WIDTH + 1)
|
||||
ConwayGroup 1, (SCRN_X_B + 1), SCRN_X_B, (2 * SCRN_X_B - 1), (SCRN_X_B - 1), (BUFFER_SIZE - 1), (BUFFER_SIZE - SCRN_X_B), (BUFFER_SIZE - SCRN_X_B + 1)
|
||||
|
||||
; advance to next cell in top row
|
||||
ld hl, Progress
|
||||
inc [hl]
|
||||
|
||||
; handle all cells in top row except corners
|
||||
ld a, (TILE_WIDTH - 2)
|
||||
ld a, (SCRN_X_B - 2)
|
||||
.top
|
||||
ld [XLoop], a
|
||||
|
||||
; handle top row cell
|
||||
ConwayGroup 1, (TILE_WIDTH + 1), TILE_WIDTH, (TILE_WIDTH - 1), -1, (BUFFER_SIZE - TILE_WIDTH - 1), (BUFFER_SIZE - TILE_WIDTH), (BUFFER_SIZE - TILE_WIDTH + 1)
|
||||
ConwayGroup 1, (SCRN_X_B + 1), SCRN_X_B, (SCRN_X_B - 1), -1, (BUFFER_SIZE - SCRN_X_B - 1), (BUFFER_SIZE - SCRN_X_B), (BUFFER_SIZE - SCRN_X_B + 1)
|
||||
|
||||
; advance to next cell in top row
|
||||
ld hl, Progress
|
||||
@@ -182,18 +183,18 @@ UpdateAutomata:
|
||||
|
||||
; handle top right corner
|
||||
.topright
|
||||
ConwayGroup (-TILE_WIDTH + 1), 1, TILE_WIDTH, (TILE_WIDTH - 1), -1, (BUFFER_SIZE - TILE_WIDTH - 1), (BUFFER_SIZE - TILE_WIDTH), (BUFFER_SIZE - 2 * TILE_WIDTH + 1)
|
||||
ConwayGroup (-SCRN_X_B + 1), 1, SCRN_X_B, (SCRN_X_B - 1), -1, (BUFFER_SIZE - SCRN_X_B - 1), (BUFFER_SIZE - SCRN_X_B), (BUFFER_SIZE - 2 * SCRN_X_B + 1)
|
||||
|
||||
; advance pointers to next row
|
||||
ld hl, Progress
|
||||
inc [hl]
|
||||
|
||||
ld a, (TILE_HEIGHT - 2)
|
||||
ld a, (SCRN_Y_B - 2)
|
||||
.leftcolumn
|
||||
ld [YLoop], a
|
||||
|
||||
; handle first element in row
|
||||
ConwayGroup 1, (TILE_WIDTH + 1), TILE_WIDTH, (2 * TILE_WIDTH - 1), (TILE_WIDTH - 1), -1, (-TILE_WIDTH), (-TILE_WIDTH + 1)
|
||||
ConwayGroup 1, (SCRN_X_B + 1), SCRN_X_B, (2 * SCRN_X_B - 1), (SCRN_X_B - 1), -1, (-SCRN_X_B), (-SCRN_X_B + 1)
|
||||
|
||||
; advance to next cell
|
||||
ld hl, Progress
|
||||
@@ -204,7 +205,7 @@ UpdateAutomata:
|
||||
ld [XLoop], a
|
||||
|
||||
; handle element inside row
|
||||
ConwayGroup 1, (TILE_WIDTH + 1), TILE_WIDTH, (TILE_WIDTH - 1), -1, (-TILE_WIDTH - 1), (-TILE_WIDTH), (-TILE_WIDTH + 1)
|
||||
ConwayGroup 1, (SCRN_X_B + 1), SCRN_X_B, (SCRN_X_B - 1), -1, (-SCRN_X_B - 1), (-SCRN_X_B), (-SCRN_X_B + 1)
|
||||
|
||||
; advance to next cell
|
||||
ld hl, Progress
|
||||
@@ -223,7 +224,7 @@ UpdateAutomata:
|
||||
|
||||
; handle last element in row
|
||||
.rightcolumn
|
||||
ConwayGroup (-TILE_WIDTH + 1), 1, TILE_WIDTH, (TILE_WIDTH - 1), -1, (-TILE_WIDTH - 1), -TILE_WIDTH, (-2 * TILE_WIDTH + 1)
|
||||
ConwayGroup (-SCRN_X_B + 1), 1, SCRN_X_B, (SCRN_X_B - 1), -1, (-SCRN_X_B - 1), -SCRN_X_B, (-2 * SCRN_X_B + 1)
|
||||
|
||||
; advance to next row
|
||||
ld hl, Progress
|
||||
@@ -236,19 +237,19 @@ UpdateAutomata:
|
||||
|
||||
; handle bottom left element
|
||||
.bottomleft
|
||||
ConwayGroup 1, (-BUFFER_SIZE + TILE_WIDTH + 1), (-BUFFER_SIZE + TILE_WIDTH), (-BUFFER_SIZE + 2 * TILE_WIDTH - 1), (TILE_WIDTH - 1), -1, (-TILE_WIDTH), (-TILE_WIDTH + 1)
|
||||
ConwayGroup 1, (-BUFFER_SIZE + SCRN_X_B + 1), (-BUFFER_SIZE + SCRN_X_B), (-BUFFER_SIZE + 2 * SCRN_X_B - 1), (SCRN_X_B - 1), -1, (-SCRN_X_B), (-SCRN_X_B + 1)
|
||||
|
||||
; advance to next cell in bottom row
|
||||
ld hl, Progress
|
||||
inc [hl]
|
||||
|
||||
; handle all cells in bottom row except corners
|
||||
ld a, TILE_WIDTH - 2
|
||||
ld a, SCRN_X_B - 2
|
||||
.bottom
|
||||
ld [XLoop], a
|
||||
|
||||
; handle top row cell
|
||||
ConwayGroup 1, (-BUFFER_SIZE + TILE_WIDTH + 1), (-BUFFER_SIZE + TILE_WIDTH), (-BUFFER_SIZE + TILE_WIDTH - 1), -1, (-TILE_WIDTH - 1), (-TILE_WIDTH), (-TILE_WIDTH + 1)
|
||||
ConwayGroup 1, (-BUFFER_SIZE + SCRN_X_B + 1), (-BUFFER_SIZE + SCRN_X_B), (-BUFFER_SIZE + SCRN_X_B - 1), -1, (-SCRN_X_B - 1), (-SCRN_X_B), (-SCRN_X_B + 1)
|
||||
|
||||
; advance to next cell in top row
|
||||
ld hl, Progress
|
||||
@@ -261,7 +262,7 @@ UpdateAutomata:
|
||||
|
||||
; handle last element
|
||||
.bottomright
|
||||
ConwayGroup (-TILE_WIDTH + 1), (-BUFFER_SIZE + 1), (-BUFFER_SIZE + TILE_WIDTH), (-BUFFER_SIZE + TILE_WIDTH - 1), -1, (-TILE_WIDTH - 1), (-TILE_WIDTH), (-2 * TILE_WIDTH + 1)
|
||||
ConwayGroup (-SCRN_X_B + 1), (-BUFFER_SIZE + 1), (-BUFFER_SIZE + SCRN_X_B), (-BUFFER_SIZE + SCRN_X_B - 1), -1, (-SCRN_X_B - 1), (-SCRN_X_B), (-2 * SCRN_X_B + 1)
|
||||
|
||||
; move buffer address back to beginning
|
||||
ld hl, Old
|
||||
|
||||
Reference in New Issue
Block a user