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:
hugova 2025-04-28 13:06:48 +02:00
parent 7f56f90613
commit bfefcbff8f
2 changed files with 30 additions and 29 deletions

1
.gitignore vendored
View file

@ -4,3 +4,4 @@
*.list *.list
*.lst *.lst
*.note *.note
run.sh

View file

@ -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