Skip to content

Commit

Permalink
Improve README
Browse files Browse the repository at this point in the history
  • Loading branch information
smoynes committed Dec 13, 2023
1 parent 3aa2066 commit 24d1c9f
Showing 1 changed file with 42 additions and 42 deletions.
84 changes: 42 additions & 42 deletions docs/README.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
================================================================================

𝔼𝕃𝕊𝕀𝔼: A Pedagogical LC-3 Emulator

================================================================================

The path is made in the walking of it. -- Zhuangzi
Expand All @@ -12,16 +15,18 @@ The project includes:
- an assembler for translating LC3ASM source to machine code;
- a loader that puts programs into memory;
- a system monitor that implements system calls;
- virtual devices for display and keyboard I/O;
- virtual devices for display and keyboard I/O;
- many unnecessary words by your author; and
- maybe, more to come…

It's purpose is as a tool for learning and a path of discovery.

-----------------------------
Background
-----------------------------

The LC-3 computer architecture was designed as a educational tool for
undergraduate computer-engineering students and is described in detail in an
undergraduate computer-engineering students. It is described in detail in an
excellent textbook, _Introduction to Computing Systems: From Bits & Gates to
C/C++ and Beyond_ (3/e), by Yale Patt and Sanjay Patel.

Expand All @@ -36,58 +41,52 @@ The LC-3 instruction set and architecture (ISA) includes:
- an instruction set compact enough to fit on a single page.

Far from an abstract machine, the text begins with transistors and digital
logic. From there, it builds upon the titular bits and bytes and describes an
logic. From there, it builds upon the titular bits and gates and describes an
entire computer architecture in detail including the control-unit state-machine,
data and I/O paths. Upon this computer, assembly, C and C++ programming
languages are described. It is fascinating. As far as I know, a complete
hardware implementation has never been physically built but, I can imagine, the
text will be invaluable when humanity has to recreate computers from first
principles.

While similar in many respects to the x86 or ARM ISAs, the LC-3 is radically
simpler in almost every way. Unlike the sprawling x86, with thousands of
instructions, dozens of addressing modes, multicore execution, an intricate
While similar in many respects to more familiar x86 or ARM ISAs, the LC-3 is
radically simpler in almost every way. Unlike the sprawling x86, with thousands
of instructions, dozens of addressing modes, multicore execution, an intricate
memory model, and over 40 years of history etched into silicon, the LC-3 remains
a tractable system that is comprehensible by an individual.

It is a lot closer to a PDP/7 machine than anything you have in your home or
pocket. Nevertheless, it still takes quite a lot of effort to understand well
enough to write programs.
enough to write programs. Our effort pays dividends in knowledge.

-----------------------------
Project Goals
-----------------------------

As a technical project, 𝔼𝕃𝕊𝕀𝔼 is not useful: it isn't complete and doesn't work
well. In those terms, it is not good software. However, for the author, the
project is not really intended to be useful to others in utilitarian terms.
Rather, it is meant to as an exercise in learning more about computer
architecture, systems programming, and oneself. As such, it is more like a
story, a performance, or a trail through the woods and is essential.
𝔼𝕃𝕊𝕀𝔼 is not useful: it isn't complete and doesn't work well. In those terms, it
is not good software. However, to the author, the project is not intended to be
useful to others, not in utilitarian terms, at least.

𝔼𝕃𝕊𝕀𝔼 is not novel: hardware simulators already exist for the LC-3 architecture,
of course. The textbook publishers provide one and there are many others freely
available online. This one is admittedly a mere reinvention of the wheel. That
said, the gift the design and engineering process affords is that it can reveal
something fundamental about either our world or ourselves. So it is worth
retreading the path.
Nor 𝔼𝕃𝕊𝕀𝔼 is novel: simulators already exist for the LC-3 architecture, of
course. The textbook publishers provide one and there are many others freely
available online. This one is admittedly a mere reinvention of the wheel.

That said, the gift the design and engineering process affords is that it can
reveal something about either our world or ourselves. It is to be hoped that
building something useless and retreading well worn paths will expose something
essential and fundamental.

Personally, there remain many Computer Things that baffle me. Despite ten
thousand hours of computing, I still feel lost when it comes to some of the
rudiments of the field:

- computer architecture;
- operating systems;
- assembly programming; and,
- computing history.

I had a thought that a good way to learn about these topics was to get my boots
dirty and learn the basics by building simple things. This project is an
artifact of my process. It is to be hoped that by trying my hand at the old
methods, by holding the craftsman's tools, by building something cute and
useless, I will gain a better understanding of the essence of computing. Yet, if
nothing else is achieved than learning a bit, exploring some ideas, and hearing
a few good stories, it will have been worth it.
thousand hours of computing, I still feel lost when it comes to the rudiments:
computer architecture, assembly programming, and operating systems. This project
is an artifact of my learning process and a trace of my explorations into the
field.

It is to be hoped that by trying my hand at the old methods, by holding the
craftsman's tools and building something cute and useless, I will gain a better
understanding of the essence of computing. And yet, if nothing else is achieved
than reading a few books, learning some ideas, and hearing a few good stories,
it will have been worth it in the end.

-----------------------------
Get in Touch
Expand All @@ -99,12 +98,13 @@ project plans to bring to my workbench.
You are welcome to reach out if:

- you're a fellow learner;
- if you find this project useful or buggy; or,
- if you have any ideas or questions or feedback.
- if you find this project useful or buggy;
- if you have any ideas or questions or feedback; or,
- if you have a story to share, especially.

You can start a discussion on the GitHub project
<https://github.com/smoynes/elsie/discussions> or you're welcome to contact me
directly through my GitHub profile.
You can start a discussion on the GitHub project
<https://github.com/smoynes/elsie/discussions> or you're always welcome to
contact me directly through my GitHub profile.

Please follow the project if you enjoy the absurdist theatrics of a curious
software engineer. As ever, I simply seek to understand the essence of computing
Expand All @@ -114,12 +114,12 @@ and to embody _Shokunin Kishitsu_ (職人気質), the artisan's spirit.
Documentation
-----------------------------

- TUTORIAL.md A trailhead for users -- start here.
- README.txt You are here.
- TUTORIAL.md A trailhead for users.
- DEVGUIDE.txt Development guidebook.
- RESOURCE.txt Inspirational references.
- RESOURCE.txt Inspirations and references.
- LICENCE.txt Terms of use.
- CODE_OF_CONDUCT.txt Behave yourself.
- README.txt You are here.

-----------------------------
Dedication
Expand Down

0 comments on commit 24d1c9f

Please sign in to comment.