![]() |
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 |