@@ -729,7 +729,7 @@ def B_IE_VBLANK equ 0 ; 1 = VBlank interrupt is enabled [r/w]
729729; these addresses are what's provided here.
730730
731731
732- ; ** MBC1, MBC3, MBC5, MBC6, MBC7, MMM01 *************************** ***********
732+ ; ** Common MBCs ( MBC1, MBC3, MBC5, MBC6, MBC7, MMM01, HuC1, HuC-3) ***********
733733
734734; -- RAMG ($0000-$1FFF) -------------------------------------------------------
735735; Whether SRAM can be accessed [wo]
@@ -739,6 +739,20 @@ def rRAMG equ $0000
739739def RAMG_SRAM_DISABLE equ $ 00
740740def RAMG_SRAM_ENABLE equ $ 0A ; some MBCs accept any value whose low nybble is $A
741741
742+ def RAMG_SRAM_IR equ $ 0E ; (HuC1 only) switch SRAM to IR mode
743+
744+ ; (HuC-3 only) switch SRAM to map cartridge RAM, RTC, or IR
745+ def RAMG_CART_RAM_RO equ $ 00 ; select cartridge RAM [ro]
746+ def RAMG_CART_RAM equ $ 0A ; select cartridge RAM [r/w]
747+ def RAMG_RTC_IN equ $ 0B ; select RTC command/argument [wo]
748+ def RAMG_RTC_IN_CMD equ %0_111_0000 ; command
749+ def RAMG_RTC_IN_ARG equ %0000_1111 ; argument
750+ def RAMG_RTC_OUT equ $ 0C ; select RTC command/response [ro]
751+ def RAMG_RTC_OUT_CMD equ %0_111_0000 ; command
752+ def RAMG_RTC_OUT_RESULT equ %0000_1111 ; result
753+ def RAMG_RTC_SEMAPHORE equ $ 0D ; select RTC semaphore [r/w]
754+ def RAMG_IR equ $ 0E ; select IR [r/w]
755+
742756; -- ROMB ($2000-$3FFF) ------------------------------------------------------
743757; ROM bank number [wo]
744758def rROMB equ $ 2000
@@ -766,7 +780,7 @@ def B_RAMB_RUMBLE equ 3 ; (MBC5 and MBC7 only) enable the rumble motor (if any)
766780 def RAMB_RUMBLE_ON equ 1 << B_RAMB_RUMBLE
767781
768782
769- ; ** MBC1 only ********** ******************************************************
783+ ; ** MBC1 and MMM01 only ******************************************************
770784
771785; -- BMODE ($6000-$7FFF) ------------------------------------------------------
772786; Banking mode select [wo]
@@ -885,6 +899,16 @@ def rACCELY1 equ $A050
885899def rEEPROM equ $ A080
886900
887901
902+ ; ** HuC1 only ****************************************************************
903+
904+ ; -- IRREG ($A000-$BFFF) ------------------------------------------------------
905+ ; IR register [r/w]
906+ def rIRREG equ $ A000
907+
908+ def IR_LED_OFF equ $ C0
909+ def IR_LED_ON equ $ C1
910+
911+
888912;******************************************************************************
889913; Screen-related constants
890914;******************************************************************************
0 commit comments