What is "E97?"
"E97" is an easy computer imitator for educational purposes.
It is designed for learning the basic principles of a modern computer.
It contains all main features of personal computers and at the same
time is simple and demonstrative.
"E97" essentially differs from previously published educational
computers: it has ROM, the peripheral exchange proceeds through the
input/output ports, complication level of the model can be adjusted
in a wide range.
"E97" is a virtual computer, which exists in Your PC when You run
this program imitator.
Go to:
Brief description of "E97"
"E97" computer consists of the following components:
- 16-bit processor "E97" with double address instruction set
- RAM (256 bytes in MS DOS realization)
- ROM (384 bytes in MS DOS realization)
- keyboard controller with 2 input ports
- display controller with 1 input and 1 output port.
The virtual 16-bit processor can operate with separate bytes and
2-byte words. It has simple, but full enough instruction set, that allows
to write programs from beginner's level to complex system subroutines.
You also have a possibility to disable any instruction of the set You needn't.
Computer's RAM is a place, where Your developing program is stored.
It has byte organization, and every byte has it's own address (from 0000
to 00FF in this realization).
ROM is a memory for some useful subroutines, developed together with
"E97" computer. The most important of them realize input/output operations.
That's why such ROM in real computer is called BIOS - Basic Input/Output
System.
ROM is situated from hex-address 4000 to 417F in address space. You
can examine it's contents, if You read text file E97ROM.TXT .
Input and output in "E97" are realized through the input/output ports.
There are 4 ports in the model now (later there amount will be increased):
- port 0:
- keyboard status port (read only)
- port 1:
- keyboard data port (read only)
- port 2:
- text display status port (read only)
- port 3:
- text display data port (write only).
Only one control bit is used in status ports. It's a flag, which
shows that keyboard or display is ready for exchange. If this flag is
set (equals to 1), the device is ready. You must check value of the flag
in order to make exchange correctly. The flag is in the 7-th bit - that
is the sign (most significant) bit of low byte.
Go to:
Registers list
PC |
program counter (current address register) |
keeps an address of the current instruction and calculates next |
SP |
stack pointer |
helps to orginize stack memory, which makes possible
to save all return addresses when subroutines are called |
PS |
processor status (flag register) |
shows the results of the analysis of last instruction result.
Only 2 low bits are used. They are define as N (negative) and Z (zero). N-bit is set, when the result
is negative, and reset otherwise. Z=1 if the result is zero, and Z=0 otherwise. With the help of
these bits You can organize a conditional branch in Your programs |
R0 R1 R2 R3 |
general-purpose registers |
Processor itself don't use them for it's needs;
that's why You can use them as You like |
One more register will be added to this model later (Ri - the register
for index data addressing).
Go to:
I'll be vastly obliged, if You'll send me any comments or information
about Your work with "E97".
And in the end I beg pardon for my English - it's my FIRST
attempt to write manual in lingo.