Prev: 68B8 Up: Map Next: 696A
6926: Routine at 6926
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