Prev: 38182 Up: Map Next: 38379
38317: DamageOverflowFlash — the hull gives way
A room's damage meter has passed 99 (or the destruct countdown ran out): ~7 seconds of screen flashing with a rainbow border, then the ship is lost (DamageGameOver).
Used by the routines at 38182 and 38784.
38317 PUSH BC
38318 PUSH AF
38319 LD B,100 100 flash cycles:
38321 PUSH BC
38322 CALL 36448 ~36 ms delay,
38325 LD A,7 attributes = white ink on black,
38327 CALL 42515
38330 CALL 36448 ~36 ms delay,
38333 LD A,56 attributes = black ink on white
38335 CALL 42515
38338 POP BC
38339 LD A,B border cycles through
38340 AND 7 all 8 colours
38342 OUT (254),A
38344 DJNZ 38321
38346 POP AF
38347 POP BC
38348 JP 44524 game over: the Nostromo is lost
Ship-status dashboard: counters and ASCII digit cells (previously mis-disassembled as code). The digit cells double as the source text drawn on the status bar, and the endgame renderer copies them into the "The Nostromo will explode in .. minutes .. seconds" screen.
38351 DEFB 0,0,0 per-engine-room (17/18/19) fire-fighting progress, +1 per squirt (FightFireSquirt)
38354 DEFB 50 ship-systems tick countdown (reloaded with 100 by the engine-state scan at 39041)
38355 DEFB 3 destruct-second countdown (reloaded with 20 by the ticker at 38846)
38356 DEFB 0 scratch: room of the actor under adjacency test
38357 DEFB 10 oxygen tick reload value
38358 DEFM "TIME: " status-bar label for the destruct countdown
38364 DEFB 0 minutes digit, ASCII ('5' when armed at 38454)
38365 DEFM ":"
38366 DEFB 0,0 seconds digits, ASCII ("00" when armed); the low digit also drives the border flicker while armed
38368 DEFM "TOOH: " oxygen label as stored on the tape (sic)
38374 DEFM "75" oxygen level, ASCII, counting down; msg #26
38376 DEFM "00" "Oxygen status CRITICAL" fires at "05"+"00"
38378 DEFB 0 free-running pace counter gating an event every 8 ticks (inside 38379)
Prev: 38182 Up: Map Next: 38379