X-Git-Url: https://git.ucc.asn.au/?p=uccvend-snackrom.git;a=blobdiff_plain;f=ROM2%2Fvend.h;h=11c483d14729a3a99966b36de772231a9aec9603;hp=c7650ca5ac2ce665a6db31ceb83c89b555f64800;hb=080c85d87da93ba2472b0c90d17527838d668db2;hpb=27fb8a023fa0572ef4171624781460bc59537d49 diff --git a/ROM2/vend.h b/ROM2/vend.h index c7650ca..11c483d 100644 --- a/ROM2/vend.h +++ b/ROM2/vend.h @@ -13,8 +13,14 @@ extern volatile u8 _##a; \ u8 a; \ extern inline void set_##a(u8 b) { a = b; _##a = b; } \ - extern inline void bset_##a(const u8 m) { bset(&a, m); _##a = a; } \ - extern inline void bclr_##a(const u8 m) { bclr(&a, m); _##a = a; } + extern inline void bset_##a(const u8 m) { \ + bset(&a, m); \ + asm volatile ( "ldab %1\nstab %0\n" \ + : "=m"(_##a) : "m"(a) : "d"); } \ + extern inline void bclr_##a(const u8 m) { \ + bclr(&a, m); \ + asm volatile ( "ldab %1\nstab %0\n" \ + : "=m"(_##a) : "m"(a) : "d"); } buffered_addr(changer_output); buffered_addr(misc_output);