← Back to Courses
module
39

Appendix IX - Change log

The course changes. Sections get added, explanations get rewritten, and occasionally something here turns out to be wrong and gets fixed.

This is the record of that, newest first. It is worth a look if you worked through a section a while ago and want to know whether it still says what it said, or if you are returning after a break and would rather not re-read everything to find out what moved.

Nothing in the main course depends on this appendix. If you are reading the course for the first time, you can skip it entirely.

Most of what appears here started with somebody getting in touch. If you have spotted a mistake, or something in the course did not make sense, S1 explains where to send it.

12 September 2026

  • S27 has one Change one thing edit fixed. It asked you to compare a new note against "S25's 625 Hz example", and there is no such example - not in S25, not anywhere in the course. 625 Hz is in fact the answer to the question: the section's own formula turns a period of 200 into exactly that. The edit now asks you to work out both frequencies from the formula and then say which way the note moved.
  • S24 has a number corrected in its program and one claim withdrawn. The asteroid was placed at X = 156, four pixels from where the rest of the section assumes it is: the Change one thing edit asks you to park the rocket at 152 and then 153 and says one of them will light up, and with the asteroid at 156 they both do. It is now at 160, which puts the boundary exactly between those two positions - one press of D apart - and matches the worked example a few paragraphs earlier about a last column of 159 meeting a first column of 160. The section also said that painting the backdrop only on a hit would stain the screen permanently; on the machine the colour goes as soon as you back away, so that sentence has gone. What replaces it is the part that holds: a program that only ever writes on a hit never says "no collision", so what the screen shows the rest of the time is out of its hands. The edit now asks you to watch what happens rather than telling you in advance.
  • S23 has one Change one thing edit reworded. It asked you to fly upward and fire while moving, which this program cannot do: the key call reports one key at a time, as S21 says, so holding one key and pressing another gets you one of the two. It now asks you to fire and then hold the key, which produces the same effect - a bullet that leaves at the ship's own speed and never gets off its nose. Its trouble table also said that a stack leak kills the machine "minutes later"; that is now seconds, to match the correction in S21.
  • S21 has one edit reworded, one explanation corrected, and two claims about timing put right. The section explains the down clamp of 175 by saying the rocket would otherwise lose its flame to the sprite-list terminator at 208 - but the flame slides off the bottom of the screen seventeen pixels above that height, and by the time 208 is reached the whole rocket is off screen anyway. The clamp is exactly right and its real reason is the screen's last line, which the section also gives; the 208 is a second hazard further down, and the Change one thing edit now asks you to add a third sprite so that there is something left for it to switch off. And the section twice said that a routine leaving by JP instead of RET leaks stack until the program dies "minutes" later. It dies within seconds - the unmodified loop runs happily for a minute, the leaking one is gone in under three. The part of that warning worth keeping is unchanged: the damage arrives hundreds of loop passes after the instruction responsible, which is what makes it hard to find.
  • S19 has two Change one thing edits fixed. The one that sets the early clock bit gave an X of 16, which shifts the sprite thirty-two pixels left and puts all eight of its pixels off the edge of the screen - so the question about what happens to its left half had nothing to look at. It now says 28, which leaves the right half against the left edge, and asks for 16 afterwards as the thing to explain. And the edit that makes a sprite transparent asked whether it is still being processed, which you could only answer by remembering a sentence from earlier on the page; it now tells you how to find out, by putting five sprites on one line with the transparent one first and counting how many of the rest you can see. The answer is three.
  • S18 has one edit reworded, two exercises rewritten, and a claim about its own palette withdrawn. The Change one thing edit that changes a spot's ground from transparent to black asked what appears around each spot, and nothing does: on a black backdrop, black ink and transparency look exactly alike. The edit now says so, explains why, and asks you to change the backdrop and watch the spots refuse to follow - which is the difference made visible, and a better lesson than the question was reaching for. Exercise 18.3 told you that eight of the sixteen colours had only ever been seen in documentation and asked you to correct the table where it was wrong; all sixteen are right, so it now asks you to check the table and to work out which one of the sixteen is not really a colour at all, which has a definite answer. The sentence above the palette marking eight of the colours as less certain has gone with it, and so has the claim that the missing corners are nearly the same blue as the screen behind them: they are exactly the same blue, which is a sharper version of the same lesson. And exercise 18.5 no longer says that nobody has tried it.
  • S17 has three edits reworded and one explanation corrected. Two of the Change one thing edits - the one that drops the third bank load and the one that shortens the copy to eight bytes - produce a blank screen rather than a broken one, and neither said so, which makes a correct result look like a typo. Both now tell you what you will see and ask why that is the answer. The paragraph on losing the ROM's text output said a printed character corrupts the patterns that forty cells share; on the screen the section builds it is more than two hundred, and printing one character changes every cell in that third of the screen showing the same tile, which is a better illustration than the original. And the note on reading video memory no longer explains the timing of the video chip - it just tells you to keep the loop around the read, and what to put back first if a read misbehaves.
  • S16 has three Change one thing edits and two exercises fixed. The edit that changes a colour byte to 94h asked you to describe what you see, and what you see is nothing whatever: colour 4 is the same dark blue as the screen behind your shape, so the change is invisible. It now says so and makes working out why the exercise, with a second colour to try afterwards. The edit that points a cell at pattern 35 asked where the diamond moves to, when in fact it disappears - it now asks what took its place, and adds a second step that puts a copy of a letter from the boot screen there instead. The edit that writes to row 9 now warns you about the gap that appears in the text, which is more noticeable than the missing diamond. Exercise 16.5 asked you to print a pattern byte as eight characters, which needs a way to test one bit and the course does not reach one for another six sections; it now points out that CP 128 and ADD A,A between them do the job with what you already have, and warns that the cell holds a sliver of the character next door. And 16.6 no longer states that the video chip needs a pause before a read is ready - it tells you what to do if a read comes back wrong instead.
  • S14 has three Change one thing edits reworded, all for the same reason: each told you what sort of answer to expect and the machine gives a different sort. The edit that indexes past the end of the table asked what gets printed, when in practice nothing is - it now says so and points you at HL instead. The edit that deletes the doubling asked which message prints, when none does: you get a screenful of solid blocks and the program never comes back, which the edit now warns you about so you have Restart ready. And the edit that reorders the table asked you to swap all three lines, which leaves the middle entry in the middle and changes nothing at all - it now asks for the first two, and then for the reversal as a second step with the non-change as the thing to explain. The section also gains a note about the baffling error the assembler gives if you try to load HL through a register pair.
  • S13 has one illustration corrected. The diagram showing five array bytes laid out in memory gave them specific addresses, and no program in the section actually puts them there. It now says the address is only an example and tells you to assemble your own listing to find where yours landed.
  • S12 has two edits made clearer. The exercise that asks you to find how much stack you have now tells you to look at the whole screen rather than only at whether your own program came back, because there is more than one way for a deep stack to go wrong and the first one you meet leaves your program working perfectly. And the Change one thing edit that leaks twenty pushes now asks you to be clear about whether you are predicting that the machine survives or that the program does, since the answers differ.
  • S11 has two fixes, both of them questions that told you the wrong answer. One Change one thing edit said that converting the print routine to use BC as its pointer would stop one line assembling; it does not, and the converted routine works perfectly. The edit now asks you to notice that, and then to try bringing the character into B, which is the line that really is refused. And exercise 11.3 asked why the second of two loads gets something different from the first, when at the address it gives you both bytes read the same. It now asks you to run it twice, once there and once on your own text, and explain why only one of the two pairs differs.
  • S10 has one Change one thing edit fixed. It asked you to break a coordinate by writing only one of its two bytes, and then explain the difference - but with the numbers it gave you the broken line lands exactly on top of the correct one and there is nothing to see. It now tells you to move one coordinate first, which is the same warning exercise 10.5 was already giving four paragraphs later.
  • S9 has two Change one thing edits reworded. One asked whether two characters printed before the read turn up in the echo, and then told you they do not - they do, if you print them where the instruction said. It now asks you to try both positions and work out which is which. The other, which stops reading at the first space, now tells you the screen will look exactly the same and points you at HL for the difference, because otherwise the edit looks like it did nothing at all.
  • S8 has two exercises clarified. The one that prints a key's code as a number needs a way to ask whether a value is ten or more, which the section had not given you and now admits you will have to look up. And the pair of loops that prove a call can destroy your counter now warns you that the second of the two never stops, so you know to have Restart ready rather than sitting there counting. It also points out that one of the four arrow keys does something you will not expect.
  • Four sections pointed you at the wrong thing next. S3, S5, S8 and S16 each ended by naming the following section under a title it does not have, and in S3's case describing material that section does not cover. All four now name the section you will actually get. Nothing in the sections themselves changed.
  • Two paragraphs were broken on the website. In S6, the Change one thing edit that starts from 255 had lost the number entirely and been split in two. In S16, the opening paragraph had a stray bullet point hanging off the end of it. Both were faults in how the pages were built rather than in what they said, and both now read as they were written.
  • S7 has three fixes. Its closing paragraph announced the next section as "Keeping things in memory", which is not what S8 is about; it now points at Reading the keyboard, which is what actually follows. One Change one thing edit asked which letter prints after a condition is swapped, when in fact neither does, and now says so. And the box exercise asked for two straight pieces where four are needed, one for each side, and did not warn that some codes in the graphics range print nothing at all.
  • Appendix I now says three useful things about the graphics range above 127: that some codes print nothing, that the straight pieces sit at the edges of the character square rather than through the middle, and that code 160 is a solid block.
  • S6 now warns you, in the Change one thing edit that swaps the two DECs, not to expect letters and not to be alarmed by an empty screen.
  • S5 has a correction. In the register line printed for the deliberately broken absolute jump, A read 41; it is 4A, the code for the J the program had just printed. Everything else in that display was right. The assembler listing is also now described as a trimmed extract, as S4's is, and the exercise that measures how far a relative jump reaches now tells you to read the distance from the error message rather than counting your own reserved bytes.
  • S4 has two fixes. The assembler listing it prints is now described as the trimmed extract it always was, so the extra header and footer lines you get from running z80asm -l yourself no longer look like a mistake. And the last Change one thing edit has been reworded: it asked what happens when you move a label, but answering why needed a fact about the print call that the course does not reach until S6.
  • Appendix X - Worked solutions added, and now complete. It gives a complete, tested program for every exercise the course sets - S3 to S28, eighty-eight of them, every one assembled and run before it was written down. One answer, 28.2's, records a failure rather than a success: the program is right and the machine does not do what the exercise expects, which is being looked into. It is long enough to come in two parts: Appendix X holds S3 to S16, and Appendix X (continued) picks up at S17, where the course takes the screen over and starts building a game. The Change one thing edits are deliberately left unanswered: those work by making you predict before you look, and running the edit tells you more than reading an answer would.

11 September 2026

  • S1 gains a short section on getting in touch: reporting a mistake, saying when an explanation is unclear, or offering to write something.
  • S2 now explains the prompt you are left at when the machine boots with no disc: what MOS is, why a real Einstein would normally start from a disc instead, and why the extension means you do not need one.
  • S3 gains a section explaining the Z80's registers: what they are, why a processor needs them, and why the accumulator is the one that matters most. The LD section no longer repeats that material and now covers the order of its two operands instead.
  • Every section's opening heading is now Introduction, where it previously read "Why this matters". Nothing else about those sections changed.

9 September 2026

  • Appendix VIII - Running your game on a real Einstein added. It takes the finished .COM from S29 or S30 to a disc image a real machine will boot from a Gotek.
  • Appendices I to VII published for the first time: character codes, other assemblers, what sits behind RST 8, the memory map, the keyboard matrix, drawing a line, and the disc format. The course already referred to several of them by name before they were available.
  • S2 now states that its install instructions are written for macOS, and describes the extension correctly: pressing Run starts the Einstein for you rather than expecting one to be running already.
  • S3 gains step-by-step instructions for creating a folder and a file in VS Code, a screenshot of the Run and Restart buttons, and an explanation of what each does and where to look for your program's output. This followed a reader getting as far as the setup and having nowhere to go next.
  • S29 and S30 now point at Appendix VIII from their closing sections.
  • Appendix VII reworded: it previously said nothing in the course would ever put a game on a disc, which Appendix VIII has since made untrue.
  • The extension's download link moved. It is now on the Downloads page at tatungbytes.co.uk/downloads/tatung-einstein-development, and the address the course gave before that no longer works.

5 September 2026

  • S4 to S30 published, taking the course from its first jump through to a complete game and splitting a project across several files.

4 September 2026

  • S1 to S3 published. The first version of the course.

Get the Newsletter

New guides, disk images and community finds, roughly once a quarter. No spam, we promise, this isn't Tatung's marketing department.
Your subscription could not be saved. Please try again.
Your subscription has been successful.

Newsletter

Subscribe to our newsletter and stay updated.