From 6494a9420c3ab0022858baf449944c755fbdb49f Mon Sep 17 00:00:00 2001 From: Tobias Girstmair Date: Thu, 4 Mar 2021 15:59:34 +0100 Subject: [PATCH] new version --- bsv.c | 51 +++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/bsv.c b/bsv.c index 585c431..6137c99 100644 --- a/bsv.c +++ b/bsv.c @@ -14,35 +14,38 @@ u8 notes[] = { }; u8 mod3hi, mod3lo; //MEM +//todo: can mod3hi be aliased to tmp_1? void mod3(void) { - MOV(acc,mod3hi) - ADD(mod3lo,acc) // mod3lo = hi+lo - CLEAR(acc) - ADDC0(acc) // mod3hi, 1bit - SWAP(acc) - MOV(mod3hi, acc) + MOV (acc,mod3hi) + ADD (mod3lo,acc) // mod3lo = hi+lo + CLEAR (acc) + ADDC0 (acc) // mod3hi, 1bit + SWAP (acc) + MOV (mod3hi, acc) - MOV(acc, mod3lo) - SWAP(acc) - AND(acc, 0xf) // (mod3lo>>4) - XCH(mod3lo) // acc=mod3lo, mod3lo=mod3lo>>4 - AND(acc, 0xF) // acc=mod3lo&0xf, mod3lo=mod3lo>>4 - ADD(acc, mod3lo) // (mod3lo & 0xF) - ADD(acc, mod3hi) - MOV(mod3lo, acc) + MOV (acc, mod3lo) + SWAP (acc) + AND (acc, 0xf) // (mod3lo>>4) + XCH (mod3lo) // acc=mod3lo, mod3lo=mod3lo>>4 + AND (acc, 0xF) // acc=mod3lo&0xf, mod3lo=mod3lo>>4 + ADD (acc, mod3lo) // (mod3lo & 0xF) + ADD (acc, mod3hi) + MOV (mod3lo, acc) - AND(acc, 0x3) // acc = (mod3lo & 0x3) - SR(mod3lo) - SR(mod3lo) // (mod3lo >> 2) - ADD(acc, mod3lo) - MOV(mod3lo, acc) + AND (acc, 0x3) // acc = (mod3lo & 0x3) + SR (mod3lo) + SR (mod3lo) // (mod3lo >> 2) + ADD (acc, mod3lo) + MOV (mod3lo, acc) - AND(acc, 0x3) // acc = (mod3lo & 0x3) - SR(mod3lo) - SR(mod3lo) // (mod3lo >> 2) - ADD(acc, mod3lo) + AND (acc, 0x3) // acc = (mod3lo & 0x3) + SR (mod3lo) + SR (mod3lo) // (mod3lo >> 2) + ADD (acc, mod3lo) - if (acc > 2) acc = acc - 3; + if (acc > 2) { + SUB (acc,3) + } } void g(void){ -- 2.39.3