 .equ HOME_T,0xFFC331
 .equ AWAY_T,0xFFC333
 .equ HOME_G,0xFFC6DA
 .equ AWAY_G,0xFFCA3E
 .equ GOALS,0xB4
 .equ SHOTS,0xE8
 .include "season-symbols.inc"
 .text
 .globl _start
_start:
        movem.l %d0-%d7/%a0-%a2,-(%sp)
        movea.l #0xFFFFC6CE,%a1
        moveq   #0,%d0
        move.b  HOME_T,%d0
        moveq   #0,%d4
        move.w  HOME_G,%d1
        cmp.w   AWAY_G,%d1
        bls.s   1f
        moveq   #1,%d4
1:      bsr.s   real_goalies
        movea.l #0xFFFFCA32,%a1
        moveq   #0,%d0
        move.b  AWAY_T,%d0
        moveq   #0,%d4
        move.w  AWAY_G,%d1
        cmp.w   HOME_G,%d1
        bls.s   2f
        moveq   #1,%d4
2:      bsr.s   real_goalies
        movem.l (%sp)+,%d0-%d7/%a0-%a2
        rts
real_goalies:
        move.w  %d4,-(%sp)             | preserve the team's win for each keeper
        moveq   #0,%d5
        move.b  0x27(%a1),%d5          | actual ending keeper; low byte survives a pull
        lea     GK_TAB,%a0
        .if WITH_TRANSFERS
        move.l  %d0,-(%sp)
        lsl.w   #2,%d0
        jsr     0x23602C
        move.l  (%sp)+,%d0
        .endif
        move.w  %d0,%d1
        lsl.w   #2,%d1
        moveq   #0,%d6
        move.b  2(%a0,%d1.w),%d6       | generated real roster goalie count
        lea     GOALS(%a1),%a2
        lea     0x136(%a1),%a0
        moveq   #0,%d1
real_goalie_loop:
        cmp.w   %d5,%d1
        beq.s   real_goalie_played
        move.w  %d1,%d2
        add.w   %d2,%d2
        tst.w   (%a0,%d2.w)       | native individual ice time
        bne.s   real_goalie_played
        tst.b   (%a2,%d1.w)
        bne.s   real_goalie_played
        tst.b   SHOTS-GOALS(%a2,%d1.w)
        beq.s   real_goalie_next
real_goalie_played:
        move.w  (%sp),%d4
        cmp.w   %d5,%d1
        beq.s   real_goalie_win
        clr.w   %d4                    | existing simplified season convention: ending keeper gets W
real_goalie_win:
        moveq   #0,%d2
        move.b  (%a2,%d1.w),%d2
        moveq   #0,%d3
        move.b  SHOTS-GOALS(%a2,%d1.w),%d3
        .if WITH_GK_OFFENSE
        jsr     0x2DF40C
        .endif
        jsr     GKPUT_FN                  | individual GA/SA and GP for every keeper who played
real_goalie_next:
        addq.w  #1,%d1
        cmp.w   %d6,%d1
        blo.s   real_goalie_loop
        addq.l  #2,%sp
        rts
