Prev: 43216 Up: Map Next: 43527
43242: IntroductionMode
Game-mode handler for "3: Introduction" (dispatched from 43135): the "MAPPING SYMBOLS" legend page.
On a black screen it prints the map-symbol legend (connecting door, ladder, hatchway, grille), stamps the two animated map markers next to their captions (channel A's walking crew figure = "Subject Indicator", channel B's blinking box = "Room Indicator"), then demos three sound effects with captions ("This is the sound of a" Door being opened / Grille being removed / Positive Tracker Reading), animating the markers throughout.
Waits for any key (via the ROM's LAST-K) and jumps back to GameModeScreen — it never returns to its caller.
43242 CALL 42501 ClearDisplay
43245 XOR A black border
43246 OUT (254),A
43248 LD A,7 white ink on black paper
43250 CALL 42515 FillAttributes(7)
43253 LD HL,16424 "MAPPING SYMBOLS" centred on row 1
43256 LD (31257),HL (31257 = the PrintStr draw pointer)
43259 LD DE,41572
43262 LD B,15
43264 CALL 44509 PrintStr: 15 chars from 41572
43267 LD HL,16548 door glyphs + " : Connecting Door" on row 5
43270 LD (31257),HL
43273 LD DE,41587
43276 LD B,21
43278 CALL 44509 PrintStr: 21 chars from 41587
43281 LD HL,16613 ladder glyph + " : Ladder to Deck Above" on row 7
43284 LD (31257),HL
43287 LD DE,41608
43290 LD B,25
43292 CALL 44509 PrintStr: 25 chars from 41608
43295 LD HL,18469 hatch glyph + " : Hatchway to Deck Below" on row 9
43298 LD (31257),HL
43301 LD DE,41633
43304 LD B,27
43306 CALL 44509 PrintStr: 27 chars from 41633
43309 LD HL,18568 ": Subject Indicator" on row 12 (the marker sprite
43312 LD (31257),HL itself is stamped to its left below)
43315 LD DE,41660
43318 LD B,19
43320 CALL 44509 PrintStr: 19 chars from 41660
43323 LD HL,18664 ": Room Indicator" on row 15
43326 LD (31257),HL
43329 LD DE,41679
43332 LD B,16
43334 CALL 44509 PrintStr: 16 chars from 41679
43337 LD HL,20517 grille glyph + " : Grille to Ducting" on row 17
43340 LD (31257),HL
43343 LD DE,41695
43346 LD B,22
43348 CALL 44509 PrintStr: 22 chars from 41695
43351 LD HL,0 unfreeze both marker-animation channels: word 0 into
43354 LD (31263),HL 31263/31264 clears bit 7 and resets the phase
43357 LD HL,18532 channel A (the walking crew figure) draws at row 11
43360 LD (33686),HL col 4, just left of the ": Subject Indicator" caption
43363 LD HL,18628 channel B (the blinking box) draws at row 14 col 4,
43366 LD (33688),HL left of the ": Room Indicator" caption
43369 XOR A stamp frame 0 of the blinking-box marker...
43370 LD B,1 ...one sprite row tall
43372 CALL 35031 BlitMarkerB (XOR-blit, so it stays visible)
43375 XOR A and frame 0 of the crew-figure marker
43376 LD B,1
43378 CALL 34982 BlitMarkerA
43381 LD HL,20613 "This is the sound of a" on row 20
43384 LD (31257),HL
43387 LD DE,43527
43390 LD B,22
43392 CALL 44509 PrintStr: 22 chars from 43527
43395 LD HL,20677 "Door being opened" on row 22
43398 LD (31257),HL
43401 LD DE,43549
43404 LD B,17
43406 CALL 44509 PrintStr: 17 chars from 43549
43409 LD B,5 demo the door sound 5 times
43411 PUSH BC
43412 LD A,1 queue beeper effect 1 (the door sound)
43414 LD (33699),A in the sound-request flag
43417 CALL 40319 FrameTiming plays the queued effect
43420 CALL 43505 IntroMode_Animate: run the markers ~20 frames
43423 POP BC
43424 DJNZ 43411
43426 LD HL,20677 replace row 22's caption with "Grille being removed"
43429 LD (31257),HL
43432 LD DE,43566
43435 LD B,20
43437 CALL 44509 PrintStr: 20 chars from 43566
43440 LD B,5 demo the grille sound 5 times
43442 PUSH BC
43443 LD A,1 queue the pending-sound effect
43445 LD (33705),A in the sound-pending flag
43448 CALL 44880 PlayMusic plays it (the grille-removal scrape)
43451 CALL 43505 animate the markers between plays
43454 POP BC
43455 DJNZ 43442
43457 LD HL,20677 replace row 22's caption with "Positive Tracker Reading"
43460 LD (31257),HL
43463 LD DE,43586
43466 LD B,24
43468 CALL 44509 PrintStr: 24 chars from 43586
43471 LD B,15 demo the tracker beep 15 times
43473 PUSH BC
43474 CALL 39242 RomBeep (~755 Hz tracker blip)
43477 CALL 43505 animate the markers between beeps
43480 POP BC
43481 DJNZ 43473
43483 XOR A clear the ROM's LAST-K system variable so that
43484 LD (23560),A only a fresh keypress ends the page
43487 CALL 36448 BusyWait one frame
43490 CALL 35016 keep both markers animating while waiting:
43493 CALL 34967 blinking box (B), then walking figure (A)
43496 LD A,(23560) has the ROM interrupt handler recorded a keypress?
43499 AND A
43500 JR Z,43487 no: keep waiting
43502 JP 42821 yes: back to the crew-roster / game-mode menu
43505 LD B,20 run ~20 frames of marker animation
43507 PUSH BC
43508 CALL 35016 step the blinking box...
43511 CALL 34967 ...and the walking figure
43514 CALL 36448 one-frame timing wait
43517 CALL 35016 step both again (the channels are counter-gated,
43520 CALL 34967 so double-stepping doubles the animation rate)
43523 POP BC
43524 DJNZ 43507
43526 RET
Prev: 43216 Up: Map Next: 43527