Prev: 28581 Up: Map Next: 28942
28617: Scale Shape Coordinate
Used by the routines at ReadShapeByte and SpecialShape.
Multiplies the coordinate by eight and adds the picture origin.
ScaleShape 28617 LD L,A
28618 LD H,0
28620 LD BC,50000
28623 LD A,(23487)
28626 BIT 0,A
28628 JR Z,ScaleShape_0
28630 INC B
28631 INC B
28632 INC B
28633 INC B
ScaleShape_0 28634 ADD HL,HL
28635 ADD HL,HL
28636 ADD HL,HL
28637 ADD HL,BC
28638 PUSH HL
28639 POP IX
28641 LD HL,23474
28644 LD B,8
28646 LD A,(23486)
28649 AND 48
28651 JR NZ,ScaleShape_2
ScaleShape_1 28653 LD A,(IX+0)
28656 LD (HL),A
28657 INC IX
28659 INC HL
28660 DJNZ ScaleShape_1
28662 JR ScaleShape_11
ScaleShape_2 28664 CP 16
28666 JR NZ,ScaleShape_5
28668 LD C,8
ScaleShape_3 28670 LD B,8
28672 LD A,(IX+0)
ScaleShape_4 28675 SLA A
28677 RR (HL)
28679 INC HL
28680 DJNZ ScaleShape_4
28682 LD HL,23474
28685 INC IX
28687 DEC C
28688 JR NZ,ScaleShape_3
28690 JR ScaleShape_11
ScaleShape_5 28692 CP 32
28694 JR NZ,ScaleShape_8
28696 LD C,8
28698 LD HL,23481
ScaleShape_6 28701 LD B,8
28703 LD A,(IX+0)
ScaleShape_7 28706 SLA A
28708 RR (HL)
28710 DJNZ ScaleShape_7
28712 INC IX
28714 DEC HL
28715 DEC C
28716 JR NZ,ScaleShape_6
28718 JR ScaleShape_11
ScaleShape_8 28720 CP 48
28722 JR NZ,ScaleShape_11
28724 LD C,8
ScaleShape_9 28726 LD B,8
28728 LD A,(IX+0)
ScaleShape_10 28731 SRL A
28733 RL (HL)
28735 INC HL
28736 DJNZ ScaleShape_10
28738 LD HL,23474
28741 INC IX
28743 DEC C
28744 JR NZ,ScaleShape_9
ScaleShape_11 28746 LD A,(23486)
28749 AND 64
28751 OR A
28752 JR Z,ScaleShape_14
28754 LD C,8
28756 LD HL,23474
ScaleShape_12 28759 LD B,8
28761 LD A,(HL)
ScaleShape_13 28762 SLA A
28764 RR (HL)
28766 DJNZ ScaleShape_13
28768 INC HL
28769 DEC C
28770 JR NZ,ScaleShape_12
ScaleShape_14 28772 LD DE,(23482)
28776 LD HL,23474
28779 LD B,8
ScaleShape_15 28781 LD A,(23496)
28784 CP 4
28786 JR NZ,ScaleShape_16
28788 LD A,(DE)
28789 OR (HL)
28790 JR ScaleShape_19
ScaleShape_16 28792 CP 8
28794 JR NZ,ScaleShape_17
28796 LD A,(DE)
28797 AND (HL)
28798 JR ScaleShape_19
ScaleShape_17 28800 CP 12
28802 JR NZ,ScaleShape_18
28804 LD A,(DE)
28805 XOR (HL)
28806 JR ScaleShape_19
ScaleShape_18 28808 LD A,(HL)
ScaleShape_19 28809 LD (DE),A
28810 LD (HL),A
28811 INC HL
28812 INC D
28813 DJNZ ScaleShape_15
28815 LD A,(23486)
28818 AND 12
28820 LD (23496),A
28823 JR NZ,ScaleShape_23
ScaleShape_20 28825 LD A,(23488)
28828 OR A
28829 JR Z,ScaleShape_22
28831 CALL ScaleShape_24
28834 LD B,8
28836 LD HL,23474
28839 LD DE,(23482)
ScaleShape_21 28843 LD A,(HL)
28844 LD (DE),A
28845 INC HL
28846 INC D
28847 DJNZ ScaleShape_21
28849 LD A,(23488)
28852 DEC A
28853 LD (23488),A
28856 JR NZ,ScaleShape_20
ScaleShape_22 28858 CALL ScaleShape_24
ScaleShape_23 28861 LD HL,(23484)
28864 INC HL
28865 LD (23484),HL
28868 JP ReadShapeByte
ScaleShape_24 28871 LD DE,(23482)
28875 INC DE
28876 LD (23482),DE
28880 LD HL,23494
28883 DEC (HL)
28884 RET NZ
28885 LD HL,23495
28888 DEC (HL)
28889 JR Z,ScaleShape_25
28891 LD A,(23492)
28894 LD (23494),A
28897 LD A,(23491)
28900 INC A
28901 LD (23491),A
28904 CALL RowWord
28907 LD A,(23489)
28910 LD L,A
28911 LD H,0
28913 ADD HL,DE
28914 LD (23482),HL
28917 RET
This entry point is used by the routine at PaintShape.
ScaleShape_25 28918 POP AF
28919 RET
28920 CALL FindShape
28923 LD A,(23489)
28926 LD C,A
28927 LD B,0
28929 LD A,(23490)
28932 CALL PictureAddress
28935 LD DE,22528
28938 LD (23497),DE
Prev: 28581 Up: Map Next: 28942