Anachronaut and Claude Opus 5
88ecb208f4
The coarse scroll register was being sent the wrong register
...
CALL eighth
OUTA 0x36
RET puts A back the way it found it, so the column origin was written the
high byte of the position that had been passed in, and the answer the
subroutine had worked out went nowhere. The fine register was computed
inline with OUTQ and was correct, which is exactly what it looked like
from the outside: smooth scrolling within a cell that never advanced one.
Q is the only register that crosses a RET. Every other answer in this
program already came back in it; this one had been written as if A would
do, and A very nearly does, which is what makes it worth a comment rather
than a fix.
Gravity was Jupiter's. A sixteenth of a pixel per frame per frame is the
smallest step this arithmetic can take and it crossed the screen in a
second, so it is applied one frame in six instead - which divides the pull
by six and costs a byte and a compare. The alternative was a finer unit
for velocity than for position, and that means a shift every time one is
added to the other, twice a frame, for ever.
And the check that catches all this now looks 1.5 million cycles in rather
than twelve. The first number came from assuming a program that saves a
whole screen takes a long time to start; it does not, and by twelve
million the lander had flown seven hundred frames and left the picture.
A capture near the beginning is worth more than a tuned one - there is
less between it and the start that can move.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
2026-09-02 21:13:09 -04:00
..
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-30 17:08:27 -04:00
2026-08-30 17:08:27 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-26 23:31:04 -04:00
2026-08-26 23:31:04 -04:00
2026-08-27 13:45:11 -04:00
2026-08-26 23:31:04 -04:00
2026-08-17 23:26:21 -04:00
2026-08-27 16:04:21 -04:00
2026-08-27 16:04:21 -04:00
2026-08-31 23:01:55 -04:00
2026-08-29 08:26:15 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-09-01 20:33:33 -04:00
2026-09-01 16:49:12 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-09-02 21:13:09 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-09-02 21:13:09 -04:00
2026-08-17 23:26:21 -04:00
2026-09-01 16:49:12 -04:00
2026-09-01 12:24:23 -04:00
2026-09-01 14:07:09 -04:00
2026-09-01 16:49:12 -04:00
2026-09-02 21:13:09 -04:00
2026-09-01 19:23:55 -04:00
2026-08-31 23:01:55 -04:00
2026-09-02 21:13:09 -04:00
2026-09-02 21:13:09 -04:00
2026-09-01 16:49:12 -04:00
2026-09-01 12:24:23 -04:00
2026-08-31 23:01:55 -04:00
2026-09-01 16:49:12 -04:00
2026-09-01 16:49:12 -04:00
2026-09-01 16:49:12 -04:00
2026-09-01 20:50:05 -04:00
2026-09-02 21:13:09 -04:00
2026-09-02 21:13:09 -04:00
2026-09-02 16:18:37 -04:00
2026-09-02 16:18:37 -04:00
2026-09-01 11:47:20 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-09-02 21:13:09 -04:00
2026-09-01 16:49:12 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-09-01 16:49:12 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-09-02 21:13:09 -04:00
2026-09-01 16:49:12 -04:00
2026-09-01 16:49:12 -04:00
2026-09-02 21:13:09 -04:00
2026-09-01 19:29:20 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-09-01 16:49:12 -04:00
2026-09-01 18:10:40 -04:00
2026-09-01 18:10:40 -04:00
2026-09-01 16:49:12 -04:00
2026-09-01 16:49:12 -04:00
2026-09-01 16:49:12 -04:00
2026-09-02 16:18:37 -04:00
2026-08-31 23:01:55 -04:00
2026-09-01 19:23:55 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-29 22:15:02 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-31 10:10:38 -04:00
2026-08-17 23:26:21 -04:00
2026-08-26 11:11:25 -04:00
2026-08-17 23:26:21 -04:00
2026-08-29 10:24:09 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-28 18:07:35 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-09-01 14:40:53 -04:00
2026-08-27 17:02:59 -04:00
2026-09-01 14:40:53 -04:00
2026-08-27 20:02:42 -04:00
2026-08-31 23:01:55 -04:00
2026-08-27 20:02:42 -04:00
2026-08-17 23:26:21 -04:00
2026-08-29 10:44:15 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-28 18:07:35 -04:00
2026-08-28 18:07:35 -04:00
2026-08-17 23:26:21 -04:00
2026-08-28 18:07:35 -04:00
2026-08-17 23:26:21 -04:00
2026-08-25 17:29:43 -04:00
2026-08-31 23:01:55 -04:00
2026-08-31 23:01:55 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-28 23:08:52 -04:00
2026-08-25 20:44:38 -04:00
2026-09-01 11:22:43 -04:00
2026-08-27 18:05:54 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-31 23:01:55 -04:00
2026-08-27 17:02:59 -04:00
2026-08-27 18:18:36 -04:00
2026-08-28 18:07:35 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-20 22:12:47 -04:00
2026-08-19 18:17:39 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-31 17:06:28 -04:00
2026-08-31 17:06:28 -04:00
2026-09-01 16:56:17 -04:00
2026-08-17 23:26:21 -04:00
2026-08-17 23:26:21 -04:00
2026-08-26 11:11:25 -04:00
2026-08-27 16:51:39 -04:00
2026-08-27 16:51:39 -04:00
2026-08-27 16:51:39 -04:00