Share Pastebin
Guest
Public paste!

TI-82 ASM

By: a guest | Mar 21st, 2010 | Syntax: Z80 Assembler | Size: 1.49 KB | Hits: 43 | Expires: Never
This paste has a previous version, view the difference. Copy text to clipboard
  1. #include "CRASH82.INC"
  2. .DB "TI-82 ASM",0
  3.  
  4. 1/>ld  a,$8c           ; set rom page 4
  5. 1/>out    (2),a           ; (needed for FIND_PIXEL)    
  6.  
  7. ROM_CALL(CLEARLCD)
  8. 1/>call   Clear_GRAPH_MEM ; clear GRAPH_MEM
  9. 1/>ld     hl,TestSprite   ; load address of sprite in HL
  10. 1/>ld     bc,44*256+28    ; b = 44 = x / c = 28 = y
  11. 1/>call   PutSprite       ; put the sprite at (44,28)
  12. ROM_CALL(DISP_GRAPH)   ; copy GRAPH_MEM to LCD
  13. ROM_CALL(KEY_HAND)     ; wait for a key
  14. 1/>ret
  15.  
  16. Clear_GRAPH_MEM:        ; routine that clears
  17. 1/>ld     hl,GRAPH_MEM    ; the GRAPH_MEM (fills
  18. 1/>ld     de,GRAPH_MEM+1  ; it with zeros)
  19. 1/>ld     (hl),0
  20. 1/>ld     bc,767
  21. 1/>ldir
  22. 1/>ret
  23.  
  24. PutSprite:      ; disassembling is for noobs
  25. 1/>push   bc      
  26. 1/>push   de
  27. 1/>push   hl
  28. 1/>push   hl
  29. 1/>ld a,63
  30. 1/>sub    c
  31. 1/>ld c,a
  32. 1/>call   FIND_PIXEL
  33. 1/>ld     de,GRAPH_MEM
  34. 1/>add    hl,de
  35. 1/>ex     de,hl
  36. 1/>pop    hl
  37. 1/>ld     b,(hl)
  38. 1/>inc    hl
  39. 1/>ld     c,(hl)
  40. 1/>inc    hl
  41. 1/>push   hl
  42. 1/>pop    ix
  43. 1/>ex     de,hl
  44. PS_NewRow:
  45. 1/>push   bc
  46. 1/>ld     d,(ix)
  47. 1/>inc    ix
  48. 1/>push   af
  49. 1/>push   hl
  50. PS_NewCol:
  51. 1/>rl     d
  52. 1/>ld     e,a
  53. 1/>jr     nc,PS_NoPixel
  54. 1/>or     (hl)
  55. 1/>ld     (hl),a
  56. 1/>jr     PS_NextPixel
  57. PS_NoPixel:
  58. 1/>cpl
  59. 1/>and    (hl)
  60. 1/>ld     (hl),a
  61. PS_NextPixel:
  62. 1/>ld     a,e
  63. 1/>rrca
  64. 1/>jr     nc,PS_SameByte
  65. 1/>inc    hl
  66. PS_SameByte:
  67. 1/>djnz   PS_NewCol
  68. 1/>pop    hl
  69. 1/>pop    af
  70. 1/>ld     de,12
  71. 1/>add    hl,de
  72. 1/>pop    bc
  73. 1/>dec    c
  74. 1/>jr     nz,PS_NewRow
  75. 1/>pop    hl
  76. 1/>pop    de
  77. 1/>pop    bc
  78. 1/>ret
  79.  
  80.  
  81. TestSprite:
  82. .db 8, 8
  83. .db %11111111
  84. .db %10001011
  85. .db %10000101
  86. .db %10001011
  87. .db %11010101
  88. .db %10101011
  89. .db %11010101
  90. .db %11111111
  91. .end