Routines |
Prev: DD73 | Up: Map | Next: DE69 |
|
||||||||||||
CalculateScreenAddress | DE51 | LD A,L | Load the X co-ordinate into A. | |||||||||
DE52 | AND %11000000 | Keep only bits 6-7. | ||||||||||
DE54 | RRA | Rotate the result right through the carry flag. | ||||||||||
DE55 | SCF | Set the carry flag. | ||||||||||
DE56 | RRA | Rotate right through the carry flag. | ||||||||||
DE57 | RRCA | Rotate right (no carry flag). | ||||||||||
DE58 | XOR L | Combine the bits with the original X co-ordinate. | ||||||||||
DE59 | AND %11111000 | Keep only bits 3-7. | ||||||||||
DE5B | XOR L | Combine the bits with the original X co-ordinate again. | ||||||||||
DE5C | LD D,A | Store the result in D (high byte of the screen buffer address). | ||||||||||
DE5D | LD A,H | Load the Y co-ordinate into A. | ||||||||||
DE5E | RLCA | Multiply by 08. | ||||||||||
DE5F | RLCA | |||||||||||
DE60 | RLCA | |||||||||||
DE61 | XOR L | Combine the bits with the original X co-ordinate. | ||||||||||
DE62 | AND %11000111 | Keep only bits 0-2, 6-7. | ||||||||||
DE64 | XOR L | Combine the bits with the original X co-ordinate again. | ||||||||||
DE65 | RLCA | Multiply by 04. | ||||||||||
DE66 | RLCA | |||||||||||
DE67 | LD E,A | Store result in E (low byte of the screen buffer address). | ||||||||||
DE68 | RET | Return. |
Prev: DD73 | Up: Map | Next: DE69 |