Little Sound Dj Wiki

The .sav structure for v3 file management.

FILE MANAGEMENT
===================== 
Max number of files = $20

A file is distributed over a number of blocks, each $200 bytes long,
lying in the area between $8200 and $1FFFF

Block address calculator: 

offset = $8000 + $200*block

SRAM

256 8000–80FF: file names ($20*8 bytes)
 32 8100–811F: file versions ($20*1 byte)
 30 8120–813D: empty
  2 813E-813F: SRAM initialization check (set to $6A $6B 'jk' on init)
  1 8140–8140: active file (0-$1F or $FF if none)
191 8141–81FF: block allocation table ($FF=empty, 0-$1F=file)
               (8141 => block 1, 8142 => block 2, ...)

FILE PACK ALGORITHM

$c0 -> $c0, $c0
run length encoding -> $c0, <byte value>, <times>
$e0 -> $e0, $e0
default instr -> $e0, $f1, <times>
default wave -> $e0, $f0, <times>
block switch -> $e0, <block>
end of file -> $e0, $ff
<byte value> -> <byte value>

the default instrument is: $a8,0,0,$ff,0,0,3,0,0,$d0,0,0,0,$f3,0,0

the default wave is: $8e,$cd,$cc,$bb,$aa,$a9,$99,$88,$87,$76,$66,
                     $55,$54,$43,$32,$31