Block device peripheral and SBFS file system implemented.
This commit is contained in:
@@ -29,6 +29,13 @@ Instruction instruction_set[] = {
|
||||
{0x13, "BRB"},
|
||||
{0x14, "BRC"},
|
||||
{0x15, "BRD"},
|
||||
// The same four conditions the other way round. A quarter of the conditional
|
||||
// branches in the corpus were a branch over an unconditional one before these
|
||||
// existed, each of them needing a label invented only to be jumped past.
|
||||
{0x1A, "BNQ"},
|
||||
{0x1B, "BNA"},
|
||||
{0x1C, "BNB"},
|
||||
{0x1D, "BNC"},
|
||||
{0x17, "CALL"},
|
||||
{0x18, "SWI"},
|
||||
{0x19, "RETI"},
|
||||
|
||||
@@ -335,7 +335,8 @@ static void checkOperands(intermediateElement *intermediateArray, int arraySize,
|
||||
// the branch block takes an address: RET has none, and BRD gets its destination
|
||||
// from a Data Pointer instead of from the program.
|
||||
if (opcode == 0x10 || opcode == 0x11 || opcode == 0x12 ||
|
||||
opcode == 0x13 || opcode == 0x14 || opcode == 0x17) {
|
||||
opcode == 0x13 || opcode == 0x14 || opcode == 0x17 ||
|
||||
opcode == 0x1A || opcode == 0x1B || opcode == 0x1C || opcode == 0x1D) {
|
||||
// Branches and CALL take a two byte address, which only a label can supply.
|
||||
if (nextType != LABEL) problem = "Branch without label.";
|
||||
} else if ((opcode & 0xF0) == 0xD0 || (opcode & 0xF0) == 0xE0) {
|
||||
|
||||
Reference in New Issue
Block a user