Prev: $189D Up: Map Next: $1994
$191B: Deal with ERIC when he's firing the catapult
This corresponds to $F41F in the ZX Spectrum version.
Used by the routine at $15B3.
$191B DEC $FE Decrement ERIC's action timer at $FE.
$191D BNE $1935 Branch unless it's zero now.
This entry point is used by the routines at $17E5, $184E and $189D.
$191F LDA #$00 Clear ERIC's status flags at $2B.
$1921 STA $2B
$1923 LDA #$10 Set voice #2 control register: voice off, release cycle; triangle waveform enabled.
$1925 STA $D40B
This entry point is used by the routine at $184E.
$1928 JSR $322E Update the SRB for the ERIC's current animatory state and location.
$192B LDA $D2 Restore ERIC's pre-action animatory state from $D2.
$192D STA $26
$192F JSR $322E Update the SRB for ERIC's new animatory state.
$1932 JMP $1993 Return.
$1935 LDA $FE Pick up ERIC's action timer from $FE.
$1937 CMP #$12 Is it time to raise the catapult to eye level?
$1939 BNE $193E Branch if not.
$193B JMP $2B47 Make ERIC raise the catapult to eye level.
$193E CMP #$06 Is it time to start lowering the catapult?
$1940 BNE $1945 Branch if not.
$1942 JMP $2BA7 Make ERIC lower the catapult.
$1945 CMP #$0C Is it time to launch the pellet?
$1947 BEQ $194C Branch if so.
$1949 JMP $1993 Otherwise return.
$194C LDA $60 Pick up the current character number from $60 and store a copy at $DB.
$194E STA $DB
$1950 LDA #$13 Character number $13 is ERIC's pellet.
$1952 STA $DC Store this at $DC.
$1954 JSR $2B62 Set the pellet on its way from ERIC's catapult.
$1957 LDA #$30 Set voice #2 frequency to $3000.
$1959 STA $D408
$195C LDA #$00
$195E STA $D407
$1961 LDA #$1B Set voice #2 attack length to 8ms and decay length to 2.4s.
$1963 STA $D40C
$1966 LDA #$00 Set voice #2 sustain volume to 0 and release length to 6ms.
$1968 STA $D40D
$196B LDA #$11 Set voice #2 control register: voice on, attack-sustain-decay cycle; triangle waveform enabled.
$196D STA $D40B
$1970 LDA #$0D Lines reprimand $0D: CATAPULTS ARE FORBIDDEN.
This entry point is used by the routines at $17E5 (with A=$0E: DON'T HIT YOUR MATES) and $189D (with A=$0F: YOU ARE NOT A KANGAROO).
$1972 STA $D8 Store the lines reprimand identifier at $D8.
$1974 JSR $0E59 Was ERIC seen by a teacher?
$1977 BCC $1993 Return if not.
$1979 STA $C0 Copy the character number of the teacher who saw ERIC to $C0. (This might overwrite the character number already stored there by the routine at $0A58, which is a bug.)
$197B LDA #$14 Store ERIC's character number ($14) at $72.
$197D STA $72
$197F JSR $33BF Restore ERIC's character buffer from page 0.
$1982 LDA $C0 Pick up the character number of the teacher who saw ERIC from $C0.
$1984 STA $60 Update the current character number at $60.
$1986 JSR $3279 Copy the teacher's character buffer to page 0.
$1989 JSR $1DB7 Make the teacher give ERIC lines.
$198C LDA #$14 Set the current character number at $60 to $14 (ERIC).
$198E STA $60
$1990 JSR $3279 Copy ERIC's character buffer to page 0.
$1993 RTS
Prev: $189D Up: Map Next: $1994