Final Countdown - Amiga - Disassembling space

This is the disassemble for the small code block in the space executable. I inserted a few comments to aid understanding and analysis, but what the code itself does is still TBD.

;; allocated at 0x00000000

_lbC000000:
    jmp     (_lbC000036r).L 

_symb000002:        ;; this label points to the jmp target
    EQU     *-4     ;; and is changed later by code

_lbL000006:
    dc.l    $00018B20

_lbL00000A:
    dc.l    $0000A124

;; Subroutine start
_lbC00000E:
    lsl.b   #$1, d6
    bne     _lbC00001C

    move.b  (a4)+, d6
    ori.b   #$10, CCR 
    roxl.b  #$1, d6

_lbC00001C:
    rts 
;; --- Subroutine end

;; --- Subroutine start
_lbC00001E:
    moveq   #0, d0

_lbC000020:
    lsl.b   #$1, d6
    bne     _lbC00002E 

    move.b  (a4)+, d6 
    ori.b   #$10, CCR
    roxl.b  #$1, d6 

_lbC00002E: 
    roxl.l  #$1, d0 
    dbf     d5, _lbC000020 

    rts 
;; --- Subroutine end

_lbC000036r:
    movem.l d0-d7/a0-a6, -(a7)
    move.l  (_lbC00000A,PC), d7
    movea.l #_lbL000264r, a4
    jsr     ($122).w 

Comments

Popular posts from this blog

How many instructions per frame?

Reference on D88 disk image format