summaryrefslogtreecommitdiff
path: root/hram.asm
diff options
context:
space:
mode:
Diffstat (limited to 'hram.asm')
-rw-r--r--hram.asm302
1 files changed, 170 insertions, 132 deletions
diff --git a/hram.asm b/hram.asm
index 7b54988f6..ddafeaf95 100644
--- a/hram.asm
+++ b/hram.asm
@@ -1,132 +1,170 @@
-; HRAM uses constants instead of labels so that
-; "ld a, [hAddress]" and "ld [hAddress], a" will
-; use the more efficient "ldh" instruction.
-
-hTransferVirtualOAM EQU $ff80 ; 10 bytes
-
-hROMBankBackup EQU $ff8a
-hBuffer EQU $ff8b
-hFF8C EQU $ff8c
-hRTCDayHi EQU $ff8d
-hRTCDayLo EQU $ff8e
-hRTCHours EQU $ff8f
-hRTCMinutes EQU $ff90
-hRTCSeconds EQU $ff91
-
-hHours EQU $ff94
-
-hMinutes EQU $ff96
-
-hSeconds EQU $ff98
-
-hVBlankCounter EQU $ff9b
-
-hROMBank EQU $ff9d
-hVBlank EQU $ff9e
-hMapEntryMethod EQU $ff9f
-hMenuReturn EQU $ffa0
-
-hJoypadReleased EQU $ffa2
-hJoypadPressed EQU $ffa3
-hJoypadDown EQU $ffa4
-hJoypadSum EQU $ffa5
-hJoyReleased EQU $ffa6
-hJoyPressed EQU $ffa7
-hJoyDown EQU $ffa8
-hJoyLast EQU $ffa9
-hInMenu EQU $ffaa
-
-hPrinter EQU $ffac
-hGraphicStartTile EQU $ffad
-hMoveMon EQU $ffae
-
-hMapObjectIndexBuffer EQU $ffaf
-hObjectStructIndexBuffer EQU $ffb0
-
-hConnectionStripLength EQU $ffaf
-hConnectedMapWidth EQU $ffb0
-
-hPastLeadingZeroes EQU $ffb3
-
-hEnemyMonSpeed EQU $ffb1
-hPartyMon1Speed EQU $ffb5
-
-hDividend EQU $ffb3 ; length in b register, before 'call Divide' (max 4 bytes)
-hDivisor EQU $ffb7 ; 1 byte long
-hQuotient EQU $ffb4 ; result (3 bytes long)
-hRemainder EQU $ffb7
-
-hMultiplicand EQU $ffb4 ; 3 bytes long
-hMultiplier EQU $ffb7 ; 1 byte long
-hProduct EQU $ffb3 ; result (4 bytes long)
-
-hMathBuffer EQU $ffb8
-
-hPrintNum1 EQU $ffb3
-hPrintNum2 EQU $ffb4
-hPrintNum3 EQU $ffb5
-hPrintNum4 EQU $ffb6
-hPrintNum5 EQU $ffb7
-hPrintNum6 EQU $ffb8
-hPrintNum7 EQU $ffb9
-hPrintNum8 EQU $ffba
-hPrintNum9 EQU $ffbb
-hPrintNum10 EQU $ffbc
-
-hMGStatusFlags EQU $ffbc
-
-hUsedSpriteIndex EQU $ffbd
-hUsedSpriteTile EQU $ffbe
-hFFBF EQU $ffbf
-hFFC0 EQU $ffc0
-hFFC1 EQU $ffc1
-hFFC2 EQU $ffc2
-hMoneyTemp EQU $ffc3
-
-hMGJoypadPressed EQU $ffc3
-hMGJoypadReleased EQU $ffc4
-
-hLCDCPointer EQU $ffc6
-hLYOverrideStart EQU $ffc7
-hLYOverrideEnd EQU $ffc8
-
-hMobileReceive EQU $ffc9
-hSerialReceivedNewData EQU $ffca
-hSerialConnectionStatus EQU $ffcb
-hSerialIgnoringInitialData EQU $ffcc
-hSerialSend EQU $ffcd
-hSerialReceive EQU $ffce
-
-hSCX EQU $ffcf
-hSCY EQU $ffd0
-hWX EQU $ffd1
-hWY EQU $ffd2
-hTilesPerCycle EQU $ffd3
-hBGMapMode EQU $ffd4
-hBGMapThird EQU $ffd5
-hBGMapAddress EQU $ffd6
-
-hOAMUpdate EQU $ffd8
-hSPBuffer EQU $ffd9
-
-hBGMapUpdate EQU $ffdb
-hBGMapTileCount EQU $ffdc
-
-hMapAnims EQU $ffde
-hTileAnimFrame EQU $ffdf
-
-hLastTalked EQU $ffe0
-
-hRandom EQU $ffe1
-hRandomAdd EQU $ffe1
-hRandomSub EQU $ffe2
-hSecondsBackup EQU $ffe3
-hBattleTurn EQU $ffe4 ; Which trainers turn is it? 0: Player, 1: Opponent Trainer
-hCGBPalUpdate EQU $ffe5
-hCGB EQU $ffe6
-hSGB EQU $ffe7
-hDMATransfer EQU $ffe8
-hMobile EQU $ffe9
-hSystemBooted EQU $ffea
-hClockResetTrigger EQU $ffeb
-hFFEC EQU $ffec
+SECTION "HRAM", HRAM
+
+hTransferVirtualOAM:: ds 10 ; ff80
+
+hROMBankBackup:: db ; ff8a
+hBuffer:: db ; ff8b
+hFF8C:: db ; ff8c
+
+hRTCDayHi:: db ; ff8d
+hRTCDayLo:: db ; ff8e
+hRTCHours:: db ; ff8f
+hRTCMinutes:: db ; ff90
+hRTCSeconds:: db ; ff91
+
+ ds 2
+
+hHours:: db ; ff94
+ ds 1
+hMinutes:: db ; ff96
+ ds 1
+hSeconds:: db ; ff98
+ ds 1
+
+ ds 1
+
+hVBlankCounter:: db ; ff9b
+
+ ds 1
+
+hROMBank:: db ; ff9d
+hVBlank:: db ; ff9e
+hMapEntryMethod:: db ; ff9f
+hMenuReturn:: db ; ffa0
+
+ ds 1
+
+hJoypadReleased:: db ; ffa2
+hJoypadPressed:: db ; ffa3
+hJoypadDown:: db ; ffa4
+hJoypadSum:: db ; ffa5
+hJoyReleased:: db ; ffa6
+hJoyPressed:: db ; ffa7
+hJoyDown:: db ; ffa8
+hJoyLast:: db ; ffa9
+
+hInMenu:: db ; ffaa
+
+ ds 1
+
+hPrinter:: db ; ffac
+hGraphicStartTile:: db ; ffad
+hMoveMon:: db ; ffae
+
+UNION ; ffaf
+hMapObjectIndexBuffer:: db ; ffaf
+hObjectStructIndexBuffer:: db ; ffb0
+NEXTU ; ffaf
+hConnectionStripLength:: db ; ffaf
+hConnectedMapWidth:: db ; ffb0
+ENDU ; ffb1
+
+hEnemyMonSpeed:: dw ; ffb1
+
+UNION ; ffb3
+; miscellaneous
+ ds 2
+hPartyMon1Speed:: dw ; ffb5
+ ds 5
+hMGStatusFlags:: db ; ffbc
+
+NEXTU ; ffb3
+; inputs to Multiply
+ ds 1
+hMultiplicand:: ds 3 ; ffb4
+hMultiplier:: db ; ffb7
+
+NEXTU ; ffb3
+; result of Multiply
+hProduct:: ds 4 ; ffb3
+
+NEXTU ; ffb3
+; inputs to Divide
+hDividend:: ds 4 ; ffb3
+hDivisor:: db ; ffb7
+
+NEXTU ; ffb3
+; results of Divide
+ ds 1
+hQuotient:: ds 3 ; ffb4
+hRemainder:: db ; ffb7
+
+NEXTU ; ffb3
+; math-related scratch space
+ ds 5
+hMathBuffer:: ds 5 ; ffb8
+
+NEXTU ; ffb3
+; PrintNum scratch space
+hPrintNumBuffer:: ds 10 ; ffb3
+ENDU ; ffbd
+
+hUsedSpriteIndex:: db ; ffbd
+hUsedSpriteTile:: db ; ffbe
+hFFBF:: db ; ffbf
+hFFC0:: db ; ffc0
+hFFC1:: db ; ffc1
+hFFC2:: db ; ffc2
+
+UNION ; ffc3
+hMoneyTemp:: ds 3 ; ffc3
+NEXTU ; ffc3
+hMGJoypadPressed:: db ; ffc3
+hMGJoypadReleased:: db ; ffc4
+ENDU ; ffc6
+
+hLCDCPointer:: db ; ffc6
+hLYOverrideStart:: db ; ffc7
+hLYOverrideEnd:: db ; ffc8
+
+hMobileReceive:: db ; ffc9
+hSerialReceivedNewData:: db ; ffca
+hSerialConnectionStatus:: db ; ffcb
+hSerialIgnoringInitialData:: db ; ffcc
+hSerialSend:: db ; ffcd
+hSerialReceive:: db ; ffce
+
+hSCX:: db ; ffcf
+hSCY:: db ; ffd0
+hWX:: db ; ffd1
+hWY:: db ; ffd2
+hTilesPerCycle:: db ; ffd3
+hBGMapMode:: db ; ffd4
+hBGMapThird:: db ; ffd5
+hBGMapAddress:: db ; ffd6
+
+ ds 1
+
+hOAMUpdate:: db ; ffd8
+
+hSPBuffer:: dw ; ffd9
+
+hBGMapUpdate:: db ; ffdb
+hBGMapTileCount:: db ; ffdc
+
+ ds 1
+
+hMapAnims:: db ; ffde
+hTileAnimFrame:: db ; ffdf
+
+hLastTalked:: db ; ffe0
+
+hRandom::
+hRandomAdd:: db ; ffe1
+hRandomSub:: db ; ffe2
+
+hSecondsBackup:: db ; ffe3
+
+hBattleTurn:: ; ffe4
+; Which trainer's turn is it? 0: player, 1: opponent trainer
+ db
+
+hCGBPalUpdate:: db ; ffe5
+hCGB:: db ; ffe6
+hSGB:: db ; ffe7
+
+hDMATransfer:: db ; ffe8
+hMobile:: db ; ffe9
+hSystemBooted:: db ; ffea
+hClockResetTrigger:: db ; ffeb
+hFFEC:: db ; ffec