       PAGE

SCREN3 JSR SETSC3
       LDA #30
       STA LTIMER
       LDA EDELAY
       CMPA #5
       BGE A@
       LDA #5
A@     STA BDELAY
       CLR TOOKUM
       CLR TOOKRB
       CLR TOOKBC
       CLR TOOKPH
       CLR ELVATE
       CLR MARIOM
       CLR ARBORN
       CLR CLIMB
       CLR JSCOB
       CLR MARIOD
       LDY #MARIOL
       STY MARIO
       LDD #100*256+184
       STD MARIOX
       JSR SHAPE

RAMPS  LDB MARIOY
       CMPB #9 SEE IF AT 'TOP OF HILL'
       BHI NOTATP
       LDD #1*256+4 ADD 1000 FOR COMPLETING SCREEN
       JSR ADSCOR
       TST TOOKRB
       BEQ A@
       LDD #1*256+4
       JSR ADSCOR
A@     LDX #20000
       JSR HOLD
       LDD #SOFT
       STD VOLUME
       LDX #FOOLOH
       LDY #100
       INC JBFLAG ALLOW JUMP BACK
       JSR SONDSL
       LDX #10000
       JSR HOLD
       LBRA NEXTSC

NOTATP CLR MOVED
       INC MARIOM SHOULD I MOVE?
       LDA MARIOM
CMSPD  CMPA #3
       LBNE ZAT
       CLR MARIOM
       TST TOOKPH SEE IF MARIO TOOK PHONE
       BNE H@
       LDD MARIOX
       CMPD #2*256+114
       BEQ I@
       DECA
       CMPD #2*256+114
       BNE H@
I@     LDD #5*256+3
       JSR ADSCOR
       LDY #PHONE
       LDD #2*256+114
       INC TOOKPH
       BRA C@
H@     TST TOOKRB SEE IF RUBY TAKEN
       BNE A@
       LDD MARIOX
       CMPD #2*256+184
       BEQ B@
       DECA
       CMPD #2*256+184
       BNE A@
B@     LDD #1*256+4
       JSR ADSCOR
       LDY #GIRL
       LDD #2*256+184
       INC TOOKRB
       BRA C@
A@     TST TOOKBC SEE IF BIRTHDAY CAKE TAKEN
       BNE D@
       LDD MARIOX
       CMPD #2*256+79
       BEQ E@
       DECA
       CMPD #2*256+79
       BNE D@
E@     LDD #5*256+3
       JSR ADSCOR
       LDY #BCAKE
       LDD #2*256+79
       INC TOOKBC
       BRA C@
D@     TST TOOKUM SEE IF UMBRELA TAKEN
       BNE FAT
       LDD MARIOX
       CMPD #2*256+149
       BEQ G@
       DECA
       CMPD #2*256+149
       BNE FAT
G@     LDD #5*256+3
       JSR ADSCOR
       LDY #UMBRLA
       LDD #2*256+149
       INC TOOKUM
C@     JSR ERASEB
       JSR ERASE
       LDD MARIOX
       LDY MARIO
       JSR SHAPE

FAT    TST ARBORN
       LBNE O@
       TST CLIMB
       LBNE P@
       LDA $FF00
       LSRA
       LBCS P@
       JSR JUMP
       CLR ELVATE
       LDA MARIOY
       STA JBOTOM
       SUBA #20
       STA JTOP
       CLR DOWN
       INC ARBORN
O@     LDY MARIO ALREADY IN AIR
       LDD MARIOX
       TST DOWN
       BNE R@
       CMPB JTOP
       BLS R@ TIME TO FALL?
       LDX #0*256+4
       JSR MOVE
       SUBB #4
       LBRA S@
R@     INC DOWN
       CMPA #16 SEE OF POSSIBLE JUMP ON ELEVATOR
       BLO FALL
       CMPA #30
       BHI FALL
       SUBB ELEVY IN AREA OF ELEVATOR
       CMPB #-8
       BLT NFL
       CMPB #-4
       BGT NFL
       LDY MARIO
       LDD MARIOX
       JSR ERASE
       LDB ELEVY
       SUBB #6
       JSR SHAPE
       STD MARIOX
       LDY #LVATOR
       LDA #20
       LDB ELEVY
       JSR SHAPE
       INC ELVATE
       CLR ARBORN
       BRA P@
FALL   LDD MARIOX
Q@     CMPA #51 SEE IF ON/OFF ELEVATOR
       BHS NFP
       LDX #RAMYZ
CYZ    LDB ,X+
       BEQ NFE
       SUBB MARIOY
       CMPB #4
       BLO MDIT
       BRA CYZ
MDIT   LDY MARIO
       LDD MARIOX
       JSR ERASE
       LDB -1,X
       JSR SHAPE
       STD MARIOX
       CLR ARBORN
       BRA P@
NFP    LDB MARIOY
       CMPB JBOTOM
       BLO NFL
       CLR ARBORN
       BRA P@
NFE    LDB JBOTOM
       ADDB #5
       CMPB MARIOY
       LBLO MDIES
NFL    LDD MARIOX
       LDX #1*256+4
       JSR MOVE
       ADDB #4
       CMPB #185
       BLO S@
       LBRA MDIES
S@     STD MARIOX
P@     JSR [$A00A]
       TST CLIMB
       BNE C@
       LDA $015A
       CMPA #51
       BLE B@
       LDA #1
       STA MARIOD
       LDY #MARIOR
       STY MARIO
       LDD MARIOX
       CMPA #120 CAN'T GO LEFT IF AT LEFT MARGIN
       BHS C@
       LDX #3*256+2
       JSR MOVE
       ADDA #2
       STA MARIOX
       INC MOVED
       BRA C@
B@     CMPA #11 <11 = MOVE LEFT
       BGE C@
       LDY #MARIOL
       STY MARIO
       CLR MARIOD
       LDD MARIOX
       CMPA #1
       BLS C@ IF AT LEFT EDGE, THEN CAN'T GO LEFT
       LDX #2*256+2
       JSR MOVE
       SUBA #2
       STA MARIOX
       INC MOVED
C@     LDA $015B CHECK UP/DOWN
       CMPA #11
       LBGE D@
       TST CLIMB
       BNE E@
       LDX #RMPLDS
F@     LDD ,X++
       LBEQ K@
       CMPD MARIOX
       BEQ H@
       DECA
       CMPD MARIOX
       BNE F@
H@     LDA MARIOX
       STD LADRBT
       SUBB #35
       STD LADRTP
       LDY #MAC0
       STY MARIO
       CLR MARIOV
       INC CLIMB
E@     INC MOVED
       LDY #MARIOC
       LDA MARIOV
       INC MARIOV
       ANDA #3
       LSLA
       LDY A,Y
       STY MARIO
       LDD MARIOX
       LDX #0*256+2
       JSR MOVE
       SUBB #2
       STD MARIOX
       LDB LADRTP+1
       CMPB MARIOY
       LBLO K@
       LDD MARIOX
       JSR ERASE
       LDB LADRTP+1
       STB MARIOY
       LDY #MARIOT
       STY MARIO
       JSR SHAPE
       CLR CLIMB
       BRA K@
D@     CMPA #51
       LBLE K@
       TST CLIMB
       BNE L@
       LDX #RMPLDS
M@     LDD ,X++
       BEQ K@
       SUBB #35
       CMPD MARIOX
       BEQ N@
       DECA
       CMPD MARIOX
       BNE M@
N@     LDA MARIOX
       STD LADRTP
       ADDB #35
       STD LADRBT
       LDY #MAC1
       STY MARIO
       CLR MARIOV
       INC CLIMB
L@     INC MOVED
       LDY #MARIOC
       LDA MARIOV
       INC MARIOV
       ANDA #3
       LSLA
       LDY A,Y
       STY MARIO
       LDD MARIOX
       LDX #1*256+2
       JSR MOVE
       ADDB #2
       STD MARIOX
       LDB LADRBT+1
       CMPB MARIOY
       BHI K@
       LDD MARIOX
       JSR ERASE
       LDB LADRBT+1
       JSR SHAPE
       STB MARIOY
       CLR CLIMB
K@     TST ARBORN
       LBNE CKKNG
       TST MOVED
       BEQ CKKNG
       JSR WALK
       TST CLIMB IF ON LADDER, NO CHECK NOWHERE
       BNE ZAT
       LDD MARIOX CHECK IF MARIO IN THE MIDDLE OF
       ADDA #4 NOWHERE?!
       INCB
       JSR READPX
       TSTA
       LBEQ MDIES
CKKNG  LDD #S3KONG
       ADDB #15
       CMPB MARIOY
       BLO ZAT
       ADDA #17
       CMPA MARIOX
       BLO ZAT
       SUBA #24
       CMPA MARIOX
       LBLO MDIES

ZAT    DEC ELEVT
       BNE BROLL
       LDA BDELAY
       STA ELEVT
E@     TST ELEVD
       BEQ A@
       LDB ELEVY
       CMPB #189
       BLO B@
       CLR ELEVD
       BRA C@
B@     LDY #LVATOR
       LDA #20
       LDX #1*256+2
       JSR MOVE
       ADDB #2
       STB ELEVY
       TST ELVATE
       BEQ D@
       LDY MARIO
       LDD MARIOX
       JSR MOVE
       ADDB #2
       STB MARIOY
       BRA D@
A@     LDB ELEVY
       CMPB #56
       BHI C@
       INC ELEVD
       BRA B@
C@     TST ELVATE
       BEQ H@
       LDY MARIO
       LDD MARIOX
       LDX #0*256+2
       JSR MOVE
       SUBB #2
       STB MARIOY
H@     LDY #LVATOR
       LDA #20
       LDB ELEVY
       LDX #0*256+2
       JSR MOVE
       SUBB #2
       STB ELEVY
D@

BROLL  DEC LTIMER LAUNCH A BARREL WHEN CAN
       BEQ D@ IF =0, THEN CAN
       LDA BARELS UNLESS NO MORE BARRELS TO ROLL
       CMPA #6
       BEQ C@
       LDA LTIMER CHECK IF MONKEY TURNS
       CMPA #20
       BNE C@
       LDY #KONG5 TURN HIM TO RT
       LDD #S3KONG
*      JSR BSHAPE
       JSR SHAPE
       STY MONKEY
       INC BONCED
       BRA BMOVE
C@     LDA LTIMER CHECK IF FACES FORWARD AGAIN
       CMPA #190
       BNE BMOVE
       LDY #KONG1
       LDD #S3KONG
*      JSR BSHAPE
       JSR SHAPE
       STY MONKEY
       INC BONCED
       BRA BMOVE
D@     LDA #200
       STA LTIMER
       LDX #ENMYTB
A@     TST ,X
       BEQ B@
       LEAX 9,X
       CMPX #ETABOT
       BLT A@
       BRA BMOVE NO LAUNCH, NO ROOM
B@     INC BARELS
       LDD #44*256+44
       STD ,X
       LDY #BAREL
       JSR SHAPE
       LDA #3
       LDB BDELAY
       STD 2,X
       LDD #0
       STD 4,X
       STD 6,X
       STA 8,X

BMOVE  TST BARELS
       LBEQ SC3DLY
       LDD MARIOX SET UP CHECK VALUES FOR MARIO HITTING
       SUBA #6 BARRELS
       SUBB #14
       STD MRIOTC
       LDD MARIOX
       ADDA #7
       ADDB #7
       STD MRIOBC
       ADDB #13
       STB MRIOAB
       LDX #ENMYTB
LAT    LDY #BAREL
       TST ,X
       LBEQ NAT
       DEC 3,X
       LBNE NAT
       LDA BDELAY
       STA 3,X
       LDD ,X CHECK IF BARREL SHOULD DISAPPEAR
       CMPB #184
       BLO K@
       BHI BBBARL
       CMPA #118
       BLO K@
BBBARL JSR ERASE IF SO, THEN ERASE
       CLR ,X
       CLR 1,X
       DEC BARELS
       LBRA NAT
K@     TST 4,X
       BEQ Q@
       LDD ,X
       LDY #SBAREL
       CMPB 8,X
       BLO O@
       JSR ERASE
       INCA
       CLR 4,X
       LDY #BAREL
       JSR SHAPE
       STD ,X
       LDB #2
       LDA 2,X
       CMPA #3
       BEQ P@
       LDB #3
P@     STB 2,X
       BRA Q@
O@     PSH X
       LDX #1*256+5
       JSR MOVE
       PUL X
       ADDB #5
       STD ,X
       LBRA NAT
Q@     LDA SEED
       EORA CLOCK
       RORA
       RORA
       RORA
       ADDA #20
       ANDA #15
       CMPA #14
       BLO R@
       LDU #RMPLDS
       LDD ,X
       ADDB #35
S@     TST ,U
       BEQ R@
       CMPB 1,U
       BNE T@
       SUBA ,U
U@     CMPA #2
       BHI T@
       LDY #BAREL
       LDD ,X
       JSR ERASE
       LDD ,U
       DECA
       STD 7,X
       SUBB #35
       LDY #SBAREL
       JSR SHAPE
       STD ,X
       INC 4,X
       LBRA NAT
T@     LDA ,X
       LEAU 2,U
       BRA S@
R@     LDA 2,X
       CMPA #3
       BNE C@
       LDD ,X
       INCB
       JSR READPX
       TSTA
       BNE A@
       CLR 2,X DOWN TO LEFT NEXT
       BRA D@
A@     LDD ,X
       PSH X
       LDX #3*256+3
       JSR MOVE
       PUL X
       ADDA #3
       STA ,X
       LBRA NAT
C@     CMPA #2
       BNE D@
       LDD ,X
       ADDA #6
       INCB
       JSR READPX
       TSTA
       BNE E@
       LDA #1
       STA 2,X
       BRA D@
E@     LDD ,X
       PSH X
       LDX #2*256+3
       JSR MOVE
       PUL X
       SUBA #3
       STA ,X
       LBRA NAT
D@     LDD ,X
       ADDA #4
       ADDB #4
       JSR READPX
       TSTA
       BNE G@
       LDD ,X
       PSH X
       LDX #1*256+8
       JSR MOVE
       PUL X
       ADDB #8
       STB 1,X
       BRA NAT
G@     LDD ,X
       TFR X,U
       LDX #1*256+3
       JSR MOVE
       ADDB #3
       STD TEMP
       LDD #SOFT
       STD VOLUME
       LDA #1
       STA PITCH
       LDB #1
       JSR PSOUND
       LDD TEMP
       LDX #0*256+4
       JSR MOVE
       SUBB #4
       STD TEMP
       LDX #900
J@     MUL
       LEAX -1,X
       BNE J@
       TST 2,U TO RIGHT OR LEFT?
       BNE H@
       LDB #2
       STB 2,U
       LDD TEMP
       LDX #2*256+2 LEFT
       JSR MOVE
       SUBA #2
       BRA I@
H@     LDB #3
       STB 2,U
       LDD TEMP
       LDX #3*256+2 RIGHT
       JSR MOVE
       ADDA #2
I@     LDX #1*256+4
       JSR MOVE
       ADDB #4
       TFR U,X
       STD ,X
*      LDD #MUFF
*      STD VOLUME
*      LDB #1
*      JSR PSOUND
       INC BONCED

NAT    LDD ,X CHECK IF MARIO IS HIT BY A BARREL
       CMPA MRIOTC
       BLO K@
       CMPA MRIOBC
       BHI K@
       CMPB MRIOTC+1
       BLO K@
       CMPB MRIOBC+1
       LBLS MDIES
       TST ARBORN
       BEQ K@
       CMPB MRIOAB
       BHI N@
       CMPA MARIOX
       BEQ W@
       DECA
       CMPA MARIOX
       BEQ W@
       ADDA #2
       CMPA MARIOX
       BNE N@
W@     TST JSCOB SCORE FOR A BARREL?
       BNE N@
       LDD #3*256+3
       JSR ADSCOR
       LDA #6
       STA JSCOB
N@     LDY #BAREL
       LDD ,X
       JSR SHAPE
K@     LEAX 9,X
       CMPX #ETABOT
       LBLT LAT

SC3DLY JSR [$A000]
       CMPA #'S
       BNE XXCC
XXWW   JSR [$A000]
       CMPA #'G
       BNE XXWW

XXCC   LDA #2
       CMPA MARIOM
       BNE B@
       TST BONCED
       BNE B@
       LDX #1800
A@     MUL
       LEAX -1,X
       BNE A@
B@     CLR BONCED
       TST JSCOB
       BEQ C@
       DEC JSCOB
C@     LBRA RAMPS

SETSC3 JSR CLEARB CLEAR BACKGROUND
       LDY #GIRDER
       LDU #ELRAMP
A@     LDB ,U+
       BEQ B@
       CLRA
       TFR D,X
       LDD ,U++
C@     JSR BSHAPE
       ADDA #5
       LEAX -1,X
       BNE C@
       BRA A@
B@     LDY #SBAREL
       LDD #0*256+43
       JSR BSHAPE
       LDA #10
       JSR BSHAPE
       LDB #35
       JSR BSHAPE
       CLRA
       JSR BSHAPE
       LDU #RMPLDS
       LDY #LADDER
E@     LDD ,U++
       BEQ G@
       LDX #6
F@     JSR BSHAPE
       SUBB #5
       DEX
       BNE F@
       BRA E@
G@     LDA #RD
       STA COLOR
       LDD #24*256+51
D@     JSR BSETXY
       INCB
       CMPB #191
       BNE D@
       LDY #GIRL
       LDD #2*256+184
       JSR BSHAPE
       LDY #UMBRLA
       LDD #2*256+149
       JSR BSHAPE
       LDY #BCAKE
       LDD #2*256+79
       JSR BSHAPE
       LDY #PHONE
       LDD #2*256+114
       JSR BSHAPE
       JSR HOWMNY
       JSR COPYBF
       LDY #KONG1
       LDD #S3KONG
       JSR SHAPE
       STY MONKEY
       LDY #LVATOR
       LDD #20*256+190
       JSR SHAPE
       CLR ELEVD
       LDA #190
       STA ELEVY
       LDA BDELAY
       STA ELEVT
       CLR BARELS
       CLR BONCED
       CLRA
       LDB #1
       LDY #SCORE
       JMP DECOUT

*MARIO DIES.  ON THIS SCREEN, THE ELEVATOR SHOULD
*BE WRITTEN ON THE BACKGROUND SCREEN BEFORE WE JUMP
*INTO FALL DOWN DEAD (FALLDD)
MDIES  LDY #LVATOR
       LDA #20
       LDB ELEVY
       JSR BSHAPE
       LDD #S3KONG
       LDY MONKEY
       JSR BSHAPE
       JMP FALLDD



