1
2; SP1MakeRect16Pix
3; 05.2006 aralbrec, Sprite Pack v3.0
4; sinclair spectrum version
5
6PUBLIC SP1MakeRect16Pix
7
8; Conversion from struct_sp1_ss to struct_r_Rect16
9; with members multiplied by 8 (change from character
10; coordinates to pixel coordinates).
11;
12; enter : hl = struct sp1_ss *
13;         bc = destination struct r_Rect16 *
14; uses  : af, af', bc, de, hl
15
16.SP1MakeRect16Pix
17
18   ld a,(hl)
19   ex af,af
20   inc hl
21   ld e,(hl)
22   ld d,0
23   inc hl
24   push de
25   inc bc
26   inc bc
27   ld e,(hl)
28   inc hl
29   ex de,hl
30   add hl,hl
31   add hl,hl
32   add hl,hl
33   ld a,l
34   ld (bc),a
35   inc bc
36   ld a,h
37   ld (bc),a
38   inc bc
39   ex de,hl
40   inc bc
41   inc bc
42   ld e,(hl)
43   inc hl
44   ld d,0
45   ex de,hl
46   add hl,hl
47   add hl,hl
48   add hl,hl
49   ld a,l
50   ld (bc),a
51   inc bc
52   ld a,h
53   ld (bc),a
54   dec bc
55   dec bc
56   ex de,hl
57   ex af,af
58   ld e,a
59   ld a,(hl)
60   inc hl
61   and $07
62   ld d,0
63   ex de,hl
64   add hl,hl
65   add hl,hl
66   add hl,hl
67   add a,l
68   ld l,a
69   jp nc, noinc0
70   inc h
71.noinc0
72   ld a,h
73   ld (bc),a
74   dec bc
75   ld a,l
76   ld (bc),a
77   dec bc
78   dec bc
79   dec bc
80   ld a,(de)
81   pop hl
82   ld d,h
83   ld e,a
84   add hl,hl
85   add hl,hl
86   add hl,hl
87   add hl,de
88   ld a,h
89   ld (bc),a
90   dec bc
91   ld a,l
92   ld (bc),a
93   ret
94