Prev: 46832 Up: Map Next: 46962
46845: Process Location Display
Used by the routines at ProcessDisplayEntry and ProcessDisplayEntryAlternate.
Input
HL Location pointer
ProcessLocationDisplay 46845 XOR A Write 0 to *46974.
46846 LD (46974),A
46849 LD (46808),HL Write HL to *46808.
46852 CALL FetchCurrentCharacterLocation Call FetchCurrentCharacterLocation.
46855 LD L,(IX+7) L=*IX+7.
46858 LD H,(IX+8) H=*IX+8.
46861 LD A,H Return if HL is zero.
46862 OR L
46863 RET Z
46864 PUSH HL IX=HL (using the stack).
46865 POP IX
46867 LD HL,0 Write 0000 to *46806.
46870 LD (46806),HL
46873 LD IY,43692 IY=Buffer_CoordinateData.
ProcessLocationDisplay_0 46877 LD HL,43692 HL=Buffer_CoordinateData.
46880 LD B,6 B=6.
46882 CALL ClearBuffer Call ClearBuffer.
ProcessLocationDisplay_1 46885 CALL ProcessTextTokenStream Call ProcessTextTokenStream.
46888 RET Z Return if the zero flag is set.
46889 CALL ExtractCharacterAttribute Call ExtractCharacterAttribute.
46892 CP 80 Jump to ProcessLocationDisplay_2 if A is equal to 80.
46894 JR Z,ProcessLocationDisplay_2
46896 CP 96 Jump to ProcessLocationDisplay_1 if A is not equal to 96.
46898 JR NZ,ProcessLocationDisplay_1
46900 LD (IY+2),E Write E to *IY+2.
46903 LD (IY+3),D Write D to *IY+3.
46906 CALL ProcessTextTokenStream Call ProcessTextTokenStream.
46909 RET Z Return if the zero flag is set.
46910 CALL ExtractCharacterAttribute Call ExtractCharacterAttribute.
46913 CP 80 Jump to ProcessLocationDisplay_2 if A is equal to 80.
46915 JR Z,ProcessLocationDisplay_2
46917 CP 96 Jump to ProcessLocationDisplay_0 if A is not equal to 96.
46919 JR NZ,ProcessLocationDisplay_0
46921 LD (IY+4),E Write E to *IY+4.
46924 LD (IY+5),D Write D to *IY+5.
46927 CALL ProcessTextTokenStream Call ProcessTextTokenStream.
46930 RET Z Return if the zero flag is set.
46931 CALL ExtractCharacterAttribute Call ExtractCharacterAttribute.
46934 CP 80 Jump to ProcessLocationDisplay_0 if A is not equal to 80.
46936 JR NZ,ProcessLocationDisplay_0
ProcessLocationDisplay_2 46938 LD (IY+0),E Write E to *IY+0.
46941 LD (IY+1),D Write D to *IY+1.
46944 LD HL,(46808) HL=*46808.
46947 CALL CompareLocationData_0 Call CompareLocationData_0.
46950 JR NZ,ProcessLocationDisplay_0 Jump to ProcessLocationDisplay_0 if the zero flag is not set.
46952 LD IX,(46806) IX=*46806.
46956 CALL MoveIXToHLAndJump Call MoveIXToHLAndJump.
46959 OR %00000001 Set bit 0.
46961 RET Return.
Prev: 46832 Up: Map Next: 46962