Advertisement
KSSBrawl_

Untitled

Aug 15th, 2018
639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. InitSPC:
  2.     php
  3.     sep #$20
  4.     lda #$01
  5.     sta $199c
  6.     lda #$cc
  7.     bra .WaitForReadySignal
  8.    
  9. -   ldx #$00fc
  10.     stx !APUIO0
  11.     rep #$10
  12. .WaitForReadySignal
  13.     ldx #$bbaa
  14.     cpx !APUIO0
  15.     bne -
  16.    
  17.     bra .InitTransfer
  18. .TransferLoop
  19.     jsr .LoadNextByte
  20.     xba
  21.     lda #$00
  22.     bra +
  23. .loop
  24.     xba
  25.     jsr .LoadNextByte
  26.     xba
  27. -   cmp !APUIO0         ; Wait for SPC to echo data
  28.     bne -
  29.     inc
  30. +   rep #$20
  31.     sta !APUIO0
  32.     sep #$20
  33.     dex                 ; Are we done sending this data chunk?
  34.     bne .loop
  35. -   cmp !APUIO0         ; Wait for SPC to echo data
  36.     bne -
  37. -   adc #$03            ; Not sure what the purpose of this is
  38.     beq -
  39. .InitTransfer
  40.     pha
  41.     jsr .LoadNextByte   ; Data size (LSB)
  42.     xba
  43.     jsr .LoadNextByte   ; Data size (MSB)
  44.     xba
  45.     rep #$20
  46.     tax
  47.     sep #$20
  48.     jsr .LoadNextByte   ; Transfer address (LSB)
  49.     xba
  50.     jsr .LoadNextByte   ; Transfer address (MSB)
  51.     xba
  52.     rep #$20
  53.     sta !APUIO2         ; Send transfer address to SPC
  54.     sep #$20
  55.     cpx #$0001          ; Set carry if X is equal to 0
  56.     lda #$00
  57.     rol
  58.     sta !APUIO1
  59.     adc #$7f
  60.     pla
  61.     sta !APUIO0         ; Tell the SPC we're about to upload data
  62. -   cmp !APUIO0         ; and wait for it to acknowledge
  63.     bne -              
  64.     bvs .TransferLoop   ; If X was not 0 when we checked,
  65.                         ; start transferring next block of data
  66.     sep #$20
  67. -   lda !APUIO0
  68.     bne -
  69.     lda !APUIO1
  70.     bne -
  71.     lda !APUIO2
  72.     bne -
  73.     lda !APUIO3
  74.     bne -
  75.     sta $199c
  76.     plp
  77.     rts
  78.  
  79. .LoadNextByte
  80.     lda [!ReadAddr],y
  81.     iny
  82.     bne +               ; Are we still in the same bank?
  83.     inc.b !ReadBank     ; Start reading from
  84.     ldy #$8000          ; the start of the next bank
  85. +   rts
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement