Well that was a surprisingly small amount of code that pretty much worked perfectly first try. http://shipbrook.net/jeff/sb.html is a terse AdLib reference but it lays out exactly how to perform the necessary delays for writing values and a simple series of register writes for making a noise so you know you've got it right.