Programming in Basic, tutorial # 2

Welcome to the second installment of the tutorial on how to program in Basic, the language of the Commodore. If you missed the first episode, you can find it here.

Subscribe my YouTube channel ValorosoIT. Retro technology, vintage audio, retro computers, experiments and tests. Retroprogramming, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Today we write a nice program, which can be useful, after the holidays, to decide whether to go on a diet!

In addition to typing and testing the program, we also see how to save and load a file, on tape, disk, SD2IEC and Kung Fu Flash.

The conditional statement that we are analyzing today is: IF THEN.
We also see the function STR $ (n).
We use special keys: COMMODORE + RUN/STOP.
The commands we analyze are: LOAD, SAVE and NEW.

Basic language programming course Commodore 2, C16 IF THEN REM PRINT INPUT

In the next installments we will see other commands in Basic and we will also see how to write programs on a Windows PC, using the notepad, and then transfer them to the Commodore and execute them.

In order not to miss the other episodes of the course, I suggest you subscribe to the YouTube channel, whose link is below, and activate the notification bell!

Listing of the program to type

Here is the example program of the second lesson of the tutorial to learn programming in Basic. At the bottom of this page, you can already find it in TXT format (to view it on screen), and also in PRG format, to start it on the Commodore 64. You will also find an empty virtual disk D64.

10 REM IL MIO SECONDO PROGRAMMA IN BASIC
20 REM WWW.VALOROSO.IT
30 INPUT "COME TI CHIAMI";A$
40 PRINT
50 PRINT "SCRIVI IL TUO PESO:"
60 INPUT "PRIMA DELLE FERIE";P1
70 INPUT "ADESSO";P2
80 PRINT
90 IF P2>P1 THEN PRINT "MI SPIACE, " A$ ", TEMO DOVRAI METTERTI A DIETA!": PRINT "HAI MESSO SU" STR$(P2-P1) "KG."
100 IF P2<=P1 THEN PRINT "OTTIMO, " A$ ", NON HAI MESSO PESO!"

Programming in Basic, on which computers?

The simple program that we make today can be run on many different Commodore: on the Commodore 16, Commodore Vic-20, on the Commodore 64, C128, but also on PET, on emulators, those for PC (therefore the VICE and the CCS64) and you can also run it on the old GWBASIC that was in the PC DOS.

If you are using the Commodore PET, remember to type the program in all lowercase.

Follow me on Instagram channel. Retro technology, Commodore, vintage audio, retro computers, experiments and tests. Retroprogramming, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Analysis of the example listing

We had already seen, in first episode of the course, how to type the program on the Commodore, and also how to run it.

Basic Commodore 2 programming course, program listing LIST lines, weight after holidays

The first lines of the program (10, 20 and 30) contain the instructions REM and INPUT, which we had already seen.

In line 30, with the instruction INPUT, the user name is saved in the variable A$. The variable is a data container and the dollar ($), after the variable name, indicates that it is a string: a sequence of characters. We talked about variables in the previous installment of the tutorial.

Line 40 (PRINT) is used only to add an empty line to the monitor, between the request for the name and the following ones. The next line, line 50, starts writing part of the request to the monitor. It is useful not to make subsequent requests too long on the monitor.

Lines 60 and 70 contain the instruction INPUT. Each question must remain within a row of monitors. I obviously considered the monitor with the fewest columns, which is that of the Commodore Vic20.

The value typed on the keyboard, in this case, is a number. The user's weight is first requested before the holidays, and it is saved in the variable P1.

Subsequently, the computer asks for the weight after the holidays, and saves it in the variable P2.

The variables P1 and P2 they are floating point, which can contain integers and also with commas. Remember that to separate units from decimals, you do not need to type the comma, but the point!

Line 80 (PRINT), as seen before, is only used to add a blank line to the monitor, between the questions and the response provided by our Basic program.

Tutorial for programming in Basic, the IF … THEN statement

In line 90 we see a new statement: IF… THEN

It is a conditional instruction: the computer executes everything after the THEN only if the condition, which is between IF and THEN, it's true.

In this case: if the weight after vacation (P2) is greater than the weight before holidays (P1), the Commodore also carries out the two instructions PRINT, already described in the first episode of the course.

STR$ is a function, which converts a numeric value to a string. On some versions of the Basic it is possible to omit it, but I preferred to insert it for compatibility with all Commodore and also with the DOS GWBASIC.

In this case, the numerical value written on the monitor is the difference between the weight after the holidays and the one before.

Also in line 100 we find a condition, which is the opposite of the previous one. On some versions of Basic there is the inverse condition, ELSE, to be performed when the condition is not verified. Unfortunately, in the Commodore 64 it does not exist, so I had to include another line of the program, with the inverse condition, that is, when the weight after the holidays (P2) is equal to or less than the previous one (P1).

Save a file with the Commodore

Let's continue the tutorial, on how to program in Basic, and see how to save and load the program.

Basic Commodore 2 programming course, file saving on SD2IEC, Commodore 1541 floppy disk drive, SD2IEC, datassette tape, LOAD SAVE

It is advisable to save the program often, when typing it, to avoid losing important data. Generally, it is preferable to keep some intermediate saves of a program as well. In this way, if, while working on a program, it no longer works, we could check for any differences with previous saves.

It is also advisable to keep all versions of the program, in order to keep track of the historical functionality implemented.

Save a Basic program on tape

When our program is in memory, to save the program on tape, just type SAVE, with the program name in quotes.

SAVE "CORSO-BASIC-2"
Basic Commodore 2 programming course, save a file on tape datassette C2N, SAVE, cassette

The program name can contain up to 16 characters.

Follow me on Instagram channel. Retro technology, Commodore, vintage audio, retro computers, experiments and tests. Retroprogramming, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

It is a good idea to write down the number of the tape revolutions counter, indicated on the datassette, in order to position yourself in that position when we have to load the program.

Save a Basic program to a Commodore 1541 floppy disk drive

To save the program to disk, if you have a floppy disk drive, such as the Commodore 1541, type SAVE, with the name of the program in quotation marks, also indicating the address of the drive, which in my case is 8.

SAVE "CORSO-BASIC-2",8
Basic Commodore 2 programming course, load a program file from floppy disk drive 1541 II, colon, PRG

Warning! If the file name already exists on the floppy, it will not be overwritten and no errors will be shown on the monitor! The same goes for other errors. For this, it is good to look at the red led of the floppy disk drive 1541 and check that it does not blink after saving the file.

To save by overwriting the file, you need to add @THE: (snail, capital letter O, two points) before the file name:

SAVE "@O:CORSO-BASIC-2",8

If the program already existed on the disk, the old version would be deleted and overwritten with the new one.

Also on disk, as for all save games, the file name can contain a maximum of 16 characters.

Program in Basic, save a program on MicroSD with SD2IEC

Let's continue the tutorial on how to program in Basic and see how to save to SD card, via SD2IEC. The procedure is the same as for the diskette, taking care to indicate the correct address of the emulator, in my case 9.

The program can also be saved on SD2IEC with the option @THE: to overwrite the file.

Subscribe my YouTube channel ValorosoIT. Retro technology, vintage audio, retro computers, experiments and tests. Retroprogramming, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Basic Commodore 2 programming course, overwrite save a file SD2IEC emulator MicroSD, SD, option @O:

If we have not opened any virtual disks, the program is saved in the root folder of the SD memory card. In this case it is better to add the PRG extension to the file name, so that it can be used on a PC with emulators.

If, on the other hand, we had opened an image of a D64 virtual disk, before typing the program, the file would be saved within the same virtual disk.

With regard to possible errors, even with SD2IEC it is good to look at the red LED (present on the SD2IEC itself) and check that it does not flash after saving the file.

Basic Commodore 2 programming course, error while saving a file, red LED flashes

Save the program in Basic on Kung Fu Flash

To save on Kung Fu Flash (this only applies to the Commodore 64 and 128), we must have connected an image of a D64 disk before typing the program.

First of all, using a PC, we prepare a MicroSD memory card with a blank virtual disk inside. For convenience, at the bottom of this page, I have attached a blank virtual disk in D64 format.

Remember to upgrade the Kung Fu Flash to the latest version on GitHub. In fact, versions prior to 1.16 do not have write support.

At this point, we can insert the MicroSD into the Kung Fu Flash and start the Commodore 64. Then press the button MENU on the Kung Fu Flash.

With the cursor keys, select the virtual disk you copied to the MicroSD, but do not press RETURN. You have to press SHIFT + RETURN to open the options menu. To choose MOUNT.

Follow me on Instagram channel. Retro technology, Commodore, vintage audio, retro computers, experiments and tests. Retroprogramming, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Basic Commodore 2 programming course, mount a Kung Fu Flash virtual D64 disk, virtual disk image, MOUNT

At this point the Commodore 64 starts up normally.

You can verify that the virtual disk is mounted correctly with the commands:

LOAD"$",8
LIST

An empty list opens and no errors are displayed.

After typing the command NEW, which we analyze in the next paragraph, you can start typing the program. Later, you can save it with the same command SAVE used with the floppy disk drive and with the SD2IEC, also with the option “@O:”.

Also in this case, in the event of an error, no message is displayed on the monitor. It is therefore a good idea to save the program on multiple files, for safety.

The NEW instruction to clear the memory

Before typing the program, write the command NEW. You can verify that the computer memory is now empty by typing again LIST.

Basic Commodore 2 programming course, command NEW delete memory, list empty

Remember to type the command NEW after loading the file list from any device, before typing the program! In fact, in memory there is a list of disk files, which must not be mixed with our program!

Program in Basic, load a program from tape

Our Basic programming tutorial continues! Let's see how to upload a file. To load it from tape, we type:

Follow me on Instagram channel. Retro technology, Commodore, vintage audio, retro computers, experiments and tests. Retroprogramming, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

LOAD "nome del programma"

Or, if we don't remember the program name, we can type LOAD and start the tape. The first available program is loaded. If we position ourselves at the number of laps we scored when we saved the program, everything is much simpler.

There is also a combination of keys COMMODORE + RUN/STOP to load from tape, without typing LOAD.

Basic Commodore 2 programming course, load a file from tape datassette tape 1531 1530, LOAD, Commodore + Run / Stop

Load a program from the Commodore 1541 floppy disk drive

To load from the disk drive, we can first view the list of files on the disk.

The command used is the following:

LOAD "$",8
LIST

Then we can upload the file by typing

LOAD "nome del file",8

Alternatively, it is possible to position the cursor on the line of the list and type LOAD, then move with the cursor to the right, we add “,8” and colon ":" to leave out what is written later.

Basic Commodore 2 programming course, load a program file from floppy disk drive 1541 II, colon, PRG

Upload a file from Kung Fu Flash

For uploading files from Kung Fu Flash, you can mount the virtual disk as we have seen before (using MOUNT). Then we can load the file as if it were a diskette.

Basic Commodore 2 programming course, load a file from Kung Fu Flash cartridge LOAD, colon

Alternatively, we can also use the Kung Fu Flash file browser by pressing MENU.

Subscribe my YouTube channel ValorosoIT. Retro technology, vintage audio, retro computers, experiments and tests. Retroprogramming, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Basic Commodore 2 programming course, load a file from Kung Fu Flash file browser PRG D64 virtual disk image disk

Upload a file from SD to the Commodore with SD2IEC

Finally, to load the program from the SD2IEC emulator, we can use the same procedure seen for the diskette. Or, alternatively, we can use the file browser.

We load the file browser and see the list of files on the SD card.

Then we choose the file we prefer and start it.

Basic Commodore 2 programming course, load a file from SD2IEC file browser PRG D64 virtual disk, disk image

After finishing the execution of our program, we can consult the list of instructions by typing LIST.

List of the Basic program of course # 2

And here is the listing of the Basic program of the second installment of the tutorial on how to program in Basic with the Commodore.

The program is available in two formats:

  • CORSO-BASIC-2. TXT, in text format, to analyze it on a PC or to transcribe it on the various Commodore or on the DOS GwBasic;
  • CORSO-BASIC-2. ZIP, ZIP compressed folder to unpack. Includes the program in PRG format, loadable and bootable from Commodore 64 and a virtual disk D64 containing the program loadable from C16, Vic20, C64 and C128, as well as emulators (CCS64, VICE or others). Also includes a blank D64 image for Kung Fu Flash experiments.

The topics of the course are still many!

Credits: In the video tutorial, SID music is Delta by Rob Hubbard.

Subscribe my YouTube channel ValorosoIT. Retro technology, vintage audio, retro computers, experiments and tests. Retroprogramming, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Do you like this page? Share it:

Posted in Retro Computer, Retro Technology and Vintage Electronics, All articles.

Leave a Reply

Your email address will not be published. Required fields are marked *