.DOT LDA #%00001111 \ Set bits 1 and 2 of the Access Control Register at STA VIA+&34 \ SHEILA &34 to switch screen memory into &3000-&7FFF LDA COMX \ Set X1 = COMX, the x-coordinate of the dash STA X1 LDX COMC \ Set COL = COMC, the mode 2 colour byte for the dash STX COL LDA COMY \ Set Y1 = COMY, the y-coordinate of the dash CPX #YELLOW2 \ If the colour in X is yellow, then the planet/station BNE P%+8 \ is behind us, so skip the following three instructions \ so we only draw a single-height dash JSR CPIXK \ Call CPIXK to draw a single-height dash, i.e. the top \ row of a double-height dash LDA Y1 \ Fetch the y-coordinate of the row we just drew and DEC A \ decrement it, ready to draw the bottom row .DOT2 JSR CPIXK \ Call CPIXK to draw a single-height dash LDA #%00001001 \ Clear bits 1 and 2 of the Access Control Register at STA VIA+&34 \ SHEILA &34 to switch main memory back into &3000-&7FFF RTS \ Return from the subroutineName: DOT [Show more] Type: Subroutine Category: Dashboard Summary: Draw a dash on the compassContext: See this subroutine in context in the source code Variations: See code variations for this subroutine in the different versions References: This subroutine is called as follows: * COMPAS calls DOT * SP2 calls DOT
Arguments: COMX The screen pixel x-coordinate of the dash COMY The screen pixel y-coordinate of the dash COMC The colour and thickness of the dash: * &F0 = a double-height dash in yellow/white, for when the object in the compass is in front of us * &FF = a single-height dash in green/cyan, for when the object in the compass is behind us
[X]
Subroutine CPIXK (category: Drawing pixels)
Draw a single-height dash on the dashboard
[X]
Configuration variable VIA = &FE00
Memory-mapped space for accessing internal hardware, such as the video ULA, 6845 CRTC and 6522 VIAs (also known as SHEILA)
[X]
Configuration variable YELLOW2 = %00001111
Two mode 2 pixels of colour 3 (yellow)