Routines |
Prev: 08852 | Up: Map | Next: 08907 |
|
||||||||||||||||
PIXEL_ADD | 08874 | LD A,175 | Test that the y co-ordinate (in B) is not greater than 175. | |||||||||||||
08876 | SUB B | |||||||||||||||
08877 | JP C,REPORT_B_3 | |||||||||||||||
08880 | LD B,A | B now contains 175 minus y. | ||||||||||||||
08881 | AND A | A holds b7b6b5b4b3b2b1b0, the bits of B. | ||||||||||||||
08882 | RRA | And now 0b7b6b5b4b3b2b1. | ||||||||||||||
08883 | SCF | Now 10b7b6b5b4b3b2. | ||||||||||||||
08884 | RRA | |||||||||||||||
08885 | AND A | Now 010b7b6b5b4b3. | ||||||||||||||
08886 | RRA | |||||||||||||||
08887 | XOR B | Finally 010b7b6b2b1b0, so that H becomes 64+8*INT(B/64)+(B mod 8), the high byte of the pixel address. | ||||||||||||||
08888 | AND %11111000 | |||||||||||||||
08890 | XOR B | |||||||||||||||
08891 | LD H,A | |||||||||||||||
08892 | LD A,C | C contains x. | ||||||||||||||
08893 | RLCA | A starts as c7c6c5c4c3c2c1c0 and becomes c4c3c2c1c0c7c6c5. | ||||||||||||||
08894 | RLCA | |||||||||||||||
08895 | RLCA | |||||||||||||||
08896 | XOR B | Now c4c3b5b4b3c7c6c5. | ||||||||||||||
08897 | AND %11000111 | |||||||||||||||
08899 | XOR B | |||||||||||||||
08900 | RLCA | Finally b5b4b3c7c6c5c4c3, so that L becomes 32*INT((B mod 64)/8)+INT(x/8), the low byte. | ||||||||||||||
08901 | RLCA | |||||||||||||||
08902 | LD L,A | |||||||||||||||
08903 | LD A,C | A holds x mod 8, so the pixel is bit (7-A) within the byte. | ||||||||||||||
08904 | AND 7 | |||||||||||||||
08906 | RET |
Prev: 08852 | Up: Map | Next: 08907 |