1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- setup_hdma:
- sep #$20 : .as
- rep #$10 : .xl
- stz $420b
- stz $420c
- lda #$02 ;A to B; direct; 2x single reg
- sta $4320 ;we use ch. 2 for color data
- lda #$22 ;2122 = CG RAM
- sta $4321 ;dest: CG RAM
- lda #^hdma_pal
- ldy #!hdma_pal
- sty $4322
- sta $4324
- lda #$00 ;A to B; direct; 1x single reg
- sta $4310 ;ch. 1 for color address
- lda #$21 ;2121 = CG addr
- sta $4311 ;dest: CG Address
- lda #^hdma_cg_addr
- ldy #!hdma_cg_addr
- sty $4312
- sta $4314
- lda #$00 ;A to B; direct; 1x single reg
- sta $4330 ;ch. 3 for mode switch
- lda #$05 ;2105 = BG mode
- sta $4331
- lda #^hdma_mode
- ldy #!hdma_mode
- sty $4332
- sta $4334
- lda #$03 ;A to B; direct; 2x 2x single reg
- sta $4340 ;ch. 4 for scroll
- lda #$0d ;210d = BG1HOFS
- sta $4341
- lda #^hdma_scroll
- ldy #!hdma_scroll
- sty $4342
- sta $4344
- lda #$01 ;A to B; direct; 1x two reg
- sta $4350 ;ch. 5 for color math
- lda #$31 ;2131 + 2132 = math, color constant
- sta $4351
- lda #^hdma_math
- ldy #!hdma_math
- sty $4352
- sta $4354
- lda #$3a
- sta $420c ;enable HDMA ch. 1+3+4+5
- jsr waitblank
- lda #$3e
- sta $420c ;enable HDMA ch. 2 too
- lda #$81 ;VBlank NMI + Auto Joypad Read
- sta $4200 ;enable V-BLANK NMI
- rts
|