0x75, 0x8c, 0xb0, 0x69, 0x8c, 0x75, 0x69, 0x58
};
+u8 mod3hi, mod3lo;
+void mod3(void) {
+ acc = (mod3hi<<8|mod3lo) % 3;
+}
+
void g(void){
u8 notes_ix = acc & 0x7;
if(3&i2)
AND (acc, 3)
ADD (sample, acc)
- { u8 tmp2 = (i2<<5|i1>>3)%3;//TODO
- MOV (acc, tmp2)
+ mod3hi = i2>>3;
+ mod3lo = i2<<5|i1>>3;
+ mod3();
ADD (acc, n)
CALL (g)
- } //tmp2
SR (acc)
SR (acc)
MOV (tmp_1, acc) // acc saved in tmp_1; fresh acc
MOV (acc, n)
ADD (acc, 8)
- { u8 tmp3 = (i2<<6|i1>>2)%3;
+ { u8 tmp3 = ((i2<<6|i1>>2)&0x1fff)%3;
SUB (acc, tmp3)
} // tmp3
CALL (g)