Next Previous Contents

## 7. Other hints

## 7.1 Passing arguments to the program

Command line arguments can be passed to `main()`. Since this is not supported by BASIC, the following syntax was chosen:

> `

>         RUN:REM ARG1 " ARG2 IS QUOTED" ARG3 "" ARG5

> `

1. Arguments are separated by spaces.
2. Arguments may be quoted.
3. Leading and trailing spaces around an argument are ignored. Spaces within a quoted argument are allowed.
4. The first argument passed to `main` is the program name.
5. A maximum number of 10 arguments (including the program name) are supported.

## 7.2 Program return code

The program return code (low byte) is passed back to BASIC by use of the `ST` variable.

## 7.3 Using extended memory

The extended memory at $A000 may be added to the heap by using the following code:

> `

>         /* Check for the existence of RAM */
>         if (PEEK(0xA000) == POKE(0xA000, PEEK(0xA000)+1)) {<br>
>             /* Add it to the heap */
>             _heapadd ((void *) 0xA000, 0x2000);
>         }

> `

## 7.4 Interrupts

The runtime for the VIC20 uses routines marked as `.CONDES` type 2 for interrupt handlers. Such routines must be written as simple machine language subroutines and will be called automatically by the interrupt handler code when they are linked into a program. See the discussion of the `.CONDES` feature in the assembler manual.

Next Previous Contents