From 1d9b2eb7edaf27b01735c5c23f58eb1afef52c42 Mon Sep 17 00:00:00 2001 From: Tobias Girstmair Date: Thu, 4 Mar 2021 13:44:52 +0100 Subject: [PATCH] new version --- bsv.c | 42 ++++++++++++++---------------------------- fakeasm.h | 1 + 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/bsv.c b/bsv.c index 8bbde09..d584e38 100644 --- a/bsv.c +++ b/bsv.c @@ -98,34 +98,20 @@ void main(void){ MOV (acc, i2) // shift-divide by ten // note: i2 is max 0x78; so acc will <= 12. - i2++; - acc >>= 1; - acc += i2; - - acc >>= 1; - acc += 0; - - acc >>= 1; - acc += 0; - - acc >>= 1; - acc += i2; - - acc >>= 1; - acc += i2; - - acc >>= 1; - acc += 0; - - acc >>= 1; - acc += 0; - - acc >>= 1; - acc += 0; - - acc >>= 1; - i2--; - + INC (i2) + SR (acc) + ADD (acc, i2) + SR (acc) + SR (acc) + SR (acc) + ADD (acc, i2) + SR (acc) + ADD (acc, i2) + SR (acc) + SR (acc) + SR (acc) + SR (acc) + DEC (i2) // end divide by ten AND (acc, tmp_1) // acc restored from tmp_1 AND (acc, 3) diff --git a/fakeasm.h b/fakeasm.h index 5032674..ff13be1 100644 --- a/fakeasm.h +++ b/fakeasm.h @@ -15,3 +15,4 @@ int flag_c = 0; #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; +#define DEC(dst) dst -= 1; flag_c = flag_z = (dst==0); -- 2.39.3