Advertisement
DavenWarrior

6502 lookup table

Oct 6th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;|| Lookup table format ||
  2. ;$9c00 - $9cff - claimed address tables --> $00 = unclaimed. overwrite flag set. any other vale --> overwrite flag unset.
  3. ;$a000 - $a1ff
  4. ; address pointer lsb       - at $a000 + offset
  5. ; address pointer msb       - at $a100 + offset
  6.  
  7. sta $0200
  8. jsr make_first_object
  9. lda $a000
  10. ldx $a100
  11. brk;
  12.  
  13. make_first_object:
  14. lda #$b0 ;final address byte, msb
  15. sta $0010
  16. lda #$00 ;lsb first address byte
  17. sta $0011
  18. jsr get_id
  19.  
  20. rts
  21.  
  22. get_id:
  23. ; check for available addresses
  24. ; write id to avail, return address
  25. ldy #$00
  26.  
  27. main_run:
  28. sei
  29. tya
  30. sta $35
  31. lda #$9c
  32. sta $36
  33. lda ($35), Y
  34. cmp #$00
  35. beq exit_get_id;
  36. iny;
  37. jmp main_run
  38.  
  39. exit_get_id:
  40. ;Not 100% functional. More debugging needed.
  41. tya
  42. pha
  43. sta $9c00, y
  44.  
  45. tsx
  46. txa
  47. adc #$3
  48. tax
  49. lda $00,x ;get first address byte - lsb
  50. tay
  51. lda $a000
  52. sta $40
  53.  
  54. pla;?
  55. pha;?
  56.  
  57. adc $40
  58. sta $40
  59. tya
  60. ldy #$0
  61. sta ($40),y ;save first address byte
  62.  
  63. ;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  64. tsx
  65. txa
  66. adc #$4
  67. tax
  68. lda $00,x ;get second address byte - msb
  69. tay
  70. lda $a100
  71. sta $40
  72.  
  73. pla;?
  74. pha;?
  75.  
  76. adc $40
  77. sta $40
  78. tya
  79. ldy #$0
  80. sta ($40),y ;save second address byte
  81.  
  82.  
  83. pla
  84. tay
  85. cli
  86. rts
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement