eighty-eighty-js
Version:
A nice little Intel 8080 emulator for Node.js and Browser!
135 lines (134 loc) • 3.58 kB
TypeScript
import { u16, u8 } from 'typed-numbers';
export declare enum Flag {
/** Sign flag. */
S = 7,
/** Zero flag. */
Z = 6,
/** Auxiliary Carry flag (also called AC). */
A = 4,
/** Parity flag. */
P = 2,
/** Carry flag. */
C = 0
}
/**
* Represents the register inside the CPU.
*/
export declare class Register {
/** Accumulator (register A). */
a: u8;
/** F register (indirectly accessible by the programmer). */
f: u8;
/** B register. */
b: u8;
/** C register. */
c: u8;
/** D register. */
d: u8;
/** E register. */
e: u8;
/** H register. */
h: u8;
/** L register. */
l: u8;
/** 16-bit stack pointer register. */
sp: u16;
/** Program counter. */
pc: u16;
/**
* Get register A and F paired.
* @return - The value of register A and F combined into one integer.
*/
getAF(): u16;
/**
* Get register B and C paired.
* @return - The value of register B and C combined into one integer.
*/
getBC(): u16;
/**
* Get register D and E paired.
* @return - The value of register D and E combined into one integer.
*/
getDE(): u16;
/**
* Get register H and L paired.
* @return - The value of register H and L combined into one integer.
*/
getHL(): u16;
/**
* Set register A and F paired.
* @param value - The new value of register A. The new value of register F will be calculated from it.
*/
setAF(value: u16): void;
/**
* Set register B and C paired.
* @param value - The new value of register B and C combined into one integer.
*/
setBC(value: u16): void;
/**
* Set register D and E paired.
* @param value - The new value of register D and E combined into one integer.
*/
setDE(value: u16): void;
/**
* Set register H and L paired.
* @param value - The new value of register H and L combined into one integer.
*/
setHL(value: u16): void;
/**
* Set the value of a flag.
* @param flag - The flag.
* @param value - The new value.
*/
setFlag(flag: Flag, value: boolean): void;
/**
* Get the value of a flag.
* @param flag - The flag.
*/
getFlag(flag: Flag): boolean;
/**
* Helper for setting S flag straight from the result of a calculation.
* @param result - Result of a calculation.
*/
setFlagS(result: u8): void;
/**
* Helper for setting Z flag straight from the result of a calculation.
* @param result - Result of a calculation.
*/
setFlagZ(result: u8): void;
/**
* Helper for setting A flag.
* @param value - The new value.
*/
setFlagA(value: boolean): void;
/**
* Helper for setting P flag straight from the result of a calculation.
* @param result - Result of a calculation.
*/
setFlagP(result: u8): void;
/**
* Helper for setting C flag.
* @param value - The new value.
*/
setFlagC(value: boolean): void;
/**
* Helper for getting S flag.
*/
getFlagS(): boolean;
/**
* Helper for getting Z flag.
*/
getFlagZ(): boolean;
/**
* Helper for getting A flag.
*/
getFlagA(): boolean;
/**
* Helper for getting P flag.
*/
getFlagP(): boolean;
/**
* Helper for getting C flag.
*/
getFlagC(): boolean;
}