From: Tobias Girstmair Date: Thu, 4 Mar 2021 01:31:04 +0000 (+0100) Subject: new version X-Git-Url: https://git.gir.st/Chiptunes-pms150c.git/commitdiff_plain/d17a26fde73fab0e4d5424e6d43002f9608aa051 new version --- diff --git a/bsv.c b/bsv.c index f9a41a7..f892dfc 100644 --- a/bsv.c +++ b/bsv.c @@ -5,6 +5,7 @@ typedef unsigned char u8; u8 i0, i1, i2; //MEM u8 n; //MEM u8 sample; //MEM +u8 tmp_1; //MEM u8 acc; //ACC u8 notes[] = { @@ -41,11 +42,18 @@ void main(void){ AND (acc, 0x1) MOV (sample, acc) - { u8 tmp = i2<<3 | i1>>5;//TODO - MOV (acc, tmp) + MOV (acc, i2) + SL (acc) + SL (acc) + SL (acc) + XCH (tmp_1) + MOV (acc, i1) + SWAP (acc) + AND (acc, 0xf) + SR (acc) + OR (acc, tmp_1) // tmp_1 done. XOR (acc, n) CALL (g) - } //tmp SR (acc) AND (acc, i2) SR (acc) diff --git a/fakeasm.h b/fakeasm.h index 3b1c404..7ee2afd 100644 --- a/fakeasm.h +++ b/fakeasm.h @@ -14,3 +14,4 @@ int flag_c = 0; #define CALL(addr) addr(); #define XOR(dst, src) dst ^= src; flag_z = (dst==0); #define SUB(dst, src) flag_c = (src > dst); dst -= src; flag_z = (dst==0); +#define XCH(dst) acc ^= dst; dst ^= acc; acc ^= dst;