put similar to the the first iteration of the program you will need to change the FOR loop and PLOT commands to:

10 FOR n= 0 TO 511
20 PLOT n,80*SQR((511-n)/128)

This will invert the coordinates to simulate the Layer 0 display, by drawing inverted, extend the PLOT x coordinate to 512 pixels and make sure the PLOT doesn't get out of bounds (that's why we divide by 128 instead of 64). In reality, you do not need to check if you PLOT out of bounds for layers other than Layer 0, as graphics commands for these accept locations outside the screen's pixel boundaries, however it's good practice to do so if you want your program to work across layers.

DRAW and CIRCLE

To help you with your pictures, the computer will draw straight lines, circles and parts of circles for you, using the DRAW and CIRCLE statements.

The statement DRAW to draw a straight line takes the form:

DRAW x_coordinate, y_coordinate

The starting place of the line is the pixel where the last PLOT, DRAW or CIRCLE statement left off (this is called the PLOT position; RUN, CLEAR, CLS and NEW reset it to the coordinate 0 of the selected Layer (bottom left hand corner, at (0,0) for Layer 0, top left hand corner for all other layers), and the finishing place is x pixels to the RIGHT of that and y pixels UP or DOWN depending on which layer you're on. This would be UP for Layer 0 and DOWN for all other layers. The DRAW statement on its own determines the length and direction of the line, but not its starting point.

Experiment with a few PLOT and DRAW commands, for instance:

PLOT 0,100: DRAW 80,-35
PLOT 90,150: DRAW 80,-35

Notice that the numbers in a DRAW statement can be negative, although those in a PLOT statement can't. Remember always, that the display direction of the DRAW statement changes according to the coordinate system used, ergo which layer you choose is very important. You can also plot and draw in colour, although you have to bear in mind all that were discussed in Chapter 15. Depending on the chosen layer, colours may cover the whole of an attribute position instead of individual pixels. Only LoRes and Layer 2 modes offer full individual colour pixel control whereas other layers rely on the attribute used. The following program demonstrates this:

  10  LAYER 2,0: REM disable Layer
       2
  20  FOR m=0 TO 5
  30  PROC LayChange (m)
  40  BORDER 0:PAPER 0:INK 7:CLS:
       REM black out screen
  50  x1,y1=0:REM line start
  60  c=1: REM ink, starts with
       blue
  70  FOR r = 0 TO 9:REM 10
       repetitions

ZX Spectrum Next User Manual, 3rd Edition (ISBN 978-1-5272-5496-1), written and illustrated by Phoebus R. Dokos. Copyright © 2020-2024 Phoebus Dokos / SpecNext Ltd. Licensed under CC BY-NC-SA 4.0. This is a transcription and can contain errors; check any doubt against the printed page.