<!-- PDF page 164 -->

as previously, the file will appear colourless. When using **BANK** as a **LOAD** *modifier,* we need to remember that *NextBASIC* and *NextZXOS* do not care what type of data is being loaded. As such the **BANK** *modifie*r is also used to load *NextBASIC* programs that make the use of banks. More about that below when we examine **SAVE**.

### SAVE

Our computer's memory lacks permanence; whatever is stored inside it during operation disappears when we turn the power off. We need some means to store the information onto a medium that can hold it even when the power is off; this comes in the form of the **SAVE** keyword.

It follows the exact syntax of **LOAD** that we examined in the previous *section* and uses the same *modifiers* and *parameters* with an additional **LINE** *modifier*. There are a few differences from **LOAD** in behaviour however and we'll examine these immediately. Typing:

```
SAVE ""
```

will produce an **F Invalid file name, 0:1** error even when our *default drive* is **T:** (tape). That's simply because even on a tape, files NEED to be named, otherwise we wouldn't be able to identify them!

As with **LOAD**, setting the *filespec* to a *drive name* (for example **c:**) will switch all *NextBASIC* file retrieval and storage operations to that drive from that point forward so for example:

```
SAVE "m:"
```

will make *drive* **m:** the default *drive* and won't actually store any information anywhere.

As we saw in examples in the previous section, **SAVE** *filespec* without a modifier (assuming *filespec* is a string specifying more than just a *drive name*) will save the *NextBASIC* program currently in memory onto the *default drive* or the *drive/folder* we specify. If however this *filename* already exists in the location specified, *NextZXOS w*ill first create a *backup file* made up from the original *filename* and then append the *type* **.bak** to it.

We will have to skip ahead again to see the results of our operations by using **CAT** (for CATalogue) so let's quickly do some typing:

```
SAVE "c:"

10  PRINT "Hello"
```

and then:

```
SAVE "hello.bas"
```

followed by

```
CAT "hello*.*"
```

(Never mind what the **\*.\*** means, we'll examine that later).\
Your screen will display the following:

```
hello.bas                 1K

  980M free
```

Now perform the save again, again followed by **CAT "hello\*.\*"** and you'll see:

```
hello.bas                 1K
hello.bas.bak             1K
```

