Changed 16-bit value syntax from using > and < in addresses to using +1.
This was recomended by dicander and duunqnd because A =$ABAC looks like one address and not 2 zero-page addresses.
This commit is contained in:
parent
7f56f90613
commit
bfefcbff8f
2 changed files with 30 additions and 29 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,3 +4,4 @@
|
||||||
*.list
|
*.list
|
||||||
*.lst
|
*.lst
|
||||||
*.note
|
*.note
|
||||||
|
run.sh
|
||||||
|
|
|
@ -6,14 +6,14 @@
|
||||||
;; Note that this is the real positions divided by 8
|
;; Note that this is the real positions divided by 8
|
||||||
.proc char_draw
|
.proc char_draw
|
||||||
Character_generator_ROM = $D000
|
Character_generator_ROM = $D000
|
||||||
Y_pos_offset = $F9F8 ;Reuses from Y_pos
|
Y_pos_offset = $F9 ; 16-bit value (uses F8), reuses from Y_pos
|
||||||
X_pos_offset = $FAF7
|
X_pos_offset = $FA ; 16-bit value (uses F7)
|
||||||
X_pos = $FA
|
X_pos = $FA
|
||||||
Y_pos = $F9
|
Y_pos = $F9
|
||||||
charset = $FB
|
charset = $FB
|
||||||
code = $FE
|
code = $FE
|
||||||
petski_position = $FEFF ;reuses code:s memory
|
petski_position = $FE ; 16-bit value (uses FF),reuses code:s memory
|
||||||
screen_position = $FCFD
|
screen_position = $FC ; 16-bit value (uses FD)
|
||||||
|
|
||||||
;#### TEMP INIT DATA ####
|
;#### TEMP INIT DATA ####
|
||||||
LDA #$10
|
LDA #$10
|
||||||
|
@ -27,57 +27,57 @@
|
||||||
initial:
|
initial:
|
||||||
;We first need to clear some memory
|
;We first need to clear some memory
|
||||||
LDA #$00
|
LDA #$00
|
||||||
STA <petski_position
|
STA petski_position + 1
|
||||||
STA <Y_pos_offset
|
STA Y_pos_offset + 1
|
||||||
STA <X_pos_offset
|
STA X_pos_offset + 1
|
||||||
|
|
||||||
;;We need the relative offset for bytes to read and write.
|
;;We need the relative offset for bytes to read and write.
|
||||||
;; This is code *8 because 8byte is one character
|
;; This is code *8 because 8byte is one character
|
||||||
;; *8 = 2*2*2
|
;; *8 = 2*2*2
|
||||||
ASL code ;Will never owerflow, therefore 8byte
|
ASL code ;Will never owerflow, therefore 8byte
|
||||||
Mult_16 >petski_position, <petski_position
|
Mult_16 petski_position, petski_position + 1
|
||||||
Mult_16 >petski_position, <petski_position
|
Mult_16 petski_position, petski_position + 1
|
||||||
;; Add starting position
|
;; Add starting position
|
||||||
Add_16 >petski_position, <petski_position, #<Character_generator_ROM , #>Character_generator_ROM, !
|
Add_16 petski_position, petski_position + 1, #<Character_generator_ROM , #>Character_generator_ROM, !
|
||||||
|
|
||||||
;;Calculate screen_position to use
|
;;Calculate screen_position to use
|
||||||
Mov_16 >screen_position, <screen_position, #<VIC_bank, #>VIC_bank
|
Mov_16 screen_position, screen_position + 1, #<VIC_bank, #>VIC_bank
|
||||||
|
|
||||||
;; Add the X_pos has a offset multiplier of *8 because 1 chunk = 8 addresses
|
;; Add the X_pos has a offset multiplier of *8 because 1 chunk = 8 addresses
|
||||||
;; *8
|
;; *8
|
||||||
Mult_16 >X_pos_offset, <X_pos_offset
|
Mult_16 X_pos_offset, X_pos_offset + 1
|
||||||
Mult_16 >X_pos_offset, <X_pos_offset
|
Mult_16 X_pos_offset, X_pos_offset + 1
|
||||||
Mult_16 >X_pos_offset, <X_pos_offset
|
Mult_16 X_pos_offset, X_pos_offset + 1
|
||||||
;; Add
|
;; Add
|
||||||
Add_16 >screen_position, <screen_position, X_pos, #$00, !
|
Add_16 screen_position, screen_position + 1, X_pos, #$00, !
|
||||||
|
|
||||||
;; And Y_pos has a offset multiplier of "screen length" = 320 = (2*2 +1)*2^6
|
;; And Y_pos has a offset multiplier of "screen length" = 320 = (2*2 +1)*2^6
|
||||||
;;Y_pos*2*2 +1 |Lets reuse X_pos for storage
|
;;Y_pos*2*2 +1 |Lets reuse X_pos for storage
|
||||||
LDA Y_pos
|
LDA Y_pos
|
||||||
STA X_pos
|
STA X_pos
|
||||||
Mult_16 >Y_pos_offset, <Y_pos_offset
|
Mult_16 Y_pos_offset, Y_pos_offset + 1
|
||||||
Mult_16 >Y_pos_offset, <Y_pos_offset
|
Mult_16 Y_pos_offset, Y_pos_offset + 1
|
||||||
Add_16 >Y_pos_offset, <Y_pos_offset, X_pos, #$00, !
|
Add_16 Y_pos_offset, Y_pos_offset + 1, X_pos, #$00, !
|
||||||
;; *2^6
|
;; *2^6
|
||||||
Mult_16 >Y_pos_offset, <Y_pos_offset
|
Mult_16 Y_pos_offset, Y_pos_offset + 1
|
||||||
Mult_16 >Y_pos_offset, <Y_pos_offset
|
Mult_16 Y_pos_offset, Y_pos_offset + 1
|
||||||
Mult_16 >Y_pos_offset, <Y_pos_offset
|
Mult_16 Y_pos_offset, Y_pos_offset + 1
|
||||||
Mult_16 >Y_pos_offset, <Y_pos_offset
|
Mult_16 Y_pos_offset, Y_pos_offset + 1
|
||||||
Mult_16 >Y_pos_offset, <Y_pos_offset
|
Mult_16 Y_pos_offset, Y_pos_offset + 1
|
||||||
Mult_16 >Y_pos_offset, <Y_pos_offset
|
Mult_16 Y_pos_offset, Y_pos_offset + 1
|
||||||
;; Add
|
;; Add
|
||||||
Add_16 >screen_position, <screen_position, >Y_pos_offset, <Y_pos_offset, !
|
Add_16 screen_position, screen_position + 1, Y_pos_offset, Y_pos_offset + 1, !
|
||||||
initial_end:
|
initial_end:
|
||||||
|
|
||||||
|
|
||||||
;; One character is 8 byte, move these bytes to screen
|
;; One character is 8 byte, move these bytes to screen
|
||||||
LDY #$07
|
LDY #$07
|
||||||
@loop:
|
@loop:
|
||||||
LDA (>petski_position), Y
|
LDA (petski_position), Y
|
||||||
STA (>screen_position), Y
|
STA (screen_position), Y
|
||||||
DEY
|
DEY
|
||||||
BNE @loop
|
BNE @loop
|
||||||
LDA (>petski_position), Y
|
LDA (petski_position), Y
|
||||||
STA (>screen_position), Y
|
STA (screen_position), Y
|
||||||
RTS
|
RTS
|
||||||
.endproc
|
.endproc
|
||||||
|
|
Loading…
Add table
Reference in a new issue