![]()  | 
Routines | 
| Prev: 47811 | Up: Map | Next: 47919 | 
| 
 
Used by the routine at Print_RoomImage.
 
  | 
||||||||
| Print_RoomGraphic | 47841 | CALL SwitchNormalScreenOutput | Call SwitchNormalScreenOutput. | |||||
| 47844 | LD BC,6177 | BC=6177. | ||||||
| 47847 | CALL 3545 | Call CL_SET. | ||||||
| 
 
Reset graphic display area.
 
 | 
||||||||
| 47850 | LD HL,23695 | Point HL at ATTR-T which holds the current attribute value. | ||||||
| 47853 | LD A,(HL) | Fetch the attribute byte. | ||||||
| 47854 | AND %00111000 | Keep only the PAPER bits 3-5. | ||||||
| 47856 | RRA | Move the PAPER bits into the INK bits. | ||||||
| 47857 | RRA | |||||||
| 47858 | RRA | |||||||
| 47859 | LD B,A | Store the result in B. | ||||||
| 47860 | LD A,(HL) | Fetch the attribute byte again. | ||||||
| 47861 | AND %11111000 | Keep everything except the INK bits. | ||||||
| 47863 | OR B | Combine the two values. | ||||||
| 47864 | LD (HL),A | Write the result back to *ATTR-T. | ||||||
| 47865 | LD BC,512 | Set a byte counter in BC of 0512. | ||||||
| Print_RoomGraphic_Loop | 47868 | PUSH BC | Stash the byte counter on the stack. | |||||
| 47869 | LD HL,48501 | HL=48501. | ||||||
| 47872 | LD B,8 | B=8. | ||||||
| 47874 | LD C,(IX+0) | C=*IX+0. | ||||||
| 47877 | INC IX | Increment IX by one. | ||||||
| 47879 | JR Print_RoomGraphic_1 | Jump to Print_RoomGraphic_1. | ||||||
| Print_RoomGraphic_0 | 47881 | INC HL | Increment HL by one. | |||||
| Print_RoomGraphic_1 | 47882 | SRL C | Shift C right. | |||||
| 47884 | JR NC,Print_RoomGraphic_2 | Jump to Print_RoomGraphic_2 if HL is greater than or equal to B. | ||||||
| 47886 | LD A,(IX+0) | A=*IX+0. | ||||||
| 47889 | INC IX | Increment IX by one. | ||||||
| 47891 | JR Print_RoomGraphic_3 | Jump to Print_RoomGraphic_3. | ||||||
| Print_RoomGraphic_2 | 47893 | XOR A | A=0. | |||||
| Print_RoomGraphic_3 | 47894 | LD (HL),A | Write A to *HL. | |||||
| 47895 | DJNZ Print_RoomGraphic_0 | Decrease counter by one and loop back to Print_RoomGraphic_0 until counter is zero. | ||||||
| 47897 | LD DE,48501 | DE=48501. | ||||||
| 47900 | CALL 2819 | Call PO_FETCH. | ||||||
| 47903 | CALL 2943 | Call PR_ALL. | ||||||
| 47906 | CALL 2780 | Call PO_STORE. | ||||||
| 47909 | POP BC | Restore the byte counter from the stack. | ||||||
| 47910 | DEC BC | Decrease the byte counter by one. | ||||||
| 47911 | LD A,C | Jump back to Print_RoomGraphic_Loop until the byte counter is zero. | ||||||
| 47912 | OR B | |||||||
| 47913 | JR NZ,Print_RoomGraphic_Loop | |||||||
| 47915 | CALL 3405 | Call TEMPS. | ||||||
| 47918 | RET | Return. | ||||||
| Prev: 47811 | Up: Map | Next: 47919 |