lemm: start adding pointer

This commit is contained in:
Vince Weaver 2022-03-09 15:15:38 -05:00
parent 8c6187d5af
commit 64d38d1cc2
9 changed files with 1159 additions and 21 deletions

View File

@ -0,0 +1,862 @@
finger_point_sprite:
;===============
; point sprite
;===============
point_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
point_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
point_mask_l: ; X 654 3 210
.byte $9f ; 1 001 1 111
.byte $8f ; 1 000 1 111
.byte $8f ; 1 000 1 111
.byte $8f ; 1 000 1 111
.byte $88 ; 1 000 1 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $81 ; 1 000 0 001
.byte $81 ; 1 000 0 001
.byte $83 ; 1 000 0 011
.byte $87 ; 1 000 0 111
.byte $8f ; 1 000 1 111
.byte $8f ; 1 000 1 111
point_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
finger_grab_sprite:
;===============
; grab sprite
;===============
grab_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $4c ; 0 100 1 100
.byte $4c ; 0 100 1 100
.byte $58 ; 0 101 1 000
.byte $58 ; 0 101 1 000
.byte $70 ; 0 111 0 000
.byte $73 ; 0 111 0 011
.byte $77 ; 0 111 0 111
.byte $7e ; 0 111 1 110
.byte $7c ; 0 111 1 100
.byte $7c ; 0 111 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
grab_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $0d ; 0 000 1 101
.byte $0d ; 0 000 1 101
.byte $0d ; 0 000 1 101
.byte $6d ; 0 110 1 101
.byte $6f ; 0 110 1 111
.byte $7f ; 0 111 1 111
.byte $3f ; 0 011 1 111
.byte $3f ; 0 011 1 111
.byte $3f ; 0 011 1 111
.byte $1f ; 0 001 1 111
.byte $1f ; 0 001 1 111
.byte $0f ; 0 000 1 111
.byte $0f ; 0 000 1 111
grab_mask_l: ; X 654 3 210
.byte $b3 ; 1 011 0 011
.byte $81 ; 1 000 0 001
.byte $81 ; 1 000 0 001
.byte $83 ; 1 000 0 011
.byte $83 ; 1 000 0 011
.byte $84 ; 1 000 0 100
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $81 ; 1 000 0 001
.byte $81 ; 1 000 0 001
.byte $83 ; 1 000 0 011
.byte $c7 ; 1 100 0 111
.byte $c7 ; 1 100 1 111
grab_mask_r: ; X 654 3 210
.byte $f2 ; 1 111 0 010
.byte $e0 ; 1 110 0 000
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
.byte $e0 ; 1 110 0 000
.byte $e0 ; 1 110 0 000
;======================
; finger left
;======================
; TODO
finger_left_sprite:
finger_left_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_left_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_left_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_left_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
;====================
; finger right
;====================
; TODO
finger_right_sprite:
finger_right_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_right_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_right_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_right_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
;====================
; Finger turn left
;====================
finger_turn_left_sprite:
finger_turn_left_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_turn_left_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_turn_left_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_turn_left_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
;=====================
; Finger turn right
;=====================
; TODO
finger_turn_right_sprite:
finger_turn_right_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_turn_right_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_turn_right_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_turn_right_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
;=====================
; finger match
;=====================
; TODO
finger_match_sprite:
.if 0
finger_match_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_match_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_match_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_match_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
.endif
;======================
; finger match lit
;======================
; TODO
finger_match_lit_sprite:
.if 0
finger_match_lit_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_match_lit_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_match_lit_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_match_lit_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
.endif
;=========================
; finger key sprite
;=========================
; TODO
finger_key_sprite:
.if 0
finger_key_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_key_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_key_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_key_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
.endif
;===========================
; finger red sprite
;===========================
; TODO
finger_red_page_sprite:
finger_red_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_red_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_red_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_red_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
;=====================
; finger blue sprite
;=====================
; TODO
finger_blue_page_sprite:
finger_blue_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_blue_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_blue_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_blue_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000
;========================
; finger white page
;========================
; TODO
finger_white_page_sprite:
finger_white_sprite_l: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
.byte $63 ; 0 110 0 011
.byte $66 ; 0 110 0 110
.byte $2c ; 0 010 1 100
.byte $6c ; 0 110 1 100
.byte $78 ; 0 111 1 000
.byte $70 ; 0 111 0 000
.byte $70 ; 0 111 0 000
.byte $60 ; 0 110 0 000
.byte $60 ; 0 110 0 000
finger_white_sprite_r: ; X 654 3 210
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $00 ; 0 000 0 000
.byte $0A ; 0 000 1 010
.byte $2A ; 0 010 1 010
.byte $2D ; 0 010 1 101
.byte $37 ; 0 011 0 111
.byte $3F ; 0 011 1 111
.byte $3F ; 0 011 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
.byte $1F ; 0 001 1 111
finger_white_mask_l: ; X 654 3 210
.byte $ff ; 1 001 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 000
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 001
.byte $ff ; 1 000 0 011
.byte $ff ; 1 000 0 111
.byte $ff ; 1 000 1 111
.byte $ff ; 1 000 1 111
finger_white_mask_r: ; X 654 3 210
.byte $ff ; 1 111 1 111
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $fe ; 1 111 1 110
.byte $e0 ; 1 110 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $80 ; 1 000 0 000
.byte $c0 ; 1 100 0 000
.byte $c0 ; 1 100 0 000

View File

@ -13,9 +13,9 @@ draw_door:
sta INH
ldx #9 ; 63
stx CURSOR_X
stx XPOS
lda #36
sta CURSOR_Y
sta YPOS
jsr hgr_draw_sprite

View File

@ -13,9 +13,9 @@ draw_flames:
sta INH
ldx #31 ; 217
stx CURSOR_X
stx XPOS
lda #108
sta CURSOR_Y
sta YPOS
jsr hgr_draw_sprite
@ -31,9 +31,9 @@ draw_flames:
sta INH
ldx #35 ; 245
stx CURSOR_X
stx XPOS
lda #108
sta CURSOR_Y
sta YPOS
jmp hgr_draw_sprite

52
games/lemm/draw_pointer.s Normal file
View File

@ -0,0 +1,52 @@
;====================================
; draw pointer
;====================================
draw_pointer:
lda #0
sta OVER_LEMMING
; jsr save_bg_14x14 ; save old bg
; for now assume the only 14x14 sprites are the pointers
lda CURSOR_X
sta XPOS
lda CURSOR_Y
sta YPOS
; see if over lemming
; TODO
; see if X1 < X < X2
; lda CURSOR_X
; ldy #LOCATION_SPECIAL_X1
; cmp (LOCATION_STRUCT_L),Y
; bcc finger_not_special ; blt
; ldy #LOCATION_SPECIAL_X2
; cmp (LOCATION_STRUCT_L),Y
; bcs finger_not_special ; bge
; see if Y1 < Y < Y2
; lda CURSOR_Y
; ldy #LOCATION_SPECIAL_Y1
; cmp (LOCATION_STRUCT_L),Y
; bcc finger_not_special ; blt
; ldy #LOCATION_SPECIAL_Y2
; cmp (LOCATION_STRUCT_L),Y
; bcs finger_not_special ; bge
lda #>finger_turn_right_sprite
sta INL
lda #>finger_turn_right_sprite
sta INH
jsr hgr_draw_sprite_14x14
rts

View File

@ -0,0 +1,207 @@
;======================
; hgr 14x14 draw sprite
;======================
; SPRITE in INL/INH
; Location at CURSOR_X CURSOR_Y
; left sprite AT INL/INH
; right sprite at INL/INH + 14
; left mask at INL/INH + 28
; right mask at INL/INH + 42
hgr_draw_sprite_14x14:
; set up pointers
lda INL
sta hds_smc1+1
lda INH
sta hds_smc1+2
clc
lda INL
adc #14
sta hds_smc2+1
lda INH
adc #0
sta hds_smc2+2
clc
lda INL
adc #28
sta hds_smc3+1
lda INH
adc #0
sta hds_smc3+2
clc
lda INL
adc #42
sta hds_smc4+1
lda INH
adc #0
sta hds_smc4+2
ldx #0
hgr_14x14_sprite_yloop:
txa
pha
clc
adc CURSOR_Y
; ldx #0
; ldy #0
; calc GBASL/GBASH
; jsr HPOSN ; (Y,X),(A) (values stored in HGRX,XH,Y)
tay
lda hposn_high,Y
sta GBASH
lda hposn_low,Y
sta GBASL
pla
tax
ldy CURSOR_X
lda (GBASL),Y
hds_smc3:
and point_mask_l,X
hds_smc1:
ora point_sprite_l,X
sta (GBASL),Y
iny
lda (GBASL),Y
hds_smc4:
and point_mask_r,X
hds_smc2:
ora point_sprite_r,X
sta (GBASL),Y
inx
cpx #14
bne hgr_14x14_sprite_yloop
rts
;======================
; save bg 14x14
;======================
save_bg_14x14:
ldx #0
save_yloop:
txa
pha
clc
adc CURSOR_Y
; ldx #0
; ldy #0
; calc GBASL/GBASH
; jsr HPOSN ; (Y,X),(A) (values stored in HGRX,XH,Y)
tay
lda hposn_high,Y
sta GBASH
lda hposn_low,Y
sta GBASL
pla
tax
ldy CURSOR_X
lda (GBASL),Y
sta save_left_14x14,X
iny
lda (GBASL),Y
sta save_right_14x14,X
inx
cpx #14
bne save_yloop
rts
;======================
; restore bg 14x14
;======================
restore_bg_14x14:
ldx #0
restore_yloop:
txa
pha
clc
adc CURSOR_Y
; ldx #0
; ldy #0
; calc GBASL/GBASH
; jsr HPOSN ; (Y,X),(A) (values stored in HGRX,XH,Y)
tay
lda hposn_high,Y
sta GBASH
lda hposn_low,Y
sta GBASL
pla
tax
ldy CURSOR_X
lda save_left_14x14,X
sta (GBASL),Y
iny
lda save_right_14x14,X
sta (GBASL),Y
inx
cpx #14
bne restore_yloop
rts
;====================
; save area
;====================
save_right_14x14:
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
save_left_14x14:
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
.include "common_sprites.inc"

View File

@ -2,7 +2,7 @@
; hgr draw sprite (only at 7-bit boundaries)
;===========================================
; SPRITE in INL/INH
; Location at CURSOR_X CURSOR_Y
; Location at XPOS YPOS
; xsize, ysize in first two bytes
@ -13,7 +13,7 @@ hgr_draw_sprite:
ldy #0
lda (INL),Y ; load xsize
clc
adc CURSOR_X
adc XPOS
sta sprite_width_end_smc+1 ; self modify for end of line
iny ; load ysize
@ -38,7 +38,7 @@ hgr_sprite_yloop:
lda MASK ; row
clc
adc CURSOR_Y ; add in cursor_y
adc YPOS ; add in cursor_y
; calc GBASL/GBASH
@ -53,7 +53,7 @@ hgr_sprite_page_smc:
eor #$00
sta GBASH
ldy CURSOR_X
ldy XPOS
sprite_inner_loop:
@ -95,7 +95,7 @@ sprite_ysize_smc:
; and shifts it if in odd column
; SPRITE in INL/INH
; Location at CURSOR_X CURSOR_Y
; Location at XPOS YPOS
; xsize, ysize in first two bytes
@ -107,7 +107,7 @@ hgr_draw_sprite_autoshift:
; SEC=$38 0b0011 1000 CLC=$18 0b0001 10000
lda CURSOR_X
lda XPOS
lsr
bcc make_it_even
@ -123,7 +123,7 @@ make_it_so:
ldy #0
lda (INL),Y ; load xsize
clc
adc CURSOR_X
adc XPOS
sta sprite_width_end_smc_as+1 ; self modify for end of line
iny ; load ysize
@ -148,7 +148,7 @@ hgr_sprite_yloop_as:
lda MASK ; row
clc
adc CURSOR_Y ; add in cursor_y
adc YPOS ; add in cursor_y
; calc GBASL/GBASH
@ -163,7 +163,7 @@ hgr_sprite_page_smc_as:
eor #$00
sta GBASH
ldy CURSOR_X
ldy XPOS
sprite_inner_loop_as:

View File

@ -251,6 +251,16 @@ zurg:
jsr decompress_lzsa2_fast
;=======================
; Setup cursor
;=======================
lda #0
sta OVER_LEMMING
lda #10
sta CURSOR_X
lda #100
sta CURSOR_Y
;=======================
; Play "Let's Go"
@ -311,6 +321,9 @@ door_is_open:
jsr update_time
jsr draw_pointer
lda #$ff
jsr wait
@ -380,10 +393,13 @@ load_song_chunk_good:
; .include "print_help.s"
; .include "gr_fast_clear.s"
.include "hgr_14x14_sprite.s"
.include "text_print.s"
.include "lc_detect.s"
.include "draw_pointer.s"
.include "hgr_tables.s"
.include "hgr_sprite.s"

View File

@ -40,9 +40,9 @@ draw_time:
; 246, 152
ldx #35 ; 245
stx CURSOR_X
stx XPOS
lda #152
sta CURSOR_Y
sta YPOS
jsr hgr_draw_sprite_autoshift
@ -60,9 +60,9 @@ draw_time:
sta INH
ldx #37
stx CURSOR_X
stx XPOS
lda #152
sta CURSOR_Y
sta YPOS
jsr hgr_draw_sprite_autoshift
@ -78,9 +78,9 @@ draw_time:
sta INH
ldx #38
stx CURSOR_X
stx XPOS
lda #152
sta CURSOR_Y
sta YPOS
jsr hgr_draw_sprite_autoshift

View File

@ -59,6 +59,7 @@ DOOR_OPEN = $7C
CHUNK_NEXT_LOAD = $7D
CHUNK_NEXT_PLAY = $7E
LOAD_NEXT_CHUNK = $7F
OVER_LEMMING = $80
APPLEII_MODEL = $8B