Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2018
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // C version
  2. n=map[(my<<5)+mx];
  3.  
  4. // Assembly version
  5.  lda my     ;multiply my by 32
  6.  sta ptr_h  ;through shifting
  7.  ldy #0     ;a 16-bit var (ptr_h,ptr_l)
  8.  sty ptr_l  ;to the right for three times
  9. dup 3
  10.  lsr ptr_h  ;shift
  11.  ror ptr_l
  12. edup
  13.  lda ptr_l  ;add mx as 16-bit value
  14.  clc
  15.  adc mx
  16.  bcc @1
  17.  inc ptr_h
  18. @1:
  19.  clc
  20.  adc #<map  ;add map offset
  21.  sta ptr_l
  22.  lda ptr_h
  23.  adc #>map
  24.  sta ptr_h
  25.  lda [ptr_l],y  ;read the value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement