Skip to content

Instantly share code, notes, and snippets.

@ssrb
Created March 7, 2018 22:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ssrb/6bdeea9d6bb43c898476e3af85383324 to your computer and use it in GitHub Desktop.
Save ssrb/6bdeea9d6bb43c898476e3af85383324 to your computer and use it in GitHub Desktop.
ASM dump of state of the art track loader
000DC000 dc.b $44 ; D
000DC001 dc.b $4F ; O
000DC002 dc.b $53 ; S
000DC003 dc.b 0
000DC004 dc.b $70 ; p
000DC005 dc.b $5E ; ^
000DC006 dc.b $10
000DC007 dc.b $C4 ; -
000DC008 dc.b $53 ; S
000DC009 dc.b $4B ; K
000DC00A dc.b $49 ; I
000DC00B dc.b $44 ; D
000DC00C ; ---------------------------------------------------------------------------
000DC00C bsr.w sub_DC2B4
000DC010 move.w #$7FFF,(word_DFF09A).l
000DC018 movea.l #$9A0,sp
000DC01E lea $DC034,a0
000DC022 lea $DC2B4,a1
000DC026 lea ($100).w,a2
000DC02A
000DC02A loc_DC02A: ; CODE XREF: RAM:000DC02Ej
000DC02A move.b (a0)+,(a2)+
000DC02C cmpa.l a0,a1
000DC02E bne.s loc_DC02A
000DC030 jmp $100
000DC034 ; ---------------------------------------------------------------------------
000DC034
000DC034 loc_DC034:
000DC034 lea $DC03E,a0
000DC038 move.l a0,($80).w
000DC03C trap #0
000DC03E
000DC03E loc_DC03E:
000DC03E movea.l ($7C).w,sp
000DC042 adda.l #$7FFF0,sp
000DC048 move.w #$FFF,($20292).l
000DC050 move.w #$FFF,($7FFF0).l
000DC058 lea $DC294,a0
000DC05C move.l a0,(dword_DFF080).l
000DC062 move.w (word_DFF088).l,d0
000DC068 move.w #$83C0,(word_DFF096).l
000DC070
000DC070 loc_DC070: ; CODE XREF: RAM:000DC078j
000DC070 btst #$E,(byte_DFF002).l
000DC078 bne.s loc_DC070
000DC07A move.l #$1000000,(dword_DFF040).l
000DC084 move.l #$FFFFFFFF,(dword_DFF044).l
000DC08E move.w #0,(word_DFF066).l
000DC096 move.l #$60000,(dword_DFF054).l
000DC0A0 move.w #$FFFF,(word_DFF058).l
000DC0A8 movea.l #$3EC00,a0
000DC0AE move.w #0,d0
000DC0B2 moveq #2,d1
000DC0B4 bsr.s sub_DC0BC
000DC0B6 jmp $3F000
000DC0BC
000DC0BC sub_DC0BC: ; CODE XREF: RAM:000DC0B4p
000DC0BC movem.l d0-a6,-(sp)
000DC0C0 bsr.w sub_DC266
000DC0C4 bsr.s sub_DC0CC
000DC0C6 movem.l (sp)+,d0-a6
000DC0CA rts
000DC0CC
000DC0CC sub_DC0CC: ; CODE XREF: RAM:000DC0C4p
000DC0CC lea ($DFF000).l,a5
000DC0D2 subq.w #1,d1
000DC0D4 st (byte_BFD100).l
000DC0DA bsr.w sub_DC284
000DC0DE bclr #7,(byte_BFD100).l
000DC0E6 bsr.w sub_DC284
000DC0EA bclr #3,(byte_BFD100).l
000DC0F2 bsr.w sub_DC284
000DC0F6 bsr.w sub_DC278
000DC0FA bset #1,(byte_BFD100).l
000DC102
000DC102 loc_DC102: ; CODE XREF: RAM:000DC124j
000DC102 btst #4,(byte_BFE001).l
000DC10A beq.s loc_DC126
000DC10C bclr #0,(byte_BFD100).l
000DC114 bsr.w sub_DC284
000DC118 bset #0,(byte_BFD100).l
000DC120 bsr.w sub_DC28A
000DC124 bra.s loc_DC102
000DC126 ; ---------------------------------------------------------------------------
000DC126
000DC126 loc_DC126: ; CODE XREF: RAM:000DC10Aj
000DC126 bset #2,(byte_BFD100).l
000DC12E moveq #0,d2
000DC130 move.b d0,d2
000DC132 lsr.w #1,d2
000DC134 bcc.s loc_DC13E
000DC136 bclr #2,(byte_BFD100).l
000DC13E
000DC13E loc_DC13E: ; CODE XREF: RAM:000DC134j
000DC13E subq.w #1,d2
000DC140 bmi.s loc_DC166
000DC142 bclr #1,(byte_BFD100).l
000DC14A
000DC14A loc_DC14A: ; CODE XREF: RAM:000DC162j
000DC14A bclr #0,(byte_BFD100).l
000DC152 bsr.w sub_DC284
000DC156 bset #0,(byte_BFD100).l
000DC15E bsr.w sub_DC28A
000DC162 dbf d2,loc_DC14A
000DC166
000DC166 loc_DC166: ; CODE XREF: RAM:000DC140j
000DC166 ; RAM:loc_DC232j
000DC166 bsr.w sub_DC284
000DC16A move.w #$8500,$9E(a5)
000DC170 move.w #$4489,$7E(a5)
000DC176 bsr.w sub_DC278
000DC17A move.w #$4000,$24(a5)
000DC180 move.l #$600,$20(a5)
000DC188 move.w #$9F40,$24(a5)
000DC18E move.w #$9F40,$24(a5)
000DC194 move.w #2,$9C(a5)
000DC19A bsr.w sub_DC284
000DC19E
000DC19E loc_DC19E: ; CODE XREF: RAM:000DC1A4j
000DC19E btst #1,$1F(a5)
000DC1A4 beq.s loc_DC19E
000DC1A6 bsr.w sub_DC284
000DC1AA move.w #$4000,$24(a5)
000DC1B0 move.w #$400,$9E(a5)
000DC1B6 lea ($600).l,a2
000DC1BC moveq #$A,d5
000DC1BE
000DC1BE loc_DC1BE: ; CODE XREF: RAM:000DC204j
000DC1BE move.l #$55555555,d7
000DC1C4
000DC1C4 loc_DC1C4: ; CODE XREF: RAM:000DC1C8j
000DC1C4 cmpi.w #$4489,(a2)+
000DC1C8 bne.s loc_DC1C4
000DC1CA cmpi.w #$4489,(a2)
000DC1CE bne.s loc_DC1D2
000DC1D0 addq.l #2,a2
000DC1D2
000DC1D2 loc_DC1D2: ; CODE XREF: RAM:000DC1CEj
000DC1D2 move.l (a2),d3
000DC1D4 move.w 6(a2),d4
000DC1D8 and.w d7,d3
000DC1DA and.w d7,d4
000DC1DC add.w d3,d3
000DC1DE or.w d4,d3
000DC1E0 add.w d3,d3
000DC1E2 movea.l a0,a3
000DC1E4 andi.w #$FF00,d3
000DC1E8 adda.w d3,a3
000DC1EA lea $38(a2),a2
000DC1EE moveq #$7F,d6
000DC1F0
000DC1F0 loc_DC1F0: ; CODE XREF: RAM:000DC200j
000DC1F0 move.l $200(a2),d3
000DC1F4 move.l (a2)+,d4
000DC1F6 and.l d7,d4
000DC1F8 and.l d7,d3
000DC1FA add.l d4,d4
000DC1FC or.l d3,d4
000DC1FE move.l d4,(a3)+
000DC200 dbf d6,loc_DC1F0
000DC204 dbf d5,loc_DC1BE
000DC208 lea $1600(a0),a0
000DC20C nop
000DC20E nop
000DC210 nop
000DC212 nop
000DC214 bchg #2,(byte_BFD100).l
000DC21C bne.s loc_DC232
000DC21E andi.b #$FC,(byte_BFD100).l
000DC226 bsr.s sub_DC284
000DC228 bset #0,(byte_BFD100).l
000DC230 bsr.s sub_DC28A
000DC232
000DC232 loc_DC232: ; CODE XREF: RAM:000DC21Cj
000DC232 dbf d1,loc_DC166
000DC236 bset #3,(byte_BFD100).l
000DC23E bsr.s sub_DC284
000DC240 bset #7,(byte_BFD100).l
000DC248 bsr.s sub_DC284
000DC24A bclr #3,(byte_BFD100).l
000DC252 bsr.s sub_DC284
000DC254 bset #3,(byte_BFD100).l
000DC25C bclr #1,(byte_BFE001).l
000DC264 rts
000DC266
000DC266 sub_DC266: ; CODE XREF: RAM:000DC0C0p
000DC266 move.b #$7D,(byte_BFD100).l
000DC26E move.b #$77,(byte_BFD100).l
000DC276 rts
000DC278
000DC278 sub_DC278: ; CODE XREF: RAM:000DC0F6p
000DC278 ; RAM:000DC176p ...
000DC278 btst #5,(byte_BFE001).l
000DC280 bne.s sub_DC278
000DC282 rts
000DC284
000DC284 sub_DC284: ; CODE XREF: RAM:000DC0DAp
000DC284 ; RAM:000DC0E6p ...
000DC284 nop
000DC286 nop
000DC288 rts
000DC28A
000DC28A sub_DC28A: ; CODE XREF: RAM:000DC120p
000DC28A ; RAM:000DC15Ep ...
000DC28A move.w #$1600,d7
000DC28E
000DC28E loc_DC28E: ; CODE XREF: RAM:loc_DC28Ej
000DC28E dbf d7,loc_DC28E
000DC292 rts
000DC292 ; ---------------------------------------------------------------------------
000DC294 off_DC294: dc.l $109FFFE
000DC298 dc.b 1
000DC299 dc.b $80 ; Ç
000DC29A dc.b $F
000DC29B dc.b $FF
000DC29C dc.b 1
000DC29D dc.b 0
000DC29E dc.b 2
000DC29F dc.b 0
000DC2A0 dc.b $FF
000DC2A1 dc.b $FF
000DC2A2 dc.b $FF
000DC2A3 dc.b $FE ; ¦
000DC2A4 dc.b 1
000DC2A5 dc.b 9
000DC2A6 dc.b $FF
000DC2A7 dc.b $FE ; ¦
000DC2A8 dc.b 1
000DC2A9 dc.b 0
000DC2AA dc.b 2
000DC2AB dc.b 0
000DC2AC dc.b 1
000DC2AD dc.b $80 ; Ç
000DC2AE dc.b 0
000DC2AF dc.b 0
000DC2B0 dc.b $FF
000DC2B1 dc.b $FF
000DC2B2 dc.b $FF
000DC2B3 dc.b $FE ; ¦
000DC2B4
000DC2B4 sub_DC2B4: ; CODE XREF: RAM:000DC00Cp
000DC2B4 move.l #$52414D43,(dword_C001FC).l
000DC2BE cmpi.l #$52414D43,(dword_C001FC).l
000DC2C8 bne.s loc_DC2D4
000DC2CA move.l #$C00000,($7C).w
000DC2D2 rts
000DC2D4 ; ---------------------------------------------------------------------------
000DC2D4
000DC2D4 loc_DC2D4: ; CODE XREF: RAM:000DC2C8j
000DC2D4 move.l #$52414D46,(dword_200000).l
000DC2DE cmpi.l #$52414D46,(dword_200000).l
000DC2E8 bne.s loc_DC2F4
000DC2EA move.l #$200000,($7C).w
000DC2F2 rts
000DC2F4 ; ---------------------------------------------------------------------------
000DC2F4
000DC2F4 loc_DC2F4: ; CODE XREF: RAM:000DC2E8j
000DC2F4 clr.l (0).w
000DC2F8 move.l #$43484950,($80000).l
000DC302 move.l (0).w,d0
000DC306 cmp.l ($80000).l,d0
000DC30C beq.s loc_DC318
000DC30E move.l #$80000,($7C).w
000DC316 rts
000DC318 ; ---------------------------------------------------------------------------
000DC318
000DC318 loc_DC318: ; CODE XREF: RAM:000DC30Cj
000DC318 ; RAM:000DC322j
000DC318 move.w (word_DFF006).l,(word_DFF180).l
000DC322 bra.w loc_DC318
000DC322 ; ---------------------------------------------------------------------------
000DC326 dc.b 0
000DC327 dc.b 0
000DC328 dc.b 0
000DC329 dc.b 0
000DC32A dc.b 0
000DC32B dc.b 0
000DC32C dc.b 0
000DC32D dc.b 0
000DC32E dc.b 0
000DC32F dc.b 0
000DC330 dc.b 0
000DC331 dc.b 0
000DC332 dc.b 0
000DC333 dc.b 0
000DC334 dc.b 0
000DC335 dc.b 0
000DC336 dc.b 0
000DC337 dc.b 0
000DC338 dc.b 0
000DC339 dc.b 0
000DC33A dc.b 0
000DC33B dc.b 0
000DC33C dc.b 0
000DC33D dc.b 0
000DC33E dc.b 0
000DC33F dc.b 0
000DC340 dc.b $20
000DC341 dc.b $20
000DC342 dc.b $20
000DC343 dc.b $20
000DC344 dc.b $20
000DC345 dc.b $20
000DC346 dc.b $20
000DC347 dc.b $20
000DC348 dc.b $20
000DC349 dc.b $41 ; A
000DC34A dc.b $4E ; N
000DC34B dc.b $4F ; O
000DC34C dc.b $54 ; T
000DC34D dc.b $48 ; H
000DC34E dc.b $45 ; E
000DC34F dc.b $52 ; R
000DC350 dc.b $20
000DC351 dc.b $4C ; L
000DC352 dc.b $41 ; A
000DC353 dc.b $4D ; M
000DC354 dc.b $45 ; E
000DC355 dc.b $20
000DC356 dc.b $44 ; D
000DC357 dc.b $45 ; E
000DC358 dc.b $4D ; M
000DC359 dc.b $4F ; O
000DC35A dc.b $20
000DC35B dc.b $46 ; F
000DC35C dc.b $55 ; U
000DC35D dc.b $43 ; C
000DC35E dc.b $4B ; K
000DC35F dc.b $45 ; E
000DC360 dc.b $44 ; D
000DC361 dc.b $20
000DC362 dc.b $55 ; U
000DC363 dc.b $50 ; P
000DC364 dc.b $20
000DC365 dc.b $42 ; B
000DC366 dc.b $59 ; Y
000DC367 dc.b $20
000DC368 dc.b $53 ; S
000DC369 dc.b $50 ; P
000DC36A dc.b $41 ; A
000DC36B dc.b $43 ; C
000DC36C dc.b $45 ; E
000DC36D dc.b $42 ; B
000DC36E dc.b $41 ; A
000DC36F dc.b $4C ; L
000DC370 dc.b $4C ; L
000DC371 dc.b $53 ; S
000DC372 dc.b $21 ; !
000DC373 dc.b $21 ; !
000DC374 dc.b $21 ; !
000DC375 dc.b $21 ; !
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment