![]() |
Routines |
| Prev: D5E6 | Up: Map | Next: D610 |
|
|
||||||||||||||||||
| Merge_Shot | D5FA | PUSH BC | Store BC and HL for later. | |||||||||||||||
| D5FB | PUSH HL | |||||||||||||||||
| Merge_Shot_Loop | D5FC | LD A,(DE) | Loads the contents of the source address held in DE. | |||||||||||||||
| D5FD | XOR (HL) | Performs a bit-by-bit XOR comparison against the contents of the destination address held by HL.
|
||||||||||||||||
| D5FE | LD (HL),A | Stores the result at the destination address. | ||||||||||||||||
| D5FF | INC HL | Increase the source and destination addresses by one, decrease the counter by one. Loop back to Merge_Shot_Loop until the C counter is zero. | ||||||||||||||||
| D600 | INC DE | |||||||||||||||||
| D601 | DEC C | |||||||||||||||||
| D602 | JR NZ,Merge_Shot_Loop | |||||||||||||||||
| D604 | POP HL | Restore HL with the original destination address. | ||||||||||||||||
| D605 | INC H | Increase the high-order byte of HL by one, if this is on a screen third boundary (@todo what's the term for this?) then call Calc_Attribute. | ||||||||||||||||
| D606 | LD A,H | |||||||||||||||||
| D607 | AND $07 | |||||||||||||||||
| D609 | CALL Z,Calc_Attribute | |||||||||||||||||
| D60C | POP BC | Decrease the B counter by one and loop back to Merge_Shot until it is zero. | ||||||||||||||||
| D60D | DJNZ Merge_Shot | |||||||||||||||||
| D60F | RET | Return. | ||||||||||||||||
| Prev: D5E6 | Up: Map | Next: D610 |