king_of_hobbies

FadeToBlackZ80

Oct 6th, 2022
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | Source Code | 0 0
  1. ; Fade Screen to Black
  2. ; Improvement would be to handle bright and flash attributes as well
  3.  
  4. ; BASIC Test code
  5. ; 1 bright 1: flash 1: ink 6: paper 3: cls: print "a"
  6.  
  7.  
  8. ORG 0x8000
  9. ; Start of attribute memory
  10. SCREEN = 0x4000
  11. ; 24 rows, 32 columns
  12. ; 8 x 8 characters
  13. ; 24 * 8 = bytes per row = 192
  14. ; 192 * 32 = 614
  15. ; 24 * 32 = 768 attributes
  16. ATTRIBUTES_COUNT = 0x300
  17. ;ATTRIBUTES = (SCREEN + ATTRIBUTES_COUNT)
  18. ATTRIBUTES = 0x5800
  19. INK = %00000111
  20. PAPER = %00111000
  21.  
  22. LD D, 7; Maximum of 7 subtractions to get to black
  23. MAIN_LOOP
  24. LD HL, ATTRIBUTES
  25. LD BC, ATTRIBUTES_COUNT
  26.  
  27. ; Decrement attribute colours
  28. ATTR_LOOP
  29.  
  30. LD A,0x80
  31. PAUSE
  32. DEC A
  33. JR NZ, PAUSE
  34.  
  35. LD A, (HL)
  36.  
  37. EXX
  38. LD D, A
  39. LD E, A
  40.  
  41. AND INK
  42. JR Z, IS_ZERO_INK
  43. DEC A
  44. IS_ZERO_INK
  45. LD E, A
  46.  
  47. LD A, D
  48. AND PAPER
  49. JR Z, IS_ZERO_PAPER
  50. DEC A
  51. IS_ZERO_PAPER
  52. AND PAPER
  53.  
  54. OR E
  55. EXX
  56.  
  57. LD (HL), A
  58. INC HL
  59. ; End Decrement attribute colours
  60.  
  61. ; If BC != 0 loop
  62. DEC BC
  63. XOR A
  64. OR B
  65. JR NZ, ATTR_LOOP
  66. XOR A
  67. OR C
  68. JR NZ, ATTR_LOOP
  69.  
  70. ; If D == 0 return
  71. DEC D
  72. XOR A
  73. OR D
  74. JR NZ, MAIN_LOOP
  75. RET
Tags: z80
Advertisement
Add Comment
Please, Sign In to add comment