diff --git a/src/hence/emulator.cr b/src/hence/emulator.cr index 5fa5a4e..003797c 100644 --- a/src/hence/emulator.cr +++ b/src/hence/emulator.cr @@ -184,13 +184,13 @@ module Hence when 0x08 # shr @reg_tmp = @reg_a >> @reg_b when 0x09 # add - @reg_tmp = @reg_a &+ @reg_b &+ (@reg_s & 0b00000001_u8) + @reg_tmp = @reg_a &+ @reg_b @reg_s &= 0b11111110_u8 if @reg_tmp < @reg_a @reg_s |= 0b00000001_u8 end when 0x0a # sub - @reg_tmp = @reg_a &- @reg_b &- (@reg_s & 0b00000001_u8) + @reg_tmp = @reg_a &- @reg_b @reg_s &= 0b11111110_u8 if @reg_tmp > @reg_a @reg_s |= 0b00000001_u8 diff --git a/src/hence/firmware/firmwares/default.yml b/src/hence/firmware/firmwares/default.yml index 51d1cf0..7652970 100644 --- a/src/hence/firmware/firmwares/default.yml +++ b/src/hence/firmware/firmwares/default.yml @@ -104,20 +104,6 @@ sections: tmpl 0xb alu 0x01 push - - name: clc - description: Clears carry flag - opcode: null - arg: null - stack: - input: [] - output: [] - microcode: | - tmpsr 0xd - tmpl 0xa - tmps 0b11111110 - tmpl 0xb - alu 0x01 - tmpl 0xd - name: stack-manipulation description: Stack manipulation opcodes: