2020-06-27 15:32:24 -04:00
|
|
|
GetPredefPointer::
|
2021-05-31 16:25:16 -04:00
|
|
|
; Back up the contents of the registers (hl, de, bc).
|
2014-05-26 14:04:56 -07:00
|
|
|
; Then put the bank and address of predef
|
|
|
|
; wPredefID in [wPredefBank] and hl.
|
|
|
|
|
2017-12-30 01:54:27 +01:00
|
|
|
ld a, h
|
2021-05-31 16:25:16 -04:00
|
|
|
ld [wPredefHL], a
|
2017-12-30 01:54:27 +01:00
|
|
|
ld a, l
|
2021-05-31 16:25:16 -04:00
|
|
|
ld [wPredefHL + 1], a
|
2017-12-30 01:54:27 +01:00
|
|
|
|
2021-05-31 16:25:16 -04:00
|
|
|
ld hl, wPredefDE
|
2017-12-30 01:54:27 +01:00
|
|
|
ld a, d
|
|
|
|
ld [hli], a
|
|
|
|
ld a, e
|
|
|
|
ld [hli], a
|
|
|
|
|
2021-05-31 16:25:16 -04:00
|
|
|
ASSERT wPredefDE + 2 == wPredefBC
|
2017-12-30 01:54:27 +01:00
|
|
|
ld a, b
|
|
|
|
ld [hli], a
|
|
|
|
ld [hl], c
|
|
|
|
|
|
|
|
ld hl, PredefPointers
|
|
|
|
ld de, 0
|
|
|
|
|
|
|
|
ld a, [wPredefID]
|
|
|
|
ld e, a
|
2014-05-26 14:04:56 -07:00
|
|
|
add a
|
|
|
|
add e
|
2017-12-30 01:54:27 +01:00
|
|
|
ld e, a
|
2016-06-11 21:30:05 -07:00
|
|
|
jr nc, .nocarry
|
2014-05-22 18:13:20 -04:00
|
|
|
inc d
|
|
|
|
|
2016-06-11 21:30:05 -07:00
|
|
|
.nocarry
|
2017-12-30 01:54:27 +01:00
|
|
|
add hl, de
|
|
|
|
ld d, h
|
|
|
|
ld e, l
|
2014-05-22 18:13:20 -04:00
|
|
|
|
|
|
|
; get bank of predef routine
|
2017-12-30 01:54:27 +01:00
|
|
|
ld a, [de]
|
|
|
|
ld [wPredefBank], a
|
2014-05-22 18:13:20 -04:00
|
|
|
|
|
|
|
; get pointer
|
|
|
|
inc de
|
2017-12-30 01:54:27 +01:00
|
|
|
ld a, [de]
|
|
|
|
ld l, a
|
2014-05-22 18:13:20 -04:00
|
|
|
inc de
|
2017-12-30 01:54:27 +01:00
|
|
|
ld a, [de]
|
|
|
|
ld h, a
|
2014-05-22 18:13:20 -04:00
|
|
|
|
|
|
|
ret
|
|
|
|
|
2020-06-23 17:50:50 -04:00
|
|
|
INCLUDE "data/predef_pointers.asm"
|