Prev: 6FA5 Up: Map Next: 710E
6FC9: Scale Shape Coordinate
Used by the routines at ReadShapeByte and SpecialShape.
Multiplies the coordinate by eight and adds the picture origin.
ScaleShape 6FC9 LD L,A
6FCA LD H,$00
6FCC LD BC,$C350
6FCF LD A,($5BBF)
6FD2 BIT 0,A
6FD4 JR Z,ScaleShape_0
6FD6 INC B
6FD7 INC B
6FD8 INC B
6FD9 INC B
ScaleShape_0 6FDA ADD HL,HL
6FDB ADD HL,HL
6FDC ADD HL,HL
6FDD ADD HL,BC
6FDE PUSH HL
6FDF POP IX
6FE1 LD HL,$5BB2
6FE4 LD B,$08
6FE6 LD A,($5BBE)
6FE9 AND $30
6FEB JR NZ,ScaleShape_2
ScaleShape_1 6FED LD A,(IX+$00)
6FF0 LD (HL),A
6FF1 INC IX
6FF3 INC HL
6FF4 DJNZ ScaleShape_1
6FF6 JR ScaleShape_11
ScaleShape_2 6FF8 CP $10
6FFA JR NZ,ScaleShape_5
6FFC LD C,$08
ScaleShape_3 6FFE LD B,$08
7000 LD A,(IX+$00)
ScaleShape_4 7003 SLA A
7005 RR (HL)
7007 INC HL
7008 DJNZ ScaleShape_4
700A LD HL,$5BB2
700D INC IX
700F DEC C
7010 JR NZ,ScaleShape_3
7012 JR ScaleShape_11
ScaleShape_5 7014 CP $20
7016 JR NZ,ScaleShape_8
7018 LD C,$08
701A LD HL,$5BB9
ScaleShape_6 701D LD B,$08
701F LD A,(IX+$00)
ScaleShape_7 7022 SLA A
7024 RR (HL)
7026 DJNZ ScaleShape_7
7028 INC IX
702A DEC HL
702B DEC C
702C JR NZ,ScaleShape_6
702E JR ScaleShape_11
ScaleShape_8 7030 CP $30
7032 JR NZ,ScaleShape_11
7034 LD C,$08
ScaleShape_9 7036 LD B,$08
7038 LD A,(IX+$00)
ScaleShape_10 703B SRL A
703D RL (HL)
703F INC HL
7040 DJNZ ScaleShape_10
7042 LD HL,$5BB2
7045 INC IX
7047 DEC C
7048 JR NZ,ScaleShape_9
ScaleShape_11 704A LD A,($5BBE)
704D AND $40
704F OR A
7050 JR Z,ScaleShape_14
7052 LD C,$08
7054 LD HL,$5BB2
ScaleShape_12 7057 LD B,$08
7059 LD A,(HL)
ScaleShape_13 705A SLA A
705C RR (HL)
705E DJNZ ScaleShape_13
7060 INC HL
7061 DEC C
7062 JR NZ,ScaleShape_12
ScaleShape_14 7064 LD DE,($5BBA)
7068 LD HL,$5BB2
706B LD B,$08
ScaleShape_15 706D LD A,($5BC8)
7070 CP $04
7072 JR NZ,ScaleShape_16
7074 LD A,(DE)
7075 OR (HL)
7076 JR ScaleShape_19
ScaleShape_16 7078 CP $08
707A JR NZ,ScaleShape_17
707C LD A,(DE)
707D AND (HL)
707E JR ScaleShape_19
ScaleShape_17 7080 CP $0C
7082 JR NZ,ScaleShape_18
7084 LD A,(DE)
7085 XOR (HL)
7086 JR ScaleShape_19
ScaleShape_18 7088 LD A,(HL)
ScaleShape_19 7089 LD (DE),A
708A LD (HL),A
708B INC HL
708C INC D
708D DJNZ ScaleShape_15
708F LD A,($5BBE)
7092 AND $0C
7094 LD ($5BC8),A
7097 JR NZ,ScaleShape_23
ScaleShape_20 7099 LD A,($5BC0)
709C OR A
709D JR Z,ScaleShape_22
709F CALL ScaleShape_24
70A2 LD B,$08
70A4 LD HL,$5BB2
70A7 LD DE,($5BBA)
ScaleShape_21 70AB LD A,(HL)
70AC LD (DE),A
70AD INC HL
70AE INC D
70AF DJNZ ScaleShape_21
70B1 LD A,($5BC0)
70B4 DEC A
70B5 LD ($5BC0),A
70B8 JR NZ,ScaleShape_20
ScaleShape_22 70BA CALL ScaleShape_24
ScaleShape_23 70BD LD HL,($5BBC)
70C0 INC HL
70C1 LD ($5BBC),HL
70C4 JP ReadShapeByte
ScaleShape_24 70C7 LD DE,($5BBA)
70CB INC DE
70CC LD ($5BBA),DE
70D0 LD HL,$5BC6
70D3 DEC (HL)
70D4 RET NZ
70D5 LD HL,$5BC7
70D8 DEC (HL)
70D9 JR Z,ScaleShape_25
70DB LD A,($5BC4)
70DE LD ($5BC6),A
70E1 LD A,($5BC3)
70E4 INC A
70E5 LD ($5BC3),A
70E8 CALL RowWord
70EB LD A,($5BC1)
70EE LD L,A
70EF LD H,$00
70F1 ADD HL,DE
70F2 LD ($5BBA),HL
70F5 RET
This entry point is used by the routine at PaintShape.
ScaleShape_25 70F6 POP AF
70F7 RET
70F8 CALL FindShape
70FB LD A,($5BC1)
70FE LD C,A
70FF LD B,$00
7101 LD A,($5BC2)
7104 CALL PictureAddress
7107 LD DE,$5800
710A LD ($5BC9),DE
Prev: 6FA5 Up: Map Next: 710E