# OPEN

Compatible with:
DOS Maximite CMM MM150 MM170 MM+ MMX Picromite ArmiteL4 Armite F4 ArmiteH7 Picomite CMM2

Syntax:
OPEN fname$ FOR mode AS [#]fnbr
OPEN comspec$ AS [#]fnbr
OPEN comspec$ AS GPS [,tz_offset] [,monitor]

Description:

OPEN fname$ FOR mode AS [#]fnbr
Opens a file for reading or writing. ‘fname’ is the filename with an optional extension separated by a dot (.). Long file names with upper and lower case characters are supported. A directory path can be specified with the forward or backwards slash as a directory separator. The parent of the current directory can be specified by using a directory name of .. (two dots) and the current directory with . (a single dot). For example OPEN "../dir1/dir2/filename.txt" FOR INPUT AS #1 ‘mode’ is INPUT, OUTPUT, APPEND or RANDOM. INPUT will open the file for reading and throw an error if the file does not Colour Maximite 2 User Manual Page 76 exist. OUTPUT will open the file for writing and will automatically overwrite any existing file with the same name. APPEND will also open the file for writing but it will not overwrite an existing file; instead any writes will be appended to the end of the file. If there is no existing file the APPEND mode will act the same as the OUTPUT mode (i.e. the file is created then opened for writing). RANDOM will open the file for both read and write and will allow random access using the SEEK command. When opened the read/write pointer is positioned at the end of the file. ‘fnbr’ is the file number (1 to 10). The # is optional. Up to 10 files can be open simultaneously. The INPUT, LINE INPUT, PRINT, WRITE and CLOSE commands as well as the EOF() and INPUT$() functions all use ‘fnbr’ to identify the file being operated on. See also ON ERROR and MM.ERRNO for error handling.

OPEN comspec$ AS [#]fnbr
Will open a serial communications port for reading and writing. Two ports are available (COM1: and COM2:) and both can be open simultaneously.
If OPTION CONSOLE SCREEN is used then the console serial port is available as COM3:
Using 'fnbr' the port can be written to and read from using any command or function that uses a file number.
'comspec$' is the communication specification and is a string (it can be a string variable) specifying the serial port to be opened and optional parameters.
The default is 9600 baud, 8 data bits, no parity and one stop bit.
It has the form "COMn: baud, buf, int, int-trigger, (DEN or DEP), 7BIT, (ODD or EVEN), INV, OC, S2"
Where:
'n' is the serial port number for either COM1:, COM2 or COM3 ...
'baud' is the baud rate. This can be any value between 1200 (the minimum) and 1000000 (1MHz). Default is 9600.
'buf' is the receive buffer size in bytes (default size is 256). The transmit buffer is fixed at 256 bytes.
'int' is a user defined subroutine which will be called when the serial port has received some data. The default is no interrupt.
'int-trigger' sets the trigger condition for calling the interrupt subroutine.
If it is a normal number the interrupt subroutine will be called when this number of characters has arrived in the receive queue.
All parameters except the serial port name (COMn:) are optional. If any one parameter is left out then all the following parameters must also be left out and the defaults will be used.
These options can be added to the end of 'comspec$'
'INV' specifies that the transmit and receive polarity is inverted.
'OC' will force the transmit pin (and DE on COM1:) to be open collector. The default is normal (0 to 3.3V) output.
'S2' specifies that two stop bits will be sent following each character transmitted.
'7BIT' will specify that 7 bit transmit and receive is to be used.
'ODD' will specify that an odd parity bit will be appended (8 bits will be transmitted if 7BIT is specified, otherwise 9)
'EVEN' will specify that an even parity bit will be appended (8 bits will be transmitted if 7BIT is specified, otherwise 9)
'DEP' will enable RS485 mode with a positive output on the COM1-DE pin
'DEN' will enable RS485 mode with a negative output on the COM1-DE pin

OPEN comspec$ AS GPS [,tz_offset] [,monitor] (CMM2 and ArmiteH7 only)
Will open a serial communications port for reading from a GPS receiver. See the GPS function for details.
The sentences interpreted are GPRMC, GNRMC, GPCGA and GNCGA.
The timezone_offset parameter is used to convert UTC as received from the GPS to the local timezone.
If omitted the timezone will default to UTC. The timezone_offset can be a any number between -12 and 14 allowing the time to be set correctly even for the Chatham Islands in New Zealand (UTC +12:45).
If the monitor parameter is set to 1 then all GPS input is directed to the console.
This can be stopped by closing the GPS channel.

Last edited: 15 December, 2020