diff options
Diffstat (limited to 'src/sim86/sim86.mdesk')
| -rw-r--r-- | src/sim86/sim86.mdesk | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/sim86/sim86.mdesk b/src/sim86/sim86.mdesk new file mode 100644 index 0000000..0635110 --- /dev/null +++ b/src/sim86/sim86.mdesk @@ -0,0 +1,32 @@ +@table(name, str) sim86_flags_mapping: +{ + { Carry, "C", } + { Parity, "P", } + { AuxiliaryCarry, "A", } + { Zero, "Z", } + { Sign, "S", } + { Overflow, "O", } + { Interrupt, "I", } + { Direction, "D", } + { Trap, "T", } +} + +@table_gen_enum_flags(sim86_flags_mapping, name) flags_8086 +@table_gen_data(sim86_flags_mapping, `char *`, str) flags_8086_strings + +// TODO: +@table_gen_enum sim86_enum: +{ + @expand(sim86_flags_mapping mapping) + `Sim86_$(mapping.name),` + `Sim86_Count` +} + +@table(mnemonic, encoding, clocks, name) instructions_table: +{ + { mov, [ B:100010, D, W, MOD, REG, RM ], 4, "Register/memory to/from register" } + { mov, [ B:1100011, W, MOD, B:000, RM, ImpD:0, DATA, DATA_IF_W ], 5, "Immediate to register/memory" } + { mov, [ B:1011, W, REG, ImpD:1 ], 3, "Immediate to register" } +} + + |
