![]() |
Routines |
Prev: 68B8 | Up: Map | Next: 696A |
Used by the routine at 6CEE.
|
||||
6926 | PUSH BC | Stash BC on the stack. | ||
6927 | LD A,($66A5) | A=*66A5. | ||
692A | DEC A | Decrease A by one. | ||
692B | XOR %11111111 | Flip bits 0-7. | ||
692D | AND %00111000 | Keep only bits 3-5. | ||
692F | SRA A | Shift A right (with carry). | ||
6931 | SRA A | |||
6933 | SRA A | |||
6935 | ADD A,$40 | A+=40. | ||
6937 | LD B,A | B=A. | ||
6938 | LD A,IXl | |||
693A | CP $02 | Compare A with 02. | ||
693C | JR Z,$6942 | Jump to 6942 if A is equal to 02. | ||
693E | LD A,$40 | A=40. | ||
6940 | JR $6943 | Jump to 6943. | ||
6942 | LD A,B | A=B. | ||
6943 | LD (HL),A | Write A to *HL. | ||
6944 | CALL ConvertAttributeToScreenBufferAddress | Call ConvertAttributeToScreenBufferAddress. | ||
6947 | PUSH HL | Stash HL on the stack. | ||
6948 | LD A,($66A3) | A=*66A3. | ||
694B | LD H,$00 | H=00. | ||
694D | LD L,A | L=A. | ||
694E | ADD HL,HL | Multiply HL by 08. | ||
694F | ADD HL,HL | |||
6950 | ADD HL,HL | |||
6951 | LD DE,$61A3 | HL+=61A3. | ||
6954 | ADD HL,DE | |||
6955 | EX DE,HL | Exchange the DE and HL registers. | ||
6956 | POP HL | Restore HL from the stack. | ||
6957 | INC A | Increment A by one. | ||
6958 | CP $03 | Jump to 695D if A is not equal to 03. | ||
695A | JR NZ,$695D | |||
695C | XOR A | A=00. | ||
695D | LD ($66A3),A | Write A to *66A3. | ||
6960 | LD B,$08 | Set a line counter in B (08 lines in a UDG). | ||
6962 | LD A,(DE) | Copy the UDG data to the screen buffer. | ||
6963 | LD (HL),A | |||
6964 | INC H | Move down one pixel line in the screen buffer. | ||
6965 | INC DE | Move to the next UDG graphic data byte. | ||
6966 | DJNZ $6962 | Decrease the line counter by one and loop back to 6962 until all 08 lines of the UDG character have been drawn. | ||
6968 | POP BC | Restore BC from the stack. | ||
6969 | RET | Return. |
Prev: 68B8 | Up: Map | Next: 696A |