Compare commits
2 commits
790cd1a453
...
db5aeb333c
Author | SHA1 | Date | |
---|---|---|---|
db5aeb333c | |||
54bd10f913 |
2 changed files with 16 additions and 2 deletions
|
@ -184,13 +184,13 @@ module Hence
|
||||||
when 0x08 # shr
|
when 0x08 # shr
|
||||||
@reg_tmp = @reg_a >> @reg_b
|
@reg_tmp = @reg_a >> @reg_b
|
||||||
when 0x09 # add
|
when 0x09 # add
|
||||||
@reg_tmp = @reg_a &+ @reg_b
|
@reg_tmp = @reg_a &+ @reg_b &+ (@reg_s & 0b00000001_u8)
|
||||||
@reg_s &= 0b11111110_u8
|
@reg_s &= 0b11111110_u8
|
||||||
if @reg_tmp < @reg_a
|
if @reg_tmp < @reg_a
|
||||||
@reg_s |= 0b00000001_u8
|
@reg_s |= 0b00000001_u8
|
||||||
end
|
end
|
||||||
when 0x0a # sub
|
when 0x0a # sub
|
||||||
@reg_tmp = @reg_a &- @reg_b
|
@reg_tmp = @reg_a &- @reg_b &- (@reg_s & 0b00000001_u8)
|
||||||
@reg_s &= 0b11111110_u8
|
@reg_s &= 0b11111110_u8
|
||||||
if @reg_tmp > @reg_a
|
if @reg_tmp > @reg_a
|
||||||
@reg_s |= 0b00000001_u8
|
@reg_s |= 0b00000001_u8
|
||||||
|
|
|
@ -104,6 +104,20 @@ sections:
|
||||||
tmpl 0xb
|
tmpl 0xb
|
||||||
alu 0x01
|
alu 0x01
|
||||||
push
|
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
|
- name: stack-manipulation
|
||||||
description: Stack manipulation
|
description: Stack manipulation
|
||||||
opcodes:
|
opcodes:
|
||||||
|
|
Loading…
Reference in a new issue