Wombat1
 Punctuation preferences
CharacterUse
!symbol
#symbol
$symbol
%symbol
&symbol
^symbol
_symbol
`symbol
*symbol
?symbol
@symbol
~symbol
+symbol
-symbol
(token
)token
,token
/token
=token
[token
\token
]token
{token
|token
}token
.pseudo
:label
;comment

 Registers
NameWidthInitial ValueRead Only
pc120false
acc160false
ir160false
mar120false
mdr160false
status30false

 Register Arrays
NameLengthWidthRegisters
(none)

 Condition Bits
NameRegisterBitHalt
halt-bitstatus0true

 RAMs
NameLengthBits per Cell
Main1288

 Indexing Order of Bits in Registers
From left to right

 Set
NameRegisterStart BitNumber of BitsValue
(none)

 Test
NameRegisterStart BitNumber of BitsComparisonValueOmission
if(acc!=0)skip-1acc016NE01
if(acc>=0)skip-1acc016GE01

 Increment
NameRegisterOverflow BitCarry BitDelta
Inc2-pcpchalt-bit(none)2

 Shift
NameSourceDestinationTypeDirectionDistance
(none)

 Logical
NameTypeSource1Source2Destination
(none)

 Arithmetic
NameTypeSource1Source2DestinationOverflow BitCarry Bit
acc+mdr->accADDaccmdracchalt-bit(none)
acc-mdr->accSUBTRACTaccmdracchalt-bit(none)
acc*mdr->accMULTIPLYaccmdracchalt-bit(none)
acc/mdr->accDIVIDEaccmdracchalt-bit(none)

 Branch
NameAmount
(none)

 TransferRtoR
NameSourceSrc Start BitDestinationDest Start BitNumber of Bits
pc->marpc0mar012
mar->pcmar0pc012
ir(4-15)->marir4mar012
mdr->irmdr0ir016
mdr->accmdr0acc016
acc->mdracc0mdr016
ir(4-15)->pcir4pc012

 TransferRtoA
NameSourceSrc Start BitDestinationDest Start BitNumber of BitsIndexIndex Start BitIndex Number of Bits
(none)

 TransferAtoR
NameSourceSrc Start BitDestinationDest Start BitNumber of BitsIndexIndex Start BitIndex Number of Bits
(none)

 Decode
NameIR
decode-irir

 Set Condition Bit
NameBitValue
set-halt-bithalt-bit1

 IO
NameDirectionTypeBufferConnection
input-int->accinputintegeracc[Console]
output-acc->intoutputintegeracc[Console]

 Memory Access
NameDirectionMemoryDataAddress
Main[mar]->mdrreadMainmdrmar
mdr->Main[mar]writeMainmdrmar

 EQUs
NameValue
(none)

 Fetch Sequence
Microinstructions
pc->mar
Main[mar]->mdr
mdr->ir
Inc2-pc
decode-ir

 Instruction Format Fields
NameTypeNumber of BitsRelativitySignedDefault ValueValues
addrrequired12absolutefalse0<any>
unusedignored12absolutetrue0<any>
oprequired4absolutefalse0<any>

 Machine Instructions
NameOpcode (hex)Instruction FormatAssembly FormatMicroinstructions
stop0
opunused
op
set-halt-bit
End
load1
opaddr
opaddr
ir(4-15)->mar
Main[mar]->mdr
mdr->acc
End
store2
opaddr
opaddr
ir(4-15)->mar
acc->mdr
mdr->Main[mar]
End
read3
opunused
op
input-int->acc
End
write4
opunused
op
output-acc->int
End
add5
opaddr
opaddr
ir(4-15)->mar
Main[mar]->mdr
acc+mdr->acc
End
subtract6
opaddr
opaddr
ir(4-15)->mar
Main[mar]->mdr
acc-mdr->acc
End
multiply7
opaddr
opaddr
ir(4-15)->mar
Main[mar]->mdr
acc*mdr->acc
End
divide8
opaddr
opaddr
ir(4-15)->mar
Main[mar]->mdr
acc/mdr->acc
End
jump9
opaddr
opaddr
ir(4-15)->pc
End
jmpzA
opaddr
opaddr
if(acc!=0)skip-1
ir(4-15)->pc
End
jmpnB
opaddr
opaddr
if(acc>=0)skip-1
ir(4-15)->pc
End