Jvm1
 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
NameWidth
cpp32
h32
lv32
mar32
mbr8
mdr32
opc32
pc32
sp32
status1
tos32

 Register Arrays
NameLengthWidth
(none)

 Condition Bits
NameRegisterBitHalt
halt-bitstatus0true

 RAMs
NameLength
ConstantPool256
Main256
Stack256

 Set
NameRegisterStart BitNumber of BitsValue
mar=0mar0320
mdr=-1mdr032-1
mdr=0mdr0320
mdr=1mdr0321
pc=0pc0320

 Test
NameRegisterStart BitNumber of BitsComparisonValueOmission
mar!=0?skip1mar032NE01
mdr<0?skip2mdr032LT02
mdr=0?skip2mdr032EQ02
sp<0?skip2sp032LT02

 Increment
NameRegisterOverflow BitDelta
dec1-pcpchalt-bit-1
dec4-spsphalt-bit-4
inc1-pcpchalt-bit1
inc2-pcpchalt-bit2
inc3-pcpchalt-bit3
inc4-pcpchalt-bit4
inc4-spsphalt-bit4

 Shift
NameSourceDestinationTypeDirectionDistance
mar<<2marmarlogicalleft2
mdr<<2mdrmdrlogicalleft2
mdr<<8mdrmdrlogicalleft8
mdr>>24mdrmdrlogicalright24
mdr>>>16mdrmdrarithmeticright16
mdr>>>24mdrmdrarithmeticright24

 Logical
NameTypeSource1Source2Destination
mdr<-mdr&hANDmdrhmdr
mdr<-mdr|hORmdrhmdr

 Arithmetic
NameTypeSource1Source2DestinationOverflow BitCarry Bit
mar=mar-spSUBTRACTmarspmarhalt-bit(none)
mdr=mdr*hMULTIPLYmdrhmdrhalt-bit(none)
mdr=mdr+hADDmdrhmdrhalt-bit(none)
mdr=mdr+tosADDmdrtosmdrhalt-bit(none)
mdr=mdr-hSUBTRACTmdrhmdrhalt-bit(none)
mdr=mdr/hDIVIDEmdrhmdrhalt-bit(none)
pc=mdr+pcADDpcmdrpchalt-bit(none)

 Branch
NameAmount
branch+33
branch+55

 TransferRtoR
NameSourceSrc Start BitDestinationDest Start BitNumber of Bits
h->mdrh0mdr032
lv->hlv0h032
mdr->hmdr0h032
mdr->marmdr0mar032
mdr->opcmdr0opc032
mdr->tosmdr0tos032
mdr0-16->marmdr0mar1616
mdr0-16->pcmdr0pc1616
opc->mdropc0mdr032
pc->marpc0mar032
tos->htos0h032
tos->mdrtos0mdr032

 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
decodembr

 Set Condition Bit
NameBitValue
setHalthalt-bit1

 IO
NameDirectionTypeBufferConnection
mdr->outputoutputintegermdr[Console]
mdr<-inputinputintegermdr[Console]

 Memory Access
NameDirectionMemoryDataAddress
mbr<-Main[pc]readMainmbrpc
mdr->Main[mar]writeMainmdrmar
mdr->Stack[mar]writeStackmdrmar
mdr->Stack[sp]writeStackmdrsp
mdr<-CP[mar]readConstantPoolmdrmar
mdr<-Main[mar]readMainmdrmar
mdr<-Stack[mar]readStackmdrmar
mdr<-Stack[sp]readStackmdrsp

 EQUs
NameValue
(none)

 Instruction Format Fields
NameTypeNumber of BitsRelativitySignedDefault ValueValues
relAddr16required16pcRelativePreIncrtrue0<any>
sgn8required8absolutetrue0<any>
indxrequired8absolutefalse0<any>
oprequired8absolutefalse0<any>
1required1absolutetrue0<any>
-1ignored1absolutetrue0<any>
2required2absolutetrue0<any>
-2ignored2absolutetrue0<any>
3required3absolutetrue0<any>
-3ignored3absolutetrue0<any>
4required4absolutetrue0<any>
-4ignored4absolutetrue0<any>
5required5absolutetrue0<any>
-5ignored5absolutetrue0<any>
6required6absolutetrue0<any>
-6ignored6absolutetrue0<any>
7required7absolutetrue0<any>
-7ignored7absolutetrue0<any>
8required8absolutetrue0<any>
-8ignored8absolutetrue0<any>
9required9absolutetrue0<any>
-9ignored9absolutetrue0<any>
10required10absolutetrue0<any>
-10ignored10absolutetrue0<any>
11required11absolutetrue0<any>
-11ignored11absolutetrue0<any>
12required12absolutetrue0<any>
-12ignored12absolutetrue0<any>
13required13absolutetrue0<any>
-13ignored13absolutetrue0<any>
14required14absolutetrue0<any>
-14ignored14absolutetrue0<any>
15required15absolutetrue0<any>
-15ignored15absolutetrue0<any>
16required16absolutetrue0<any>
-16ignored16absolutetrue0<any>

 Fetch Sequence
Microinstructions
mbr<-Main[pc]
inc1-pc
decode

 Machine Instructions
NameOpcode (hex)FormatMicroinstructions
iinc84 op indx sgn8pc->mar
mdr<-Main[mar]
mdr->opc
mdr>>24
mdr<<2
lv->h
mdr=mdr+h
mdr->mar
mdr<-Stack[mar]
mdr->h
opc->mdr
mdr<<8
mdr>>>24
mdr=mdr+h
mdr->Stack[mar]
inc2-pc
mar=mar-sp
mar!=0?skip1
mdr->tos
End
istore36 op indxmdr<-Stack[sp]
mdr->opc
dec4-sp
pc->mar
mdr<-Main[mar]
mdr>>24
mdr<<2
lv->h
mdr=mdr+h
mdr->mar
opc->mdr
mdr->Stack[mar]
mdr<-Stack[sp]
mdr->tos
inc1-pc
End
iload15 op indxpc->mar
mdr<-Main[mar]
mdr>>24
mdr<<2
lv->h
mdr=mdr+h
mdr->mar
mdr<-Stack[mar]
inc4-sp
mdr->Stack[sp]
mdr->tos
inc1-pc
End
ifeq99 op relAddr16tos->mdr
dec4-sp
mdr=0?skip2
inc2-pc
branch+5
pc->mar
mdr<-Main[mar]
dec1-pc
mdr>>>16
pc=mdr+pc
mdr<-Stack[sp]
mdr->tos
End
iflt9B op relAddr16tos->mdr
dec4-sp
mdr<0?skip2
inc2-pc
branch+5
pc->mar
mdr<-Main[mar]
mdr>>>16
dec1-pc
pc=mdr+pc
mdr<-Stack[sp]
mdr->tos
End
if_icmpeq9F op relAddr16tos->h
dec4-sp
mdr<-Stack[sp]
dec4-sp
mdr=mdr-h
mdr=0?skip2
inc2-pc
branch+5
pc->mar
mdr<-Main[mar]
dec1-pc
mdr>>>16
pc=mdr+pc
mdr<-Stack[sp]
mdr->tos
End
dup_x25B opinc4-sp
tos->mdr
mdr->Stack[sp]
dec4-sp
dec4-sp
mdr<-Stack[sp]
inc4-sp
mdr->Stack[sp]
dec4-sp
dec4-sp
mdr<-Stack[sp]
inc4-sp
mdr->Stack[sp]
dec4-sp
tos->mdr
mdr->Stack[sp]
inc4-sp
inc4-sp
inc4-sp
End
idiv6C optos->h
dec4-sp
mdr<-Stack[sp]
mdr=mdr/h
mdr->tos
mdr->Stack[sp]
End
imul68 optos->h
dec4-sp
mdr<-Stack[sp]
mdr=mdr*h
mdr->tos
mdr->Stack[sp]
End
isub64 optos->h
dec4-sp
mdr<-Stack[sp]
mdr=mdr-h
mdr->tos
mdr->Stack[sp]
End
ior80 optos->h
dec4-sp
mdr<-Stack[sp]
mdr<-mdr|h
mdr->tos
mdr->Stack[sp]
End
iand7E optos->h
dec4-sp
mdr<-Stack[sp]
mdr<-mdr&h
mdr->tos
mdr->Stack[sp]
End
ldc_w13 op 16inc4-sp
pc->mar
mdr<-Main[mar]
mar=0
mdr0-16->mar
mar<<2
mdr<-CP[mar]
mdr->Stack[sp]
mdr->tos
End
nop00 opEnd
swap5F opdec4-sp
mdr<-Stack[sp]
mdr->h
inc4-sp
mdr->Stack[sp]
dec4-sp
tos->mdr
mdr->Stack[sp]
inc4-sp
h->mdr
mdr->tos
End
pop57 opdec4-sp
mdr<-Stack[sp]
mdr->tos
End
dup_x15A optos->mdr
inc4-sp
mdr->Stack[sp]
dec4-sp
dec4-sp
mdr<-Stack[sp]
inc4-sp
mdr->Stack[sp]
dec4-sp
tos->mdr
mdr->Stack[sp]
inc4-sp
inc4-sp
End
dup59 optos->mdr
inc4-sp
mdr->Stack[sp]
End
gotoA7 op relAddr16pc->mar
mdr<-Main[mar]
dec1-pc
mdr>>>16
pc=mdr+pc
End
exitFC opsetHalt
End
iconst_003 opmdr=0
inc4-sp
mdr->Stack[sp]
mdr->tos
End
iconst_-102 opmdr=-1
inc4-sp
mdr->Stack[sp]
mdr->tos
End
iconst_104 opmdr=1
inc4-sp
mdr->Stack[sp]
mdr->tos
End
outputFF opmdr<-Stack[sp]
dec4-sp
mdr->output
sp<0?skip2
mdr<-Stack[sp]
mdr->tos
End
inputFE opmdr<-input
inc4-sp
mdr->Stack[sp]
mdr->tos
End
iadd60 optos->h
dec4-sp
mdr<-Stack[sp]
mdr=mdr+h
mdr->tos
mdr->Stack[sp]
End