experimental/transfers_menu.s

Download file

Release 2026-11-04-r2 · SHA256 61262f15d20ecf65045dea0a36579b1d867ad7325af5a532620e5e7d8387ec92 · Click a line number for a direct link.

1| Independent even-lane preseason preferences. No odd SRAM byte is changed.2| Four logical bytes per slot at even index7D00..7D0B: TF,value,~value.3| Pending first-game choices may change; a played season uses its saved record.4| +0 row load(all GPR/SR),+4 writer(native TST.W D2 flags).5    .equ TVALUE,0xFFFFF85C6    .equ VIEW,0xFFFFF06C7    .equ SLOT,0xFFFFF06A8    .equ MAP,0xA130F19    .text10    .globl _start11_start:12    bra.w load13    bra.w writer14load:15    move.w %sr,-(%sp)16    movem.l %d0-%d7/%a0-%a6,-(%sp)17    clr.w TVALUE18    tst.w VIEW19    beq.w loaded20    tst.w 0xFFFFF84C21    bne.w loaded22    moveq #0,%d023    move.w SLOT,%d024    subq.w #1,%d025    cmpi.w #2,%d026    bhi.w loaded27    move.w #0x2700,%sr28    lsl.w #3,%d029    lea 0x20FA00,%a030    adda.w %d0,%a031    bsr.w wait_dma32    move.b #1,MAP33    cmpi.b #0x54,(%a0)34    bne.s no_preference35    cmpi.b #0x46,2(%a0)36    bne.s no_preference37    moveq #0,%d038    move.b 4(%a0),%d039    cmpi.w #1,%d040    bhi.s no_preference41    move.b 6(%a0),%d142    not.b %d143    cmp.b %d1,%d044    bne.s no_preference45    move.w %d0,TVALUE46    move.b #0,MAP47    cmpi.l #0x5345534E,0xFFFFE3E048    bne.s loaded49    tst.w 0xFFFFE3E850    beq.s loaded51    bra.s authoritative52no_preference:53    move.b #0,MAP54authoritative:55    move.w SLOT,%d056    jsr 0x23401457    tst.l %d058    ble.s loaded59    movea.l %d0,%a060    bsr.w wait_dma61    move.b #1,MAP62    moveq #0,%d063    move.b 12(%a0),%d064    move.w %d0,TVALUE65    move.b #0,MAP66loaded:67    movem.l (%sp)+,%d0-%d7/%a0-%a668    move.w (%sp)+,%sr69    rts70writer:71    cmpi.w #1,%d372    bhi.w writer_flags73    tst.w VIEW74    beq.w writer_flags75    tst.w 0xFFFFF84C76    bne.w writer_flags77    cmpi.w #1,0xFFFFE3F078    beq.w writer_flags79    cmpi.w #3,0xFFFFE3F080    beq.w writer_flags81    cmpi.w #4,0xFFFFE3F082    beq.w writer_flags83    move.w %sr,-(%sp)84    movem.l %d0-%d1/%a0,-(%sp)85    moveq #0,%d086    move.w SLOT,%d087    subq.w #1,%d088    cmpi.w #2,%d089    bhi.s written90    move.w #0x2700,%sr91    lsl.w #3,%d092    lea 0x20FA00,%a093    adda.w %d0,%a094    bsr.s wait_dma95    move.b #1,MAP96    clr.b (%a0)97    move.b #0x46,2(%a0)98    move.b %d3,4(%a0)99    move.w %d3,%d0100    not.b %d0101    move.b %d0,6(%a0)102    move.b #0x54,(%a0)103    move.b #0,MAP104    move.w %d3,TVALUE105written:106    movem.l (%sp)+,%d0-%d1/%a0107    move.w (%sp)+,%sr108writer_flags:109    tst.w %d2110    rts111wait_dma:112    btst #1,0xC00005113    bne.s wait_dma114    rts115