?login_element?

Subversion Repositories NedoOS

Rev

Rev 1760 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. SSG_REG = 0xfffd
  2. SSG_DAT = 0xbffd
  3.  
  4.         macro ssg_write_reg chip_n
  5. ;e = register
  6. ;d = value
  7.         ld bc,SSG_REG
  8.         ld a,chip_n+%11111110
  9.         out (c),a
  10.         out (c),e
  11.         ld bc,SSG_DAT
  12.         out (c),d
  13.         endm
  14.  
  15. ssgwritemusiconlychip0
  16.         ld a,e
  17.         cp 0x0e
  18.         ret nc
  19. ssgwrite0
  20. ;e = register
  21. ;d = value
  22.         ssg_write_reg 0
  23.         ret
  24.  
  25. ssgwritemusiconlychip1
  26.         ld a,e
  27.         cp 0x0e
  28.         ret nc
  29. ssgwrite1
  30. ;e = register
  31. ;d = value
  32.         ssg_write_reg 1
  33.         ret
  34.  
  35. ssginit
  36.         ret
  37.  
  38.         macro ssg_write_regs
  39. ;e = base register
  40. ;d = value
  41. ;l = count
  42. .loop
  43.         call ssgwrite0
  44.         call ssgwrite1
  45.         inc e
  46.         dec l
  47.         jr nz,.loop
  48.         endm
  49.  
  50. ssgmute
  51.         ld l,3
  52.         ld de,8
  53.         ssg_write_regs
  54.         ld l,14
  55.         ld de,0
  56.         ssg_write_regs
  57.         ret
  58.