relocate.asm 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. ;============================================================================
  2. ; Includes
  3. ;============================================================================
  4. ;== Include MemoryMap, Vector Table, and HeaderInfo ==
  5. .INCLUDE "header.inc"
  6. ;== Include SNES Initialization routines ==
  7. .INCLUDE "init.inc"
  8. .INCLUDE "LoadGraphics.asm"
  9. .INCLUDE "debug.asm"
  10. ;============================================================================
  11. ; Main Code
  12. ;============================================================================
  13. .EQU PalNum $0000 ; Use some RAM
  14. .BANK 0 SLOT 0
  15. .ORG 0
  16. .SECTION "MainCode"
  17. Start:
  18. InitSNES ; Clear registers, etc.
  19. ; Load Palette for our tiles
  20. LoadPalette OptixxPalette, 0, 16
  21. ; Load Tile data to VRAM
  22. ;LoadBlockToVRAM TilesData, $0000, $0020 ; 2 tiles, 2bpp, = 32 bytes
  23. ;LoadBlockToVRAM OptixxData, $0000, 0xa00 ; 160 tiles, 2bpp, = 2560 bytes
  24. ;LoadBlockToVRAM OptixxData, $0000, 0x1e00 ; 480 tiles, 2bpp, = 7680 bytes
  25. LoadBlockToVRAM OptixxData, $0000, 0x3c00 ; 960 tiles, 2bpp, = 15360 bytes
  26. lda #$80
  27. sta $2115
  28. ;ldx #$0800 ; 5AF
  29. ldx #$4000 ; 5AF
  30. stx $2116
  31. ldx #$0
  32. Start_do:
  33. stx $2118
  34. inx
  35. cpx #960
  36. bne Start_do
  37. ; Setup Video modes and other stuff, then turn on the screen
  38. jsr SetupVideo
  39. prints "Init done"
  40. jsl doit
  41. ret:
  42. lda #$81
  43. sta $4200
  44. Infinity:
  45. lda PalNum
  46. clc
  47. adc #$01
  48. and #$ff ; If > palette starting color > 24 (00011100), make 0
  49. sta PalNum
  50. jmp Infinity ; bwa hahahahaha
  51. ;============================================================================
  52. ; SetupVideo -- Sets up the video mode and tile-related registers
  53. ;----------------------------------------------------------------------------
  54. ; In: None
  55. ;----------------------------------------------------------------------------
  56. ; Out: None
  57. ;----------------------------------------------------------------------------
  58. SetupVideo:
  59. php
  60. lda #$00
  61. sta $2105 ; Set Video mode 0, 8x8 tiles, 4 color BG1/BG2/BG3/BG4
  62. ;lda #$08 ; Set BG1's Tile Map offset to $0800 (Word address)
  63. lda #$40 ; Set BG1's Tile Map offset to $2000 (Word address)
  64. sta $2107 ; And the Tile Map size to 32x32
  65. stz $210B ; Set BG1's Character VRAM offset to $0000 (word address)
  66. lda #$01 ; Enable BG1
  67. sta $212C
  68. lda #$FF
  69. sta $210E
  70. sta $210E
  71. lda #$0F
  72. sta $2100 ; Turn on screen, full Brightness
  73. plp
  74. rts
  75. ;.ENDS
  76. ;.SECTION "IRQHandlers"
  77. COPHandler:
  78. prints "COPHandler"
  79. rti
  80. BRKHandler:
  81. ;prints "BRKHandler"
  82. rti
  83. ABRTHandler:
  84. ;prints "ABRTHandler"
  85. rti
  86. NMIHandler:
  87. ;prints "NMIHandler"
  88. rti
  89. IRQHandler:
  90. ;stz $2121
  91. ;lda PalNum
  92. ;sta $2122
  93. ;sta $2122
  94. ;prints "IRQHandler"
  95. rti
  96. str_COP:
  97. .db "COP",10,0
  98. str_ABORT:
  99. .db "ABORT",10,0
  100. str_NMI:
  101. .db "NMI",10,0
  102. str_RESET:
  103. .db "RESET",10,0
  104. str_IRQBRK:
  105. .db "IRQBRK",10,0
  106. ;============================================================================
  107. .ENDS
  108. ;============================================================================
  109. ; Character Data
  110. ;============================================================================
  111. .BANK 0 SLOT 0
  112. .SECTION "CharacterData02"
  113. .INCLUDE "optixx.inc"
  114. .ENDS
  115. .BANK 1 SLOT 0
  116. .ORG 0
  117. .SECTION "OtherCode"
  118. doit:
  119. prints "enter bank 1"
  120. jsl ret
  121. .ENDS