![]() |
Routines |
| Prev: 31658 | Up: Map | Next: 31960 |
|
Calculate the address of the display file byte and the pixel within it of the x,y pixel coords in C and B.
|
||||||||||||||||
| pxy2saddr | 31922 | LD HL,_PXY2SADDR_DATA | Table of clever values | |||||||||||||
| 31925 | LD E,B | DE is 8 bit y pos | ||||||||||||||
| 31926 | LD D,0 | |||||||||||||||
| 31928 | ADD HL,DE | Add offset to the table | ||||||||||||||
| 31929 | LD H,(HL) | H comes from that table location | ||||||||||||||
| 31930 | LD L,C | L is xpos | ||||||||||||||
| 31931 | AND A | Clear carry | ||||||||||||||
| 31932 | RR H | HL = HL / 2 | ||||||||||||||
| 31934 | RR L | |||||||||||||||
| 31936 | SCF | Set carry, this primes the 0x40.. display file address | ||||||||||||||
| 31937 | RR H | HL = HL /2 | ||||||||||||||
| 31939 | RR L | |||||||||||||||
| 31941 | AND A | Clear carry | ||||||||||||||
| 31942 | RR H | HL = HL / 2 | ||||||||||||||
| 31944 | RR L | |||||||||||||||
| 31946 | EX DE,HL | Result into DE for the moment | ||||||||||||||
| 31947 | LD HL,_PIXEL_DATA | Divisor table | ||||||||||||||
| 31950 | LD A,C | xpos | ||||||||||||||
| 31951 | AND 7 | Bottom 3 bits - 0 to 7 | ||||||||||||||
| 31953 | LD C,A | BC = offset into divisor table | ||||||||||||||
| 31954 | LD B,0 | |||||||||||||||
| 31956 | ADD HL,BC | Find divisor table location | ||||||||||||||
| 31957 | LD A,(HL) | A = pixel in the byte | ||||||||||||||
| 31958 | EX DE,HL | Restore display file address into HL | ||||||||||||||
| 31959 | RET | |||||||||||||||
| Prev: 31658 | Up: Map | Next: 31960 |