Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 2fc752f
Showing
38 changed files
with
2,083 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,213 @@ | ||
|
||
|
||
|
||
|
||
pinta_digit_coords defw 0 | ||
|
||
; bc = coordinates | ||
; a = digit | ||
|
||
pinta_digit: | ||
ld hl, segments_digit_0 | ||
add l | ||
ld l, a | ||
ld a, (hl) | ||
; a is digit segments | ||
pinta_digit_segments: | ||
ld (pinta_digit_coords), bc | ||
|
||
pinta_digit_segment_0: | ||
|
||
bit 0, a | ||
jr z, pinta_digit_segment_1 | ||
ld de, #0100 | ||
ld hl, img_seg_top | ||
call pinta_segment_x | ||
pinta_digit_segment_1: | ||
|
||
bit 1, a | ||
jr z, pinta_digit_segment_2 | ||
ld de, #0308 | ||
ld hl, img_seg_top_right | ||
call pinta_segment_x | ||
|
||
pinta_digit_segment_2: | ||
|
||
bit 2, a | ||
jr z, pinta_digit_segment_3 | ||
ld de, #0c08 | ||
ld hl, img_seg_bottom_right | ||
call pinta_segment_x | ||
|
||
pinta_digit_segment_3: | ||
|
||
bit 3, a | ||
jr z, pinta_digit_segment_4 | ||
ld de, #1200 | ||
ld hl, img_seg_bottom | ||
call pinta_segment_x | ||
|
||
pinta_digit_segment_4: | ||
|
||
bit 4, a | ||
jr z, pinta_digit_segment_5 | ||
ld de, #0c00 | ||
ld hl, img_seg_bottom_left | ||
call pinta_segment_x | ||
|
||
pinta_digit_segment_5: | ||
|
||
bit 5, a | ||
jr z, pinta_digit_segment_6 | ||
ld de, #0300 | ||
ld hl, img_seg_top_left | ||
call pinta_segment_x | ||
|
||
pinta_digit_segment_6: | ||
|
||
bit 6, a | ||
jr z, pinta_digit_segment_end | ||
ld de, #0900 | ||
ld hl, img_seg_middle | ||
call pinta_segment_x | ||
|
||
pinta_digit_segment_end | ||
ret | ||
|
||
BCaddDE_simple: | ||
ld a, c | ||
add e | ||
ld c, a | ||
ld a, b | ||
adc d | ||
ld b, a | ||
ret | ||
pinta_segment_x: | ||
push af | ||
push bc | ||
call BCaddDE_simple | ||
call pintaspriteOr | ||
pop bc | ||
pop af | ||
ret | ||
|
||
align 16 | ||
|
||
segments_digit_0: defb %00111111 | ||
segments_digit_1: defb %00000110 | ||
segments_digit_2: defb %01011011 | ||
segments_digit_3: defb %01001111 | ||
segments_digit_4: defb %01100110 | ||
segments_digit_5: defb %01101101 | ||
segments_digit_6: defb %01111101 | ||
segments_digit_7: defb %00000111 | ||
segments_digit_8: defb %01111111 | ||
segments_digit_9: defb %01101111 | ||
|
||
; bc = y x | ||
; hl = sprite structure | ||
pintaspriteOr: | ||
|
||
call get_pixel_addressDE | ||
ld a, (hl) | ||
srl a | ||
srl a | ||
srl a | ||
ld (pintaspriteOr_keepx+1), a | ||
inc hl | ||
ld a, (hl) | ||
inc hl | ||
pintaspriteOr_loopy: | ||
push de | ||
pintaspriteOr_keepx: | ||
ld b, 0x00 ; dynamically modified | ||
ex af, af' | ||
pintaspriteOr_loopx: | ||
ld a,(de) | ||
ld c,(hl) | ||
or c | ||
ld (de), a | ||
inc de | ||
inc hl | ||
djnz pintaspriteOr_loopx | ||
pop de | ||
call Pixel_Address_Down_DE | ||
ex af, af' | ||
dec a | ||
jr nz, pintaspriteOr_loopy | ||
ret | ||
|
||
|
||
img_seg_top: | ||
defb 16, 2 | ||
defb %00000111, %11110000 | ||
defb %00000011, %11100000 | ||
|
||
img_seg_top_right: | ||
|
||
defb 8, 5 | ||
defb %00001000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00011000 | ||
img_seg_bottom_right: | ||
|
||
defb 8, 6 | ||
defb %00010000 | ||
defb %00110000 | ||
defb %00110000 | ||
defb %00110000 | ||
defb %00110000 | ||
defb %00010000 | ||
|
||
img_seg_bottom: | ||
|
||
defb 16, 2 | ||
defb %00000111, %11000000 | ||
defb %00001111, %11100000 | ||
img_seg_bottom_left: | ||
|
||
defb 8, 6 | ||
defb %00010000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00010000 | ||
|
||
img_seg_top_left: | ||
|
||
defb 8, 5 | ||
defb %00001000 | ||
defb %00001100 | ||
defb %00001100 | ||
defb %00001100 | ||
defb %00001000 | ||
|
||
img_seg_middle: | ||
|
||
defb 16, 2 | ||
defb %00000111, %11110000 | ||
defb %00001111, %11100000 | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
|
||
|
||
|
||
; bc = coordinates | ||
; a = digit | ||
|
||
pinta_digit: | ||
ld hl, segments_digit_0 | ||
add l | ||
ld l, a | ||
ld a, (hl) | ||
ld d, 6 | ||
ld ix, digits_def | ||
pinta_digit_loop: | ||
push af | ||
push de | ||
push bc | ||
ld l, (ix+0) | ||
inc ix | ||
ld h, (ix+0) | ||
inc ix | ||
ld e, (ix+0) | ||
inc ix | ||
ld d, (ix+0) | ||
inc ix | ||
and 1 | ||
jr z, pinta_digit_neg | ||
call BCaddDE_simple | ||
call pintaspriteOr | ||
jr pinta_digit_cont | ||
pinta_digit_neg: | ||
call BCaddDE_simple | ||
call pintaspriteMask | ||
pinta_digit_cont: | ||
pop bc | ||
pop de | ||
pop af | ||
rra | ||
dec d | ||
jp p, pinta_digit_loop | ||
ret | ||
digits_def: | ||
defw img_seg_top, 0x0100 | ||
defw img_seg_top_right, 0x0308 | ||
defw img_seg_bottom_right, 0x0c08 | ||
defw img_seg_bottom, 0x1200 | ||
defw img_seg_bottom_left, 0x0c00 | ||
defw img_seg_top_left, 0x0300 | ||
defw img_seg_middle, 0x0900 | ||
BCaddDE_simple: | ||
ld a, c | ||
add e | ||
ld c, a | ||
ld a, b | ||
adc d | ||
ld b, a | ||
ret | ||
|
||
|
||
align 16 | ||
|
||
segments_digit_0: defb %00111111 | ||
segments_digit_1: defb %00000110 | ||
segments_digit_2: defb %01011011 | ||
segments_digit_3: defb %01001111 | ||
segments_digit_4: defb %01100110 | ||
segments_digit_5: defb %01101101 | ||
segments_digit_6: defb %01111101 | ||
segments_digit_7: defb %00000111 | ||
segments_digit_8: defb %01111111 | ||
segments_digit_9: defb %01101111 | ||
|
||
|
||
img_seg_top: | ||
defb 16, 2 | ||
defb %00000111, %11110000 | ||
defb %00000011, %11100000 | ||
|
||
img_seg_top_right: | ||
|
||
defb 8, 5 | ||
defb %00001000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00011000 | ||
img_seg_bottom_right: | ||
|
||
defb 8, 6 | ||
defb %00010000 | ||
defb %00110000 | ||
defb %00110000 | ||
defb %00110000 | ||
defb %00110000 | ||
defb %00010000 | ||
|
||
img_seg_bottom: | ||
|
||
defb 16, 2 | ||
defb %00000111, %11000000 | ||
defb %00001111, %11100000 | ||
img_seg_bottom_left: | ||
|
||
defb 8, 6 | ||
defb %00010000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00011000 | ||
defb %00010000 | ||
|
||
img_seg_top_left: | ||
|
||
defb 8, 5 | ||
defb %00001000 | ||
defb %00001100 | ||
defb %00001100 | ||
defb %00001100 | ||
defb %00001000 | ||
|
||
img_seg_middle: | ||
|
||
defb 16, 2 | ||
defb %00000111, %11110000 | ||
defb %00001111, %11100000 | ||
|
||
|
||
|
Oops, something went wrong.