Annotation of generator/main/gensoundi.c, revision 1.1.1.1

1.1       root        1: /* Generator is (c) James Ponder, 1997-2001 http://www.squish.net/generator/ */
                      2: 
                      3: #include "generator.h"
                      4: #include "gensoundi.h"
                      5: 
                      6: #ifdef JFM
                      7: #  include "jfm.h"
                      8: #else
                      9: #  include "support.h"
                     10: #  include "fm.h"
                     11: #endif
                     12: 
                     13: uint8 soundi_regs1[256];
                     14: uint8 soundi_regs2[256];
                     15: uint8 soundi_address1 = 0;
                     16: uint8 soundi_address2 = 0;
                     17: uint8 soundi_keys[8];
                     18: 
                     19: /*** soundi_ym2612fetch - fetch byte from ym2612 chip ***/
                     20: 
                     21: uint8 soundi_ym2612fetch(uint8 addr)
                     22: {
                     23: #ifdef JFM
                     24:   return jfm_read(soundi_ctx, addr);
                     25: #else
                     26:   return YM2612Read(0, addr);
                     27: #endif
                     28: }
                     29: 
                     30: /*** soundi_ym2612store - store a byte to the ym2612 chip ***/
                     31: 
                     32: void soundi_ym2612store(uint8 addr, uint8 data)
                     33: {
                     34:   switch (addr) {
                     35:   case 0:
                     36:     soundi_address1 = data;
                     37:     break;
                     38:   case 1:
                     39:     if (soundi_address1 == 0x28 && (data & 3) != 3)
                     40:       soundi_keys[data & 7] = data >> 4;
                     41:     if (soundi_address1 == 0x2a) {
                     42:       soundi_keys[7] = 0;
                     43:     }
                     44:     if (soundi_address1 == 0x2b)
                     45:       soundi_keys[7] = data & 0x80 ? 0xf : 0;
                     46:     soundi_regs1[soundi_address1] = data;
                     47:     break;
                     48:   case 2:
                     49:     soundi_address2 = data;
                     50:     break;
                     51:   case 3:
                     52:     soundi_regs2[soundi_address2] = data;
                     53:     break;
                     54:   }
                     55: #ifdef JFM
                     56:   jfm_write(soundi_ctx, addr, data);
                     57: #else
                     58:   YM2612Write(0, addr, data);
                     59: #endif
                     60: }
                     61: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.