One of my favorite YouTube channels Usagi Electric recently uploaded
a video asking for
Hellorld programs.
In the video, David asked for interesting “HELLORLD” programs, so here
is my entry!
I decided that I would put one together on my trusty
1802 Membership Card Build as that would satisfy the requirements for being an interesting machine and in machine code. IN keeping with the COSMAC ELF tradition, I worked out the program by hand on paper and then toggled it in using the binary switches on the machine. This post will outline the process I used to generate the program by hand. I was succesful, as you can see in the animation at the top of this page!
When I write programs for my 1802, my weapon of choice is a clipboard,
a piece of notebook paper, and my trusty reference card. I start by
writing out the program in menmonics, and then I move on to writing
out the machine code. If there are addressses to be computed, I write
blanks where they will go. This first phase looks like this:
As you can see, this is largely a modification of the program that
I wrote in my post about finishing my 1802 membership card.
The main difference is that “HELLORLD” is too many characters for its
6 character display, so I added code to scroll this continuously.
Having the roughed-in code, I then counted the bytes for the program
and filled in the blanks:
When I put this in, it almost worked. I had some odd artifacts and the
display was going absolutely nuts! So, naturally, I had to revise the
code. This is where paper coding gets a bit messy. Naturally, I had to
revise, squeeze some things in with pencil marks, and some revisions
I made directly on the machine. After this process was done, my code
paper looked like this:
Even with my revisions, the scrolling was erratic and sometimes I was
getting displays that were not characters at all. This seemed to
indicate some sort of timing issue, and so I went through everything
byte by byte to see where I had went wrong. While I was experimenting,
I noticed the LEDs were dimming occasionally. It was then that
I realized that the 3 AA batteries that power my trusty mobile
blinkenlight machine were over a year old! I changed the batteries,
and then everything worked as expected.
I then wrote down the finalized version of the program on another
sheet of paper, and played with the numbers to produce the desired
output at the desired scrolling rate. The final code is here:
This was a great program to work on, and I just love coding for the
RCA 1802. When I was having problems, I briefly thought about writing the
code in a text file, though I ultimately gave decided against this.
For one thing, I don’t actually have an assembler for the processer.
For the other, it just feels wrong. Coding for this machine should be
done either in BASIC over the serial port or on paper!
Anyway, I hope you enjoyed this brief account of my HELLORLD
programming experience. Be sure to check out Usagi Electric, and
contribute your own program!
Computers
|
Home
|
Humor
|
Links
|