Prev: 48465 Up: Map Next: 48730
48510: Calculate Object Pointer Offset
Used by the routine at ProcessCharacterDisplay.
CalculateObjectPointerOffset 48510 PUSH IY
48512 POP HL
48513 LD DE,24
48516 ADD HL,DE
48517 BIT 7,(IY+25)
48521 JR Z,CalculateObjectPointerOffset_0
48523 LD HL,40950
CalculateObjectPointerOffset_0 48526 BIT 6,(IY+25)
48530 JR Z,CalculateObjectPointerOffset_1
48532 LD HL,40956
CalculateObjectPointerOffset_1 48535 LD DE,45426
48538 LD BC,6
48541 LDIR
48543 PUSH IY
48545 POP HL
48546 LD DE,8
48549 ADD HL,DE
48550 LD DE,45432
48553 LD BC,6
48556 LDIR
48558 LD L,(IY+0)
48561 LD A,(IY+1)
48564 AND 15
48566 LD H,A
48567 LD (47639),HL
48570 PUSH IY
48572 CALL CalculateObjectPointerOffset_2
48575 POP IY
48577 RET
CalculateObjectPointerOffset_2 48578 CALL AdjustObjectTableForSum
48581 LD (47635),IX
48585 LD (47637),IX
48589 LD DE,(47639)
48593 LD HL,39245
48596 LD B,1
CalculateObjectPointerOffset_3 48598 LD A,(HL)
48599 INC HL
48600 OR (HL)
48601 DEC HL
48602 RET Z
48603 LD A,E
48604 CP (HL)
48605 JR NZ,CalculateObjectPointerOffset_4
48607 INC HL
48608 LD A,D
48609 CP (HL)
48610 DEC HL
48611 JR Z,CalculateObjectPointerOffset_5
CalculateObjectPointerOffset_4 48613 INC HL
48614 INC HL
48615 INC B
48616 JR CalculateObjectPointerOffset_3
CalculateObjectPointerOffset_5 48618 LD A,B
48619 LD (47642),A
48622 LD A,2
48624 LD (41016),A
48627 CALL CalculateObjectPointerOffset_9
48630 CP 255
48632 RET Z
48633 LD (47641),A
48636 CALL CalculateObjectPointerOffset_9
48639 CP 255
48641 JR NZ,CalculateObjectPointerOffset_8
48643 LD A,(47641)
48646 CALL CalculateObjectPointerOffset_6
48649 CALL CalculateObjectPointerOffset_10
48652 CP 255
48654 RET Z
48655 LD (47643),A
48658 CALL CalculateObjectPointerOffset_10
48661 CP 255
48663 JR NZ,CalculateObjectPointerOffset_8
48665 LD A,(47643)
48668 CALL CalculateObjectPointerOffset_6
48671 OR 1
48673 RET
CalculateObjectPointerOffset_6 48674 CALL FetchObjectDataPointer
48677 PUSH IX
48679 POP HL
48680 BIT 6,(IX+5)
48684 LD DE,40950
48687 JR NZ,CalculateObjectPointerOffset_7
48689 LD DE,40956
CalculateObjectPointerOffset_7 48692 LD BC,6
48695 LDIR
48697 RET
CalculateObjectPointerOffset_8 48698 SCF
48699 RET
CalculateObjectPointerOffset_9 48700 LD IX,(47635)
48704 LD HL,45426
48707 CALL ProcessObjectEntry
48710 LD (47635),IX
48714 RET
CalculateObjectPointerOffset_10 48715 LD IX,(47637)
48719 LD HL,45432
48722 CALL ProcessObjectEntry
48725 LD (47637),IX
48729 RET
Prev: 48465 Up: Map Next: 48730