Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. opl4_reset:
  2. /* Set to OPL4 mode */
  3.         ld de,0x0305
  4.         call     opl4_write_fm_register_array_2
  5.        
  6. /* Reset FM registers */
  7.         ld de,0x0001
  8.         call opl4_write_fm_register_array_1
  9.         ld de,0x0002
  10.         call opl4_write_fm_register_array_1
  11.         ld de,0x0003
  12.         call opl4_write_fm_register_array_1
  13.         ld de,0x0004
  14.         call opl4_write_fm_register_array_1
  15.         ld de,0x0008
  16.         call opl4_write_fm_register_array_1    
  17.        
  18.         ld de,0x0001
  19.         call opl4_write_fm_register_array_2
  20.         ld de,0x0002
  21.         call opl4_write_fm_register_array_2
  22.         ld de,0x0003
  23.         call opl4_write_fm_register_array_2
  24.         ld de,0x0004
  25.         call opl4_write_fm_register_array_2
  26.         ld de,0x0008
  27.         call opl4_write_fm_register_array_2    
  28.  
  29.  
  30.    
  31.         ld e,0x14
  32. .rloop
  33.         push de
  34.         ld  d,0
  35.        
  36.         ld a,e
  37.         cp 0x60
  38.         jr c,.rlcont1
  39.         cp 0xa0
  40.         jr nc,.rlcont1                
  41.         ld d,0xff
  42. .rlcont1      
  43.         push de
  44.         call opl4_write_fm_register_array_1
  45.         pop de
  46.         call opl4_write_fm_register_array_2        
  47.         pop de
  48.         inc e
  49.         ld a,e
  50.         cp 0xf6
  51.         jr c,.rloop
  52.    
  53.    
  54.  
  55. /* Set mix control */
  56.         ld de,0x1bf8
  57.         call opl4writewave
  58.         ld de,0x00f9
  59.         call opl4writewave
  60.        
  61.        
  62. /* Reset WAVE registers */
  63.         ld de,0x4068
  64.         ld b,OPL4MAXWAVECHANNELS
  65.         opl4_write_wave_regs
  66.        
  67.        
  68. /* Reset timer flags */
  69.         ld de,0x8004
  70.         call opl4_write_fm_register_array_1
  71.  
  72.  
  73.  
  74.  
  75.         ld de,0xff03
  76.         call opl4writefm1
  77.         ld de,0x4204
  78.         call opl4writefm1
  79.         ld de,0x8004
  80.         jp opl4writefm1
  81.  
  82. opl4_write_fm_register_array_1:
  83. .to_fm
  84.         jp opl4writefm1
  85.        
  86. opl4_write_fm_register_array_2:
  87.         jp opl4writefm2