Minden .c, .cpp, .h és .s file forráskód, és a Makefile is.
A forráskóddal kapcsolatban talán említést érdemel még, hogy hogyan lehet az asm lejátszó rutint más programban használni (ha nem is tűnik valószínűnek, hogy lesz ilyen). Ehhez csak az .s kiterjesztésű file-okra van szükség a loader.s kivételével, és a
dave_play rutint kell hívni 50 Hz-es megszakításban. Ez hívja a
midi_port_read változóban tárolt című rutint a bemenet (file vagy port) olvasására, és frissíti az összes DAVE hang regisztert. A DAVE regiszterek írása tulajdonképpen lehetne az elején is, így ugyan nagyobb a késés (ami file lejátszásnál nem probléma), viszont egyenletesebb az időzítés.
Inicialzáláskor a
dave_init hozza létre a frekvencia és egyéb táblázatokat, a
midi_reset pedig a MIDI csatornák állapotát hozza alaphelyzetbe. File lejátszáshoz a következőkre van szükség:
* a burkológörbe adat (envelope.bin) a
midi_pgm_layer2-től kezdődő területre legyen betöltve, a MIDI adat (fejléc nélküli mididata.bin) pedig a
file_buf-ba
* a
midi_port_read a
midi_read_file-ra mutasson (csak file lejátszást tudó programnál ez akár lehet fix cím is, a port olvasó rutin pedig törölhető)
* file pozíció és egyéb változók beállítása:
- midi_file_buf = file_buf
- midi_file_end = file_buf + adat mérete
- midi_file_ptr = file_buf
- midi_delta_time = 0
- midi_prv_status = 0
A csatornaüzeneteket feldolgozó rutinok (pl. midi_note_on) külön is hívhatók 50 Hz-es megszakításban, így például használhatók effektusok lejátszására.