Prev: 26808 Up: Map Next: 26986
26918: Routine at 6926
Used by the routine at 27886.
26918 PUSH BC Stash BC on the stack.
26919 LD A,(26277) A=*26277.
26922 DEC A Decrease A by one.
26923 XOR %11111111 Flip bits 0-7.
26925 AND %00111000 Keep only bits 3-5.
26927 SRA A Shift A right (with carry).
26929 SRA A
26931 SRA A
26933 ADD A,64 A+=64.
26935 LD B,A B=A.
26936 LD A,IXl
26938 CP 2 Compare A with 2.
26940 JR Z,26946 Jump to 26946 if A is equal to 2.
26942 LD A,64 A=64.
26944 JR 26947 Jump to 26947.
26946 LD A,B A=B.
26947 LD (HL),A Write A to *HL.
26948 CALL ConvertAttributeToScreenBufferAddress Call ConvertAttributeToScreenBufferAddress.
26951 PUSH HL Stash HL on the stack.
26952 LD A,(26275) A=*26275.
26955 LD H,0 H=0.
26957 LD L,A L=A.
26958 ADD HL,HL Multiply HL by 8.
26959 ADD HL,HL
26960 ADD HL,HL
26961 LD DE,24995 HL+=24995.
26964 ADD HL,DE
26965 EX DE,HL Exchange the DE and HL registers.
26966 POP HL Restore HL from the stack.
26967 INC A Increment A by one.
26968 CP 3 Jump to 26973 if A is not equal to 3.
26970 JR NZ,26973
26972 XOR A A=0.
26973 LD (26275),A Write A to *26275.
26976 LD B,8 Set a line counter in B (8 lines in a UDG).
26978 LD A,(DE) Copy the UDG data to the screen buffer.
26979 LD (HL),A
26980 INC H Move down one pixel line in the screen buffer.
26981 INC DE Move to the next UDG graphic data byte.
26982 DJNZ 26978 Decrease the line counter by one and loop back to 26978 until all 8 lines of the UDG character have been drawn.
26984 POP BC Restore BC from the stack.
26985 RET Return.
Prev: 26808 Up: Map Next: 26986