        .include "features.inc"
| Independent Full/Light/Mini save slots; each menu entry resumes its own league or playoffs.
| D048 retains native Regular Season/playoff modes. Slot identity is SRAM1EA6;
| header+12 is only the selected slot's pending new-season choice.
| Hooks: F7BAA display, F7ABA writer; native row callbacks may repeat for one key.

        .equ    SRAM_OFF, 0x1000
        .equ    MAGIC,    0x5345534E
        .equ    SRAM_RD,  0x1A244
        .equ    HDR,      0xFFE3E0       | 16-byte copy of the season header
        .equ    FORCED,   0xFFE3F0       | word: 1 while the menu is forced
        .equ    SELV,     0xFFE3F2       | word: Regular Season selected (from the header)
        .equ    USERW,    0xFFE3F4       | word: your team, shown in the "Team" row
        .equ    NEXTK,    0xFFE3F6       | next game index (0-based)
        .equ    NEXTOPP,  0xFFE3F8       | next opponent
        .equ    NEXTAWAY, 0xFFE3FA       | 1 = away game
        .equ    GSTR,     0xFFE3A0       | "Game" row text: word 22 + 20 characters
        .equ    EXITV,    0xFFE3B8       | long: where the stats screens return to (main menu); EXITM word = $4D41 when set
        .equ    EXITM,    0xFFE3BC
        .equ    MAININIT, 0xF739E        | builds the whole main menu and runs its loop
        .equ    STANDINGS,0x2F9000
        .equ    LEADERS,  0x2FA000
        .equ    LABELS,   0xF8070        | the menu's label drawing routine
        .equ    PLAYMODE, 0xFFD048
        .equ    PLAYERS,  0xFFD04A
        .equ    HOME,     0xFFD04C
        .equ    AWAY,     0xFFD04E
        .equ    HOOK8,    0x2FE000       | patch.py fix 8 (jsr $20961A + Fighting N/A)
        .equ    WRITEVAL, 0x2095D6

        .equ    SLOTS,    0x2AA000
        .equ    SLOTID,   0xFFFFF06A
        .equ    SLOTKEY,  0xFFFFF06E
        .equ    SLOTVIEW, 0xFFFFF06C
        .equ    PORG,     0x2FC800       | playoffs.s
        .equ    NEWPICK,  0xFFE3FE       | r39: $4E57 = "Start New ..." of a finished slot is shown
        .equ    PICKED,   0x4E57
        .text
        .globl  _start
_start:                                 | replaces "jsr $20961A" at $F7BAA
        bsr.w   force
        bra.w   dispsel

        .globl  writehook               | replaces "jsr $2095D6" at $F7ABA (_start + 8)
writehook:
        tst.w   %d7                     | Play Mode row: Regular Season shows as Continue Season / New Season
        bne.s   0f
        bra.w   playmode
0:                                      | r22 (jdc): Fighting and Difficulty lock like every other row once
        .if WITH_ALLSTAR
        cmpi.w  #1,0xFFFFF850
        bne.s   not_allstar_row
        cmpi.w  #4,%d7
        beq.w   blocked
        cmpi.w  #6,%d7
        beq.w   blocked
not_allstar_row:
        .endif
                                        | the season has started (r15 left Difficulty open, r18 rows 8-10;
                                        | the r18 freeze was the adapter flag, fixed in slots.s restore)
        cmpi.w  #3,FORCED               | the season's playoffs: everything stays
        beq.w   playoff_players
        cmpi.w  #4,FORCED               | completed season: review its own club, no editable fixture
        beq.w   blocked
        cmpi.w  #6,%d7                  | apply a changed opponent after the caller has saved the old teams
        bne.s   oppnot
        tst.w   SELV
        beq.s   oppnot
        bsr.w   force                   | the original redraw now sees old -> new and refreshes the logos too
        bra.w   blocked
oppnot:
        cmpi.w  #2,%d7                  | Players row in Whole Season: One <-> Two - Teammates, also mid-season
        bne.s   plnot                   | (the game boots with One, so a co-op season must be switchable back)
        tst.w   SELV
        beq.s   plnot
        cmp.w   PLAYERS,%d3             | the menu writes every row again after a change: same value = no press
        beq.s   plw
        jsr     0x2EB008                | persistent per-slot One/Two/Three/Four - Teammates
plw:    bra.w   1f                     | recalculate home/away before the caller compares/redraws logos
plnot:  tst.w   FORCED                  | 0 = not Regular Season, 1 = season running, 2 = before the first game
        beq.s   1f
        cmpi.w  #1,FORCED               | season running: everything else you chose at the start stays
        bne.s   5f
        bra.s   2f
5:
        cmpi.w  #2,%d7                  | Players and Away are always locked
        beq.s   2f
        cmpi.w  #6,%d7
        beq.s   2f
        cmpi.w  #4,%d7                  | Home (your team) only before the season has started
        bne.s   1f
        cmpi.w  #1,FORCED
        beq.s   2f
1:      jsr     WRITEVAL
        tst.w   SELV
        beq.s   3f
        bsr.w   force                  | changing your team/Players must update its opponent now,
                                       | not during the later text redraw after logos were loaded
3:      tst.w   %d2                    | preserve the native writer's return flags
        rts
2:
blocked:
        tst.w   %d2                     | same flags as the original routine returns
        rts
playoff_players:
        cmpi.w  #2,%d7                  | only the Players row is editable in an active season playoff
        bne.s   blocked
        cmp.w   PLAYERS,%d3
        beq.s   blocked
        jsr     0x2EB008
        bra.w   1b

force:  movem.l %d0-%d3/%a0-%a1,-(%sp)
        jsr     SLOTS                   | migrate legacy save once, then keep selected slot active
        .if WITH_ALLSTAR
        cmpi.w  #1,0xFFFFF850
        bne.s   allstar_teams_ready
        cmpi.w  #1,0xFFFFF84C
        bne.s   allstar_teams_ready
        tst.w   SLOTVIEW
        bne.s   allstar_teams_ready
        clr.w   HOME
        move.w  #1,AWAY
allstar_teams_ready:
        .endif
        clr.w   FORCED
        clr.w   SELV
        lea     HDR,%a0
        move.l  #SRAM_OFF,%d0
        moveq   #16,%d1
        jsr     SRAM_RD
        tst.w   SLOTVIEW
        beq.w   9f
        jsr     0x2E6004
        bne.s   unfinished_menu
        move.w  #1,SELV
        clr.w   PLAYMODE
        bra.w   complete_menu
unfinished_menu:
        lea     HDR,%a0
        cmpi.l  #MAGIC,(%a0)            | the season's playoffs (season over, your team in): locked like the season
        bne.w   20f
        tst.w   12(%a0)
        bne.w   20f
        move.w  8(%a0),%d1
        cmp.w   10(%a0),%d1
        bcs.w   20f
        jsr     PORG+20                 | d0: -1 no, 0 set, 1/3 set Play Mode to this; d2 = your team
        bmi.w   20f
        move.w  #3,FORCED
        tst.w   %d0
        beq.s   23f
        move.w  %d0,PLAYMODE
        move.w  %d0,0xFFD074            | (the game keeps Play Mode here between games)
        move.w  %d2,HOME
        cmpi.w  #3,%d0
        beq.s   24f
        cmpi.w  #2,%d0
        bne.s   22f
24:
        moveq   #7,%d1                  | Players in the playoff modes: 7 = One, 6 = Two - Teammates (the game keeps
        jsr     0x2EA404                   | 7 - Players in its playoff state; Regular Season's 1 became garbage there)
        beq.s   24f
        cmpi.w  #6,PLAYERS
        bne.s   25f
24:     moveq   #6,%d1
25:     move.w  %d1,PLAYERS
21:     jsr     0x17D16                 | New Playoffs set-up (playoffs.s: the season's tree, your slot)
        bra.s   23f
22:     jsr     0x17CA0                 | Continue Playoffs: the game's saved state
23:     jsr     0x2EB014                | use this slot's preferred count after native password decode
        move.w  0xFFCEEC,%d0            | Away = your opponent in this round: tree round r at $CEF4 + 0/16/24/28,
        cmpi.w  #3,%d0                  | your slot there = $CEEE >> r, the opponent's = that ^ 1
        bhi.w   9f
        move.w  0xFFCEEE,%d1
        lsr.w   %d0,%d1
        eori.w  #1,%d1
        add.w   %d0,%d0
        lea     roundoff,%a1
        add.w   (%a1,%d0.w),%d1
        lea     0xFFCEF4,%a1
        moveq   #0,%d0
        move.b  (%a1,%d1.w),%d0
        cmpi.w  #31,%d0
        bhi.w   9f
        move.w  %d0,AWAY
        bra.w   9f
20:     lea     HDR,%a0
        tst.w   PLAYMODE                | Regular Season = the season
        bne.w   9f
        move.w  #1,SELV
        cmpi.l  #MAGIC,(%a0)
        bne.s   3f                      | no season block yet: before the first game
        tst.w   12(%a0)                 | New Season chosen: like before the first game
        bne.s   3f
        move.w  6(%a0),%d0              | your team + 1
        beq.s   3f
        subq.w  #1,%d0
        move.w  8(%a0),%d1              | next game index
        cmp.w   10(%a0),%d1
        bcc.w   complete_menu
        move.w  #1,FORCED
        bra.s   4f
3:      move.w  HOME,%d0                | before the first game: your team = Home, game 0 of its schedule
        moveq   #0,%d1
        move.w  #2,FORCED
4:
        move.w  %d0,-(%sp)              | the user's team survives the round lookup
        jsr     0x2FD600                 | chosen unplayed round, including saved opponent changes
        move.w  %d0,%d2
        move.w  (%sp)+,%d0
        .if WITH_DIVISION_MINI
        cmpi.w  #3,SLOTID
        bne.s   league_opponent
        jsr     0x2DBE00                | d0 club,d2 round -> d3 divisional opponent
        bra.s   opponent_ready
league_opponent:
        .endif
        lea     sched,%a1
        moveq   #0,%d3
        move.b  (%a1,%d2.w),%d3
        add.w   %d0,%d3
        andi.w  #31,%d3                 | opponent
        .if WITH_DIVISION_MINI
opponent_ready:
        .endif
        move.w  %d0,USERW
        move.w  %d1,NEXTK
        move.w  %d3,NEXTOPP
        clr.w   NEXTAWAY
        jsr     0x2EA404                   | Two - Teammates always controls the home team: play every game at home
        beq.s   51f
        btst    #0,%d1
        bne.s   5f
51:     move.w  %d0,HOME                | even game: at home
        move.w  %d3,AWAY
        moveq   #1,%d2
        bra.s   6f
5:      move.w  #1,NEXTAWAY
        move.w  %d3,HOME                | odd game: away
        move.w  %d0,AWAY
        moveq   #2,%d2
6:      jsr     0x2EA404                   | co-op stays co-op
        beq.w   9f
        move.w  %d2,PLAYERS             | you control your own team (One - Home / One - Visitor)
9:      movem.l (%sp)+,%d0-%d3/%a0-%a1
        rts
complete_menu:
        jsr     0x2E6010                | lock a finished slot to its saved club; no fictitious next game
        bra.s   9b
| row 0 shows "Whole Season" when chosen, everything else goes to fix 8 (jsr $20961A + Fighting N/A)
dispsel:                                | a0 = $FFD048 here (the value routine needs it): don't touch a0
        .if WITH_QUICKGAME
        tst.w   0xFFFFF84C
        beq.s   not_quick_label
        tst.w   %d7
        bne.s   not_quick_label
        .if WITH_ALLSTAR
        cmpi.w  #1,0xFFFFF850
        bne.s   ordinary_quick_label
        pea     allstarlabel
        bra.w   2f
ordinary_quick_label:
        .endif
        pea     quicklabel
        bra.w   2f
not_quick_label:
        .endif
        cmpi.w  #2,%d7
        bne.s   ordinary_label
        tst.w   SLOTVIEW
        beq.s   ordinary_label
        jsr     0x2EB00C                | show all four counts, even though native playoffs share one co-op value
        move.l  %d0,-(%sp)
        bra.w   2f
ordinary_label:
        cmpi.w  #3,FORCED
        bne.s   6f
        tst.w   %d7
        bne.s   6f
        cmpi.w  #1,PLAYMODE             | after a playoff game, keep Continue Playoffs
        beq.s   continuing_po
        pea     playoffstr             | completed season: enter its already-seeded playoff tree
        bra.w   2f
continuing_po:
        cmpi.w  #3,SLOTID
        beq.s   po_mini
        cmpi.w  #2,SLOTID
        beq.s   po_light
        pea     fullpostr
        bra.w   2f
po_mini:
        pea     minipostr
        bra.w   2f
po_light:
        pea     lightpostr
        bra.w   2f

6:
        tst.w   SELV
        beq.w   1f
        tst.w   %d7                     | Play Mode in Regular Season: "Continue Season" / "New Season"
        bne.s   4f
        bsr.w   hasseason
        beq.s   newlabel
        tst.w   HDR+12
        bne.s   newlabel
        jsr     0x2E6004
        bne.s   unfinished_label
        jmp     0x2E6008                | See Old Full/Light/Mini Season
unfinished_label:
        cmpi.w  #3,SLOTID
        beq.s   continuemini
        cmpi.w  #2,SLOTID
        beq.s   continuelight
        pea     contstr
        bra.s   2f
continuemini:
        pea     contmini
        bra.s   2f
continuelight:
        pea     contlight
        bra.s   2f
newlabel:
        cmpi.w  #3,SLOTID
        beq.s   7f
        cmpi.w  #2,SLOTID
        beq.s   5f
        pea     newstr
        bra.s   2f
7:      pea     ministr
        bra.s   2f
5:      pea     lightstr
        bra.s   2f
4:      cmpi.w  #2,%d7                  | Players: "One" for One - Home / One - Visitor
        bne.s   1f
        jsr     0x2EA404     
        beq.s   1f
        pea     onestr
2:      jsr     0x20961A
        movea.l (%sp)+,%a1
        addq.l  #4,%sp
        jmp     0x11BA4
1:      jmp     HOOK8

| team rows ($F7C72, replaces "movea.l #$FFFFD048,a1"): in Whole Season row Home shows your team, row Away is empty
        .globl  teamrow
teamrow:
        movea.l #0xFFFFD048,%a1
        tst.w   SELV
        beq.s   1f
        cmpi.w  #6,%d7
        beq.s   2f
        cmpi.w  #4,%d7
        bne.s   1f
        tst.w   FORCED                  | finished season: native Home is free, USERW is no longer refreshed
        beq.s   1f                      | show the same selected club as the native logos/player card
        movea.l #USERW-4,%a1            | (a1,d7) = your team
1:      rts
2:      addq.l  #4,%sp                  | Away row: "Game  2/82 at COL" and return from the row printer
        bsr.w   gameinfo
        lea     GSTR,%a1
        jmp     0x11BA4

| GSTR = word 22 + "n/82 at ABC" / "n/82 vs ABC" padded to 20 characters
gameinfo:
        movem.l %d0-%d3/%a0-%a2,-(%sp)
        jsr     0x2E600C                | completed slots show Season finished, never 1/8 vs a stale opponent
        beq.w   4f
        lea     GSTR,%a0
        move.w  #22,(%a0)+
        lea     20(%a0),%a2
        move.w  NEXTK,%d2
        addq.w  #1,%d2
        bsr.w   num
        move.b  #0x2F,(%a0)+            | "/"
        moveq   #MINI_GAMES,%d2
        cmpi.w  #3,HDR+12
        beq.s   1f
        moveq   #31,%d2
        cmpi.w  #2,HDR+12
        beq.s   1f
        moveq   #84,%d2
        tst.w   HDR+12
        bne.s   1f
        bsr.w   hasseason               | an empty old Mini/Light header is not a running season
        beq.s   1f                      | New Full Season uses the full default until a team is saved
        move.w  HDR+10,%d2
        bne.s   1f
        moveq   #84,%d2
1:      bsr.w   num
        jsr     0x2EA404                   | jdc r20: co-op plays every game at home, so no "at"/"vs":
        bne.s   5f                      | "84/84 FLA (co-op)"
        move.b  #0x20,(%a0)+
        bsr.s   opp
        lea     coop,%a1
6:      move.b  (%a1)+,(%a0)+
        bne.s   6b
        subq.l  #1,%a0
        bra.s   3f
5:      move.b  #0x20,(%a0)+
        move.b  #0x76,(%a0)+            | "vs"
        move.b  #0x73,(%a0)+
        tst.w   NEXTAWAY
        beq.s   2f
        move.b  #0x61,-2(%a0)           | "at"
        move.b  #0x74,-1(%a0)
2:      move.b  #0x20,(%a0)+
        bsr.s   opp
3:      cmpa.l  %a2,%a0
        bge.s   4f
        move.b  #0x20,(%a0)+
        bra.s   3b
4:      movem.l (%sp)+,%d0-%d3/%a0-%a2
        rts
opp:    lea     abbr,%a1                | the opponent's three letters
        move.w  NEXTOPP,%d2
        mulu.w  #3,%d2
        move.b  (%a1,%d2.w),(%a0)+
        move.b  1(%a1,%d2.w),(%a0)+
        move.b  2(%a1,%d2.w),(%a0)+
        rts
coop:   .asciz  " (co-op)"
        .even
| d2 = 1..99 -> digits (no padding)
num:    andi.l  #0xFFFF,%d2
        divu.w  #10,%d2
        tst.w   %d2
        beq.s   1f
        addi.b  #0x30,%d2
        move.b  %d2,(%a0)+
1:      swap    %d2
        addi.b  #0x30,%d2
        move.b  %d2,(%a0)+
        rts

| label loop ($F80BC, replaces "jsr $11A48"): "Home" -> "Team", "Away" -> empty in Whole Season
        .globl  labelhook
labelhook:
        bsr.w   checksel
        tst.w   SELV
        beq.s   1f
        cmpa.l  #0x20917A,%a1
        beq.s   2f
        cmpa.l  #0x20918A,%a1
        beq.s   3f
1:      jmp     0x11A48
2:      move.l  %a1,-(%sp)
        lea     teamlbl,%a1
        bra.s   4f
3:      move.l  %a1,-(%sp)
        lea     blanklbl,%a1
4:      jsr     0x11A48
        movea.l (%sp)+,%a1
        adda.w  (%a1),%a1               | continue with the next label
        rts

| Main menu Left/Right ($F75C2): on the Game row, change the selected unplayed
| opponent. The Away value-write callback applies forcing after old teams were
| captured, so the original redraw refreshes team logos and the Game text.
        .globl  mainlr
mainlr:
        tst.w   %d7
        bne.s   not_mode_key
        clr.w   SLOTKEY                 | one slot transition per physical menu key event
not_mode_key:
        tst.w   SELV
        beq.s   1f
        cmpi.w  #6,%d7
        bne.s   1f
        cmpi.w  #3,FORCED
        beq.s   1f
        jsr     0x2FD604                 | D2 = -1/+1: choose another unplayed opponent
1:      cmpi.w  #4,PLAYMODE             | preserve the original caller's flags and redraw path
        rts
| $1732C (replaces "jsr $FCC76", the Matchups screen after Start): in Whole Season go straight to the pre-game menu,
| where Season Standings and Scoring Leaders are (jdc wanted the stats one press from the main menu).
        .globl  skipmatch
skipmatch:
        .if WITH_REFINEMENTS
        bsr.w   checksel
        jmp     0xFCC76                  | restore original Matchups before every actual match
        .endif
        bsr.w   checksel
        tst.w   SELV
        bne.s   1f
        jmp     0xFCC76
1:      rts

| SELV from the battery header (labels are drawn before the value rows)
checksel:                               | SELV for the labels: the same as force (which may also switch to the playoffs)
        bra.w   force

| redraw the labels after Play Mode changed (keeps the text cursor of the caller)
relabel:
        movem.l %d0-%d7/%a0-%a6,-(%sp)
        move.l  0xFFB028,-(%sp)
        move.l  0xFFB02C,-(%sp)
        jsr     LABELS
        move.l  (%sp)+,0xFFB02C
        move.l  (%sp)+,0xFFB028
        movem.l (%sp)+,%d0-%d7/%a0-%a6
        rts

| Play Mode: d3 = the game's new value (0..4, from $D048 with wrap-around).
playmode:
        cmp.w   PLAYMODE,%d3
        beq.w   pmw                     | unchanged native redraw writes must keep the caller's font state
        tst.w   SLOTKEY
        beq.s   first_mode_write
        tst.w   SLOTVIEW
        bne.w   blocked                 | one season-slot transition per key
        bra.w   original_modes          | native retries must skip an empty Continue or re-enter a season
first_mode_write:
        move.w  #1,SLOTKEY
        tst.w   SLOTVIEW
        beq.w   original_modes
        jsr     0x2E601C                | r39 finished.s step: See Old <-> Start New of a finished slot
        bne.s   cycle_slots             | (Z = handled, stay on this slot)
        bsr.w   relabel
        tst.w   %d2
        rts
cycle_slots:
        move.w  SLOTID,%d0
        tst.w   %d2                     | native skipping of unavailable modes can amplify the step
        bmi.s   slot_left
        addq.w  #1,%d0
        bra.s   slot_step
slot_left:
        subq.w  #1,%d0
slot_step:
        cmpi.w  #1,%d0
        bcs.s   leave_left
        cmpi.w  #3,%d0
        bhi.s   leave_right
select_slot:
        jsr     SLOTS+4
        jsr     0x2E6020                | r39: from the right, a finished slot shows Start New
        bsr.w   force                   | refresh actual clubs before native logo comparisons
        bsr.w   relabel
        tst.w   %d2
        rts
leave_left:
        clr.w   NEWPICK
        jsr     SLOTS+8                 | preserve season before unrelated native playoff/shootout modes
        .if WITH_QUICKGAME
        .if WITH_ALLSTAR
        bra.w   enter_allstar
        .else
        bra.w   enter_quick
        .endif
        .else
        moveq   #4,%d3
        bra.s   pmwrite
        .endif
leave_right:
        clr.w   NEWPICK
        jsr     SLOTS+8
        moveq   #1,%d3
        .if WITH_ALLSTAR
        bra.w   pmwrite
        .else
        bra.s   pmwrite
        .endif
original_modes:
        .if WITH_ALLSTAR
        cmpi.w  #1,0xFFFFF850
        bne.s   not_from_allstar
        jsr     0x22C004
        tst.w   %d2
        bmi.w   enter_quick
        clr.w   0xFFFFF84C
        moveq   #1,%d0
        bra.w   select_slot
not_from_allstar:
        .endif
        .if WITH_QUICKGAME
        tst.w   0xFFFFF84C
        beq.s   from_native_modes
        .if WITH_ALLSTAR
        tst.w   %d2
        bpl.w   enter_allstar
        .endif
        clr.w   0xFFFFF84C
        tst.w   %d2
        bpl.s   quick_to_full
        moveq   #4,%d3
        bra.s   pmwrite
quick_to_full:
        moveq   #1,%d0
        bra.w   select_slot
from_native_modes:
        cmpi.w  #4,PLAYMODE
        bne.s   original_mode_cycle
        tst.w   %d2
        bmi.s   original_mode_cycle
        .if WITH_ALLSTAR
        bra.w   enter_quick             | native Shootout Right must not fall into the Allstar entry
enter_allstar:
        jsr     0x22C000
        bsr.w   force
        bsr.w   relabel
        tst.w   %d2
        rts
        .endif
enter_quick:
        jsr     0x229000
        bsr.w   force
        bsr.w   relabel
        tst.w   %d2
        rts
original_mode_cycle:
        .endif
        tst.w   %d3
        bne.s   pmwrite
        moveq   #1,%d0                  | Shootout -> Full
        cmpi.w  #4,PLAYMODE
        .if WITH_QUICKGAME
        beq.w   select_slot
        .else
        beq.s   select_slot
        .endif
        moveq   #3,%d0                  | native Continue Playoffs -> Mini
        .if WITH_QUICKGAME
        bra.w   select_slot
        .else
        bra.s   select_slot
        .endif
pmwrite:
        jsr     WRITEVAL
        bsr.w   force
        bsr.w   relabel
        tst.w   %d2
        rts
pmw:    jmp     WRITEVAL

| Z clear if a season is saved (header in HDR: magic and a team)
hasseason:
        cmpi.l  #MAGIC,HDR
        bne.s   1f
        tst.w   HDR+6
        rts
1:      ori     #4,%ccr                 | Z set
        rts

newstr: .word   22
        .ascii  "New Full Season     "
lightstr:
        .word   22
        .ascii  "New Season Light    "
ministr:
        .word   22
        .ascii  "New Season Mini     "
playoffstr:
        .word   22
        .ascii  "Continue to Playoffs"
contstr:
        .word   22
        .ascii  "Continue Full Season"
contlight:
        .word   22
        .ascii  "Continue Light      "
contmini:
        .word   22
        .ascii  "Continue Mini       "
fullpostr:
        .word   22
        .ascii  "Continue Full PO    "
lightpostr:
        .word   22
        .ascii  "Continue Light PO   "
minipostr:
        .word   22
        .ascii  "Continue Mini PO    "
onestr: .word   22
        .ascii  "One                 "
teamlbl:
        .word   16
        .ascii  "Team          "
blanklbl:
        .word   16
        .ascii  "Game          "
roundoff: .word  0,16,24,28
abbr:   .ascii  "ANABOSBUFCGYCARCHICOLCBJDALDETEDMFLALAKMINMTLNSHNJDNYINYROTTPHIPITSJSSEASTLTBLTORUTAVANVGKWASWPG"
        .even

        .include "sched.inc"

        .if WITH_QUICKGAME
quicklabel:
        .word 22
        .if WITH_QUICKGAME_CPU
        .ascii "Quickgame           "
        .else
        .ascii "QUICKGAME           "
        .endif
        .endif

        .if WITH_ALLSTAR
allstarlabel:
        .word 22
        .ascii "ALLSTAR MODE        "
        .endif
