Learn · 37 interactive lessons
Find your
next lesson.
Follow the lessons in order, or jump straight to a topic. Each has its own experiment. The BASIC lessons show you how to supply and load the original paper tape.
01 · 3 lessons
Bits, numbers, and memory
Start with values and the places that hold them. No processor knowledge needed.
02 · 9 lessons
Programming the 8080
Follow real instructions from a working register to decisions and loops.
- A place to work: a registerMove a byte between RAM and the accumulator.
- Doing something with a byteLoad, add, and store using real 8080 instructions.
- What comes next?Connect instruction bytes to the program counter and the next step.
- Change one byte, change the programEdit an instruction's operand and predict the new result.
- Taking a different pathChange where execution goes with a jump.
- Going around againJump backward and reuse the state left by the previous trip.
- Knowing when to stopUse the carry flag to decide whether to repeat.
- Counting downSubtract, test zero, and stop after a chosen number of trips.
- Choosing a stopping pointCompare with a target while keeping the value in the accumulator.
03 · 6 lessons
The Altair panel and I/O
Enter a program with switches, let it run, and connect it to input and output.
- Switches, lights, and memoryMeet the Altair panel through EXAMINE and DEPOSIT.
- Entering your first programDeposit instruction bytes, check them, and execute the program.
- Letting the computer runUse RUN and STOP, then resume from the saved state.
- Sending a byte outSend the accumulator to a separate device with OUT.
- Receiving a byteOffer input, receive it with IN, and send it to the output device.
- Waiting for a byteCheck readiness in a loop and echo each arriving byte.
04 · 10 lessons
Text, buffers, and subroutines
Turn bytes into text and build reusable routines on the 8080 with the Altair teaching view.
- Bytes can be lettersInterpret a byte as ASCII, including spaces and control codes.
- Typing to the computerType characters and follow their journey to a text display.
- A different replyCompare a received character and choose whether to replace it.
- Printing a messageRead through HL and count the bytes sent from RAM.
- Where does a message end?Use a zero terminator to mark the end of a message.
- Remembering what you typeCollect characters in a bounded RAM buffer, then print them.
- Remembering where to returnCall one routine twice and follow its return address on the stack.
- A routine inside a routineFollow nested calls and two pending return addresses.
- Keeping a value across a callPreserve HL with PUSH and POP while a routine uses the pointer.
- A tiny command promptRead a line, choose a response, and return for another command.
05 · 9 lessons
BASIC on the Altair
Use the original interpreter to turn typed commands into programs, finishing with your own ticket desk.
- Your first BASIC programCalculate, store numbered lines, then list, run, and change your program.
- A program that asks a questionGive a value a name, ask for a number, and calculate an answer.
- A program that makes a decisionCompare an answer with zero and choose a different path with IF…THEN.
- A program that asks againReturn to a question with GOTO, try several answers, and use zero to finish.
- A program that countsAdd one to a variable, repeat the change, and choose when to stop.
- Counting with FOR and NEXTExpress a counting loop with a start, a limit, and a step.
- A program that keeps a totalAdd successive values to a total, then combine the prices of several purchases.
- Finding and fixing a mistakePrint intermediate values, find a misplaced instruction, and check the repair.
- A ticket desk of your ownPlan, build, check, and adapt a complete program using the ideas from this BASIC path.