Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- dc.l 0x00FFE000
- dc.l EntryPoint
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l HBlank
- dc.l Interrupt
- dc.l VBlank
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.l Interrupt
- dc.b "SEGA MEGA DRIVE (C)AXEL 2012.OCT"
- dc.b "DOMESTIC TITLE "
- dc.b "INTERNATIONAL TITLE "
- dc.b "AI 01234567-89"
- dc.w 0x0000
- dc.b "J "
- dc.l 0x00000000
- dc.l __end
- dc.l 0x00FF0000
- dc.l 0x00FFFFFF
- dc.l 0x00000000
- dc.l 0x00000000
- dc.l 0x00000000
- dc.l 0x00000000
- dc.l 0x00000000
- dc.l 0x00000000
- dc.b " "
- dc.b "JUE "
- EntryPoint:
- tst.w 0x00A10008
- bne Main
- tst.w 0x00A1000C
- bne Main
- move.l #0x00000000, d0
- move.l #0x00000000, a0
- move.l #0x00003FFF, d1
- @Clear:
- move.l d0, -(a0)
- dbra d1, @Clear
- move.b 0x00A10001, d0
- andi.b #0x0F, d0
- beq @Skip
- move.l #'SEGA', 0x00A14000
- @Skip:
- InitZ80:
- move.w #0x0100, 0x00A11100
- move.w #0x0100, 0x00A11200
- @Wait:
- btst #0x0, 0x00A11100
- bne @Wait
- lea Z80Data, a0
- move.l #0x00A00000, a1
- move.l #0x29, d0
- @Copy:
- move.b (a0)+, (a1)+
- dbra d0, @Copy
- move.w #0x0000, 0x00A11200
- move.w #0x0000, 0x00A11100
- Z80Data:
- dc.w 0xAF01, 0xD91F
- dc.w 0x1127, 0x0021
- dc.w 0x2600, 0xF977
- dc.w 0xEDB0, 0xDDE1
- dc.w 0xFDE1, 0xED47
- dc.w 0xED4F, 0xD1E1
- dc.w 0xF108, 0xD9C1
- dc.w 0xD1E1, 0xF1F9
- dc.w 0xF3ED, 0x5636
- dc.w 0xE9E9, 0x8104
- dc.w 0x8F01
- InitPSG:
- lea PSGData, a0
- move.l #0x03, d0
- @Copy:
- move.b (a0)+, 0x00C00011
- dbra d0, @Copy
- PSGData:
- dc.w 0x9FBF, 0xDFFF
- InitVDP:
- lea VDPRegisters, a0
- move.l #0x18, d0
- move.l #0x00008000, d1
- @Copy:
- move.b (a0)+, d1
- move.w d1, 0x00C00004
- add.w #0x0100, d1
- dbra d0, @Copy
- VDPRegisters:
- dc.b 0x14 ; 0001 0100 Bit 2 is always 1, HBlank enabled
- dc.b 0x74 ; 0111 0100 Bit 2 set = Mega Drive mode = always, DMA enabled, VBlank enabled, Display enabled
- dc.b 0x30 ; 0011 0000 Plane A NT located at 0x30 * 0x400 = 0xC000
- dc.b 0x40 ; 0100 0000 Window NT located at 0x40 * 0x400 = 0x10000
- dc.b 0x05 ; 0000 0101 Plane B NT located at 0x05 * 0x2000 = 0xA000
- dc.b 0x70 ; 0111 0000 Sprite Attribute Table located at 0x70 * 0x200 = 0xE000
- dc.b 0x00 ; 0000 0000 Unused
- dc.b 0x00 ; 0000 0000 BG Colour, bits 4-5 is the palette, bits 0-3 is the colour
- dc.b 0x00 ; 0000 0000 Unused
- dc.b 0x00 ; 0000 0000 Unused
- dc.b 0x00 ; 0000 0000 Bits 0-7 is what scanline you want your HBlank on
- dc.b 0x08 ; 0000 1000 External interrupts enabled, H/V scrolling enabled
- dc.b 0x81 ; 1000 0001 Bits 0 and 7 controll the same thing and thus shold be the same. 40 tile wide display, no interlace
- dc.b 0x34 ; 0011 0100 Bits 0-5 controls where the HScroll data is stored, 0x34 * 0x400 = 0xD000
- dc.b 0x00 ; 0000 0000 Unused
- dc.b 0x00 ; 0000 0000 Auto-increment after VRAM access off
- dc.b 0x01 ; 0000 0001 Plane size, bits 0-1 sets the vertical size for plane A and B, bits 4-5 horizontal. 00 = 32 tiles, 01 = 64 tiles, 10 = Unused, 11 = 128 tiles
- dc.b 0x00 ; 0000 0000
- dc.b 0x00 ; 0000 0000
- dc.b 0x00 ; 0000 0000
- dc.b 0x00 ; 0000 0000
- dc.b 0x00 ; 0000 0000
- dc.b 0x00 ; 0000 0000
- dc.b 0x00 ; 0000 0000
- move.b #0x00, 0x00A10009
- move.b #0x00, 0x00A1000B
- move.b #0x00, 0x00A1000D
- move.l #0x00000000, a0
- movem.l (a0), d0-d7/a1-a7
- move.w #0x2700, sr
- move.w #0x8F02, 0x00C00004
- lea Palette, a0
- move.l #0x07, d0
- @Loop:
- move.l (a0)+, 0x00C00000
- dbra d0, @Loop
- move.w #0x8708, 0x00C00004
- Main:
- jmp Main
- HBlank:
- VBlank:
- Interrupt:
- rte
- Palette:
- dc.w 0x0000
- dc.w 0x000E
- dc.w 0x00E0
- dc.w 0x0E00
- dc.w 0x0000
- dc.w 0x0EEE
- dc.w 0x00EE
- dc.w 0x008E
- dc.w 0x0E0E
- dc.w 0x0808
- dc.w 0x0444
- dc.w 0x0888
- dc.w 0x0EE0
- dc.w 0x000A
- dc.w 0x0600
- dc.w 0x0060
- __end:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement