In 1997 I was doing an apprenticeship. It had a very well organized curriculum and well thought courses. One course was based on 8080/8085 cpu. You know what they gave us: A development board (roughly the size of a modern mainboard) with onboard hex keyboard 0-9a-f and 3-4 function keys (halt, run, write at ... something like that). And a book and templated paper. So the exercises, 3-4 hours every week, were: Impleme…
And the value of a compiler
The Story of Mel (1983)
131–140 of 175 posts
Re: The Story of Mel (1983)
#132In 1997 I was doing an apprenticeship. It had a very well organized curriculum and well thought courses. One course was based on 8080/8085 cpu. You know what they gave us: A development board (roughly the size of a modern mainboard) with onboard hex keyboard 0-9a-f and 3-4 function keys (halt, run, write at ... something like that). And a book and templated paper. So the exercises, 3-4 hours every week, were: Impleme…
When I was faced with that task, I rapidly got fed up with hand-assembling and relocating my code and went off to write an assembler to run on a computer with somewhat less anaemic IO. I doubt I actually used it more than once or twice, but it was fun to write.
Re: The Story of Mel (1983)
#133Earlier quoted context omitted.
Yah! I was familiar with old "microprocessor trainers" and I tried to recreate that. There's nice on-chip debug that makes writing a monitor to do this pretty easy. I was more thinking-- curriculum? How old were you? Anything particular stick with you that I should be sure to include?
I was 17 to 19 at the time. We had everything, from math, physics, electronics, chip design (board layout simulation etc), micro processors (and after a year assembler on a DOS PC), networking, operating systems (mainframe + Unix + NT), C, Pascal, VBA. Add generic programming, English, project management and some other courses you need for soft skills. 18 months, 40 hours a week, two tests a week all with a full stip…
This is along the lines of what I'd like to ultimately create. It's hard, though, because I am offering this in the form of electives, and students have limited slots to fill and as they get older their willingness to take any risk in selecting a class decreases. I teach in both high school and middle school, and I've found I can be a lot "bolder" in what I teach in the middle school so far.
Re: The Story of Mel (1983)
#134Earlier quoted context omitted.
> And his reason for starting with machine language? “Well, you can’t expect anyone to understand what’s really going on in higher-level languages if you don’t know what’s happening underneath, right?” Worked for me. I teach a middle school class called "Computer Organization and Design". It's basically from gates and truth tables, up to implementing ALU functions, to understanding bits of sequential logic... then so…
Amazing! And it parallels the early learning my peer group and I experienced in the 80's. We had Apple 2 type computers to work with and a small group of us were split off to do a deeper dive education. And really it was a sort of student guided education. Basically, the teacher asked is to declare what we were going to try and do and that was more about making sure we did something besides play games than it was any…
> What have they done with their little computers? Anything notable? If you can share, please do.
We only really picked up the computers themselves in the last 2-3 weeks of class; we were much more into theory and logic. I provided some system calls to move sprites around on the top of the screen, so there were some simple games written using that... and one student implemented a game inviting you to guess the computer's number.
> Basically, the teacher asked is to declare what we were going to try and do and that was more about making sure we did something besides play games than it was anything else.
This sounds really awesome. This sounds like what I try to do with after-school robotics.
My (older) brothers had a really awesome educational experience where the local district had set up something they called "Independent Learning Module" and later "Kleine Schule" that was very much self directed.
Education is much more regimented now-- whether in public schools or private schools. All the emphasis on standards, unified curriculum, alignment and articulation of courses to colleges, etc, have certainly improved the depth of education and likely improved the average quality of education. But these changes also make it harder to offer an experience like this.
Perhaps the pendulum is slowly starting to swing the other way, with a lot of discussion of "student agency".
From the after-school program-- it's interesting how students struggle at first with setting the agenda. I have high achieving students who breeze through all kinds of things that I think of as difficult. But then other things, like organizing a set of to-do items onto a calendar to make a coarse schedule, often seem daunting to the students and cause paralysis.
Re: The Story of Mel (1983)
#135 The new computer had a one-plus-one
addressing scheme,
in which each machine instruction,
in addition to the operation code
and the address of the needed operand,
had a second address that indicated where, on the revolving drum,
the next instruction was located.
In modern parlance,
every single instruction was followed by a GO TO!
Put *that* in Pascal's pipe and smoke it.
The Apple II floppy disk drive controller had a piece of "logic state sequencer" which was programmed this way: each instruction contained the address of the next one.Or rather, something like this: the ROM is 256 bytes arranged as 16x16. Half of each byte is an opcode, and the other half is the row of the next instruction 0 to 15. The column is determined by some external inputs to the sequencer, representing state of the hardware.
See https://archive.org/details/understanding_the_apple_ii (sec 9-14).
Re: The Story of Mel (1983)
#136Earlier quoted context omitted.
A couple years ago, a junior dev was absolutely astonished at my ability to interpret a hex dump as ASCII. I don’t think I remember any numeric opcodes for anything.
Oh wait, I did correctly remember that $20 was JSR in 6502 assembly.
Re: The Story of Mel (1983)
#137Earlier quoted context omitted.
Amazing! And it parallels the early learning my peer group and I experienced in the 80's. We had Apple 2 type computers to work with and a small group of us were split off to do a deeper dive education. And really it was a sort of student guided education. Basically, the teacher asked is to declare what we were going to try and do and that was more about making sure we did something besides play games than it was any…
Thank you for your detailed answer! I enjoy hearing about other programs and experiences. I didn't have the benefit of something like this growing up, so I have to guess a fair bit about what is helpful and will only know for sure 15 years from now when my former students might tell me. > What have they done with their little computers? Anything notable? If you can share, please do. We only really picked up the compu…
Us: We want to move a little ship on the screen
Teacher: Ok, let me get some info.
A few days later, we take that stuff and work out what we think needs doing and then we do it.
Of course it never works, or is slow. I remember the first attempt being slow. We computed all the crazy screen addresses. On an Apple this is far more convoluted than one might think.
An iteration or few later we have lookup tables, now understand why those were in the Apple documentation and a ship moving.
Wash, rinse repeat for all sorts of stuff.
If I had it to do over again, I would collect the bits of code, info and package it up with a lesson in each one.
Students work through those and end up with a library of things they can combine to do fun things.
We would get stuck on big picture stuff. That is where the teacher was super high value.
We would lose interest, or wonder about something else. They would remind us what we said we wanted to do and help us do it minimally.
That itself was an important lesson.
Re: The Story of Mel (1983)
#138Earlier quoted context omitted.
I'm disgusted... What was the motivation for that?
The convention of using "ABCDEF" didn't get established until well after the LGP-30 was designed in the 1950's. The Wikipedia entry on "Hexadecimal" says "The now-current notation using the letters A to F establishes itself as the de facto standard beginning in 1966, in the wake of the publication of the Fortran IV manual for IBM System/360, which (unlike earlier variants of Fortran) recognizes a standard for enterin…
Bad boys rape our young girls but Violet gives willingly
Not yet excised I see.
Re: The Story of Mel (1983)
#139Earlier quoted context omitted.
A lot of that ethos I think is just Generation X plus computers. A rebellious generation that came of age during a time when digital technology had just granted kids the power to wardial norad. I think tinkerers have always been timeless, but that kind of cyberpunk culture is something we're unlikely to see again.
I'm solidly GenX, but the hacking culture described by "The Hacker's Dictionary" is a generation older than that -- the era of the MIT AI Lab or Stanford's SAIL in the mid 1970s. Lisp Machines and custom in-house operating systems. The GenX hacking culture was the 1980s and was more about getting the most out of our own microcomputers.
Re: The Story of Mel (1983)
#140Bonus trivia: those "Raw, unadorned, inscrutable hexadecimal numbers"? Those would not have been the 0-9a-f we're familiar with today, but 0-9fgjkqw[1]! [1]: http://ed-thelen.org/comp-hist/lgp-30-man.html#R4.13
As in:
b - bring from memory (load into AC)
h - hold and store (deposit AC in memory)
c - clear and store (deposit AC and set it to zero)
y - store address (store AC as operand)
u - unconditional transfer (jump)
r - return address (stores PC+2 as operand at given address)
t - test (conditional transfer on AC negative)
z - stop (break point in operand)
p - print
i - input
a - add
s - subtract
m - multiply (most significant bits of result in AC)
n - multiply (least significant bits of result in AC)
d - divide
e - extract (mask, logical AND)
This left only a limited set for hexadecimal encoding, namely f, g, j, k, q, w. (And yes, "l" is 1, since Flexowriters weren't invented as computer terminals, rather they are electric typewriters with a potential for automatization.)Since hexadecimal was used for operands, which were actually addresses on the magnetic drum given by track and sector numbers in binary, which in turn resulted in a rather interesting single-word instruction format, this further complication may not have mattered much.