SONIC3D icon

引导MDCD到纯卡带模式,类似FLUX

SONIC3D | PRO | 02/01/15 07:18:29 PM UTC | 0 ⭐ | 7996 👁️ | Never ⏰ | []
M68000 Assembler |

0 B

|

None

|

0 👍

/

0 👎

        org $0
 
DiscIdent:  dc.b    'SEGADISCSYSTEM  '  ; Sega System Disc
VoluIdent:  dc.b    'SEGAIPSAMP ', 0    ; Disc title
VolSys:     dc.w    0           ; Prototype
VolType:    dc.w    1           ; CD-ROM Disc
SysName:    dc.b    'SYSTEM NAME', 0    ; System name
SysVer:     dc.w    0           ; System version
        dc.w    0           ; Always 0
IPOrg:      dc.l    $800            ; IP origin address
IPSize:     dc.l    $800            ; IP size
IPStart:    dc.l    $0          ; IP entry point
IPRAM:      dc.l    $0          ; IP RAM size
SPOrg:      dc.l    $1000           ; SP origin address
SPSize:     dc.l    $7000           ; SP size
SPStart:    dc.l    0           ; SP entry point
SPRAM:      dc.l    0           ; SP RAM size
        dcb.b   $B0, $20        ; Pad with space char
System:     dc.b    'SEGA MEGA DRIVE '  ; Console
Copyright:  dc.b    '(C)SEGA 1993.APR'  ; Copyright
Title_Dom:  dc.b    'CD-SONIC THE HEDGEHOG                           '
Title_Int:  dc.b    'CD-SONIC THE HEDGEHOG                           '
Serial:     dc.b    'XX 00000000-00'
        dcb.b   $2, $20
IOSupport:  dc.b    'J               '
        dcb.b   $1E, $20
MODEMSupport:   dc.b    '  ', '    ', '    ', '  '
        dcb.b   $26, $20
Regions:    dc.b    'J               '
; ---------------------------------------------------------------------------
        org $FF0000
 
SecurityCode:
        lea SecurityData, a1    ; Load security data to a1
        jsr $364            ; Jump to BIOS routine
        bra.w   IPStart         ; Start IP
; ---------------------------------------------------------------------------
 
SecurityData:
        incbin  sec.bin
        even
; ---------------------------------------------------------------------------
 
IPStart:
        move.l  #SubCPUInt, ($FFFFFD08).w ; $FD08 calls level 2 on SubCPU   
        move.w  #$FD0C, ($A12006).l ; Set H-Int location to $FD0C
        move.l  #SubCPURet, ($FFFFFD0E).w ; $FD0E calls return from exception
        bset    #1, ($A12003).l     ; Set DMNA flag
        lea ($A12010).l, a0     ; Communication command
        moveq   #0, d0
        move.b  d0, -2(a0)      ; Close communications
        move.l  d0, (a0)+       ; Clear communication bank
        move.l  d0, (a0)+
        move.l  d0, (a0)+
        move.l  d0, (a0)+
        lea MainOS, a0      ; a0 -> MainOS
        lea (MainOSLoc).l, a1   ; a1 -> Load location
        move.w  #$4B, d7        ; Size of MainOS
 
LoadMainOS:
        move.b  (a0)+, (a1)+        ; Load the MainOS
        dbf d7, LoadMainOS
        jmp MainOSLoc       ; Jump to the MainOS
; ---------------------------------------------------------------------------
 
MainOS:
        incbin  mainos.bin
        even
; ---------------------------------------------------------------------------
 
SubCPUInt:
        bset    #0, ($A12000).l
; ---------------------------------------------------------------------------
 
SubCPURet:
        rte
; ---------------------------------------------------------------------------
 
; Padding:
        dcb.b   $DC, 0
; ---------------------------------------------------------------------------
 
        org $ff1000
MainOSLoc:  dcb.b   $600, 0
        end

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎