pokecrystal-board/home/mobile.asm

299 lines
3.3 KiB
NASM
Raw Normal View History

2022-01-16 14:50:50 -08:00
MobileAPI::
; Mobile
cp $2
2022-01-16 14:50:50 -08:00
ld [wMobileAPIIndex], a
ld a, l
ld [wc986], a
ld a, h
ld [wc987], a
2016-05-05 12:07:37 -07:00
jr nz, .okay
ld [wc982], a
ld a, l
ld [wc981], a
ld hl, wc983
ld a, c
ld [hli], a
ld a, b
ld [hl], a
2016-05-05 12:07:37 -07:00
.okay
ld hl, wc822
set 6, [hl]
ldh a, [hROMBank]
push af
2022-01-16 14:50:50 -08:00
ld a, BANK(_MobileAPI)
ld [wc981], a
rst Bankswitch
2022-01-16 14:50:50 -08:00
jp _MobileAPI
2022-01-16 14:50:50 -08:00
ReturnMobileAPI::
; Return from _MobileAPI
ld [wc986], a
ld a, l
ld [wc987], a
ld a, h
2022-01-16 14:50:50 -08:00
ld [wMobileAPIIndex], a
pop bc
ld a, b
ld [wc981], a
rst Bankswitch
ld hl, wc822
res 6, [hl]
ld hl, wc987
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wc986]
ret
2018-06-24 07:09:41 -07:00
MobileReceive::
ldh a, [hROMBank]
push af
2015-12-15 15:59:49 -08:00
ld a, BANK(_MobileReceive)
ld [wc981], a
rst Bankswitch
2015-12-15 15:59:49 -08:00
call _MobileReceive
pop bc
ld a, b
ld [wc981], a
rst Bankswitch
ret
MobileTimer::
push af
push bc
push de
push hl
ldh a, [hMobile]
and a
2015-10-24 07:34:19 -07:00
jr z, .pop_ret
xor a
ldh [rTAC], a
; Turn off timer interrupt
ldh a, [rIF]
and 1 << VBLANK | 1 << LCD_STAT | 1 << SERIAL | 1 << JOYPAD
ldh [rIF], a
ld a, [wc86a]
or a
2015-10-24 07:34:19 -07:00
jr z, .pop_ret
ld a, [wc822]
bit 1, a
jr nz, .skip_timer
ldh a, [rSC]
and 1 << rSC_ON
jr nz, .skip_timer
ldh a, [hROMBank]
push af
2015-12-28 14:09:53 -08:00
ld a, BANK(_Timer)
ld [wc981], a
rst Bankswitch
2015-12-28 14:09:53 -08:00
call _Timer
pop bc
ld a, b
ld [wc981], a
rst Bankswitch
.skip_timer
ldh a, [rTMA]
ldh [rTIMA], a
ld a, 1 << rTAC_ON | rTAC_65536_HZ
ldh [rTAC], a
2015-10-24 07:34:19 -07:00
.pop_ret
pop hl
pop de
pop bc
pop af
reti
Function3ed7:: ; unreferenced
2016-01-12 09:46:18 -08:00
ld [$dc02], a
ldh a, [hROMBank]
push af
ld a, BANK(Function114243)
rst Bankswitch
call Function114243
pop bc
ld a, b
rst Bankswitch
2016-01-12 09:46:18 -08:00
ld a, [$dc02]
ret
2015-12-28 14:09:53 -08:00
2018-06-24 07:09:41 -07:00
Function3eea::
2015-12-28 14:09:53 -08:00
push hl
push bc
ld de, wAttrmap - wTilemap
2015-12-28 14:09:53 -08:00
add hl, de
inc b
inc b
inc c
inc c
call Function3f35
pop bc
pop hl
call MobileHome_PlaceBox
ret
Function3efd:: ; unreferenced
2015-12-28 14:09:53 -08:00
push hl
hlcoord 0, 12
ld b, 4
ld c, 18
call .fill_attr
pop hl
2019-04-08 05:15:10 -07:00
call PrintTextboxText
2015-12-28 14:09:53 -08:00
ret
.fill_attr
push hl
push bc
ld de, wAttrmap - wTilemap
2015-12-28 14:09:53 -08:00
add hl, de
inc b
inc b
inc c
inc c
call Function3f35
pop bc
pop hl
2019-04-08 05:15:10 -07:00
call TextboxBorder
2015-12-28 14:09:53 -08:00
ret
2018-06-24 07:09:41 -07:00
Function3f20::
hlcoord 0, 0, wAttrmap
2015-12-28 14:09:53 -08:00
ld b, 6
ld c, 20
call Function3f35
hlcoord 0, 0
ld b, 4
ld c, 18
call MobileHome_PlaceBox
ret
2018-06-24 07:09:41 -07:00
Function3f35::
2015-12-28 14:09:53 -08:00
ld a, 6
ld de, SCREEN_WIDTH
.row
push bc
push hl
.col
ld [hli], a
dec c
jr nz, .col
pop hl
add hl, de
pop bc
dec b
jr nz, .row
ret
2018-06-24 07:09:41 -07:00
MobileHome_PlaceBox:
2015-12-28 14:09:53 -08:00
push bc
call .FillTop
pop bc
.RowLoop:
2015-12-28 14:09:53 -08:00
push bc
call .FillMiddle
pop bc
dec b
jr nz, .RowLoop
call .FillBottom
ret
.FillTop:
2015-12-28 14:09:53 -08:00
ld a, $63
ld d, $62
ld e, $64
jr .FillRow
.FillBottom:
2015-12-28 14:09:53 -08:00
ld a, $68
ld d, $67
ld e, $69
jr .FillRow
.FillMiddle:
2015-12-28 14:09:53 -08:00
ld a, $7f
ld d, $65
ld e, $66
.FillRow:
2015-12-28 14:09:53 -08:00
push hl
ld [hl], d
inc hl
.FillLoop:
2015-12-28 14:09:53 -08:00
ld [hli], a
dec c
jr nz, .FillLoop
ld [hl], e
pop hl
ld de, SCREEN_WIDTH
add hl, de
ret
2018-06-24 07:09:41 -07:00
Function3f7c::
2015-12-28 14:09:53 -08:00
call MenuBoxCoord2Tile
call GetMenuBoxDims
dec b
dec c
call Function3eea
ret
2018-06-24 07:09:41 -07:00
Function3f88::
2015-12-28 14:09:53 -08:00
ld hl, wDecompressScratch
ld b, 0
.row
push bc
ld c, 1 tiles / 2
.col
ld a, [de]
inc de
cpl
ld [hl], 0
inc hl
ld [hli], a
dec c
jr nz, .col
pop bc
dec c
jr nz, .row
ret
2018-06-24 07:09:41 -07:00
Function3f9f::
2015-12-28 14:09:53 -08:00
ld hl, wDecompressScratch
.row
push bc
ld c, 1 tiles / 2
.col
ld a, [de]
inc de
inc de
cpl
ld [hl], $0
inc hl
ld [hli], a
dec c
jr nz, .col
pop bc
dec c
jr nz, .row
ret