CDP1805 Syntax

Information

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.

Definitions

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.

Syntax

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)