Summary
Intel 8080 CPU Emulator

Metadata
Tags:emulators
Authors:Chris Double


Words

Tuple classes
ClassSuperclassSlots
cpu tupleb c d e f h l a pc sp halted? last-interrupt cycles ram
undefined-8080-opcode tuplen


Parsing words
WordSyntax
INSTRUCTION:
cycles:
opcode:


Generic words
WordStack effect
read-port( port cpu -- byte )
reset( cpu -- )
update-video( value addr cpu -- )
write-port( value port cpu -- )


Symbol words
$1
$2
$3
$4
last-instruction
last-opcode
rom-root


Ordinary words
WordStack effect
(emulate-CALL)( cpu -- )
(emulate-CPL)( cpu -- )
(emulate-DAA)( cpu -- )
(emulate-RLA)( cpu -- )
(emulate-RLCA)( cpu -- )
(emulate-RRA)( cpu -- )
(emulate-RRCA)( cpu -- )
(emulate-RST)( n cpu -- )
(load-rom)( n ram -- )
16-bit-registers( -- parser )
8-bit-registers( -- parser )
8080-generator-parser( -- parser )
<cpu>( -- cpu )
>word<( word -- byte byte )
ADC-R,(RR)-instruction( -- parser )
ADC-R,N-instruction( -- parser )
ADC-R,R-instruction( -- parser )
ADD-R,(RR)-instruction( -- parser )
ADD-R,N-instruction( -- parser )
ADD-R,R-instruction( -- parser )
ADD-RR,RR-instruction( -- parser )
AND-(RR)-instruction( -- parser )
AND-N-instruction( -- parser )
AND-R-instruction( -- parser )
CALL-F|FF,NN-instruction( -- parser )
CALL-NN-instruction( -- parser )
CCF-instruction( -- parser )
CP-(RR)-instruction( -- parser )
CP-N-instruction( -- parser )
CP-R-instruction( -- parser )
CPL-instruction( -- parser )
DAA-instruction( -- parser )
DEC-(RR)-instruction( -- parser )
DEC-R-instruction( -- parser )
DEC-RR-instruction( -- parser )
DI-instruction( -- parser )
EI-instruction( -- parser )
EX-(RR),RR-instruction( -- parser )
EX-RR,RR-instruction( -- parser )
HALT-instruction( -- parser )
IN-R,(N)-instruction( -- parser )
INC-(RR)-instruction( -- parser )
INC-R-instruction( -- parser )
INC-RR-instruction( -- parser )
JP-(RR)-instruction( -- parser )
JP-F|FF,NN-instruction( -- parser )
JP-NN-instruction( -- parser )
LD-(NN),R-instruction( -- parser )
LD-(NN),RR-instruction( -- parser )
LD-(RR),N-instruction( -- parser )
LD-(RR),R-instruction( -- parser )
LD-R,(NN)-instruction( -- parser )
LD-R,(RR)-instruction( -- parser )
LD-R,N-instruction( -- parser )
LD-R,R-instruction( -- parser )
LD-RR,(NN)-instruction( -- parser )
LD-RR,NN-instruction( -- parser )
LD-RR,RR-instruction( -- parser )
NOP-instruction( -- parser )
OR-(RR)-instruction( -- parser )
OR-N-instruction( -- parser )
OR-R-instruction( -- parser )
OUT-(N),R-instruction( -- parser )
POP-RR-instruction( -- parser )
PUSH-RR-instruction( -- parser )
RET-F|FF-instruction( -- parser )
RET-NN-instruction( -- parser )
RLA-instruction( -- parser )
RLCA-instruction( -- parser )
RRA-instruction( -- parser )
RRCA-instruction( -- parser )
RST-0-instruction( -- parser )
RST-10H-instruction( -- parser )
RST-18H-instruction( -- parser )
RST-20H-instruction( -- parser )
RST-28H-instruction( -- parser )
RST-30H-instruction( -- parser )
RST-38H-instruction( -- parser )
RST-8-instruction( -- parser )
SBC-R,(RR)-instruction( -- parser )
SBC-R,N-instruction( -- parser )
SBC-R,R-instruction( -- parser )
SCF-instruction( -- parser )
SUB-(RR)-instruction( -- parser )
SUB-N-instruction( -- parser )
SUB-R-instruction( -- parser )
XOR-(RR)-instruction( -- parser )
XOR-N-instruction( -- parser )
XOR-R-instruction( -- parser )
add-byte( lhs rhs cpu -- result )
add-byte-with-carry( lhs rhs cpu -- result )
add-carry( change-by result cpu -- change-by result )
add-word( lhs rhs cpu -- result )
af<<( value cpu -- )
af>>( cpu -- word )
all-flags( -- parser )
all-registers( -- parser )
and-byte( lhs rhs cpu -- result )
bc<<( value cpu -- )
bc>>( cpu -- word )
bit3or( lhs rhs -- 0|1 )
call-sub( addr cpu -- )
carry-flag( -- value )
clear-flag( cpu flag -- )
complex-instruction( type token -- parser )
cpu*.( cpu -- )
cpu-a-bitand( quot cpu -- )
cpu-a-bitor( quot cpu -- )
cpu-a-bitxor( quot cpu -- )
cpu-a-bitxor=( value cpu -- )
cpu-f-bitand( quot cpu -- )
cpu-f-bitand=( value cpu -- )
cpu-f-bitor( quot cpu -- )
cpu-f-bitor=( value cpu -- )
cpu-f-bitxor( quot cpu -- )
cpu-f-bitxor=( value cpu -- )
cpu.( cpu -- )
de<<( value cpu -- )
de>>( cpu -- word )
dec-byte( byte cpu -- result )
dec-word( w cpu -- w )
decrement-sp( n cpu -- )
flag-c?( cpu -- bool )
flag-clear?( flag cpu -- bool )
flag-lookup( string -- vector )
flag-m?( cpu -- bool )
flag-nc?( cpu -- bool )
flag-nz?( cpu -- bool )
flag-p?( cpu -- bool )
flag-pe?( cpu -- bool )
flag-po?( cpu -- bool )
flag-set?( flag cpu -- bool )
flag-z?( cpu -- bool )
generate-instruction( vector string -- quot )
get-cycles( n -- opcode )
half-carry-flag( -- value )
hl<<( value cpu -- )
hl>>( cpu -- word )
inc-byte( byte cpu -- result )
inc-cycles( n cpu -- )
inc-word( w cpu -- w )
indirect( parser -- parser )
instruction-cycles( -- vector )
instruction-quotations( string -- emulate-quot )
instructions( -- vector )
interrupt( number cpu -- )
interrupt-flag( -- value )
load-rom( filename cpu -- )
load-rom*( seq cpu -- )
next-byte( cpu -- byte )
next-word( cpu -- word )
no-params( ast -- ast )
not-implemented( cpu -- )
one-param( ast -- ast )
or-byte( lhs rhs cpu -- result )
parity-flag( -- value )
parse-instructions( list -- )
patterns( -- hashtable )
peek-instruction( cpu -- word )
pop-pc( cpu -- pc )
pop-sp( cpu -- value )
process-interrupts( cpu -- )
push-pc( cpu -- )
push-sp( value cpu -- )
read-byte( addr cpu -- byte )
read-instruction( cpu -- word )
read-word( addr cpu -- word )
register-lookup( string -- vector )
replace-patterns( vector tree -- tree )
ret-from-sub( cpu -- )
rom-dir( -- string )
save-pc( cpu -- )
set-flag( cpu flag -- )
set-instruction( quot n -- )
sign-flag( -- value )
simple-instruction( token -- parser )
sub-byte( lhs rhs cpu -- result )
sub-byte-with-carry( lhs rhs cpu -- result )
sub-carry( change-by result cpu -- change-by result )
two-params( ast -- ast )
undefined-8080-opcode( n -- * )
update-carry-flag( result cpu -- )
update-flags( result cpu -- )
update-flags-no-carry( result cpu -- )
update-half-carry-flag( original change-by result cpu -- )
update-parity-flag( result cpu -- )
update-sign-flag( result cpu -- )
update-zero-flag( result cpu -- )
write-byte( value addr cpu -- )
write-word( value addr cpu -- )
xor-byte( lhs rhs cpu -- result )
zero-flag( -- value )


Class predicate words
WordStack effect
cpu?( object -- ? )
undefined-8080-opcode?( object -- ? )


Files


Metadata files