Skip to navigation


Drawing pixels: PIXEL2, Removed

[Elite-A, Docked]

Name: PIXEL2, Removed [Show more] Type: Subroutine Category: Drawing pixels Summary: Draw a stardust particle relative to the screen centre
Context: See this subroutine in context in the source code References: No direct references to this subroutine in this source file

Draw a point (X1, Y1) from the middle of the screen with a size determined by a distance value. Used to draw stardust particles.
Arguments: X1 The x-coordinate offset Y1 The y-coordinate offset (positive means up the screen from the centre, negative means down the screen) ZZ The distance of the point (further away = smaller point)
\ --- Mod: Code removed for Elite-A: ------------------> \.PIXEL2 \ \ LDA X1 \ Fetch the x-coordinate offset into A \ \ BPL PX1 \ If the x-coordinate offset is positive, jump to PX1 \ \ to skip the following negation \ \ EOR #%01111111 \ The x-coordinate offset is negative, so flip all the \ CLC \ bits apart from the sign bit and add 1, to convert it \ ADC #1 \ from a sign-magnitude number to a signed number \ \.PX1 \ \ EOR #%10000000 \ Set X = X1 + 128 \ TAX \ \ \ So X is now the offset converted to an x-coordinate, \ \ centred on x-coordinate 128 \ \ LDA Y1 \ Fetch the y-coordinate offset into A and clear the \ AND #%01111111 \ sign bit, so A = |Y1| \ \ CMP #96 \ If |Y1| >= 96 then it's off the screen (as 96 is half \ BCS PX4 \ the screen height), so return from the subroutine (as \ \ PX4 contains an RTS) \ \ LDA Y1 \ Fetch the y-coordinate offset into A \ \ BPL PX2 \ If the y-coordinate offset is positive, jump to PX2 \ \ to skip the following negation \ \ EOR #%01111111 \ The y-coordinate offset is negative, so flip all the \ ADC #1 \ bits apart from the sign bit and subtract 1, to negate \ \ it to a positive number, i.e. A is now |Y1| \ \.PX2 \ \ STA T \ Set A = 97 - Y1 \ LDA #97 \ \ SBC T \ So if Y is positive we display the point up from the \ \ centre at y-coordinate 97, while a negative Y means \ \ down from the centre \ \ \ Fall through into PIXEL to draw the stardust at the \ \ screen coordinates in (X, A) \ --- End of removed code ----------------------------->