Docking, and a ceiling that is no longer the old screen's edge
The station can be docked with: close enough, and slow enough RELATIVE TO IT, or it is a wreck. Its speed is orbital speed, which is what the marks on the drift bar point at, so the instrument for this was on the screen before there was anything to dock with. A dock pays eighty units of fuel, once and not once a frame, and holds the lander a tile under the station until a thruster lets go - checked before the speeds are put back, or a burn would be wiped on the frame it was made and the lander could never leave. ---- And the ceiling went up, which is what made it work ---- Sixty four pixels was the whole of the sky a forty column screen had over the world's origin. It was never a fact about the world, it was a fact about the view, and the wide one starts twenty four rows higher: a lander stopped at the old line was stopped a long way short of the top of its own picture for no reason it could see. It is 192 pixels now, the top of the wide view. The station went from four rows up to twelve - about two thirds of the way from the ground to the ceiling. At four it sat exactly where anything climbing away from the surface had to pass, and being run down there is not a hazard, it is a toll: ELEVEN of this suite's flights were being run down as collateral, including the ceiling check, which has to climb past it to reach the ceiling at all. Moving both fixed all eleven at once. The height bar divides by sixty four rather than thirty two, because the band it describes is 368 pixels now and half a pixel of bar to a pixel of sky would stand 184 tall and run off the top of the forty column screen it is drawn beside. ---- What is checked, and what is written down instead ---- The wreck is flown. The fixture is narrow - the window measured 496 to 514 frames of climb and it sits at 505 - and that is said in place, along with the instruction to re-measure before believing the code is broken. It was not always narrow: at the old altitude any climb from 135 to 300 frames struck. Narrow is the right way round, because it means the station is hard to blunder into. The successful dock is NOT flown, and ninety six pad files failed to find it. That is not the search's fault: climbing spends sideways speed, so a lander cannot rise while matched. It is measured working instead - tank 100 to 180, message up, and the pair holding together one tile apart for two hundred and forty frames.
This commit is contained in:
@@ -2347,6 +2347,53 @@ MOVED=$(( X3 - X2 ))
|
||||
&& result ok "and round the back of the moon and out again" "gone, then back at $X7" \
|
||||
|| result no "and round the back of the moon and out again" "$X5 at five million, $X7 at seven"
|
||||
|
||||
# ---- Docking, and the half of it that can be flown to ----
|
||||
#
|
||||
# The same shape as touchdown: close enough, and slow enough, or it is a wreck. What makes it
|
||||
# a different skill is that "slow enough" is measured against the STATION, which is doing
|
||||
# orbital speed - the number the marks on the drift bar already point at.
|
||||
#
|
||||
# ---- A NARROW FIXTURE, and it is written down rather than hidden ----
|
||||
#
|
||||
# The climb here has to arrive at the station's altitude just as the station arrives at the
|
||||
# lander, and the window measured 496 to 514 frames - about nineteen. 505 sits in the middle
|
||||
# of it. That is thinner than this suite likes and it is the same shape as the orbit check
|
||||
# that had to be deleted for measuring the boot time, so: IF THIS EVER FAILS, re-measure the
|
||||
# window before believing the code is broken.
|
||||
#
|
||||
# It was not always narrow. The station used to orbit four rows up, where anything climbing
|
||||
# away from the surface had to pass, and a strike could be had with any climb between 135 and
|
||||
# 300 frames - eleven of this suite's other flights were being run down as collateral. Moving
|
||||
# it to twelve rows and the ceiling to twenty four fixed all eleven at once, and made the
|
||||
# station properly hard to blunder into. The narrow window is the price of that, and it is the
|
||||
# right way round.
|
||||
python3 -c "open('$BUILD/struck.pad','wb').write(b'\x08' * 505 + b'\x00' * 60000)"
|
||||
timeout 60 "$EMU" --fast --cycles 40000000 --keyboard "$BUILD/fly.keys" \
|
||||
--pad "$BUILD/struck.pad" --disk "$ROOT/Tests/build/disks/cosmos.img" \
|
||||
--ram-disk 2048 "$BUILD/cosmos.bin" > "$BUILD/struck.out" 2>&1 || true
|
||||
grep -q "Wrecked against the station" "$BUILD/struck.out" \
|
||||
&& result ok "the station runs down a lander in its lane" "at 64 sixteenths of relative speed" \
|
||||
|| result no "the station runs down a lander in its lane" "no wreck in the transcript"
|
||||
|
||||
# ---- And the half that is not checked here ----
|
||||
#
|
||||
# THE SUCCESSFUL DOCK IS NOT FLOWN. It was measured working, from a build that PLACED the
|
||||
# lander alongside the station and matched: the tank went from 100 to 180, once and not once a
|
||||
# frame, the message went up, and the pair then held together - lander at 316,168 and station
|
||||
# at 320,160, one tile apart and unmoving for two hundred and forty frames, which is what
|
||||
# riding looks like. A thrust in any direction let go of it.
|
||||
#
|
||||
# What could not be found was a pad file that flies there. Ninety six were tried and every one
|
||||
# either hit the moon or was run down on the way UP, which turns out not to be the search's
|
||||
# fault: climbing SPENDS sideways speed, by the exchange that makes the orbit work at all, so
|
||||
# a lander cannot rise while matched - it arrives slower than orbital every time. Docking needs
|
||||
# two burns, one to raise the far side of the orbit and one to circularise at the top, and no
|
||||
# straight line of button presses stumbles into that.
|
||||
#
|
||||
# So it wants either a hand flown recording or, better, a way to PLACE the lander at a chosen
|
||||
# position and velocity before the loop starts - which is now wanted by this, by the orbit
|
||||
# above, by the ride, and by the narrow window three paragraphs up.
|
||||
|
||||
# ---- Clearing puts the cursor back at the top ----
|
||||
#
|
||||
# A screen with nothing on it and a cursor half way down it is not a cleared screen. This
|
||||
|
||||
Reference in New Issue
Block a user