Routines |
Prev: 6919 | Up: Map | Next: 6980 |
Used by the routine at CreateWindow.
|
||||
PlotMapPoints | 6949 | LD BC,$7811 | BC=MapPoints. | |
PlotMapPoints_Loop | 694C | LD HL,$4708 | HL=4708 (screen buffer location). | |
Handle the X co-ordinate.
|
||||
694F | LD A,(BC) | A=X co-ordinate of map point. | ||
6950 | INC BC | Increment the map pointer in BC by one. | ||
Scale the X co-ordinate for the smaller map display output.
|
||||
6951 | SRL A | A=A / 04. | ||
6953 | SRL A | |||
6955 | LD E,A | Store the result in E. | ||
Handle the Y co-ordinate.
|
||||
6956 | LD A,(BC) | A=Y co-ordinate of map point. | ||
6957 | INC BC | Increment the map pointer in BC by one. | ||
Scale the Y co-ordinate for the smaller map display output.
|
||||
6958 | SRL A | A=A / 08. | ||
695A | SRL A | |||
695C | SRL A | |||
695E | LD D,A | Store the result in D. | ||
Calculate the map screen address of our currently processed map point.
|
||||
695F | LD A,H | H=H - D. | ||
6960 | SUB D | |||
6961 | LD H,A | |||
6962 | LD A,L | L=L + E. | ||
6963 | ADD A,E | |||
6964 | LD L,A | |||
Handle the map point "type" - place names are excluded.
|
||||
6965 | LD A,(BC) | A=sprite ID of map point. | ||
6966 | INC BC | Increment the map pointer in BC by one. Now pointing to the next record. | ||
6967 | PUSH BC | Stash BC on the stack. | ||
6968 | LD BC,$0101 | BC=0101 (used in HandlerTerrainDots_1). | ||
Skip place names - they don't show a marker on the map.
|
||||
696B | BIT 6,A | If bit 6 is set then this is a place name so skip and jump to PlotMapPoints_Continue. | ||
696D | JR Z,PlotMapPoints_Continue | |||
696F | CP $60 | If A is 60 jump to PlotMapPoints_Continue. | ||
6971 | JR Z,PlotMapPoints_Continue | |||
6973 | CALL HandlerTerrainDots_1 | Call HandlerTerrainDots_1. | ||
Check if finished. The stack contains the start of the next record, or the first byte past the end of the map points.
|
||||
PlotMapPoints_Continue | 6976 | POP BC | Restore BC from the stack. | |
6977 | LD HL,$7CD6 | HL=7CD6 (one byte past the end of MapPoints). | ||
697A | AND A | Reset the carry flag. | ||
697B | SBC HL,BC | HL=HL - BC. | ||
697D | JR NZ,PlotMapPoints_Loop | If the result is not zero then jump to PlotMapPoints_Loop. | ||
697F | RET | Return. |
Prev: 6919 | Up: Map | Next: 6980 |