        .cpu    "65816"
zero    =       $00
longsym =       $123456

*       =       $1000
        .as
        .xs
        clc
        xce
        sep     #$30
        jml     L440000

lodat   .byte   $00
        .byte   $01
        .byte   $02

        .logical $440000
L440000 cmp     L440000
L440004 lda     L440000
        lda     @wL440000 & $ffff
        lda     zero
        bmi     L440004
        per     high44
        bne     high44
        brl     L44FFC0

dat44   .word   dat44 & $ffff
        .long   dat44
        .here

        .logical $44ffc0
L44FFC0 cmp     L44FFC0
high44  beq     _L44FFCB
        bmi     L440004
        brl     L440004

_L44FFCB jml    _L2000

        .here
        .logical $2000
_L2000  bit     _L2000
        pea     dat44 & $ffff
        pea     dat44 >> 16
        bne     skip
        jml     [lodat]

skip    nop
        jsr     j2
j2      jsr     j2+3
        jsr     j2-3
        jsl     longsym
        jml     bank54

        .here
        .logical $543210
bank54  cmp     bank54
        bra     L54321C

backchk nop
        nop
        rts

backval .long   backchk

L54321C lda     backchk
        lda     fwdchk
        lda     $543216
        lda     $54327d
        lda     0+(backchk & $ffff)+1
        lda     0+(backchk & $ffff)-1
        lda     0+(fwdchk & $ffff)+1
        lda     0+(fwdval & $ffff)+2
        nop
        jsr     backchk
        jsr     backchk+1
        jsr     $543218
        jsr     fwdchk
        jsr     fwdchk+1
        jsr     $54327f
        nop
        ldx     #$00
        jsr     (backval,x)
        jsr     (fwdval,x)
        jsr     _L54326E
        jsr     _L543271
        jsr     _L543268
        jsr     _L54326B
        jsr     _L543274
        jsr     _L543277
        bra     L543280

_L543268 jmp    (backval,x)

_L54326B jmp    (fwdval,x)

_L54326E jmp    (lodat)

_L543271 jmp    (lodat)

_L543274 jml    [lodat]

_L543277 jml    [lodat]

fwdval  .long   fwdchk

fwdchk  nop
        nop
        rts

L543280 jsr     skip,k
        nop
        rep     #$30
        .al
        .xl
        php
        lda     #$0000
        sep     #$30
        .as
        .xs
        lda     #$00
        plp
        lda     #$ea
        nop
        sep     #$30
        php
        lda     #$00
        rep     #$30
        .al
        .xl
        lda     #$0000
        plp
        lda     #$eaea
        rep     #$30
        nop
        lda     skip
        lda     skip+20
        jsr     skip,k
        jsr     skip+20,k
        jsr     (skip,k,x)
        bne     _L5432B7
        jmp     (skip,k,x)

_L5432B7 jsr    $54edcb
        lda     $edcb
        bne     _L5432C2
        jmp     ($54edcb,x)

_L5432C2 nop
        rtl

        .here
