BASIC AMSTRAD CPC6128 KEYWORDS
(translate from french manual)
Note: examples present on this page can be loaded in the
CpcAlive emulator with the windows copy/paste function. See
instructions
ABS, AFTER, AND, ASC, ATN, AUTO
BIN$, BORDER, BREAK
CALL, CAT , CHAIN, CHAIN MERGE, CHR$, CINT, CLEAR, CLEAR INPUT, CLG, CLOSEIN, CLOSEOUT, CLS, CONT, COPYCHR$, COS, CREAL, CURSOR
DATA, DEC$, DEF FN, DEFINT, DEFREAL, DEFSRT, DEG, DELETE, DERR, DI, DIM, DRAW, DRAWR
EDIT, EI, ELSE, END, ENT, ENV, EOF, ERASE, ERL, ERR, ERROR, EVERY, EXP
FILL, FIX, FN, FOR, FRAME, FRE
GOSUB, GOTO, GRAPHICS PAPER, GRAPHICS PEN
HEX$, HIMEM
IF, INK, INKEY, INKEY$, INP, INPUT, INSTR, INT
JOY
KEY, KEY DF
LEFT$, LEN, LET, LINE INPUT, LIST, LOAD, LOCATE, LOG, LOG10, LOWER$
MASK, MAX, MEMORY, MERGE, MID$, MID$, MIN, MOD, MODE, MOVE, MOVER
NEW, NEXT, NOT
ON BREAK CONT, ON BREAK GOSUB, ON BREAK STOP, ON ERROR GOTO, ON <expression> GOSUB, ON <expression> GOTO, ON SQ GOSUB, OPENIN, OPENOUT, OR, ORIGIN, OUT
PAPER, PEEK, PEN, PI, PLOT, PLOTR, POKE, POS, PRINT, PRINT SPC, PRINT TAB, PRINT USING
RAD, RANDOMIZE, READ, RELEASE, REM, REMAIN, RENUM, RESTORE, RESUME, RESUME NEXT,
RETURN, RIGHT$, RND, ROUND, RUN, RUN
SAVE, SGN, SIN, SOUND, SPACE$, SPC, SPEED INK, SPEED KEY, SPEED WRITE, SQ, SQR, STEP, STOP,
STR$, STRING$, SWAP, SYMBOL, SYMBOL AFTER
TAB, TAG, TAGOFF, TAN, TEST, TESTR, THEN, TIME, TO, TROFF, TRON
UNT, UPPER$, USING
VAL, VPOS
WAIT, WEND, WHILE, WIDTH, WINDOW, WINDOW SWAP, WRITE
XOR, XPOS
YPOS
ZONE
INTRODUCTION
The
assimilation of the terminology and the notation adopted in this chapter is
essential. Various types of brackets explain the entry of the commands; thus start
with you to familiarize with the significance of each one.
The commands without
hooks must remain just as they are. It is the case, for example, of the command:
END
...
and you must type word END with all letters.
When
an element appears between angular brackets, < > like:
<line number>
...
these brackets should neither be typed, nor what they contain. The example above
indicates the type of data necessary for the command. For example:
EDIT <line number>
... mean
that you must type:
EDIT 100
The
brackets () MUST be typed just as they are. In the example:
COS(<numeric expression>)
...
the numerical expression must be between brackets. For example:
PRINT COS(45)
The
hooks, to finish, contain the optional elements about a command or a function. For
example:
RUN [<line number>]
...
means that you are not obliged to make follow key word RUN of a parameter, but
which you can, if you wish it, add the parameter <line number>. The command can then be
entered in two manners:
RUN ... or ... RUN 100
Specials characters
& or &H Prefixes
for a hexadecimal number
&X
Prefixes for a binary number
#
Prefixes for an inputs/outputs chanel
Types of data
The
chains can have from 0 to 255 characters and are indicated by <alphanumeric
chain>. One can associate a chain with another one with the sign + and provided that
the chain which results from it does not exceed 255 characters.
The wholes numbers vary from -32768 to + 32767 and the real numbers from -1.7E+38 to +1.7E+38, the
smallest number higher than zero being 2.9E-39 and each number having 9 to
10 significant figures.
A <numerical expression> is an expression which leads to a
numerical value. That can be numbers, or a numeric variable, or numbers
operating with numeric variables, about all that is not <alphanumeric chain>.
A <chanel number> is referred to a <numerical expression> to indicate a screen window, a printer,
a cassette or a diskette to which the text must be forwarded.
A <list of element>
describes a parameter including a list of elements separated by
commas. This list, being able to contain one or more elements, is limited by the
line lengh.
Various indicators of data type:
% Whoole
! Reals (by defect)
$ Alphanumeric an numeric (alphanumeric) chain
We
will give the key words of BASIC AMSTRAD in the following form:
KEY WORD
Syntax
Example
Description
Associated
key words
Key words ares:
COMMANDS : operations executed direcly
FUNCTIONS : operations
intervening in an expression
OPERATORS : act with mathematical arguments
At
the time of the listing of a program, the BASIC transforms in capital letters
all the key words typed in small letters. The examples of this chapter are in
capital letters such as they appear after a Listing. It will be however
preferable that you type them with small letters because the key words containing an
error will remain LISTing witht small letters, thus revealing you your typing
errors.
Key words...
ABS
ABS(<numerical
expression>)
PRINT ABS(-67,98)
67.98
FUNCTION: Give
the ABSolute value of the expression between brackets. The negative numbers thus
lose their minus sign.
Associated
key words: SGN
AFTER
AFTER <chronometer time>[,<chronometer number>]
GOSUB <line number>
10 AFTER 250 GOSUB 60:CLS
20 PRINT"Guess
a letter in 5 seconds"
30 a$=INKEY$:IF flag=1 THEN END
40 IF a$<>CHR$(INT(RND*26+97)) THEN 30
50 PRINT a$;" is exact, you win !"
55 SOUND 1,478:SOUND 1,358:END
60 PRINT "Too late. I win !"
70 SOUND 1,2000:flag=1:RETURN
run
COMMAND: Call
a subroutine AFTER a delay. The <chronometer time> indicates the duration of
waiting in multiples of 0,02 second. The <chronometer number> (which can be 0,1,2 or 3) precise one
which of the four chronometers it is necessary to use. Each 4 chronometers can be associated with a subroutine.
Associated
key words: EVERY,
REMAIN, RETURN
AND
<argument> AND
<argument>
IF "alan" < "bernard" AND "dog" > "cat" THEN PRINT "true" ELSE PRINT "false"
true
IF "bernard" < "alan" AND "cat" > "dog" THEN PRINT "true" ELSE PRINT "false"
false
IF "alan" < "bernard" AND "cat" > "dog" THEN PRINT "true" ELSE PRINT "false"
false
....
PRINT 1 AND 1
1
PRINT 0 AND 0
0
PRINT 1 AND 0
0
OPERATOR: Carry
out Boolean operations by bits on the whole numbers. Is equal to 0 except when
the two bits of arguments are equal to 1.
Associated
key words: OR,
NOT, XOR.
ASC
ASC(<alphanumeric
chain>)
PRINT ASC("x")
120
FUNCTION: Give
the numerical value of the first character of a character string.
Associated key words: CHR$
ATN
ATN(<numerical
expression>)
PRINT ATN(1)
0.785398163
FUNCTION: Calculate the Arc TaNgent (reducing the <numerical
expression> to a real number in radians ranging between
- PI/2 and + PI/2) of the value given.
Note that the commands DEG and RAD can
beings used to specify explicitly that the result will be expressed respectively
in degrees or radians
Associated key words: COS,
DEG, RAD, SIN, TAN
AUTO
AUTO [<line number>][,<increment>]
AUTO 100,50
COMMANDE: Generate
AUTOmatically the line numbers. The optional parameter <line number> gives the first
line number to be generated. If you do not specify it, the lines are
generated from 10.
The <increment>, also optional, fixes the interval between the
line numbers. In the abscence of specification, it will be equal to 10. If a
line number already used is generated, the contents of this line appear on the
screen and can be modified. The posted line is then replaced in memory
after activation of the [RETURN] key. To stop the automatic classification of the
lines, activate the key [ESC].
Associated key words: Nothing
BIN$
BIN$ ( <whole number without sign>[,<whole number>] )
PRINT BIN$(64,8)
01000000
FUNCTION: Product
a BINary string representing the value of the <whole number without sign>, using the number of binary digits
indicated by the second <whole number> (between 0 and 16). If this number is too large, the
result starts with as many zero as necessary. If it is too small, the result is
not truncated but converted into as many digits as necessary.
The <whole number without sign> to convert
into binary must lie between -32768 and 65535.
Associated key words: DEC$, HEX$, STR$
BORDER
BORDER <color number>[,<color number>]
10 REM 729 border combinations
20 SPEED INK 5,5
30 FOR a=0 TO 26
40 FOR b=0 TO 26
50 BORDER a,b:CLS:LOCATE 14,13
60 PRINT"border";a;",";b
70 FOR t=1 TO 500
80 NEXT t,b,a
run
COMMAND: Change the border screen color. If two colors are indicated, they alternate
at the speed determined by the command SPEED INK, if necessary. The values go from
0 to 26.
Associated key words: SPEED INK
BREAK
(See ON BREAK CONT, ON BREAK GOSUB,
ON BREAK STOP)
CALL
CALL <adress>[,<list of:<parameter>]
CALL 0
COMMAND: Allows an external subroutine to be called starting from
the BASIC. The example above initialize completely the computer.
To use with precaution.
Associated key words: UNT
CAT
CAT
CAT
COMMAND: Ask to read the diskette CATalogue. Post in alphanumeric order the
names of all the files present with their length (while rounding with the higher
Kbyte). The number of bytes available is also posted. This command does not have
an effect on the program in progress.
Associated key words: LOAD, RUN, SAVE
CHAIN
CHAIN
<filename>[,<line number>]
CHAIN "progtest.bas",350
COMMAND: Load a program in memory starting from a diskette, replacing the existing
program. The new program starts at the beginning or starting from the line
specified by <line number>.
The protected files (safeguarded by the command SAVE, p) can be loaded and launched by CHAIN.
Associated key words: CHAIN
MERGE, LOAD, MERGE
CHAIN MERGE
CHAIN MERGE
<filename>[,<line number>]
[,DELETE <unit of lines>]
CHAIN MERGE "part2.bas",750,DELETE 400-680
COMMAND: Load
in memory a program on diskette by amalgamating it with the existing program,
then launch the resulting program, since the beginning or starting from the line
specified by the option parameter, <line number>. If you wish to erase a part of the initial
program before using this command, you can specify the parameter <unit of lines> of the command DELETE.
The numbers of line of the initial program identical to those of the program to
be amalgamated will be crushed on the new lines. The protected files
(safeguarded with the command SAVE, p) cannot be amalgamated then launched by this command.
Associated key words: LOAD, MERGE, DELETE, CHAIN
CHR$
CHR$(<whole number>)
10 FOR x=32 TO 255
20 PRINT x;CHR$(x),
30 NEXT
run
FUNCTION: Converts a <whole number> ranging between 0 and 255 in a character ASCII. Characters 0 to 31 are control characters. This is why the
example above posts the entireties ranging between 32 and 255.
Associated key words: ASC
CINT
CINT(<numerical expression>)
10 n=1.9999
20 PRINT CINT(n)
run
2
FUNCTION: Converts
a numerical value into a round entirety ranging between -32768 and 32767.
Associated key words: CREAL, FIX, INT, ROUND, UNT
CLEAR
CLEAR
CLEAR
COMMAND: Erase
all the variables, opened files, tables and user functions, the mode of
calculation in BASIC is carried out in radians.
Associated key words: Nothing
CLEAR INPUT
CLEAR INPUT
10 CLS
20 PRINT" type
several letters now !"
30 FOR T=1 TO 50000
40 NEXT
50 CLEAR INPUT
run
COMMAND: Erase
all the data entered from the keyboard, being in the buffer.
To try out this command, launch the program above and type the letters
when you are invited. Remove then the line 50 of the program, start
again it and see the difference.
Associated key words: INKEY, INKEY$, JOY
CLG
CLG [<inks>]
LOCATE 1,20
CLG 3
COMMAND: Erase
the graphic screen and brings back it to its prime coat. If <ink> is specified,
the prime coat has the color fixed in agreement.
Associated key words: CLS, GRAPHICS PAPER, INK, ORIGIN
CLOSEIN
CLOSEIN
CLOSEIN
COMMAND: Close any input file open on the diskette (see OPENIN).
Associated key words: EOF, OPENIN
CLOSEOUT
CLOSEOUT
CLOSEOUT
COMMAND: Close any output file open on the diskette (see OPENOUT).
Associated key words: OPENOUT
CLS
CLS [# <channel number>]
10 PAPER #2,3
20 CLS #2
run
COMMAND: Erase
the screen window specified by the <channel number> and gives him its paper color. In the absence
of <channel number>, 0 is taken by defect.
Associated key words: CLG, INK, PAPER, WINDOW
CONT
CONT
CONT
COMMAND: CONTinue
the execution of the program after a STOP, or two activations of the [ESC] key , if
the program neither were modified nor protected. Direct commands can beings
typed before continue the program.
Associated key words: STOP
COPYCHR$
COPYCHR$ (#
<channel number>)
10 CLS
20 PRINT"higher angle
left"
30 LOCATE 1,1
40 a$=COPYCHR$(#0)
50 LOCATE 1,20
60 PRINT a$
run
FUNCTION: Copy
a character starting from the position of the cursor in the channel (which MUST
be specified). The program above copies a character of site 1,1 (higher angle
left) and reproduces it in 1,20. If the character read is not recognized, a null
chain is returned.
Associated key words: LOCATE
COS
COS
(<numerical expression>)
DEG
PRINT COS(45)
0.707106781
FUNCTION: Calculate
the COSinus of the <numerical expression>.
DEG and RAD can be used to express the argument in degrees or
radians, respectively.
Associated key words: ATN, DEG, RAD, SIN
CREAL
CREAL
(<numerical expression>)
10 a=PI
20 PRINT CINT(a)
30 PRINT CREAL(a)
run
3
3.14159265
FUNCTION: Converts
the <numerical expression> into a real number.
Associated key words: CINT
CURSOR
CURSOR [<system indicator>)][ , <user indicator>]
10 CURSOR 1
20 PRINT "question ?";
30 a$=INKEY$:IF a$="" THEN 30
40 PRINT a$
50 CURSOR 0
run
COMMAND:Activate
or desactivate the system or user indicator. The parameters <system indicator> and <user indicator> must be 0
(inactive) or 1 (active). In the command INKEY$ above, the cursor was made visible with fixing the system indicator on 1 (in line 10).
The cursor is posted when
the two indicators are equal to 1. The cursor system is automatically activated
for the command INPUT and is desactivate for INKEY$.
It is preferable to
desactivate the cursor to post text to the screen.
You can omit
one of the indicators but not both. If a parameter is omitted, its state is
unchanged.
Associated key words:: LOCATE
DATA
DATA <list of:<constant>
10 FOR x=1 TO 4
20 READ name$,firstname$
30 PRINT "Mr. ";name$;" ";firstname$
40 NEXT
50 DATA DUPONT,Oliver,DURAND,John
60 DATA LAMIE,Mark,MOULIN,Alan
run
COMMAND: Declare
data constant inside a program. These data can be assigned to a variable by
the command READ, after which the pointer go to the following element of the DATA list. The command RESTORE can be used to move the pointer to a DATA specified position.
Associated key words: READ, RESTORE
DEC$
DEC$
(<numerical expression>,<form model>)
PRINT DEC$(10^ 7,"££########,.##")
£10,000,000.00
FUNCTION: Give
a DECimale representation of the numerical expression, using the <form model> indicated.
The form model can contain ONLY the characters: + - £ $ * # , . ^
The use of these
"form indicators" is described to the key word PRINT USING.
Associated key words: BIN$, HEX$, PRINT USING, STR$
DEF FN
DEF FN
<name>[(<parameters>)]=<expression>
10 t=TIME/300
20 DEF FNchrono=INT(TIME/300-t)
30 EVERY 100 GOSUB 50
40 GOTO 40
50 PRINT"The program run since";
60 PRINT FNchrono;"secondes"
70 RETURN
run
COMMAND: The
BASIC permit to the program to DEFine a FuNction returning a single
value and to use it. DEF FN is the definition part of the creation mechanism
of a specific function, working in a similar way than the BASIC functions existing (COS, SIN, ATN, etc).
In the example above the value of the FNchrono
function is constantly updated, even if the program is suspended by [ESC] or
is stopped by double [ESC], then started again with CONT.
Associated key words: Nothing
DEFINT
DEFINT <list of:
<letters
concerned>
10 DEFINT n
20 number=123.456
30 PRINT number
run
123
COMMAND: Defines
the variable type by DEFect, the type being whole. When a variable
intervenes without marker (! % $), the type by defect is automatically
implemented. This command defines the type by defect of the variables according to
the first letter of the name of the variable. It can be followed by a list of
initials letters. For example:
DEFINT a,b,c
...or a unit of initials letters:
DEFINT a-z
Associated key words: DEFREAL, DEFSTR
DEFREAL
DEFREAL <list of:
<letters
concerned>
DEFREAL x,a-f
COMMAND: Defines
the variable type by DEFect, the type being real. When a variable
intervenes without marker (! % $), the type by defect is automatically
implemented. This command defines the type by defect of the variables according to
the first letter of the name of the variable. It can be followed by a list of
initials letters. For example:
DEFINT a,b,c
...or a unit of initials letters:
DEFINT a-z
Associated key words: DEFINT,
DEFSTR
DEFSRT
DEFSTR <list of: <letters
concerned>
10 DEFSTR n
20 name="Amstrad"
30 PRINT name
run
Amstrad
COMMAND: Defines
the variable type by DEFect, the type being a string. When a variable
intervenes without marker (! % $), the type by defect is automatically
implemented. This command defines the type by defect of the variables according to
the first letter of the name of the variable. It can be followed by a list of
initials letters. For example:
DEFINT a,b,c
...or a unit of initials letters:
DEFINT a-z
Associated key words: DEFINT,
DEFREAL
DEG
DEG
DEG
COMMAND: Set the DEGrees calculation mode. By defect, functions SIN, COS, TAN
and ATN consider that the argument which is transmitted to them is expressed in
radians. The command remains valid until one uses the commands RAD or NEW, CLEAR, LOAD,
RUN, etc.
Associated key words: ATN, COS, RAD, SIN, TAN
DELETE
DELETE <unit of lines>
DELETE 100-200
COMMAND: Erase
a part of the program defined in <unit of lines>.
It is not necessary to indicate the starting
line or the finishing line to erase the program "since the beginning" or "until
the end".
DELETE -200
...or:
DELETE 50-
...or:
DELETE
... erase all the program.
Associated key words: CHAIN MERGE, RENUM
DERR
DERR
LOAD "xyz.abc"
XYZ .ABC not found
Ready
PRINT DERR
146
FUNCTION: Bring
back the last ERRor code sent by the Diskette management system.
The value of DERR can be used to confirm the detected error. Consult the list of
the Diskette errors for more information.
Associated key words: ERL, ERR, ERROR, ON ERROR GOTO, RESUME
DI
DI
10 CLS:TAG:EVERY 10 GOSUB 90
20 x1=RND*320:x2=RND*320
30 y=200+RND*200:c$=CHR$(RND*255)
40 FOR x=320-x1 TO 320*x2 STEP 4
50 DI
60 MOVE 320,0,1:MOVE x-2,y:MOVE x,y
70 PRINT" ";c$:FRAME
80 EI:NEXT:GOTO 20
90 MOVE 320,0:DRAW x+8,y-16,1:RETURN
run
COMMAND: Desactivate
an interruption (other that [ESC] until it is reactivated directly by a
command EI or indirectly by one [RETURN] at the end of an interruption subroutine GOSUB.
The entry in an interruption subroutine desactivate automatically the equal or lower priority interruptions.
It is
used when the program must be executed without interruption, for example when
two subroutines are in competition to use the computer resources (graphic
resources in the program above, for example).
Associated key words: AFTER, EI, EVERY, REMAIN
DIM
DIM <list of: <subscripted
variable>
10 CLS
20 DIM friend$(5),phone$(5)
30 FOR n=1 TO 5
40 PRINT "phone number ";n
50 INPUT"input the name ";ami$(n)
60 INPUT"input the phone number ";tel$(n)
70 PRINT
80 NEXT
90 FOR n=1 TO 5
100 PRINT n;friend$(n),phone$(n)
110 NEXT
run
COMMAND: Dimension
a table. This command allocates necessary space in the tables and specifies the maximum values of indexes. The BASIC must know the space reserved for a table,
in the absence of specification it takes the default value 10.
A table is
identified by a <subscripted
variable>, namely a variable name accompanied by an indexes unit so
that each "element" of the table has its own index value.
A loop FOR NEXT can
be used to control the table by treating each element of the table.
The
minimal value of an index is zero (it is the first element of the table).
The
tables can be multi-dimensionals and each element is referred by its position.
For example, in a table dimensioned by:
DIM position$(20,20,20)
... an element
of the table will be referred in the following way:
position$(4,5,6)
Associated key words: ERASE
DRAW
DRAW <coordinate
x>,<coordinate y>
[,[<ink>][,<ink mode>]]
10 MODE 0:BORDER 0:PAPER 0:INK 0,0
20 x=RND*640:y=RND*400:z=RND*15
30 DRAW x,y,z
40 GOTO 20
run
COMMAND: Trace
a line on the screen between the cursor graphic position and an absolute
position specified by the <coordinates> x and y. The tracing <ink> can be specified (between
0 and 15)
The
optional <ink mode> determines the ink interaction on the
screen. The four <inks modes> are as follows:
0: Normal
1: XOR
2: AND
3: OR
Associated key words: DRAWR, GRAPHICS PEN, MASK
DRAWR
DRAWR <interval
x>,<interval y>
[,[<ink>][,<ink mode>]]
10 CLS:PRINT"you
go up to the first floor !?"
20 MOVE 0,350:FOR n=1 to 8
30 DRAWR 50,0
40 DRAWR 0,-50
50 NEXT:MOVE 348,0:FILL 3
60 GOTO 60
run
COMMAND: Trace
a line on the screen between the cursor graphic position until the
position specified by the <intervals> x and y.
The
optional <ink mode> determines the ink interaction on the
screen. The four <inks modes> are as follows:
0: Normal
1: XOR
2: AND
3: OR
Associated key words: DRAW, GRAPHICS PEN, MASK
EDIT
EDIT <line number>
EDIT 20
COMMAND: Post
the program line with the cursor, ready for edition.
Associated key words: AUTO, LIST
EI
EI
EI
COMMAND: Enables an interruption desactivated by a command DI.
Interruptions
desactivated by an interruption subroutine are automatically restored by the command RETURN, at the end of the program.
Associated key words: AFTER, DI, EVERY, REMAIN
ELSE
(see IF)
END
END
END
COMMAND: Puts
an end to a program execution and restores the direct mode. A program can
contain an unspecified number of commands END (it is implicit at the end of any
program BASIC AMSTRAD).
Associated key words: STOP
ENT
ENT <envelope number> [,<envelope section>] [,<envelope section>]
[,<envelope section>] [,<envelope section>]
[,<envelope section>]
10 ENT 1,10,-50,10,10,50,10
20 SOUND 1,500,200,10,,1
run
COMMAND: Defines
the tonality ENveloppe specified by the <envelope number> (between 1 and 15) used with the command SOUND. If the <envelope number> is negative (between -1 and -15) the
envelope is repeated until the end of the sound duration fixed by the command SOUND.
Each <envelope section> can contain 2 or 3 parameters.
In
the case of three parameters, those are:
<number of steps> , <step amplitude> , <step duration>.
Parameter 1: <number of steps>
Specify
the <number of steps> of tonality variation inside the <envelope section>. For
example, in a note section during 10 seconds, you can fix 10 steps of 1
second each one. In this case, the <number of steps> will be 10.
The <number of steps> can vary
from 0 to 239.
Parameter 2:
<step amplitude>
Must
be between -128 and +127. The negative steps increase the height of the note,
the positive steps lower it. The minimal sound period is 0.
Parameter 3:
<step duration>
Specify
the duration of a step, by 0.01 second units. It can vary from 0 to 255 (0 has the
value 256), the maximum step duration is thus 2,56 seconds. If you only use two parameters, they are:
<sound period>,<step duration>
Parameter 1: <sound period>
Give
the new period value. (see parameter 2 of the SOUND command)
Parameter 2: <step duration>
Specify
the single step duration in units of 0,01 seconds. Can vary between 0
and 255 (0 having value 256), so 2,56 seconds.
GENERALITIES
The
total steps duration should not exceed the parameter <duration> of command
SOUND, because the sound finishes before to have crossed the totality of the
steps. (the remainder of the tonality envelope is then ignored). In the same
way, if the <duration> of the SOUND command exceeds the total duration of the steps, the sound
continues after having crossed all the steps and stay constant to the final
tonality.
The command ENT can be accompanied by 5 different <enveloppe sections>
(each one constituted with the 2 or 3 parameters above).
The first step of a
tonality envelope is executed immediately.
Each time that a new envelope is
allocated to a determined enveloppe number, the preceding definition is lost.
An
<envelope number> without <envelope section> cancels all the preceding
specifications. .
Associated key words: ENV,
SOUND
ENV
ENV <envelope number> [,<envelope section>] [,<envelope section>]
[,<envelope section>] [,<envelope section>]
[,<envelope section>]
10 ENV 1,15,-1,10,15,,10
20 SOUND 1,200,300,15,1
run
COMMAND:
Defines the ENveloppe
of Volume to the <envelope number> (between 1 and 15),
used with the command SOUND.
It can contain 2 or 3 parameters:
For 3 parameters:
<number of steps> , <step amplitude> , <step duration>.
Parameter 1: <number of steps>
Specify the <number of steps> of volume than a sound must cross
in the <envelope section>. For example, in a 10 seconds section,
you can fix 10 volume steps of one second. In this case, the <number
of steps> is equal to 10.
The <number of steps> can vary
from 0 to 127.
Parameter 2:
<step amplitude>
Can
vary the volume from 0 to 15 compared to the preceding step. The 16 different
volumes are the same ones as those of the SOUND command. The parameter <step amplitude> can however
vary from -128 to +127. The volume come back to 0 after having reached 15.
Parameter 3:
<step duration>
Specify
the duration of a step, by 0.01 second units. Can vary from 0 to 255 (0 has the value
256), that is to say 2,56 seconds.
For 2 parameters:
<hardware envelope>,<envelope period>
Parameter 1: <hardware envelope>
Specify
the value to be sent to the envelope register contained in the sound
generator.
Parameter 2: <envelope period>
Specify
the value to be sent to the envelope period registers contained in the
sound generator.
The use of hardware envelopes supposes the knowledge of the
hardware. If you do not have it, it is better to use a software envelope
integrating a adequate <step duration> parameter.
GENERALITIES
The steps total duration should not exceed the parameter
<duration> of the SOUND command, the sound then finishes
before to have crossed all the volume steps (the remainder of the
envelope is ignored).
In the same way, if the parameter of
<duration> of the SOUND command exceeds the total duration of the steps, the sound
continues after having crossed all the steps of volume and remains constant to the final volume.
The command ENV can contain 5 different <envelope sections>
(constituted of the 2 or 3 parameters above).
The first step of a <tonality envelope> is executed immediately.
Each time that a new envelope is allotted to a
determined envelope number, the preceding definition is lost.
The
specification of an <envelope number> without <envelope section> cancels all
the preceding values.
Associated key words: ENT,
SOUND
EOF
EOF
10 OPENIN"ex1.bas"
20 WHILE NOT EOF
30 LINE INPUT,#9,a$
40 PRINT a$
50 WEND
60 CLOSEIN
run
FUNCTION: To
test the state of an open file. Give -1 (truth) if one is at the end of the file (End Of File) or if no file is open, otherwise gives 0 (false).
Associated key words: OPENIN, CLOSEIN
ERASE
ERASE <list of:<variable name>
DIM a(100),b$(100)
ERASE a,b$
COMMAND: When
a table is not necessary any more, it can be ERASEd to
release the memory for other uses.
Associated key words: DIM
ERL
ERL
10 ON ERROR GOTO 30
20 GOTO 1000
30 PRINT"The error is in line ";ERL
40 END
run
FUNCTION: Give
the line number of the last error met. In the example above, the ERrror of Line 20 is indicated by the function ERL.
Associated key words: DERR, ERR, ERROR, ON ERROR GOTO, RESUME
ERR
ERR
GOTO 500
Line does not exist
Ready
PRINT ERR
8
FUNCTION: Give
the ERRor number last detected. See the list of the error messages. In the example above, the error number 8
corresponds to "Line does not exist".
Associated key words: DERR, ERL, ERROR, ON ERROR GOTO, RESUME
ERROR
ERROR <whole number>
10 IF INKEY$="" THEN 10 ELSE ERROR 17
run
COMMAND: Decide
a consecutive action with a numbered error. See list of the error messages
1 to 32. The action is the same one as that envisaged by the BASIC in
the event of real error, making call with error treatment subroutines,
in the defeating case, and bringing back the ERR and ERL appropriated values.
ERROR accompanied by a <whole number> ranging
between 33 and 255 can be used to create error messages personalized such
as:
10 ON ERROR GOTO 100
20 INPUT"input a character ";a$
30 IF LEN(a$)<>1 THEN ERROR 100
40 GOTO 20
100 IF ERR=100 THEN 110 ELSE 130
110 PRINT CHR$(7)
120 PRINT"only ONE character !"
130 RESUME 20
run
Associated key words: ERL,
ERR, ON ERROR GOTO, RESUME
EVERY
EVERY <chronometer period>[,<chronometer number>] GOSUB <line number>
10 EVERY 50,1 GOSUB 30
20 GOTO 20
30 SOUND 1,20
40 RETURN
run
COMMAND: Call
a BASIC subroutine with regular intervals. The <chronometer period> specifies the interval per
units of 0,02 second. The <chronometer number> (ranging between 0 and 3) specifies which of the four chronometers to use.
The chronometers 3 corresponds to the higher priority and the 0 one to
the lower priority. Each chronometer can be associated to a subroutine.
Associated key words: AFTER,
REMAIN
EXP
EXP
(<numerical expression>)
PRINT EXP(6.876)
968.743625
FUNCTION: Calculate
"e" with the power given by the <numerical expression> where "e" is equal to
approximately 2,7182818, the number whose natural logarithm is 1.
Associated key words: LOG
FILL
FILL <ink>
10 MODE 0
20 FOR n=1 TO 500
30 PRINT "O";
40 NEXT
50 inkpen=2+RND*13
60 FILL inkpen
70 GOTO 50
run
COMMAND: Fills
an arbitrary zone of the graphic screen. The edges of the zone are delimited by
the lines drawn with the ink of the pen in progress or the ink of the bottom
(ranging between 0 and 15). The filling leaves the position of the graphic
cursor. If this one is on an edge, nothing is remli.
Associated key words: GRAPHICS PEN
FIX
FIX
(<numerical expression>)
PRINT FIX(9.99999)
9
FUNCTION: Remove
the decimal part of a <numerical expression> and always rounding by
defect.
Associated key words: CINT,
INT, ROUND
FN
(see DEF FN)
FOR
FOR <simple variable>=<beginning> TO
<end> [STEP <increment>]
10 FOR n=2 TO 8 STEP 2
20 PRINT n;
30 NEXT n
40 PRINT",wich go incremented !"
run
COMMAND: Execute part of the program being between the key words FOR and NEXT, as many time
as one can add the <increment> to the <simple variable> going from the <beginning> to the <end>. If
the <increment> is omitted, it takes value 1 implicitly.
The value of the
<increment> can be negative. In this case the value of the parameter <beginning>
must be higher than thoose the <end> parameter, else the variable cannot be
incremented.
The loops FOR NEXT can be overlapping.
The NEXT variable name assignment is optional because the BASIC automatically determines
the command FOR associated.
Associated key words: NEXT, STEP, TO
FRAME
FRAME
10 MODE 0
20 PRINT "without FRAME"
30 TAG
40 MOVE 0,200
50 FOR x=0 TO 500 STEP 4
60 IF f=1 THEN FRAME
70 MOVE x,200
80 PRINT" ";CHR$(143);
90 NEXT
100 IF f=1 THEN RUN
110 CLS
120 TAGOFF
130 PRINT"with FRAME"
140 f=1
150 GOTO 30
run
COMMAND: Synchronize
the writing of the graphs with video frames. It results a more
harmonious movement from the characters or graphs on the screen without
distortion and flutter.
Associated key words: TAG, TAGOFF
FRE
FRE
(<numerical expression>)
FRE
(<alphanumeric chain>)
PRINT FRE(0)
PRINT FRE(" ")
FUNCTION: Indicate
the space available in memory. The form FRE ("") force the computer to put order before
giving the value of the space available.
NOTE: The BASIC exploits only the block 0 of the memory
Associated key words: HIMEM, MEMORY
GOSUB
GOSUB <line number>
GOSUB 210
COMMAND: Call
a BASIC subroutine with connecting to the indicated line. The end of the
subroutine is marked by the command RETURN.
Associated key words: RETURN
GOTO
GOTO <line number>
GOTO 90
COMMAND: GO TO the indicated line number.
Associated key words: Nothing
GRAPHICS PAPER
GRAPHICS PAPER <ink>
10 MODE 0
20 MASK 15
30 GRAPHICS PAPER 3
40 DRAW 640,0
run
COMMAND: Determinate
the <ink> of the graphic paper. At the lines tracing time, the
paper is not visible. In the example above, the command MASK
allows the tracing of a line with indents and the visualization of the
graphic paper.
The paper ink
(between 0 and 15) is used for the zone "paper" where the characters are
posted, when TAG functions, and acted as default value when the graphics windows are cleared using CLG.
Associated key words: CLG, GRAPHICS PEN, INK, MASK, TAG, TAGOFF
GRAPHICS PEN
GRAPHICS PEN
[<ink>][,<paper mode>]
10 MODE 0
20 GRAPHICS PEN 15
30 MOVE 200,0
40 DRAW 200,400
50 MOVE 639,0
60 FILL 15
run
COMMAND:
Fix the <ink> (between 0 and 15) for the lines
drawing and the points positioning. The <paper mode> can
also be fixed:
0: Opaque mode
1: Transparent mode
(The transparent mode has an influence with the graphic paper of the characters written with TAG
and spaces in dotted lines).
You can omit one of the parameters but not both. If
one of the parameters is omitted, the specified value remains unchanged.
Associated key words: GRAPHICS PAPER, INK, MASK, TAG, TAGOFF
HEX$
HEX$ (<whole number without sign>[,<zone with>])
PRINT HEX$(255,4)
00FF
FUNCTION: Change
a whole number into a HEXadecimal number equivalent in agreement
with the number of hexadecimal digits indicated with the <zone
width> (between 0 and 16). If this number is too large, the final
expression is supplemented with zeros to the left of the number.
If it is too small, it will not be truncated but the number of digits
produced will be equal to the necessary number.
The
<whole number without sign> converted in hexadecimal must produce a
value ranging between -32768 and 65535.
Associated key words: BIN$,
DEC$, STR$, UNT
HIMEM
HIMEM
PRINT HIMEM
42619
FUNCTION: Give
the higher byte address in the Memory used by the BASIC (modifiable by the command MEMORY).
NOTE: The BASIC exploits only the block 0 of the memory.
Associated key words: FRE, MEMORY, SYMBOL, SYMBOL AFTER
IF
IF
(<logical expression>) THEN
<option> [ELSE
<option>]
10 MODE 1
20 x=CINT(RND*100)
30 PRINT"guess a figure (0 a 100)"
40 INPUT n
50 IF n<x THEN PRINT n;" is too small..."
60 IF n>x THEN PRINT n;" is too large..."
70 IF n=x THEN 80 ELSE c=c+1:GOTO 40
80 PRINT"All right! Finded in ";c+1;" times !"
run
COMMAND: Determine
if the <logical expression> is true to executed the first <option>.
If the <logical expression> is false, the <option> placed after ELSE is executed.
In absense of second <option>, the BASIC go to the following line.
The commands
IF THEN can be overlapping but finish at the end of the line. One cannot thus
have declarations independent of IF THEN in the same line. When the result of
the <logical expression> requires a line jump, the command can, for example, to
be formulated:
IF a=1 THEN 100
...or:
IF a=1 GOTO 100
...or:
IF a=1 THEN GOTO 100
Associated key words: ELSE,
GOTO, THEN
INK
INK <ink>,<color number> [,<color number>]
10 MODE 1:PAPER 0:PEN 1
20 FOR p=0 TO 1
30 FOR i=0 TO 26
40 INK p,i
50 LOCATE 16,12:PRINT"INK";p;",";i
60 FOR t=1 TO 400:NEXT t,i,p
70 INK 0,1:INK 1,24:CLS
run
COMMAND: Assign
the colors to a given ink. The parameter <ink> provides the
reference of the ink (by a whole number ranging between 0 and 15), for the corresponding commands PEN or PAPER. The
first parameter <ink number> (whole) gives a color value ranging between 0 and 26. If the
second optional color parameter is specified, the ink go from one color to
the other one, according with the speed defined by the command SPEED INK.
Associated key words: GRAPHICS PAPER, GRAPHICS
PEN, PAPER, PEN, SPEED INK
INKEY
INKEY (<whole number>)
10 IF INKEY(55)<>32 THEN 10
20 PRINT"you have pressed the [SHIFT] and V keys"
30 CLEAR INPUT
run
FUNCTION: Question
the keyboard to indicate the keys wich are activated. The keyboard is analyzed all the
fiftieth ones of second. This function is used to detect the high or low
key position by detection of value -1 (independent of the keys state
[SHIFT] and [CONTROL]).
In the example above, the system detects the
simultaneous actuation of [SHIFT] and V (key number 55) before stopping the
program. The key numbers are given in the diagram located on the body of the computer.
[SHIFT] and [CONTROL] are identified by the following values:
Valeur
[SHIFT]
[CONTROL]
touche spécifiée
-1
INDIFFERENT
INDIFFERENT HIGH
0
HIGH
HIGH
LOW
32
LOW
HIGH
LOW
128
HIGH
LOW LOW
160
LOW
LOW
LOW
Associated key words: CLEAR INPUT, INKEY$, JOY
INKEY$
INKEY$
10 CLS
20 PRINT"choose YES or NO (Y/N)"
30 a$=INKEY$
40 IF a$="" THEN 30
50 IF a$="y" OR a$="Y" THEN 80
60 IF a$="n" OR a$="N" THEN 90
70 GOTO 30
80 PRINT"You have choose YES":END
90 PRINT"You have choose NO"
run
FUNCTION: Question
the keyboard to introduce into the program any character string entered. If there is no
keyboard key activated, INKEY$ returns a null string. In the example above
the lines 40 and 70 command the program to return to the line 30 after keyboard interrogation by the function INKEY$.
Associated key words: CLEAR INPUT, INKEY
INP
INP(<port number>)
PRINT INP(&FF77)
255
FUNCTION: Reads
the value contained in the inputs-outputs port whose address is transmitted
by the argument of this function.
Associated key words: OUT, WAIT
INPUT
INPUT [#<channel number>,][;][<chain> <separator>]
<list of:<variable>
10 MODE 1
20 INPUT "give
me two numbers to multiply (separated by a comma) ";a,b
30 PRINT a;"time";b;"give";a*b
40 GOTO 20
run
COMMAND: Receives
the data coming from the specified channel (channel #0 if no
specification).
A semicolon after INPUT removes the carriage return after the execution of the command.
The <separator> can be a semicolon or a comma. A semicolon placed after
the chain reveals a question mark; a comma removes it.
If an erroneous entry is
carried out, an O for one 0 (zero) for example, the BASIC answers:
?Redo from start
...
or any other error message than you can programmed.
Any keyboard response must end with [RETURN].
Associated key words: LINE INPUT
INSTR
INSTR ( [<starting position>,]<chain containing>,<chain
contained> )
10 CLS:FOR n=1 TO 26
20 alphabet$=alphabet$+CHR$(n+64)
30 NEXT
40 INPUT "input a letter ";a$
50 b$=UPPER$(a$)
60 PRINT b$;" is in position";
70 PRINT INSTR(alphabet$,b$);
80 PRINT"in the alphabet.":PRINT
90 GOTO 40
run
FUNCTION: Seek
in the <chain containing> the <chains contained> and indicates the
position of the first character of the required chain. In its absence, the function
indicates value 0.
The position of the beginning research is optional, it is
specified by the parameter <starting position> wich must be a woole number ranging
between 1 and 255.
Associated key words: Nothing
INT
INT
(<numerical expression>)
PRINT INT(-1.995)
-2
FUNCTION: Rounds to the first lower woole number, removing the fractional part. Identical to FIX
for the positive numbers, it gives 1 less than FIX for the negative numbers
which are not whole.
Associated key words: CINT, FIX, ROUND
JOY
JOY
(<whole number>)
10 PRINT"To stop the program -";
20 PRINT"action the joystick"
30 IF JOY(0)<>0 THEN END
40 GOTO 10
run
FUNCTION: The JOY function reads the joystick state specified by the <woole number> (0 or 1). The result
has significance only with binary values.
Bit
Décimal
0:High
1
1:Low 2
2:Left
4
3:Right 8
4:Fire 2
16
5:Fire 1
32
Thus,
when you press on the "fire" button (Fire 2) of the first joystick by
moving this one towards the left, the function JOY(0) sends a decimal value
equalizes to 20, that is to say 16 (Fire 2) + 4 (Left).
Associated key words: CLEAR INPUT, INKEY
KEY
KEY <logical key number>,<alphanumeric chain>
KEY 11,"border 13:paper 0:pen 1:ink 0,13:ink
1,0:mode 2:list"+CHR$(13)
Press the [ENTER] key
COMMAND: Associate
a chain to the key (KEY) corresponding to the <logical key number> specified. There are 32 logical key numbers (from 0 to 31) occupying the keys 128 to 159. Keys 128 (0 on the digital
keyboard) to 140 ([CONTROL][ENTER] on the digital keyboard) are associated by
defect to the figures 0 to 9, to the decimal point, to [RETURN] and to RUN"[RETURN] - (for
the tape), but can be associated to other chains if necessary. The logical
key numbers 13 to 31 (keys 141 to 159) are assigned to null strings by defect
but can be extended and associated to the keys, using the KEY DEF command.
The <logical key number> provided in the KEY command must ranging between 0 and 31 or 128 and 159 to correspond to the keys physical
numbers of the digital keyboard.
The specified chain should not exceed 120
characters. The going beyond of this limit involves an error (5)
"Improper argument".
Associated key words: KEY DEF
KEY DEF
KEY DEF <key number>,<repetition>[,<normal>[,<with
shift>[,with control]]]
KEY 159,"it is the key TAB"
KEY DEF 68,1,159
Press the [TAB] key
COMMAND: Defines the
logical key value (KEY) DEFines by its physical number, ranging
between 0 and 79 (see the illustration of the key numbers on the body of the computer). The parameters <normal>,
<with shift> and <with control> must contain the values to be sent when the key is
pressed, alone, with [SHIFT] or with [CONTROL]. These parameters are
optional.
The parameter <repetition> makes it possible to activate and
desactivate the auto-repetition function (1 or 0). The speed of this one is
adjustable by the command SPEED KEY.
In the example above, the key 159 (corresponding
to the logical number 31) is initially associated with a chain. The command KEY DEF defines
then the key 68 (key [TAB]) to activate the auto-repetition (1) and send the value
<normal> 159 when the key is pressed.
To return to the normal mode:
KEY DEF 68,0,9
...9
being the normal ASCII value of [TAB]
Associated key words: KEY, SPEED KEY
LEFT$
LEFT$(<alphanumeric chain>,<necessary
length>)
10 CLS
20 a$="AMSTRAD"
30 FOR n=1 TO 7
40 PRINT LEFT$(a$,n)
50 NEXT
run
FUNCTION: Extract
some characters (between 0 and 255) on the left of an <alphanumeric chain>. If the
chain is shorter than the required length, it is entirely used.
Associated key words: MID$, RIGHT$
LEN
LEN
(<alphanumeric chain>)
10 LINE INPUT "enter a sentence ";a$
20 PRINT"the sentence is long of";
30 PRINT LEN(a$);"characters."
run
FUNCTION: Give
the number of characters of the <alphanumeric chain>, spaces
included.
Associated key words: Nothing
LET
LET <variable>=<expression>
LET x=100
COMMAND: A
remainder of the historical BASICS. It's function is to announce variables.
Only useful for compatibility with old programs. In AMSTRAD BASIC, it is
enough to write:
x=100
Associated key words: Nothing
LINE INPUT
LINE INPUT [#<channel number>,][;][<chain>
<separator>] <variable alphanumeric>
10 LINE INPUT "type
a punctuated text line. ";a$
20 CLS
30 PRINT"the variable a$ is equal to :"
40 PRINT a$
run
COMMAND: Receives
a whole line coming from the channel indicated (# 0 in the absence of
specification). The first [;] optional semicolon removes the carriage return which intervenes normally after the command execution.
The <separator> can be
a semicolon or a comma. The semicolon involves the posting of a question mark;
the comma removes it.
The entry of LINE INPUT to the keyboard ends by the
activation of the key [RETURN].
LINE INPUT coming from the channel #9 of the
diskette (or the tape) ends by a carriage return or the assignment of more
than 255 characters to the <variable in chain>.
Associated key words: INPUT
LIST
LIST [<unit of lines>][, #<channel number>]
LIST 100-1000,#1
COMMAND: List
the program on the desired channel. #0 is the screen, #8 is the printer. The
LISTing can be temporarily stopped if you press one time on [ESC] key, and can continue with [SPACE] key. If you press tow times on [ESC], you stop
the listing and come back to the direct mode.
You can omit the first or the last
number of the parameter <unit of lines> to list the program since the beginning, or until the
end.
Examples:
LIST -200
...or:
LIST 50-
...list all the program:
LIST
Associated key words: Nothing
LOAD
LOAD <filename>[,<adress>]
LOAD"fichdisc.xyz",&2AF8
COMMAND: Load
a BASIC program in memory,
and crunch any other one in place. With the adress option, load a
binary file with the address indicated instead the address where
it was at the time of the safeguard.
A protected
program cannot be loaded by the command LOAD because it is immediately
unobtrusive from memory. In this case, use RUN or CHAIN.
Associated key words: CHAIN, CHAIN MERGE, MERGE,
RUN, SAVE
LOCATE
LOCATE [#<channel number>,]<coordinate x>,<coordinate
y>
10 MODE 1
20 FOR n=1 TO 20
30 LOCATE n,n
40 PRINT CHR$(143);"position";
50 PRINT n;",";n
60 NEXT
run
COMMAND: Move
the text cursor towards a new relating position to the window left higher corner. #0 represents the channel by defect.
Associated key words: WINDOW
LOG
LOG (<numerical expression>)
PRINT LOG(9999)
9.21024037
FUNCTION: Calculate
the natural LOGarithm of a <numerical expression> (higher than zero)
Associated key words: EXP, LOG10
LOG10
LOG10 (<numerical expression>)
PRINT LOG10(9999)
3.99995657
FUNCTION: Calculate
the LOGarithm (base 10) of the <numerical expression> (higher than zero)
Associated key words: EXP, LOG
LOWER$
LOWER$
(<alphanumeric chain>)
10 a$="SEE HOW LETTERS HAVE CHANGE "
20 PRINT LOWER$(a$+"IN SMALL LETTERS")
run
FUNCTION: Change
all the capital letters of an alphanumeric chain in small letters. Useful when
one awaits answers made up of a mixture of capital letters and small letters.
Associated key words: UPPER$
MASK
MASK [<whole number>][,<layout
of the first point>]
10 MODE 0:INK 5,21:INK 8,16
20 MOVE -100*RND,400*RND
30 WHILE XPOS<640
40 FOR x=1 TO 8
50 MASK 2^ (8-x)
60 DRAWR 32,0,x,1:MOVER -32,0
70 NEXT
80 MOVER 34,0
90 WEND:GOTO 20
run
COMMAND: Defines
the model to use for the layout of the lines. The binary value of the <whole number> ranging
between 0 and 255 activates (1) or desactivate (0) the bits in each adjacent
group of 8 pixels.
The parameter <layout
of the first point> determines if the first point of the line must
be traced (1) or not (0).
You can put one of the parameters but not both. If you
omit one of them, its specification remains unchanged.
Associated key words: DRAW, DRAWR, GRAPHICS
PAPER, GRAPHICS PEN
MAX
MAX
(<list of:<numerical expression>)
10 n=66
20 PRINT MAX(1,n,3,6,4,3)
run
66
FUNCTION: Give the largest value (MAXimum) of the list.
Associated key words: MIN
MEMORY
MEMORY <adress>
MEMORY &20AA
COMMAND: Defines the
quantity of BASIC memory available by fixing the highest
byte address.
Associated key words: FRE, HIMEM, SYMBOL, SYMBOL
AFTER
MERGE
MERGE <filename>
MERGE "nouversi.bas"
COMMAND: Load
a program from the diskette and additions it with the program already in
memory.
The line numbers of the program in place being found in the new
program are automatically crushed.
The protected files (safeguarded by SAVE, p)
cannot be amalgamated with another program in place.
Associated key words: CHAIN, CHAIN MERGE, LOAD
MID$
MID$ (<alphanumeric chain>,<starting position>[,<length
of under chain>])
10 MODE 1:ZONE 3
20 a$="ENCYCLOPAEDIA"
30 PRINT"Look
at how to spell ";a$
40 PRINT
50 FOR n=1 TO LEN(a$)
60 PRINT MID$(a$,n,1),
70 FOR t=1 TO 700:NEXT t,n
80 PRINT:PRINT
90 INPUT "input a new word ";a$
100 GOTO 50
run
FUNCTION: Return
a new under-chain starting to the alphanumeric chain <starting position>
and containing the number of characters corresponding to the <length of the
under-chain>. If the parameter <length of the under-chain> is not specified, the
function returns the remainder of the <alphanumeric chain> starting from the
<starting position>.
If the <starting position> is greater than the total length, a null strings is
returned. The <starting position> must ranging between 1 and 255, the <length of the
under-chain> between 0 and 255.
Associated key words: LEFT$, RIGHT$
MID$
MID$ (<chain variable>,<insertion position>[,<lenght of the new chain>])
= <new alphanumeric chain>
10 a$="hello"
20 MID$(a$,3,2)="XX"
30 PRINT a$
run
boXXour
COMMAND: Insert
in the specified chain a <new alphanumeric chain> with a number of characters given, to the <insertion position>.
When you use MID$ as a COMMAND, you must use a <variable chain>,
like for example A$, and not with a constant like "hello".
Associated key words: LEFT$, RIGHT$
MIN
MIN (<list of:<numerical expression>)
PRINT MIN(3,6,2.999,8,9,)
2.999
FUNCTION: Give
the smallest value (MINimal) of the <list of:<numerical expression>
Associated key words: MAX
MOD
<argument 1> MOD <argument 2>
PRINT 10 MOD 3
1
PRINT 10 MOD 5
0
OPERATOR: Give
the remainder of the whole division of <argument 1> by <argument 2>
Associated key words: Nothing
MODE
MODE <whole number>
10 m=m+1: IF m>2 THEN m=0
20 MODE m
30 PRINT"This is the mode";m
40 PRINT"Press a key"
50 IF INKEY$="" THEN GOTO 50 ELSE 10
run
COMMAND: Modify
the screen mode (0,1 or 2) and restores on the screen the ink 0, even if the ink
currently used by the paper is different. All windows and cursors are
re-initialized.
Associated key words: WINDOW, ORIGIN
MOVE
MOVE <coordinate x>,<coordinate
y>[,[<ink>][,<ink mode>]]
10 MODE 1:TAG
20 x=RND*800-100:y=RND*430
30 MOVE x,y
40 PRINT"je suis ici";
50 GOTO 20
run
COMMAND: Position
the graphic cursor to the specified absolute point. The optional parameter
<ink> (ranging between 0 and 15) makes it possible to change the graphic
pen color.
The optional parameter <ink mode> determines the ink interaction on
posting in place on the screen. There are 4 ink modes:
0:Normal
1:XOR
2:AND
3:OR
Associated key words: MOVER, ORIGIN, XPOS, YPOS
MOVER
MOVER <interval x>,<interval
y>[,[<ink>][,<ink mode>]]
10 MODE 1:TAG:MOVE 0,16
20 PRINT"the life has its";
30 FOR n=1 TO 10
40 MOVER -45,16
50 PRINT"tops";:NEXT:PRINT" and";
60 FOR n=1 TO 10
70 MOVER -64,-16
80 PRINT"bottoms";:NEXT
run
COMMAND: Position
the graphic cursor in relative co-ordinates (compared to the current
position). The optional parameter
<ink> (ranging between 0 and 15) makes it possible to change the graphic
pen color.
The optional parameter <ink mode> determines the ink interaction on
posting in place on the screen. There are 4 ink modes:
0:Normal
1:XOR
2:AND
3:OR
Associated key words: MOVE, ORIGIN, XPOS, YPOS
NEW
NEW
NEW
COMMAND: Erase
the program and the variables in memory. The definitions of keys are not erased
and the screen stay what it was (MODE, PEN, PAPER, INK etc.).
Associated key words: Nothing
NEXT
NEXT [<list of: <variable>]
10 FOR a=1 TO 3
20 FOR b=0 TO 26
30 MODE 1
40 PEN a:BORDER b
50 PRINT"PEN";a;"BORDER";b
60 FOR c=1 TO 500
70 NEXT c,b,a
run
COMMAND: Mark
the end of a loop started with FOR. The command NEXT can be anonymous
or can referred to the concerned FOR. In the example above, the <list of variable> must appear with opposite direction than commands FOR.
Associated key words: FOR, STEP, TO
NOT
NOT <argument>
IF NOT "alan" < "bernard" THEN PRINT
"true" ELSE PRINT "false"
false
IF NOT "cat" > "dog" THEN PRINT "true"
ELSE PRINT "false"
true
......
PRINT NOT -1
0
PRINT NOT 0
-1
OPERATOR: Execute operations by bit with woole numbers. Opposite each bit of the argument.
Associated key words: AND, OR, XOR
ON BREAK CONT
ON BREAK CONT
10 ON BREAK CONT
20 PRINT"The program will CONTinue if you try"
25 PRINT "to do *Break* with the [ESC] key":PRINT
30 FOR t=1 TO 10000:NEXT:GOTO 20
run
COMMAND: Cancel
the action of key [ESC], preventing the program stop. This command is to be used
with precaution because the program can be so stopped only by complete
rebootstrapping of the computer (you must thus safeguard the program before
launching it).
You can desactivate ON BREAK CONT by ON BREAK
STOP inside a program.
Associated key words: ON BREAK GOSUB, ON BREAK
STOP
ON BREAK GOSUB
ON BREAK GOSUB <line number>
10 ON BREAK GOSUB 40
20 PRINT"the program run"
30 GOTO 20
40 CLS::PRINT"Type twice [ESC],";
50 PRINT"call the subroutine"
60 FOR t=1 TO 20000:NEXT
70 RETURN
run
COMMAND: Ask
the BASIC to go to the subroutine specified by the <line number> when you
push twice on [ESC].
Associated key words: ON BREAK CONT, ON BREAK
STOP, RETURN
ON BREAK STOP
ON BREAK STOP
10 ON BREAK GOSUB 40
20 PRINT"the program run"
30 GOTO 20
40 CLS:PRINT"Type twice on [ESC],";
50 PRINT"call the subroutine"
60 FOR t=1 TO 20000:NEXT
65 ON BREAK STOP
70 RETURN
run
COMMAND:
Desactivate
the commands ON BREAK CONT and ON BREAK GOSUB to allow the
program stop on activation of [ESC] key. In the example above, the command ON BREAK GOSUB functions only once because it is desactivated with line
65 in the subroutine ON BREAK.
Associated key words: ON BREAK CONT, ON BREAK
GOSUB
ON ERROR GOTO
ON ERROR GOTO <line number>
10 ON ERROR GOTO 60
20 CLS:PRINT"If an error is found, ";
30 PRINT"then LIST the program"
40 FOR t=1 TO 4000:NEXT
50 GOTO 100
60 PRINT"Error detected to the line";
70 PRINT ERL:PRINT:LIST
run
COMMAND: Go to the line specified at once that an error is detected.
The command ON
ERROR GOTO 0 desactivate the diversion of the program with error and restores
the normal treatment of the errors by the BASIC.
See also the command RESUME.
Associated key words: DERR, ERL, ERR, ERROR,
RESUME
ON <expression> GOSUB
ON <selector> GOSUB <list of: <line number>
10 PAPER 0:PEN 1:INK 0,1
20 CLS:PRINT" MENU":PRINT
30 PRINT"1 - Change border":PRINT
40 PRINT"2 - Change pen":PRINT
50 PRINT"3 - Change
mode":PRINT
60 INPUT"Your choice";x
70 ON x GOSUB 90,110,130
80 GOTO 20
90 b=b-1:IF b<0 THEN b=26
100 BORDER b:RETURN
110 p=p-1:IF p<2 THEN p=26
120 INK 1,p:RETURN
130 m=m-1:IF m<0 THEN m=2
140 MODE m:RETURN
run
COMMAND: Select
a line of subroutine according to the value of <selector> (whole number ranging between 0
and 255). The order of the values of <selectors> determines the line number to extract
from <list of: <line number>. In the example above:
1 causes the passage to the line 90
2 causes the
passage to the line 110
3 causes the passage to line 130
If this expression is
equal to zero, or if it is higher than the number of lines of the list specified
in the order, the selection does not take place.
Associated key words: RETURN
ON <expression> GOTO
ON <selector> GOTO <list of: <line number>
10 CLS:PRINT" MENU":PRINT
20 PRINT"1 - LIST the program":PRINT
30 PRINT"2 - EDIT to correct":PRINT
40 PRINT"3 - Print the CATalogue":PRINT
50 INPUT"Your choice";n
60 ON n GOTO 80,90,100
80 LIST
90 AUTO
100 CAT
run
COMMAND: Select
a line of subroutine according to the value of <selector> (whole number ranging between 0
and 255). The order of the values of <selectors> determines the line number to extract
from <list of: <line number>. In the example above:
1 causes the passage to the line 80
2 causes the
passage to the line 90
3 causes the passage to line 100
If this expression is
equal to zero, or if it is higher than the number of lines of the list specified
in the order, the selection does not take place.
Associated key words: Nothing
ON SQ GOSUB
ON SQ (<channel number>) GOSUB <line number>
10 ENV 1,15,-1,1
20 ON SQ(1) GOSUB 60
30 MODE 0:ORIGIN 0,0,200,440,100,300
40 FOR x=1 TO 13:FRAME:MOVE 330,200,x
50 FILL x::NEXT:GOTO 40
60 READ s:IF s=0 THEN RESTORE:GOTO 60
70 SOUND 1,s,25,15,1
80 ON SQ(1) GOSUB 60:RETURN
90 DATA 50,60,90,100,35,200,24,500,0
run
COMMAND: Cause
a diversion if there is some place in a sound queue. The <channel number> is a whole
number indicating one of the values:
1: for channel A
2: for channel B
4: for
channel C
Associated key words: RETURN, SOUND, SQ
OPENIN
OPENIN <filename>
10 REM Open and receive the file coming from the diskette
20 OPENIN "NOMFICH":INPUT#9,a,a$
30 CLOSEIN:PRINT"the 2 values are:"
40 PRINT:PRINT a,a$
run
COMMAND: Open
an existing file on the diskette to read there data intended to the
program in memory. The file to be opened must be an ASCII file. This example
functions only if you have created the file according to the command
OPENOUT example.
Associated key words: CLOSEIN, EOF
OPENOUT
OPENOUT <filename>
10 REM Open and output the file on the diskette
20 INPUT"Give me a number";a
30 INPUT"Give me a word";a$
40 OPENOUT "FILENAME"
50 WRITE#9,a,a$
60 CLOSEOUT:PRINT"Data are saved on the diskette"
run
COMMAND: Open
on the diskette an output file usable by the program in memory.
Associated key words: CLOSEOUT
OR
<argument> OR <argument>
IF "alan" < "bernard" OR "dog" > "cat"
THEN PRINT "true" ELSE PRINT "false"
true
IF "bernard" < "alan" OR "cat" > "dog"
THEN PRINT "truei" ELSE PRINT "false"
false
IF "alan" < "bernard" OR "cat" > "dog"
THEN PRINT "true" ELSE PRINT "false"
true
.....
PRINT 1 OR 1
1
PRINT 0 OR 0
0
PRINT 1 OR 0
1
OPERATOR: Execute in machine language booleans operations with woole numbers. Give 1 in all
the cases except if the two arguments are equal to 0.
Associated key words: AND, NOT, XOR
ORIGIN
ORIGIN
<x>,<y>[,<left>,<right>,<top>,<bottom>]
10 MODE 1:BORDER 13:TAG
20 ORIGIN 0,0,100,540,300,100
30 GRAPHICS PAPER 3:CLG
40 FOR x=550 TO -340 STEP -10
50 MOVE x,206
60 PRINT"Here is a graphic window";
70 FRAME:NEXT:GOTO 40
run
COMMAND: Establish
the graphic origin point of the cursor to the co-ordinates
<x>,<y> specified. You can also fix dimensions of the
graphic window by specification of the four last optional parameters.
If the specified co-ordinates for the
graphic window are apart from the screen, the screen borders are then regarded
as the window limits.
Associated key words: CLG
OUT
OUT <port number>,<whole number>
OUT &F8F4,&FF
COMMAND: Send
the value of the <whole number> (between 0 and 255) towards the output port specified by its
address.
To disadvise to the no informed users.
Associated key words: INP, WAIT
PAPER
PAPER[#<channel number>,]<ink>
10 MODE 0:PEN 0:INK 0,13
20 FOR p=1 TO 15
30 PAPER p:CLS
40 LOCATE 7,12:PRINT"PAPER";p
50 FOR t=1 TO 5000:NEXT t,p
60 PAPER 5:CLS
run
COMMAND: Establishes the
fill color for the characters. At the posting time of the
characters on the screen, its matrix (the grid) is filled with the <ink> corresponding
to the paper (PAPER INK) before it posted itself (except in the event of
transparent mode).
If the <channel number> is not specified, the channel #0 is
taken by defect.
The number of colors available depends about the selected
mode.
Associated key words: INK, GRAPHICS PAPER, PEN
PEEK
PEEK (<adress>)
10 MODE 1:ZONE 7
20 WINDOW 1,40,1,2:WINDOW#1,1,40,3,25
30 PRINT"Memory adress"
40 LOCATE 20,1:PRINT"Memory contents"
50 FOR n=0 TO 65535
60 p=PEEK(n)
70 PRINT#1,n,"(&";HEX$(n);")";
80 PRINT#1,TAB(20);p,"(&";HEX$(p);")"
90 NEXT
run
FUNCTION: Reads
the contents of the Z80 memory <adress> which is indicated between brackets.
This address must ranging between &0000 and &FFFF (0 and 65535). PEEK
operates only on the read-write memory (RAM), never on the read-only memory
(ROM), and provides values ranging between &00 and &FF (0 and
255).
Associated key words: POKE
PEN
PEN [#<channel number>,][<ink>][,<paper mode>]
10 MODE 0:PAPER 0:INK 0,13
20 FOR p=1 TO 15
30 PEN p:PRINT SPACE$(47);"PEN";p
40 FOR t=1 TO 5000:NEXT t,p:GOTO 20
run
COMMAND: Select
the <ink> to be used (from 0 to 15) to write on the indicated channel (by defect # 0).
The parameter <ink mode> can be either transparent (1), or opaque (0).
At least one of the
last two parameters must appear. If one of them is omitted, its old value
remains unchanged.
Associated key words: PAPER
PI
PI
PRINT PI
3.14159265
FUNCTION: Provides
the value of the circumference-diameter ratio of a circle.
Associated key words: DEG, RAD
PLOT
PLOT <coordinate x>,<coordinate
y>[,[<ink>][,<ink mode>]]
10 MODE 1:BORDER 0:PAPER 0:PEN 1
20 INK 0,0:INK 1,26:INK 2,13,26:DEG
30 FOR x=1 TO 360:ORIGIN 320,200
40 DRAW 50*COS(x),50*SIN(x),1
50 PLOT 100*COS(x),25*SIN(x):NEXT
60 ORIGIN 0,0:t=TIME+700:WHILE TIME<t
70 PLOT RND*640,RND*400:WEND
80 PLOT RND*640,RND*400,2
90 GOTO 90
run
COMMAND: Post,
in graphic mode, the point of co-ordinates x and y. One defines the <ink> of this
point with a scale from 0 to 15.
The optional parameter <ink mode> determines the
interaction mode between the color used and these of the screen. Here is the
fours possible modes:
0: Normal
1: XOR
2: AND
3: OR
Associated key words: GRAPHICS PEN, PLOTR
PLOTR
PLOTR <interval x>,<interval
y>[,[<ink>][,<ink mode>]]
20 BORDER 0:GRAPHICS PEN 1
30 MODE 1:PLOT 320,200
35 PRINT "utilisez le pave curseur pour dessiner"
40 IF INKEY(0)=0 THEN PLOTR 0,1
50 IF INKEY(1)=0 THEN PLOTR 1,0
60 IF INKEY(2)=0 THEN PLOTR 0,-1
70 IF INKEY(8)=0 THEN PLOTR -1,0
80 IF INKEY(9)=0 THEN 30:REM [COPY]=CLS
90 GOTO 40
run
COMMAND: In
graphic mode, posts on the screen the point of co-ordinates x and y
relating to the cursor position at this time. One defines the
<ink> of this point with a scale from 0 to 15.
The optional parameter <ink mode> determines the
interaction mode between the color used and these of the screen. Here is the
fours possible modes:
0: Normal
1: XOR
2: AND
3: OR
Associated key words: GRAPHICS PEN, PLOT
POKE
POKE <adress>,<whole number>
10 FOR m=49152 TO 65535
20 POKE m,100
30 NEXT
run
COMMAND: Output the value corresponding to the <whole number> (ranging between 0 and 255)
directly in the Z80 RAM memory with indicated <address>.
Command to use with precaution!
Associated key words: PEEK
POS
POS (#<channel number>)
10 MODE 1:BORDER 0:LOCATE 8,2
20 PRINT"use the direction keys left/right "
30 WINDOW#1,1,40,12,12:CURSOR 1,1
40 FOR n=1 TO 19:PRINT CHR$(9);:NEXT
50 IF INKEY(1)<>-1 THEN PRINT
CHR$(9);
60 IF INKEY(8)<>-1 THEN PRINT
CHR$(8);
70 LOCATE #1,2,24
80 PRINT #1,"cursor text,";
90 PRINT #1,"horizontal position=";
100 PRINT #1,POS(#0):GOTO 50
run
FUNCTION: Calculate
the text cursor POSition on the horizontal axis, starting from the
left border of the window. The <channel number> must obligatorily be specified;
it does not take the value #0 by defect.
POS(#8) calculates the horizontal position of the
printer carriage compared to the left margin (coordinate
1).
POS(#9) calculates the logical position of the diskette drive channel ,
i.e. the number of characters transmitted since the last «carriage return».
Associated key words: VPOS, WINDOW
PRINT
PRINT [#<channel number>,][<list of:
<article to print>]
10 a$="small"
20 b$="This is a long characters chain"
30 PRINT a$;a$
40 PRINT a$,a$
50 PRINT
60 PRINT b$;b$
70 PRINT b$,b$
run
COMMAND: Transmits the <list of:
<article to print> or to post on the indicated channel, (# 0
per defect).
The semicolon indicates to the computer that an article must be
immediately printed following the precedent. However, if it is too long to be
on the same line, the computer go to the line anyway.
The comma
indicates that an article must be positioned with the following tabulation.
However, if the print or the posting of the preceding article overflows on
the indicated tabulation, the computer shifts the new article with an additional
tabulation.
PRINT SPC
PRINT TAB
PRINT [#<channel number>,][<list of: <article to print>][;]
[SPC(<whole number>)][<list of: <article to print>]
PRINT [#<channel number>,][<list of: <article to print>][;]
[TAB(<whole number>)][<list of: <article to print>]
10 PRINT"This a SPC instruction"
20 FOR x=6 TO 15
30 PRINT SPC(5) "a";SPC(x);"b"
40 NEXT
50 PRINT"This is the TAB instruction"
60 FOR x=6 TO 15
70 PRINT TAB(5) "a";TAB(x);"b"
80 NEXT
run
SPC
print the number of empty spaces indicated by the <whole number> before printing or posting the
article indicated, provided that this one can be put completely on the line. It is
thus useless to use the semicolon with the command SPC.
TAB print, starting from the
left margin, the number of empty spaces indicated before printing or
posting the indicated article, provided that this one can be put on the line. The
semicolon is thus useless after TAB. If the cursor has already exceeded the required
position, a carriage return is carried out before the tabulation.
PRINT USING
PRINT [#<channel number>][<list of:<article to print>][;]
[USING<format model>][<separator>
<expression>]
10 FOR x=1 TO 10
20 n=100000*(RND^ 5)
30 PRINT"goods";USING"########,##";n
40 NEXT
run
PRINT USING makes it possible to define the print format of
an expression transmitted by the command PRINT. One defines for that the
<format model> with which one wishes to appear the
expression. One uses as <separator> either a comma, or a
semicolon. The <format model> is a character string made up with
the following « field indicators »:
Numericals formats
In a number:
# Each sign # indicate the site of a figure.
Example: ######
. Indicate
the site of the decimal point (equivalent with our comma).
Example:######.##
, (Reserve
a space). This sign, being able to appear only immediately before the decimal
point, indicates that the figures located on the left of the decimal point will
be laid out by groups of three (corresponding to the thousands) separate between
them by a comma
Example:######,.##
Framing
of a number:
££ (Reserve
two spaces). Indicate that the sign £ will appear immediately before the first
digit or the decimal point, i.e. on one of the sites reserved for digits.
Example: ££######,.##
** (Reserve
two spaces). Indicate that all the empty spaces located before the number will
be filled by asterisks.
Example: **######,.##
**£ (Reserve
three spaces). Add the options ** and ££, i.e. the asterisks at the head and the
sign £ preceding immediately the number.
Example: **£######,.##
$$ (Reserve
two spaces). Indicate that the sign $ will appear immediately on the left than the first
digit or decimal point, i.e. on sites reserved to digits.
Example:$$######,.##
**$ (Reserve
three spaces). Add the options ** and $$, i.e. the asterisks at the head and
the sign $ preceding immediately the number.
Example: **$######,.##
+ Indicate
that one wishes to see appearing the sign of the number. This sign will appear
before the number if the + is located at the beginning of the <model of format> and
after the number if it is located to the end.
Example: +####.####
- The
sign - can appear only TO THE END of the mask. It asks the presence of the sign -
after any negative number or any negative exponent. In the absence of this
specification, the sign - appears by defect before the negative number.
Example:####.####-
^^^^ Indicate
that the number must appear with exponent. The signs ^^^^ are placed AFTER the
last site of digits, but BEFORE any final sign + or -
Example: #.####^^^^+
The
maximum length of the <model of format> of a number is 20 characters. The
numbers are rounded with the number of signs indicated.
If a format is too small
to contain the expression:
PRINT USING "####";12345678
...
this one is not truncated, but appears in its entirety, preceded by the sign %
indicating a «erroneous format».
Format
of an alphanumeric chain
10 CLS:a$="abcdefghijklmnopqrst"
20 PRINT"alphanumeric chain= ";a$
30 PRINT:PRINT"With ! = ";
40 PRINT USING "!";a$
50 PRINT:PRINT"With \espaces\ = ";
60 PRINT USING
"\ \";a$
70 PRINT:PRINT"With &
= ";
80 PRINT USING "&";a$
90 GOTO 90
run
! indicate
that only the first character of the chain must appear.
Example: !
\<espaces>\
Indicate
that only the x first characters of the chain must appear, x being equal to the
length of the format (bars included).
Example:\
\
& Indicate that the chain must appear «just as it is».
Example: &
The
<model of format> of a chain cannot exceed 255 characters.
Any <model of format >
can be represented by an alphanumeric variable, as shows it the following
example:
10 a$="FF######,.##"
20 b$="!"
30 PRINT USING a$;12345.6789;
40 PRINT USING b$;"cents"
run
Associated key words: SPC, TAB, USING, ZONE
RAD
RAD
RAD
COMMAND: Establishes the
RADians calculation mode. In BASIC, it is adopted by
defect.
Associated key words: ATN, COS, DEG, SIN, TAN
RANDOMIZE
RANDOMIZE [<numerical expression>]
RANDOMIZE 123.456
PRINT RND
0.258852139
COMMAND: Give
a random value calculated from indicated <numerical expression>. The random numbers generator
provides a pseudo-random sequence in which each number depends about the precedent.
The sequence itself is predetermined. If the initial value is not specified in
the command, it is the user who will enter it in the course of execution.
RANDOMIZE TIME provides a practically unforeseeable sequence.
Associated key words: RND
READ
READ <list of:<variable>
10 FOR n=1 TO 8
20 READ a$,c
30 PRINT a$;" ";:SOUND 1,c:NEXT
40 DATA this are,478,the,426,8,379,notes
50 DATA 358,from,319,the,284,range,253,.,239
run
COMMAND: Reads
data contained in a DATA instruction and assigns them with variables.
READ goes automatically from a data to the following one. The command
RESTORE makes it possible to return to a former DATA command.
Associated key words: DATA, RESTORE
RELEASE
RELEASE <sound channels>
10 SOUND 65,1000,100
20 PRINT"push [R] to release the note"
30 IF INKEY(50)=-1 THEN 30
40 RELEASE 1
run
COMMAND: Release
the sound channels blocked by the command SOUND.
The parameter <sound channels> takes
the following values:
1: Release channel A
2: Release channel B
3: Release channels A et B
4: Release channel C
5: Release channels A et C
6: Release channels B et C
7: Release channels A,B et C
Associated key words: SOUND
REM
REM <text>
10 REM DRIVE
OUT WITH INVADERS IN THE INTERGALACTIC HYPERSPACE
20 REM
COPYRIGHT by AMSOFT
COMMAND: Insert
a Remark in the program. BASIC is unaware about <text> located after REM, even if this one includes a separator of
instructions ":" or any other code.
One can replace REM by an apostrophe ' in
all the cases, EXCEPT inside a DATA instruction.
Associated key words: Nothing
REMAIN
REMAIN (<chronometer number>)
10 AFTER 500,1 GOSUB 40
20 AFTER 100,2 GOSUB 50
30 PRINT"The program run":GOTO 30
40 REM this subroutine will not be called anymore if
45 REM it
was made inoperative in line 70
50 PRINT:PRINT "The chronometer 1 will ";
60 PRINT"be removed by REMAIN."
70 PRINT"there
remained ";REMAIN(1);" unit of time to the chrono 1"
run
FUNCTION: Reads
the remaining time to deduct by the indicated chronometer (from 0 to 3), before
desactivated it.
Associated key words: AFTER, DI, EI, EVERY
RENUM
RENUM [<new line number>][,[<old line number>][,<increment>]]
10 CLS
20 REM this line will become: line 123
30 REM this line will become: line 124
40 REM this line will become: line 125
RENUM 123,20,1
LIST
COMMAND: RENUMber
the lines of a program.
The <old line number> is a parameter indicating the
line of the program to which one wishes to begin classification. In the absence
of this parameter, all the lines of the program will be renumbered. The <new
line number> indicates the new number of the first renumbered line (10 per defect). The <increment> indicates the spacing
wished between two lines (10 per defect). RENUM operates the
necessary readjustments inside the call instructions such as GOTO and GOSUB. On
the other hand, it leaves unchanged the numbers of lines contained in the
character strings appearing in commands KEY, REM, CHAIN and CHAIN MERGE. The
lines numbers must lie between 1 and 65535.
Associated key words: DELETE, LIST
RESTORE
RESTORE [<line number>]
10 READ a$:PRINT a$;" ";
20 RESTORE 50
30 FOR t=1 TO 500:NEXT:GOTO 10
40 DATA data can be reads more
50 DATA and more
run
COMMAND: Bring
back the pointer on the DATA instruction indicated. In the absence of
parameter, the pointer return to the first DATA instruction of the
program.
Associated key words: DATA, READ
RESUME
RESUME [<line number>]
10 ON ERROR GOTO 60
20 FOR x=10 TO 0 STEP-1:PRINT 1/x:NEXT
30 END
40 PRINT"I come here in case of error"
50 END
60 PRINT"error No.";ERR;"to the line";ERL
70 RESUME 40
run
COMMAND: Begins again the
execution of a program after the detection and the treatment of an
error by the command ON ERROR GOTO. If no <line number> is
indicated, the execution of the program begins again with the line
containing the detected error. Remove this parameter in the example
above, then run the program.
70 RESUME
run
Associated key words: DERL, ERL, ERR, ERROR, ON ERROR GOTO, RESUME NEXT
RESUME NEXT
RESUME NEXT
10 ON ERROR GOTO 90
20 PRINT"type [ENTER] each time"
30 INPUT "1";a
40 INPUT "2";a
50 inpot "3";a:REM syntax error
60 INPUT "4";a
70 INPUT "5";a
80 END
90 PRINT"error No.";ERR;"to the line";ERL
100 RESUME NEXT
run
COMMAND: Begin again the
execution of a program after the detection and the treatment of an
error by the command ON ERROR GOTO.
The execution of the program begins again
starting from the line immediately following the erroneous line.
Associated key words: DERR, ERR, ERROR, ON ERROR
GOTO, RESUME
RETURN
RETURN
10 GOSUB 50:PRINT "After the GOSUB":END
50 FOR n=1 TO 20
60 PRINT"subroutine"
70 NEXT:PRINT
80 RETURN
run
COMMAND: Indicate
the end of a subroutine. After the execution of a subroutine, BASIC returns to the instruction following immediately the corresponding GOSUB.
Associated key words: GOSUB
RIGHT$
RIGHT$
(<alphanumeric chain>,<required
length>)
10 MODE 1:a$="computer CPC 6128"
20 FOR n=1 TO 16:LOCATE 41-n,n
30 PRINT RIGHT$(a$,n)
40 NEXT
run
FUNCTION: Extract some characters (<required length> between 0 and 255) on the left of an
<alphanumeric chain>. If the chain is shorter than the <required length>, it is
entirely used.
Associated key words: LEFT$, MID$
RND
RND [
(<numerical expression>)]
10 RANDOMIZE
20 FOR x=1 TO -1 STEP-1
30 PRINT"parameter RND=";x
40 FOR n=1 TO 6
50 PRINT RND(x)
60 NEXT n,x
run
FUNCTION: Provides
the next number of the pseudo random sequence in progress when the <numerical
expression> is positive or when it does not appear in the command.
When the
<numerical expression> is null, RND returns the last generated number.
A negative
value of the <numerical expression> launches a new random sequence, whose RND
provides the first element.
Associated key words: RANDOMIZE
ROUND
ROUND
(<numerical expression>[,<number of
decimals>])
10 FOR n=4 TO -4 STEP -1
20 PRINT ROUND(1234.5678,n),
30 PRINT "round to";n;"decimals"
40 NEXT
run
FUNCTION: Rounds the
<numerical expression> to the number of figures after the comma or of
powers of ten indicated by the parameter <number of decimals>. If this parameter is
negative, the expression is round to an absolute entirety, followed by a
number of zero equal to its absolute value.
Associated key words: ABS, CINT, FIX, INT
RUN
RUN <alphanumeric chain>
RUN "disc"
COMMAND: Load
and run a program BASIC or a program-object located on the diskette.
Any program present in memory is automatically crushed.
This command makes it
possible to reach directly the protected programs BASIC.
Associated key words: LOAD
RUN
RUN [ <line number>]
RUN 200
COMMAND: Run the program BASIC present in memory, starting with the indicated <line number>
or, failing this, at the beginning of the program. RUN reboot
all variables.
This command can not give access to the protected programs loaded
in memory.
Associated key words: CONT, END, STOP
SAVE
SAVE <filename>[,<type of file>][,<binary parameters>]
SAVE "fichdisc.xyz"
...safeguard the file in not protected BASIC mode.
SAVE "fichdisc.xyz",P
...safeguard the file in protected BASIC mode.
SAVE "fichdisc.xyz",A
...safeguard the file in ASCII mode.
SAVE "fichdisc.xyz",B,8000,3000,8001
...safeguard the file in binary mode. In
our example, the program will be stored in memory starting from address 8000 and
will occupy 3000 bytes. The entrance point address (optional) is
8001.
COMMAND: Safeguard on diskette the program currently being in memory. A
memory zone loaded on diskette is called a Binary file. Here which are
the various Binary parameters:
<starting address>,<file lenght>[,<entrance point>]
It is
possible to safeguard the screen memory in a Binary form file. This
operation, called « emptying of screen », is carried out with the following command:
SAVE "screen", B, &C000, &4000
One obtains his reloading to the screen with the command:
LOAD "screen"
Associated key words: CHAIN, CHAIN MERGE, LOAD, MERGE, RUN
SGN
SGN(<numerical expression>)
10 FOR n=200 TO -200 STEP -20
20 PRINT" SGN give";
30 PRINT SGN(n);"for the value:";n
40 NEXT
run
FUNCTION: Establishes the
SiGN of the <numerical expression>. SGN returns the values:-1 (if the
expression is negative), 0 (if it is null) and 1 (if it is positive).
Associated key words: ABS
SIN
SIN(<numerical expression>)
10 CLS:DEG:ORIGIN 0,200
20 FOR n=0 TO 720
30 y=SIN(n)
40 PLOT n*640/720,198*y:NEXT
50 GOTO 50
run
FUNCTION: Calculate
the SINe of the <numerical expression> indicated.
One can express the argument in
degrees or radians using the functions DEG and RAD.
Associated key words: ATN, COS, DEG, RAD, TAN
SOUND
SOUND <channel state>,<sound
period>[,<duration>[,<volume>[,<volume
envelope>,[<tonality envelope>[,<noise period>]]]]]
10 FOR z=0 TO 4095
20 SOUND 1,z,1,12
30 NEXT
run
COMMAND: Allows the
sound programming, using the following parameters:
Parameter 1: <channel state>
The
<channel state> must be a whole number ranging between 1 and 255.
The binary conversion of this parameter gives the significance of each bit according to
the table of following correspondence:
Bit 0 (1 in decimal): output the sound
on channel A
Bit 1 (2 in decimal): output the sound on channel B
Bit 2 (4 in decimal): output the sound on channel C
Bit 3 (8 in
decimal): appointment with channel A
Bit 4 (16 in decimal): appointment with channel B
Bit 5 (32 in decimal): appointment with channel C
Bit 6 (64 in
decimal): block a sound channel
Bit 7 (128 in decimal): empty a sound
channel
The <channel state> 68, for example, will have
the following effect:
Output on channel C (4), to the blocked state
(64).
Parameter 2: <sound period>
This
parameter establishes the height of the sound, i.e. the produced «note» (for
example Do, Ré, Mi, Fa, Sol). Each note is defined by a numerical value
representing its <sound period>
Parameter 3: <duration>
This
parameter establishes the length, or «duration», of the sound. A unit
corresponds to a hundredth of second. The sound <duration> takes value 20 by defect, i.e. a fifth of second.
In the event of null <duration> parameter,
the length of the sound will be that of the envelope of volume indicated.
If the
<duration> parameter is negative, the volume envelope will be repeated
during a number of times equal to the absolute value of the parameter.
Parameter 4: <volume>
This
parameter establishes the initial sound volume of a note. It can take a value
between 0 (null volume) and 15 (maximum volume). The computer chooses by defect
value 12.
Parameter 5: <volume envelope>
It
is possible to modulate the volume of a note during its execution using the command
ENV. This command makes it possible to define in advance a maximum of fifteen
different envelopes, coded from 1 to 15. The parameter <volume envelope> of the command
SOUND then makes it possible to select one of these preset envelopes.
See ENV command
Parameter 6: <tonality envelope>
Period variations, therefore height, can be obtained during the
execution of a note via the command ENT. This command enables you to
define in advance a maximum of 15 different envelopes
of tonalities, coded from 1 to 15. The parameter <tonality
envelope> of the command SOUND then makes it possible to select one
of these preset envelopes. If, in the command ENT, you used a negative
number of envelope, the absolute value of this number
will then be taken as parameter of the command SOUND.
See ENT command
Parameter 7: <noise period>
You
have a choice of white noises which can be added or removed from the signal
using the parameter <noise period> (value ranging between 0 and 31).
Associated key words: ENT, ENV,ON SQ GOSUB,
RELEASE, SQ
SPACE$
SPACE$
(<whole number>)
10 MODE 1
20 PRINT"put 9 spaces between you";
30 PRINT SPACE$(9);
40 PRINT"and me!"
run
FUNCTION: Create
a chain of spaces with the indicated length (from 0 to 255)
Associated key words: SPC, STRING$, TAB
SPC
(Voir PRINT SPC)
SPEED INK
SPEED INK <period 1>,<period
2>
10 BORDER 7,18
20 FOR i=30 TO 1 STEP -1
30 SPEED INK i,i
40 FOR t=1 TO 700:NEXT t,i
run
COMMAND: Allows
to establish the period of alternation when an instruction INK
or BORDER prescribed the use of two intermittent colors. The
respective durations of the first and the second color are
indicated in fiftieth seconds by the parameters <period 1> and
<period 2>.
At the time of the choice of the parameters,
think about hypnotic effects risks !!!
Associated key words: BORDER, INK
SPEED KEY
SPEED KEY <initial delay>,<inter-repetitions interval>
10 CLS:FOR K=7 TO 1 STEP -2
20 PRINT"Input your name, and [RETURN]"
30 SPEED KEY k,k
40 LINE INPUT a$:NEXT
50 PRINT"what funny name !"
run
COMMAND: Establishes
the keyboard automatic repetition speed. The parameter <initial delay> fixes the reaction time (measured into fiftieth of seconds) between the
depression of the key and the beginning of the automatic repetition. The
<inter-repetitions interval> establishes the lapse of time separating the
repetitions.
The command SPEED KEY relates to only the keys for which the
automatic repetition exists implicitly or those for which this function was
programmed with the command KEY DEF.
Before defining an automatic repetition with a very short <initial
delay>, it is advisable to program one of the numerical keys in
order to be able to restore the default settings of the function SPEED
KEY (30,2). Here how to proceed:
KEY 0, "SPEED KEY 30,2"+CHR$(13)
To return to the initial state, actuate key 0 of the numeric keypad.
Associated key words: KEY DEF
SPEED WRITE
SPEED WRITE <whole number>
SPEED WRITE 1
COMMAND: Indicate
the transmission speed of the data towards a cassette player, if
necessary. This speed is equal to 2000 bauds (bits per seconds) if the parameter is
equal to 1, that is to say, by defect, 1000 bauds if this one is equal to 0.
At the time of the loading of a file recorded on cassette, the computer
automatically chooses the good reading rate.
SPEED WRITE 0 is the flow ensuring
the best reliability of transfer.
The command WRITE SPEED does not apply to the
diskette drives
Associated key words: OPENOUT, SAVE
SQ
SQ (<channel number>)
10 SOUND 65,100,100
20 PRINT SQ(1)
run
67
FUNCTION: Indicate
the state of the Sound Queue in a given sound channel. The
<channel number> must be a whole numerical expression taking the values:
1: channel A
2: channel B
4: channel C
This
function provides a whole number corresponding to the following significance bits:
Bits 0, 1 et 2 : number of free inputs in the queue
Bits 3, 4 et 5 : appointment state at the beginning of the queue
Bit 6 : the head of the queue is blocked
Bit 7 : the channel is activated
One can note that if Bit 6 is to 1, Bit 7 cannot be it. The same if Bits 3, 4 or
5 are to 1, Bits 6 and 7 cannot be it.
Associated key words: ON SQ GOSUB, SOUND
SQR
SQR
(<numerical expression>)
PRINT SQR(9)
3
FUNCTION: Provides
the SQuare Root of the numerical expression
indicated.
Associated key words: Nothing
STEP
(Voir FOR)
STOP
STOP
10 FOR n=1 TO 30:PRINT n:NEXT
20 STOP
30 FOR n=31 TO 60:PRINT n:NEXT
run
cont
COMMAND: Stops a program, while leaving to the user the possibility to continue it with the command CONT. (for programs development)
Associated key words: CONT, END
STR$
STR$
(<numerical expression>)
10 a=&FF:REM 255 hexadecimal
20 b=&X1111:REM 15 binary
30 c$="$$$"
40 PRINT c$+STR$(a+b)+c$
run
$$$ 270$$$
FUNCTION: Provides
with the form of alphanumeric chain the decimal representation of the <numerical
expression> indicated.
Associated key words: BIN$, DEC$, HEX$, VAL
STRING$
STRING$ (<lenght>,<character>)
PRINT STRING$(40,"$")
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
FUNCTION: Provides
a character string with the length indicated (between 0 and 255) consisted with the
repetition of the same character. The example above can be also written:
PRINT STRING$(40,42)
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
where
the <character> 42 corresponds to the ASCII value of "$". This notation is
thus equivalent to PRINT STRING$(40,CHR$(42)).
Associated key words: SPACE$
SWAP
(Voir WINDOW SWAP)
SYMBOL
SYMBOL <character number>,<list of:<line>
10 MODE 1:SYMBOL AFTER 105
20 line1=255:REM 11111111 in binary
30 line2=129:REM 10000001 in binary
40 line3=189:REM 10111101 in binary
50 line4=153:REM 10011001 in binary
60 line5=153:REM 10011001 in binary
70 line6=189:REM 10111101 in binary
80 line7=129:REM 10000001 in binary
90 line8=255:REM 11111111 in binary
100 PRINT"The line 110 redefined the letter i (105)"
105 PRINT"Type some 'i' and look !"
110 SYMBOL 105,line1,line2,line3,line4,line5,line6,line7,line8
run
COMMAND: Redefines the
form of a character posted to the screen. Each parameter takes a whole
value located between 0 and 255.
In order to be in measurement to allot a place
in memory to a redefined character, the computer must be prepared by the command:
SYMBOL AFTER x
...where x is lower or equal to the character number to redefine.
One
enters then the command SYMBOL, followed immediately by the character number x.
One can
always reveal to the screen the character corresponding to the x value,
even if it is not accessible from the keyboard. One uses for
that the command:
PRINT CHR$(x)
After
SYMBOL x come the eight parameters defining one by one the eight lines constituting the
character, starting from the top. Each parameter takes a value ranging
between 0 and 255. It is the binary representation of the parameter which
defines the corresponding line in the new character.
If, for example, one gives to the first parameter the value 1, the
binary representation of the first line will be then: 00000001. The
point corresponding to the 1 will appear in the character and will
be color defined in the command PEN. On the other hand, the points
corresponding to the 0 will be posted with the color PAPER, i.e. they
will not appear. One can thus note that the character redefined in our
example will comprise a point in the corner higher right. If one allots
to the septs other parameters the values: 3, 7, 15, 31, 63, 0, 0, one
obtain the following binary representation:
parameter (line) 1: 00000001 (1 in decimal)
parameter (line) 2: 00000011 (3 in decimal)
parameter (line) 3: 00000111 (7 in decimal)
parameter (line) 4: 00001111 (15 in decimal)
parameter (line) 5: 00011111 (31 in decimal)
parameter (line) 6: 00111111 (63 in decimal)
parameter (line) 7: 00000000 (0 in decimal)
parameter (line) 8: 00000000 (0 in decimal)
This layout of the parameters transcribed into binary makes it possible to
visualize the form of the new character. One can assign these parameters to the
character number 255, for example, by the command:
SYMBOL 255,1,3,7,15,63,0,0
It
is noticed that it is useless to make appear the last two parameters insofar as
they are null.
SYMBOL 255,1,3,7,15,63
One
can avoid to convert with decimal notation the binary symbols constituting the
"drawing" of the character. It is enough for that to introduce the parameters
directly in binary, without forgetting the prefix &X. In our case:
SYMBOL 255,&X00000001,&X00000011,&X00000111,&X00001111
&X00011111,&X00111111
Here now the command allowing to reveal the character.
PRINT CHR$(255)
If parameters above are assigned with one of the keyboard characters, the
redefined character will appear each time that the corresponding key will be
actuated, just as at each command PRINT relating to it. This new character will be
accepted by the BASIC like the equivalent of the replaced character.
Associated key words: HIMEM, MEMORY, SYMBOL AFTER
SYMBOL AFTER
SYMBOL AFTER <whole number>
10 CLS
20 SYMBOL AFTER 115
30 PRINT"The line 40 redefined the letter s ";
40 SYMBOL 115,0,56,64,64,48,8,8,112
50 PRINT"in s"
60 PRINT"one
returns in a normal state while typing:"
70 PRINT"SYMBOL AFTER 240"
run
COMMAND: Fix
the lower limit of the redefinable characters numbers (from 0 to 255). The
default value of the whole number is 240, one has then 16 redefinable characters (between 240 and 255). When the <whole number> has for value 32, all the characters located
between 32 and 255 are redefinable.The command SYMBOL AFTER 256 interdict thus any
redefinition of character.
The command SYMBOL AFTER restores the default value of all the characters previously
redefined.
The command
SYMBOL AFTER canNOT function if the value of HIMEM were previously modified by
a command MEMORY or by the opening of a file with OPENIN or OPENOUT. The
computer posts in this case the error message «Improper argument», (unless the
preceding state is SYMBOL AFTER 256).
Associated key words: HIMEM, MEMORY, SYMBOL
TAB
(See PRINT TAB)
TAG
TAG [#(<channel number>)]
10 INPUT "input your name";a$:CLS
20 PRINT"What comings and goings ";a$;" !!"
30 TAG
40 x=LEN(a$)*17:y=50+RND*300:MOVE -x,y
50 FOR f=-x TO 640 STEP RND*7+3
60 MOVE f,y:PRINT" ";a$;:FRAME:NEXT
70 FOR b=640 TO -x STEP -RND*7+3
80 MOVE b,y:PRINT a$;" ";:FRAME:NEXT
90 GOTO 40
run
COMMAND: Write
the text specified to the position of the graphic cursor. This command makes it
possible to input text and symbols into a graph and to move them rather pixel by
pixel than character by character. The channel number takes by defect value
0.
The
left beginning of the character strings positions on the graphic cursor (Text At
Graphics). The control
characters not visualized such as change of line or carriage
return will not have any effect if instruction PRINT is finished by
a semicolon; in the contrary case, they will appear in their graphic form.
If
the channel indicator is #0 (by defect), BASIC cancels the command TAG when it come back in direct mode.
Associated key words: TAGOFF
TAGOFF
TAGOFF [#(<channel number>)]
10 MODE 2:TAG:REM text
with graphic coordonnees
20 year=1984:FOR x=1 TO 640 STEP 60
30 MOVE x,400:DRAWR 0,-350
40 year=year+1:PRINT year;:NEXT
50 TAGOFF:REM come back
to the text coordinates
60 LOCATE 28,25:PRINT"annual
figures"
70 GOTO 70
run
COMMAND: Cancel
the command TAG concerning the channel indicated (# 0 per defect). The text is thus
again directed on the text cursor position.
Associated key words: TAG
TAN
TAN
(<numerical expression>)
PRINT TAN(45)
1.61977519
FUNCTION: Calculate
the TANgent of the (<numerical expression>), which must lie between -200000 and
+200000.
One
can express the argument in degrees or radians by the intermediary of the
functions DEG and RAD, respectively.
Associated key words: ATN, COS, DEG, RAD, SIN
TEST
TEST (<coordinate x>,<coordinate
y>)
10 CLS
20 PRINT"You use the pen number:";
30 PRINT TEST(12,394)
40 PRINT"Change mode and pen";
50 PRINT"... and do RUN."
run
FUNCTION: Place
the graphic cursor at the position defined by x and y (in absolute coordinates)
and indicates the value of the parameter <ink> to this place.
Associated key words: MOVE, MOVER, TESTR, XPOS,
YPOS
TESTR
TESTR (<interval x>,<interval y>)
10 MODE 0:FOR x=1 TO 15:LOCATE 1,x
20 PEN x:PRINT STRING$(10,143);:NEXT
30 MOVE 200,400:PEN 1
40 FOR n=1 TO 23:LOCATE 12,n
50 PRINT"pen";TESTR(0,-16):NEXT
run
FUNCTION: Place
the cursor on a position of coordinates x and y compared to its current
position and indicates the value of the parameter <ink> to this place.
Associated key words: MOVE, MOVER, TEST, XPOS,
YPOS
THEN
(See IF)
TIME
TIME
10 CLS:REM clock
20 INPUT "hour";hour
30 INPUT "minute";minute
40 INPUT "second";second
50 CLS:x=INT(TIME/300)
60 WHILE hour<13
70 WHILE minute<60
80 WHILE tic<60
90 tic=(INT(TIME/300)-x)+second
100 LOCATE 1,1
110 PRINT USING "## ";hour;minute;tic
120 WEND
130 tic=0:second=0:minute=minute+1
140 GOTO 50
150 WEND
160 minute=0:hour=hour+1
170 WEND
180 hour=1
run
FUNCTION: Indicate
the time passed since the powering of the computer or the last command RESET (the
transfer times between the computer and the diskette drive are not counted).
At
each second once corresponds the value: TIME/300.
Associated key words: AFTER, EVERY, WEND, WHILE
TO
(See FOR)
TROFF
TRON
TROFF
TRON
10 TROFF:PRINT:PRINT"TROFF"
20 FOR n=1 TO 8
30 PRINT"The program run":NEXT
40 IF f=1 THEN END
50 TRON:PRINT:PRINT"TRON"
60 f=1:GOTO 20
run
COMMAND: Allows
to follow the execution of a program by the posting of each number of
line when the program run. This number is posted between hooks [ ].
This function is obtained with the command TRON. The command TROFF restores the normal execution mode. The command TRON is particularly interesting when one wishes to follow line by line the
course of a program in order to correct an error.
Associated key words: Nothing
UNT
UNT (<adress>)
PRINT UNT(&FF66)
-154
COMMAND: Converts the
argument into a signed whole number ranging between -32768 and 32767.
Associated key words: CINT, FIX, INT, ROUND
UPPER$
UPPER$
(<alphanumeric chain>)
10 CLS:a$="you
were small but now you are tall !"
20 PRINT UPPER$(a$)
run
FUNCTION: Recopy
the <alphanumeric chain> indicated by replacing with capital letters the
alphabetical characters (A to Z) appearing in small letters. This function is
used in particular for the treatment of entries where which are mixed capital
letters and the tiny ones.
Associated key words: LOWER$
USING
(See PRINT USING)
VAL
VAL (<character
string>)
10 CLS:PRINT "I know my tables !"
20 PRINT:PRINT"press a key (1-9)"
30 a$=INKEY$:IF a$="" THEN 30
40 n=VAL(a$):IF n<1 OR n>9 THEN 30
50 FOR x=1 TO 12
60 PRINT n;"X";x;"=";n*x
70 NEXT:GOTO 20
run
FUNCTION: Provides
the numerical VALue of characters (including the negative sign and the
decimal point) of the <alphanumeric chain> indicated.
Value 0 is obtained when the
first character of the chain is not a figure. If the sign «-» appears in first
character or if this one is a decimal point followed by a nonnumerical character,
the error message «Type
mismatch» (typing error) (13) is posted to the
screen.
Associated key words: STR$
VPOS
VPOS ( # <channel number>)
10 MODE 1:BORDER 0:LOCATE 8,2
20 PRINT"use
the keys with arrows (high/low)"
30 WINDOW 39,39,1,25:CURSOR 1,1
40 LOCATE 1,13
50 IF INKEY(0)<>-1 THEN PRINT CHR$(11);
60 IF INKEY(2)<>-1 THEN PRINT
CHR$(10);
70 LOCATE #1,3,24
80 PRINT#1,"text cursor ";
90 PRINT#1,"vertical position =";
100 PRINT#1,VPOS(#0):GOTO 50
run
FUNCTION: Indicate,
on the Vertical axis, the text cursor POSition, starting from the
higher edge of the text window. The channel indicator must obligatorily
appear; it does not take the value #0 by defect.
Associated key words: POS, WINDOW
WAIT
WAIT <I/O port number>,<mask>[,<inversion>]
WAIT &FF34,20,25
COMMAND: Cause
waiting until the input-outputs port indicated transmits a value ranging
between 0 and 255; so that after having operated a XOR (OR exclusive) with the <mask>, then
a AND with the <inversion> parameter, one obtains not a nil result.
The BASIC waits until the condition is checked.
This command is to be used with
precaution.
Associated key words: INP, OUT
WEND
WEND
WEND
COMMAND: Indicate
the end of a program section executed inside a loop WHILE. The BASIC
automatically recognizes the command WHILE with the WEND associated.
Associated key words: TIME, WHILE
WHILE
WHILE <logical expression>
10 CLS:PRINT "10 seconds stop watch":t=TIME
20 WHILE TIME<t*3000
30 SOUND 1,0,100,15
40 WEND:SOUND 129,40,30,15
COMMAND: Repeat
a program section as long as a given condition is checked. The word WHILE
indicates the beginning of the section to be executed and the <logical
expression> defines the condition to check.
Associated key words: TIME, WEND
WIDTH
WIDTH <whole number>
WIDTH 40
COMMAND: Indicate
the maximum number of characters per line for a printout. The BASIC send automatically the carriage returns and the
jumps of line necessary during the impression.
In the absence of a command WIDTH,
the computer adopts by defect value 132. The command WIDTH 255 removes all the
carriage returns and additional jumps of line leaving the printer the care
to generate itself these characters. However, the carriage returns and normal jumps of line from the
instruction PRINT continue to be sent unless the command PRINT is finished by one «;» or a comma.
Associated key words: POS
WINDOW
WINDOW [ # <channel number>,]<left>,<right>,<high>,<low>
10 MODE 0:BORDER 0:REM tv
20 INK 0,0:INK 1,25:INK 2,23:INK 3,21
30 INK 4,17:INK 5,6:INK 6,2:INK 7,26
40 PAPER 0:CLS
50 PAPER 1:WINDOW 2,4,1,18:CLS
60 PAPER 2:WINDOW 5,7,1,18:CLS
70 PAPER 3:WINDOW 8,10,1,18:CLS
80 PAPER 4:WINDOW 11,13,1,18:CLS
90 PAPER 5:WINDOW 14,16,1,18:CLS
100 PAPER 6:WINDOW 17,19,1,18:CLS
110 PAPER 7:WINDOW 2,19,19,25:CLS
120 GOTO 120
run
COMMAND: In
text mode, indicates the dimensions of a channel to the screen display (one speaks in
this case about window). One will take care that the values of the parameters
<left>, <right>, <high> and <low> correspond to the coordinates in the screen MODE used.
The <channel number> will take by defect the value #0
Associated key words: WINDOW SWAP
WINDOW SWAP
WINDOW SWAP <channel number>,<channel number>
10 MODE 1:INK 1,24:INK 2,9:INK 3,6
20 WINDOW 21,40,13,25:PAPER 3
30 WINDOW #1,1,20,1,12:PAPER #1,2
40 CLS:PRINT #1," Fenetre No"
50 CLS #1:PRINT #1," Fenetre No 1"
60 LOCATE 1,6
70 PRINT" Fenetre Rouge (0)";SPC(2)
80 LOCATE #1,1,6
90 PRINT #1," Fenetre Verte (1)"
100 FOR t=1 TO 1000:NEXT
110 WINDOW SWAP 0,1:GOTO 60
run
COMMAND: Inverts
the first window and the second.
Both <channel numbers> must obligatorily appear without being
preceded, in this precise case, by the channel indicator #.
This command makes
it possible to direct the BASIC messages to another channel that this one used by
defect #0.
Associated key words: WINDOW
WRITE