From: Tobias Girstmair Date: Thu, 4 Mar 2021 01:14:32 +0000 (+0100) Subject: new version X-Git-Url: https://git.gir.st/Chiptunes-pms150c.git/commitdiff_plain/42c6050e0f7f814e8bdfac29bd58f1de71c00b75?ds=sidebyside new version --- diff --git a/bsv.c b/bsv.c index 9a3c608..715cdd5 100644 --- a/bsv.c +++ b/bsv.c @@ -83,8 +83,8 @@ void main(void){ putchar(sample<<4); - i0++; - i1 += !i0; - i2 += !i1 && !i0; + INC (i0) + i1 += !i0; // ADDC i1 + i2 += !i1 && !i0; // ADDC i2 } } diff --git a/fakeasm.h b/fakeasm.h index 946be8a..a42a373 100644 --- a/fakeasm.h +++ b/fakeasm.h @@ -1,8 +1,13 @@ +int flag_z = 0; +int flag_c = 0; +//ignoring flag_ov, flag_ac #define MOV(dst, src) dst = src; -#define SL(dst) dst <<= 1; -#define SR(dst) dst >>= 1; -#define SWAP(dst) dst = (dst<<4 | dst>>4); //XXX: only for ACC! -#define AND(dst, src) dst &= src; //xxx: overloaded for acc/mem/imm -#define OR(dst, src) dst |= src; +#define SL(dst) flag_c = (dst&0x80); dst <<= 1; +#define SR(dst) flag_c = (dst&0x01); dst >>= 1; +#define SWAP(dst) dst = (dst<<4 | dst>>4); +#define AND(dst, src) dst &= src; flag_z = (dst==0); +#define OR(dst, src) dst |= src; flag_z = (dst==0); #define CLEAR(dst) dst = 0; -#define ADD(dst, src) dst += src; //xxx: overloaded for acc/mem/imm +#define ADD(dst, src) dst += src; flag_c = (src+dst>0xff); flag_z = (dst==0); +#define INC(dst) dst += 1; flag_c = flag_z = (dst==0); +#define ADDC0(dst) dst += flag_c; flag_c = flag_z = (dst==0);