Prev: A7A4 Up: Map Next: A802
A7D6: Draw Mirrored Row Directly
Draws one row of a sprite that is flipped from left to right on the screen. Each byte of the sprite has its bits reversed by the table that B points to, and the screen is filled from right to left. The entry point depends on the width of the sprite in bytes, from six bytes at DrawMirroredRowDirectly to one byte at DrawMirroredRowDirectly_Sixth.
Input
B High byte of the table that reverses bits
DE Address of the data of the sprite
HL Screen address of the right of the row
DrawMirroredRowDirectly A7D6 LD A,(DE) Fetch a byte of the sprite.
A7D7 LD C,A Use it to look up the byte with the bits reversed.
A7D8 LD A,(BC) Fetch it.
A7D9 OR (HL) Set the pixels of the screen.
A7DA LD (HL),A Store the byte.
A7DB DEC L Move on to the next byte of the screen to the left.
A7DC INC DE Move on to the next byte of the sprite.
DrawMirroredRowDirectly_Second A7DD LD A,(DE) Fetch a byte of the sprite.
A7DE LD C,A Use it to look up the byte with the bits reversed.
A7DF LD A,(BC) Fetch it.
A7E0 OR (HL) Set the pixels of the screen.
A7E1 LD (HL),A Store the byte.
A7E2 DEC L Move on to the next byte of the screen to the left.
A7E3 INC DE Move on to the next byte of the sprite.
DrawMirroredRowDirectly_Third A7E4 LD A,(DE) Fetch a byte of the sprite.
A7E5 LD C,A Use it to look up the byte with the bits reversed.
A7E6 LD A,(BC) Fetch it.
A7E7 OR (HL) Set the pixels of the screen.
A7E8 LD (HL),A Store the byte.
A7E9 DEC L Move on to the next byte of the screen to the left.
A7EA INC DE Move on to the next byte of the sprite.
DrawMirroredRowDirectly_Fourth A7EB LD A,(DE) Fetch a byte of the sprite.
A7EC LD C,A Use it to look up the byte with the bits reversed.
A7ED LD A,(BC) Fetch it.
A7EE OR (HL) Set the pixels of the screen.
A7EF LD (HL),A Store the byte.
A7F0 DEC L Move on to the next byte of the screen to the left.
A7F1 INC DE Move on to the next byte of the sprite.
DrawMirroredRowDirectly_Fifth A7F2 LD A,(DE) Fetch a byte of the sprite.
A7F3 LD C,A Use it to look up the byte with the bits reversed.
A7F4 LD A,(BC) Fetch it.
A7F5 OR (HL) Set the pixels of the screen.
A7F6 LD (HL),A Store the byte.
A7F7 DEC L Move on to the next byte of the screen to the left.
A7F8 INC DE Move on to the next byte of the sprite.
DrawMirroredRowDirectly_Sixth A7F9 LD A,(DE) Fetch a byte of the sprite.
A7FA LD C,A Use it to look up the byte with the bits reversed.
A7FB LD A,(BC) Fetch it.
A7FC OR (HL) Set the pixels of the screen.
A7FD LD (HL),A Store the byte.
A7FE INC DE Move on to the next byte of the sprite.
A7FF JP DrawAlignedRowDirectly_Next Jump to DrawAlignedRowDirectly_Next.
Prev: A7A4 Up: Map Next: A802