ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
sidz.c File Reference
#include "../ugbc.h"

Go to the source code of this file.

Macros

#define WAVEFORM_TRIANGLE   0x10
#define WAVEFORM_SAW   0x20
#define WAVEFORM_RECTANGLE   0x40
#define WAVEFORM_NOISE   0x80
#define PROGRAM_FREQUENCY(c, f)
#define PROGRAM_FREQUENCY_V(c, f)
#define PROGRAM_FREQUENCY_SV(c, f)
#define PROGRAM_PITCH(c, f)
#define PROGRAM_PITCH_V(c, f)
#define PROGRAM_PITCH_SV(c, f)
#define PROGRAM_PULSE(c, p)
#define PROGRAM_PULSE_V(c, p)
#define PROGRAM_PULSE_SV(c, p)
#define PROGRAM_WAVEFORM(c, w)
#define PROGRAM_WAVEFORM_V(c, w, p)
#define PROGRAM_WAVEFORM_VV(c, w, p)
#define PROGRAM_WAVEFORM_SV(c, w)
#define PROGRAM_ATTACK_DECAY(c, a, d)
#define PROGRAM_ATTACK_DECAY_V(c, a, d)
#define PROGRAM_ATTACK_DECAY_SV(c, a, d)
#define PROGRAM_SUSTAIN_RELEASE(c, s, r)
#define PROGRAM_SUSTAIN_RELEASE_V(c, s, r)
#define PROGRAM_SUSTAIN_RELEASE_SV(c, s, r)
#define STOP_FREQUENCY(c)
#define STOP_FREQUENCY_V(c)
#define STOP_FREQUENCY_SV(c)
#define PROGRAM_DURATION(c, d)
#define WAIT_DURATION(c)

Functions

void sidz_initialization (Environment *_environment)
void sidz_finalization (Environment *_environment)
void sidz_start (Environment *_environment, int _channels)
void sidz_set_volume (Environment *_environment, int _channels, int _volume)
void sidz_attack_decay_sustain_release (Environment *_environment, char *_voice, char *_attack, char *_decay, char *_sustain, char *_release)
void sidz_wave (Environment *_environment, char *_voice, char *_bits, char *_pulse)
void sidz_set_program (Environment *_environment, int _channels, int _program)
void sidz_set_parameter (Environment *_environment, int _channels, int _parameter, int _value)
void sidz_set_frequency (Environment *_environment, int _channels, int _frequency)
void sidz_set_pitch (Environment *_environment, int _channels, int _pitch)
void sidz_set_note (Environment *_environment, int _channels, int _note)
void sidz_stop (Environment *_environment, int _channels)
void sidz_start_var (Environment *_environment, char *_channels)
void sidz_set_volume_vars (Environment *_environment, char *_channels, char *_volume)
void sidz_set_volume_semi_var (Environment *_environment, char *_channel, int _volume)
void sidz_set_program_semi_var (Environment *_environment, char *_channels, int _program)
void sidz_set_frequency_vars (Environment *_environment, char *_channels, char *_frequency)
void sidz_set_pitch_vars (Environment *_environment, char *_channels, char *_pitch)
void sidz_set_note_vars (Environment *_environment, char *_channels, char *_note)
void sidz_stop_vars (Environment *_environment, char *_channels)
void sidz_music (Environment *_environment, char *_music, int _size, int _loop)
void sidz_set_duration (Environment *_environment, int _channels, int _duration)
void sidz_wait_duration (Environment *_environment, int _channels)
void sidz_set_duration_vars (Environment *_environment, char *_channels, char *_duration)
void sidz_wait_duration_vars (Environment *_environment, char *_channels)
void sidz_player_init (Environment *_environment, int _init_address)
void sidz_player_play (Environment *_environment, int _play_address)

Macro Definition Documentation

◆ PROGRAM_ATTACK_DECAY

#define PROGRAM_ATTACK_DECAY ( c,
a,
d )
Value:
outline1("LD C, $%2.2x", ( a & 0x0f ) ); \
outline1("LD B, $%2.2x", ( d & 0x0f ) ); \
if ( ( c & 0x01 ) ) \
outline0("CALL SIDZPROGAD0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL SIDZPROGAD1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL SIDZPROGAD2" );
#define outline1(s, a)
Definition ugbc.h:4253

Definition at line 222 of file sidz.c.

◆ PROGRAM_ATTACK_DECAY_SV

#define PROGRAM_ATTACK_DECAY_SV ( c,
a,
d )
Value:
outline1("LD C, $%2.2x", ( a & 0x0f ) ); \
outline1("LD B, $%2.2x", ( d & 0x0f ) ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGAD" );

Definition at line 244 of file sidz.c.

◆ PROGRAM_ATTACK_DECAY_V

#define PROGRAM_ATTACK_DECAY_V ( c,
a,
d )
Value:
outline1("LD A, (%s)", d ); \
outline0("LD B, A" ); \
outline1("LD A, (%s)", a ); \
outline0("LD C, A" ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGAD" );

Definition at line 232 of file sidz.c.

◆ PROGRAM_DURATION

#define PROGRAM_DURATION ( c,
d )
Value:
outline1("LD C, $%2.2x", ( d & 0xff ) ); \
if ( ( c & 0x01 ) ) \
outline0("CALL SIDZSETDURATION0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL SIDZSETDURATION1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL SIDZSETDURATION2" ); \

Definition at line 310 of file sidz.c.

◆ PROGRAM_FREQUENCY

#define PROGRAM_FREQUENCY ( c,
f )
Value:
outline1("LD C, $%2.2x", ( ( ( f * 0xffff ) / 4000 ) & 0xff ) ); \
outline1("LD B, $%2.2x", ( ( ( ( f * 0xffff ) / 4000 ) >> 8 ) & 0xff ) ); \
if ( ( c & 0x01 ) ) \
outline0("CALL SIDZPROGFREQ0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL SIDZPROGFREQ1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL SIDZPROGFREQ2" );

Definition at line 97 of file sidz.c.

◆ PROGRAM_FREQUENCY_SV

#define PROGRAM_FREQUENCY_SV ( c,
f )
Value:
outline1("LD C, $%2.2x", ( ( ( f * 0xffff ) / 4000 ) & 0xff ) ); \
outline1("LD B, $%2.2x", ( ( ( ( f * 0xffff ) / 4000 ) >> 8 ) & 0xff ) ); \
outline1("LD A, (%s)", ( c == NULL ? "$7" : c ) ); \
outline0("CALL SIDZFREQ2" );

Definition at line 119 of file sidz.c.

◆ PROGRAM_FREQUENCY_V

#define PROGRAM_FREQUENCY_V ( c,
f )
Value:
outline1("LD A, (%s)", f ); \
outline0("LD C, A" ); \
outline1("LD A, (%s)", address_displacement(_environment, f, "1") ); \
outline0("LD B, A" ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZFREQ" );
char * address_displacement(Environment *_environment, char *_address, char *_displacement)

Definition at line 107 of file sidz.c.

◆ PROGRAM_PITCH

#define PROGRAM_PITCH ( c,
f )
Value:
outline1("LD BC, $%4.4x", ( f & 0xffff ) ); \
if ( ( c & 0x01 ) ) \
outline0("CALL SIDZPROGFREQ0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL SIDZPROGFREQ1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL SIDZPROGFREQ2" );

Definition at line 125 of file sidz.c.

◆ PROGRAM_PITCH_SV

#define PROGRAM_PITCH_SV ( c,
f )
Value:
outline1("LD BC, $%4.4x", ( f & 0xffff ) ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGFREQ" );

Definition at line 144 of file sidz.c.

◆ PROGRAM_PITCH_V

#define PROGRAM_PITCH_V ( c,
f )
Value:
outline1("LD HL, (%s)", f ); \
outline0("LD BC, HL" ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGFREQ" );

Definition at line 134 of file sidz.c.

◆ PROGRAM_PULSE

#define PROGRAM_PULSE ( c,
p )
Value:
outline1("LD C, $%2.2x", ( p & 0xff ) ); \
outline1("LD B, $%2.2x", ( ( p >> 8 ) & 0xff ) ); \
if ( ( c & 0x01 ) ) \
outline0("CALL SIDZPROGPULSE0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL SIDZPROGPULSE1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL SIDZPROGPULSE2" );

Definition at line 153 of file sidz.c.

◆ PROGRAM_PULSE_SV

#define PROGRAM_PULSE_SV ( c,
p )
Value:
outline1("LD C, $%2.2x", ( p & 0xff ) ); \
outline1("LD B, $%2.2x", ( ( p >> 8 ) & 0xff ) ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGPULSE" );

Definition at line 175 of file sidz.c.

◆ PROGRAM_PULSE_V

#define PROGRAM_PULSE_V ( c,
p )
Value:
outline1("LD A, (%s)", address_displacement(_environment, p, "1") ); \
outline0("LD B, A" ); \
outline1("LD A, (%s)", p ); \
outline0("LD C, A" ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGPULSE" );

Definition at line 163 of file sidz.c.

◆ PROGRAM_SUSTAIN_RELEASE

#define PROGRAM_SUSTAIN_RELEASE ( c,
s,
r )
Value:
outline1("LD C, $%2.2x", ( s & 0x0f ) ); \
outline1("LD B, $%2.2x", ( r & 0x0f ) ); \
if ( ( c & 0x01 ) ) \
outline0("CALL SIDZPROGSR0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL SIDZPROGSR1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL SIDZPROGSR2" );

Definition at line 254 of file sidz.c.

◆ PROGRAM_SUSTAIN_RELEASE_SV

#define PROGRAM_SUSTAIN_RELEASE_SV ( c,
s,
r )
Value:
outline1("LD C, $%2.2x", ( s & 0x0f ) ); \
outline1("LD B, $%2.2x", ( r & 0x0f ) ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGSR" );

Definition at line 276 of file sidz.c.

◆ PROGRAM_SUSTAIN_RELEASE_V

#define PROGRAM_SUSTAIN_RELEASE_V ( c,
s,
r )
Value:
outline1("LD A, (%s)", r ); \
outline0("LD B, A" ); \
outline1("LD A, (%s)", s ); \
outline0("LD C, A" ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGSR" );

Definition at line 264 of file sidz.c.

◆ PROGRAM_WAVEFORM

#define PROGRAM_WAVEFORM ( c,
w )
Value:
outline1("LD C, $%2.2x", w ); \
if ( ( c & 0x01 ) ) \
outline0("CALL SIDZPROGCTR0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL SIDZPROGCTR1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL SIDZPROGCTR2" );

Definition at line 185 of file sidz.c.

◆ PROGRAM_WAVEFORM_SV

#define PROGRAM_WAVEFORM_SV ( c,
w )
Value:
outline1("LD C, $%2.2x", w ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGCTR" );

Definition at line 213 of file sidz.c.

◆ PROGRAM_WAVEFORM_V

#define PROGRAM_WAVEFORM_V ( c,
w,
p )
Value:
outline1("LD C, $%2.2x", w ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGCTR" );

Definition at line 194 of file sidz.c.

◆ PROGRAM_WAVEFORM_VV

#define PROGRAM_WAVEFORM_VV ( c,
w,
p )
Value:
outline1("LD A, (%s)", w ); \
outline0("LD C, A" ); \
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZPROGCTR" );

Definition at line 203 of file sidz.c.

◆ STOP_FREQUENCY

#define STOP_FREQUENCY ( c)
Value:
if ( ( c & 0x01 ) ) \
outline0("CALL SIDZSTOP0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL SIDZSTOP1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL SIDZSTOP2" );

Definition at line 286 of file sidz.c.

◆ STOP_FREQUENCY_SV

#define STOP_FREQUENCY_SV ( c)
Value:
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZSTOP" );

Definition at line 302 of file sidz.c.

◆ STOP_FREQUENCY_V

#define STOP_FREQUENCY_V ( c)
Value:
if ( c == NULL ) { \
outline0("LD A, $7"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL SIDZSTOP" );

Definition at line 294 of file sidz.c.

◆ WAIT_DURATION

#define WAIT_DURATION ( c)
Value:
if ( ( c & 0x01 ) ) \
outline0("CALL SIDZWAITDURATION0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL SIDZWAITDURATION1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL SIDZWAITDURATION2" ); \

Definition at line 319 of file sidz.c.

◆ WAVEFORM_NOISE

#define WAVEFORM_NOISE   0x80

Definition at line 95 of file sidz.c.

◆ WAVEFORM_RECTANGLE

#define WAVEFORM_RECTANGLE   0x40

Definition at line 94 of file sidz.c.

◆ WAVEFORM_SAW

#define WAVEFORM_SAW   0x20

Definition at line 93 of file sidz.c.

◆ WAVEFORM_TRIANGLE

#define WAVEFORM_TRIANGLE   0x10

Definition at line 92 of file sidz.c.

Function Documentation

◆ sidz_attack_decay_sustain_release()

void sidz_attack_decay_sustain_release ( Environment * _environment,
char * _voice,
char * _attack,
char * _decay,
char * _sustain,
char * _release )

Definition at line 327 of file sidz.c.

◆ sidz_finalization()

void sidz_finalization ( Environment * _environment)

Definition at line 56 of file sidz.c.

◆ sidz_initialization()

void sidz_initialization ( Environment * _environment)

Definition at line 50 of file sidz.c.

◆ sidz_music()

void sidz_music ( Environment * _environment,
char * _music,
int _size,
int _loop )

Definition at line 889 of file sidz.c.

◆ sidz_player_init()

void sidz_player_init ( Environment * _environment,
int _init_address )

Definition at line 963 of file sidz.c.

◆ sidz_player_play()

void sidz_player_play ( Environment * _environment,
int _play_address )

Definition at line 973 of file sidz.c.

◆ sidz_set_duration()

void sidz_set_duration ( Environment * _environment,
int _channels,
int _duration )

Definition at line 909 of file sidz.c.

◆ sidz_set_duration_vars()

void sidz_set_duration_vars ( Environment * _environment,
char * _channels,
char * _duration )

Definition at line 927 of file sidz.c.

◆ sidz_set_frequency()

void sidz_set_frequency ( Environment * _environment,
int _channels,
int _frequency )

Definition at line 536 of file sidz.c.

◆ sidz_set_frequency_vars()

void sidz_set_frequency_vars ( Environment * _environment,
char * _channels,
char * _frequency )

Definition at line 810 of file sidz.c.

◆ sidz_set_note()

void sidz_set_note ( Environment * _environment,
int _channels,
int _note )

Definition at line 554 of file sidz.c.

◆ sidz_set_note_vars()

void sidz_set_note_vars ( Environment * _environment,
char * _channels,
char * _note )

Definition at line 846 of file sidz.c.

◆ sidz_set_parameter()

void sidz_set_parameter ( Environment * _environment,
int _channels,
int _parameter,
int _value )

Definition at line 532 of file sidz.c.

◆ sidz_set_pitch()

void sidz_set_pitch ( Environment * _environment,
int _channels,
int _pitch )

Definition at line 545 of file sidz.c.

◆ sidz_set_pitch_vars()

void sidz_set_pitch_vars ( Environment * _environment,
char * _channels,
char * _pitch )

Definition at line 829 of file sidz.c.

◆ sidz_set_program()

void sidz_set_program ( Environment * _environment,
int _channels,
int _program )

Definition at line 344 of file sidz.c.

◆ sidz_set_program_semi_var()

void sidz_set_program_semi_var ( Environment * _environment,
char * _channels,
int _program )

Definition at line 608 of file sidz.c.

◆ sidz_set_volume()

void sidz_set_volume ( Environment * _environment,
int _channels,
int _volume )

Definition at line 82 of file sidz.c.

◆ sidz_set_volume_semi_var()

void sidz_set_volume_semi_var ( Environment * _environment,
char * _channel,
int _volume )

Definition at line 598 of file sidz.c.

◆ sidz_set_volume_vars()

void sidz_set_volume_vars ( Environment * _environment,
char * _channels,
char * _volume )

Definition at line 583 of file sidz.c.

◆ sidz_start()

void sidz_start ( Environment * _environment,
int _channels )

Definition at line 65 of file sidz.c.

◆ sidz_start_var()

void sidz_start_var ( Environment * _environment,
char * _channels )

Definition at line 569 of file sidz.c.

◆ sidz_stop()

void sidz_stop ( Environment * _environment,
int _channels )

Definition at line 560 of file sidz.c.

◆ sidz_stop_vars()

void sidz_stop_vars ( Environment * _environment,
char * _channels )

Definition at line 875 of file sidz.c.

◆ sidz_wait_duration()

void sidz_wait_duration ( Environment * _environment,
int _channels )

Definition at line 918 of file sidz.c.

◆ sidz_wait_duration_vars()

void sidz_wait_duration_vars ( Environment * _environment,
char * _channels )

Definition at line 948 of file sidz.c.

◆ sidz_wave()

void sidz_wave ( Environment * _environment,
char * _voice,
char * _bits,
char * _pulse )

Definition at line 334 of file sidz.c.