This page describes the additional instructions of the CDP1805 which is the successor of the CDP1804.
This info is also available online on the Emma 02 site.
xx | 8 bit value |
xxxx | 16 bit value |
RN | Register number N (N = 0 to F), RN can also be represented as N in all commands |
RX | Stack or data pointer register |
RP | Program counter register |
RN.0, RX.0 or RP.0 | Lower order byte or RN, RX or RP |
RN.1, RX.1 or RP.1 | Higher order byte or RN, RX or RP |
M(RN)->D; RN+1->RN | This notation means: The memory byte pointed to by RN is loaded into D, and RN is incremented by 1. |
INSTRUCTION | MNEMONIC | OP CODE | OPERATION |
REGISTER OPERATIONS | |||
DECREMENT REG N AND LONG BRANCH IF NOT EQUAL 0 | DBNZ R1,xxxx | 682N | RN-1->RN; IF RN NOT 0, M(RP)->RP.1, M(RP+1)->RP.0, ELSE RP+2->RP |
ARITHMETIC OPERATIONS | |||
DECIMAL ADD | DADD | 68F4 | M(RX)+D->DF, D; DECIMAL ADJUST->DF, D |
DECIMAL ADD IMMEDIATE | DADI xx | 68FC | M(RP)+D->DF, D; RP+1->RP; DECIMAL ADJUST->DF, D |
DECIMAL ADD WITH CARRY | DADC | 6874 | M(RX)+D+DF->DF, D; DECIMAL ADJUST->DF, D |
DECIMAL ADD WITH CARRY IMMEDIATE | DACI xx | 687C | M(RP)+D+DF->DF, D; RP+1->RP; DECIMAL ADJUST->DF, D |
DECIMAL SUBTRACT MEMORY | DSM | 68F7 | D-M(RX)->DF, D; DECIMAL ADJUST->DF, D |
DECIMAL SUBTRACT MEMORY IMMEDIATE | DSMI xx | 68FF | D-M(RP)->DF, D; RP+1->RP; DECIMAL ADJUST->DF, D |
DECIMAL SUBTRACT MEMORY WITH BORROW | DSMB | 6877 | D-M(RX)-(NOT DF)->DF, D; DECIMAL ADJUST->DF, D |
DECIMAL SUBTRACT WITH BORROW IMMEDIATE | DSBI xx | 687F | D-M(RP)-(NOT DF)->DF, D; RP+1->RP; DECIMAL ADJUST->DF, D |
INTERRUPT CONTROL | |||
SAVE T, D, DF | DSAV | 6876 | RX-1->RX; T->M(RX); RX-1->RX; D->M(RX); RX-1->RX; SHIFT D RIGHT WITH CARRY; D->M(RX) |