+mem_write_indirect(unsigned int address, unsigned char value)
+{
+ if (address > 0x7F) {
+ mem_write8(EXT_MEM_ID, address, value);
+ return;
+ }
+
+ mem_write8(INT_MEM_ID, address, value);
+}
+
+/* Write with a bit addressing mode at BitAddress the new Value */
+void
+mem_write_bit(uint8_t bit_address, uint8_t value)
+{
+ uint8_t byte_address;
+ uint8_t bit_number;
+ unsigned char byte_val, byte_mask;
+
+ mem_convert_bit_address(bit_address, &byte_address, &bit_number);
+
+ byte_mask = ((1 << bit_number) ^ 0xFF);
+ byte_val = mem_read_direct(byte_address) & byte_mask;
+ byte_val += value << bit_number;
+ mem_write_direct(byte_address, byte_val);
+}
+
+void
+mem_sfr_write8(unsigned long address, uint8_t value)