DigiOrganizer cheat sheet

From DigiOrganizer · print · built 2026-08-31

Reference

Cheat sheet#

From s-sidin06-digiorganizer.

Keys: M,M load a sample module (e.g. MODULE/DEMO) · M,L load a 3-voice tune (e.g. MUSIC/DEMO) + its play address · F1 play · S sample menu, L load a sample by name / delete the last one · CTRL+2 sample definitions · SHIFT+A..I global tune speed.

Track (left): pairs pattern, repeats−101 04 = pattern 1 five times, 02 00 = pattern 2 once; $FF restart; $FE stop (orderlist).

Pattern (right): 32 steps; value = sample definition to trigger, 00 = let the previous sample continue, $FF = end early. 01 00 00 02 03 FF.

Sample definition (CTRL+2): nn: start end speed with start/end as address high bytes and speed = the CIA timer A low byte — 01: A7 AE A0 plays $A700–$ADFF; a definition may span several loaded samples (A0 A9 A0 = samples 1–3 in a row).

Making a sample: WAV → 8-bit mono 6 kHz — sox sample16.wav -c1 -b -v .8 -r 6000 sample8.wav (add a low-pass while downsampling) → 4-bit packed "low nibble, high nibble of 2 samples" with the DOS tool S64_ENG by Reiter/Apidya → load in the sample menu.

Your own 4-voice program:

init: JSR $1000   ; the 3-voice tune
      JSR $9000   ; DigiOrganizer
play: JSR $1003
      JSR $9003

Inside: init clears memory, sets CIA #2 timer A ($70) and timer B ($DD0E = $11, $DD0F = $51), enables the timer-B NMI ($DD0D = $82), writes $18 (low-pass, volume 8) to $D418 and points the NMI vector at nmi_null. Three NMI handlers: nmi_sx writes the high nibble (lsr ×4 / ora #$10 / sta $D418), nmi_dx the low nibble (and #$0F / ora #$10), then advances the pointer and compares the page with the sample's end page; nmi_null idles. The IRQ side steps the track/pattern every SPEED = $05 countdown and starts a sample by copying its start page, end page and speed into the NMI code. Layout: code $9000, track $9200, digiSound table $9300 (4 bytes per definition), patterns $9500 (32 bytes each), samples $A000 (sid-player-routine).

Techniques

Multisampling and drum-kit instruments › C64: Digi-Organizer #

The 1980s C64 equivalent, from the other direction: sample definitions are (start page, end page, rate) triples into one block of memory, so a single "instrument" can chain several raw blocks — a poor man's multisample of drum hits, with the map living in the sample table rather than in a note column (source: s-sidin06-digiorganizer).