![]() |
Routines |
| Prev: E4CF | Up: Map | Next: E52B |
|
Draws a piece of terrain that is three bytes wide in the same way as DrawThreeByteRows, but passes every byte through the table of reversed bytes at F900 so that the piece is drawn back to front. The entry points at DrawMirroredThreeByteRows and DrawMirroredThreeByteRows_Two first move to the left by three columns and two columns.
|
||||||||||||
| DrawMirroredThreeByteRows | E4F1 | DEC L | Step L back. | |||||||||
| DrawMirroredThreeByteRows_Two | E4F2 | DEC L | Step L back. | |||||||||
| E4F3 | DEC L | Step L back. | ||||||||||
| DrawMirroredThreeByteRows_Start | E4F4 | LD B,$F9 | B=F9. | |||||||||
| E4F6 | EXX | Switch to the alternate registers. | ||||||||||
| E4F7 | LD B,A | B=A. | ||||||||||
| DrawMirroredThreeByteRows_Loop | E4F8 | EXX | Switch to the alternate registers. | |||||||||
| E4F9 | POP DE | Bring DE back off the stack. | ||||||||||
| E4FA | LD C,E | C=E. | ||||||||||
| E4FB | LD A,(BC) | Read BC. | ||||||||||
| E4FC | LD (HL),A | Write A where HL points. | ||||||||||
| E4FD | INC L | Advance L. | ||||||||||
| E4FE | LD C,D | C=D. | ||||||||||
| E4FF | LD A,(BC) | Read BC. | ||||||||||
| E500 | LD (HL),A | Write A where HL points. | ||||||||||
| E501 | INC L | Advance L. | ||||||||||
| E502 | POP DE | Bring DE back off the stack. | ||||||||||
| E503 | LD C,E | C=E. | ||||||||||
| E504 | LD A,(BC) | Read BC. | ||||||||||
| E505 | LD (HL),A | Write A where HL points. | ||||||||||
| E506 | DEC H | Step H back. | ||||||||||
| E507 | LD C,D | C=D. | ||||||||||
| E508 | LD A,(BC) | Read BC. | ||||||||||
| E509 | LD (HL),A | Write A where HL points. | ||||||||||
| E50A | DEC L | Step L back. | ||||||||||
| E50B | POP DE | Bring DE back off the stack. | ||||||||||
| E50C | LD C,E | C=E. | ||||||||||
| E50D | LD A,(BC) | Read BC. | ||||||||||
| E50E | LD (HL),A | Write A where HL points. | ||||||||||
| E50F | DEC L | Step L back. | ||||||||||
| E510 | LD C,D | C=D. | ||||||||||
| E511 | LD A,(BC) | Read BC. | ||||||||||
| E512 | LD (HL),A | Write A where HL points. | ||||||||||
| E513 | DEC H | Step H back. | ||||||||||
| E514 | LD A,H | A=H. | ||||||||||
| E515 | INC A | Advance A. | ||||||||||
| E516 | AND %00000111 | Keep the bits of A that are set in 07. | ||||||||||
| E518 | JR NZ,DrawMirroredThreeByteRows_Next | Jump to DrawMirroredThreeByteRows_Next if the zero flag is clear. | ||||||||||
| E51A | LD A,L | A=L. | ||||||||||
| E51B | SUB $20 | Subtract 20 from A. | ||||||||||
| E51D | LD L,A | L=A. | ||||||||||
| E51E | JR C,DrawMirroredThreeByteRows_Next | Jump to DrawMirroredThreeByteRows_Next if the carry flag is set. | ||||||||||
| E520 | LD A,H | A=H. | ||||||||||
| E521 | ADD A,$08 | Add 08 to A. | ||||||||||
| E523 | LD H,A | H=A. | ||||||||||
| DrawMirroredThreeByteRows_Next | E524 | EXX | Switch to the alternate registers. | |||||||||
| E525 | DJNZ DrawMirroredThreeByteRows_Loop | Decrease B and jump to DrawMirroredThreeByteRows_Loop until none remain. | ||||||||||
| E527 | EXX | Switch to the alternate registers. | ||||||||||
| E528 | JP FinishStep | Jump to FinishStep. | ||||||||||
| Prev: E4CF | Up: Map | Next: E52B |