Module

other

Members

# inner ARGS

Properties:
Name Type Description
ARGS Array.<string> the command line arguments including the script name.

# inner DEBUG

Properties:
Name Type Description
DEBUG boolean enable/disable Debug() output.

# inner DOJS_VERSION

Properties:
Name Type Description
DOJS_VERSION number the version

# inner FILE

file mode definition.
Properties:
Name Type Description
READ * open file in read mode.
WRITE * open file in write mode (truncating existing contents)
APPEND * open file in append mode.

# inner IPX_AVAILABLE

Properties:
Name Type Description
IPX_AVAILABLE boolean true if networking is available.

# inner KEY

keyboard input.
Properties:
Name Type Description
Code * key definitions.

# inner MOUSE

event interface.
Properties:
Name Type Description
Mode.NONE * no cursor
Mode.ARROW * arrow cursor
Mode.BUSY * busy cursor
Mode.QUESTION * questionmark cursor
Mode.CURSOR_EDIT * edit cursor
Buttons * mouse button definitions
LEFT *
RIGHT *
MIDDLE *

# inner MOUSE_AVAILABLE

Properties:
Name Type Description
MOUSE_AVAILABLE boolean true if mouse is available.

# inner PARALLEL

parallel port IO register definitions. [*] CONTROL.BIDI must be set to 1 in order to read from DATA. Not supported by all ports!
Properties:
Name Type Description
DATA.BIT0 * Data 0, pin 2 (out/in*)
DATA.BIT1 * Data 1, pin 3 (out/in*)
DATA.BIT2 * Data 2, pin 4 (out/in*)
DATA.BIT3 * Data 3, pin 5 (out/in*)
DATA.BIT4 * Data 4, pin 6 (out/in*)
DATA.BIT5 * Data 5, pin 7 (out/in*)
DATA.BIT6 * Data 6, pin 8 (out/in*)
DATA.BIT7 * Data 7, pin 9 (out/in*)
STATUS.BUSY * pin 11, inverted (in)
STATUS.ACK * pin 10 (in)
STATUS.PAPER_OUT * pin 12 (in)
STATUS.SELECT_IN * pin 13 (in)
STATUS.ERROR * pin 15 (in)
STATUS.TIMEOUT * LPTStatus() only
CONTROL.BIDI * this bit must be set in order to read DATA
CONTROL.SELECT_OUT * pin 17, inverted (out)
CONTROL.RESET * pin 16 (out)
CONTROL.LINEFEED * pin 14, inverted (out)
CONTROL.STROBE * pin 1, inverted (out)

# inner RAW_BLOCKSIZE

Properties:
Name Type Description
RAW_BLOCKSIZE number size of sectors when reading/writing raw disks.

# inner RAW_HDD_FLAG

Properties:
Name Type Description
RAW_HDD_FLAG number index for HDDs when using raw disk functions.

# inner REMOTE_DEBUG

Properties:
Name Type Description
REMOTE_DEBUG boolean enable/disable Debug() sending via IPX.

# inner SOUND

sound input selection.
Properties:
Name Type Description
Input.MIC * use microphone input
Input.LINE * use line input
Input.CD * use CD input
Bits.BITS8 * use 8 bits
Bits.BITS16 * use 16 bits

# inner SOUND_AVAILABLE

Properties:
Name Type Description
SOUND_AVAILABLE boolean true if sound is available.

# inner SYSTEM

System() flags for subsystem shutdown/restart.
Properties:
Name Type Description
MOUSE * de/reinit mouse
SOUND * de/reinit sound
JOYSTICK * de/reinit joystick
KEYBOARD * de/reinit keyboard
TIMER * de/reinit timer

# inner ZIP_DELIM

Properties:
Name Type Description
ZIP_DELIM string delimiter between ZIP filename and entry name.

# inner ZIPFILE

ZIP file mode definition.
Properties:
Name Type Description
READ * open ZIP file in read mode.
WRITE * open ZIP file in write mode (truncating existing contents)
APPEND * open ZIP file in append mode.

Methods

# inner _Debug(str)

Internal debug which does not redirect to IPX if enabled.
Parameters:
Name Type Description
str string the message to print.

# inner BytesToString(data) → {string}

Convert byte array to ASCII string. The string is terminated at the first NULL byte or at array length (whichever comes first).
Parameters:
Name Type Description
data Array.<number> array of numbers.
a string.
string

# inner CharCode(s)

get char code.
Parameters:
Name Type Description
s string a string
the ASCII-code of the first character.

# inner CompareKey(k, s)

compare a keycode with a character.
Parameters:
Name Type Description
k number keycode from an Event
s string a string with one char

# inner Debug(str)

print javascript debug output if DEBUG is true.
Parameters:
Name Type Description
str string the message to print.

# inner Gc(info)

Run garbage collector, print statistics to logfile if 'info==true'.
Parameters:
Name Type Description
info boolean true to print collection stats to logfile.

# inner GetFramerate() → {number}

Current frame rate.
current framerate.
number

# inner GetParallelPorts() → {Array.<number>}

get available parallel ports.
list of available parallel ports and their addresses.
Array.<number>

# inner GetSerialPorts() → {Array.<number>}

get available serial ports.
list of available serial ports and their addresses.
Array.<number>

# inner Include(name)

include a module. The exported functions are copied into global scope.
Parameters:
Name Type Description
name string module file name.
See:
  • Require

# inner Info(str)

Print info message.
Parameters:
Name Type Description
str string the message to print.

# inner InPortByte(port) → {number}

read a byte value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
8-bit value read from port.
number

# inner InPortLong(port) → {number}

read a long value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
32-bit value read from port.
number

# inner InPortWord(port) → {number}

read a word value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
16-bit value read from port.
number

# inner List(dname) → {Array.<string>}

Get directory listing.
Parameters:
Name Type Description
dname string name of directory to list.
Throws an error if listing fails.
array of entry names.
Array.<string>

# inner LPTRawControl(port, bits)

write bits to LPT control register.
Parameters:
Name Type Description
port number port number (0-3).
bits number data to write
See:
  • GetParallelPorts

# inner LPTRawData(port, data) → {number}

read/write data to LPT data register.
Parameters:
Name Type Description
port number port number (0-3).
data number data to write, null to read
See:
  • GetParallelPorts
current LPT value if data was null.
number

# inner LPTRawStatus(port)

read status register of LPT port.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner LPTReset(port)

reset parallel port.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner LPTSend(port, data)

send data to parallel port.
Parameters:
Name Type Description
port number port number (0-3).
data string data to transfer.
See:
  • GetParallelPorts

# inner LPTStatus(port)

read parallel port status.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner MemoryInfo() → {MemInfo}

Get information system memory.
an info object.
MemInfo

# inner MkDir(name)

make a directory.
Parameters:
Name Type Description
name string path/name of the new directory

# inner MouseSetCursorMode(mode)

Change mode of the mouse cursor.
Parameters:
Name Type Description
mode * a mode from MOUSE.

# inner MouseSetLimits(x1, y1, x2, y2)

Limit mouse movement.
Parameters:
Name Type Description
x1 number start x coordinate.
y1 number start y coordinate.
x2 number end x coordinate.
y2 number end y coordinate.

# inner MouseSetSpeed(x, y)

Set mouse speed.
Parameters:
Name Type Description
x number horizontal speed.
y number vertical speed.

# inner MouseShowCursor(b)

Show hide mouse cursor.
Parameters:
Name Type Description
b boolean true or false.

# inner MouseWarp(x, y)

Move mouse cursor.
Parameters:
Name Type Description
x number x coordinate.
y number y coordinate.

# inner MsecTime() → {number}

Get ms timestamp.
ms time.
number

# inner NamedFunction(p, s, fopt)

parse a string into a function. Works like Function() by a source file name can be provided.
Parameters:
Name Type Attributes Description
p string name of the single parameter.
s string the source of the function.
f string <optional>
an optional filename where the source came from.

# inner OutPortByte(port, value)

write a byte value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 8-bit value to write to port.

# inner OutPortLong(port, value)

write a long value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 32-bit value to write to port.

# inner OutPortWord(port, value)

write a word value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 16-bit value to write to port.

# inner POST(val)

Write the given value to io-port 80h to be displayed by a POST card.
Parameters:
Name Type Description
val number value to write to 0x80.

# inner Print(s)

Write data to JSLOG.TXT logfile.
Parameters:
Name Type Description
s string the string to print.

# inner Println(s)

Write data to JSLOG.TXT logfile with a newline.
Parameters:
Name Type Description
s string the string to print.

# inner RandomInt(min, max) → {number}

get random integer between min and max (or between 0 and min if max is not provided).
Parameters:
Name Type Description
min number min
max number max
an integer between min and max.
number

# inner Read(filename) → {string}

Load the contents of a file into a string. Throws exception if loading fails.
Parameters:
Name Type Description
filename string name of file to read.
Throws an error if reading fails.
the contents of the file.
string

# inner ReadZIP(filename, entryname) → {string}

Load the contents of a ZIP file entry into a string. Throws exception if loading fails.
Parameters:
Name Type Description
filename string name of file to read.
entryname string name of entry in the ZIP file to read.
Throws an error if reading fails.
the contents of the file.
string

# inner Rename(from, to)

rename file/directory.
Parameters:
Name Type Description
from string old name
to string new name

# inner Require(name)

import a module. DOjS modules must put all exported symbols into an object called 'exports'.
Parameters:
Name Type Description
name string module file name.
the imported module.
Example
exports.myVar = 0;               // will be exported
exports.myFunc = function() {};  // will also be exported
var localVar;                    // will only be accessible in the module
function localFunction() {};     // will also only be accessible in the module

# inner RequireFile(name, fname)

try a specific filename which can ba a plain file or a ZIP-file entry. Throws an Exception if the file cant be read.
Parameters:
Name Type Description
name string module name.
fname string the file name to try.
the imported module.

# inner RmDir(name)

remove a directory (must be empty).
Parameters:
Name Type Description
name string path/name of the directory.

# inner RmFile(name)

remove a file.
Parameters:
Name Type Description
name string path/name of the file.

# inner SetExitKey(key)

Change the exit key from ESCAPE to any other keycode from KEY}.
Parameters:
Name Type Description
key number

# inner SetFramerate(rate)

Set maximum frame rate. If Loop takes longer than '1/rate' seconds then the framerate will not be reached.
Parameters:
Name Type Description
rate number max frame rate wanted.

# inner Sleep(ms)

Sleep for the given number of ms.
Parameters:
Name Type Description
ms number time to sleep.

# inner StartupInfo()

print startup info with screen details.

# inner Stat(name) → {StatInfo}

Get information about a file / directory.
Parameters:
Name Type Description
name string name of the file to get info for.
Throws an error if stat fails.
an info object.
StatInfo

# inner Stop()

DOjS will exit after the current call to Loop.

# inner StopWatch()

create stop watch for benchmarking

# inner StringToBytes(str) → {Array.<number>}

Convert ASCII string to byte array.
Parameters:
Name Type Description
str string string to convert.
array of numbers.
Array.<number>

# inner System(cmd, flags) → {number}

Run a DOS command.
Parameters:
Name Type Description
cmd string the command to execute with its parameters.
flags SYSTEM flags indicating which subsystems to shutdown (if any) during execution of cmd.
the return code of the command.
number

# inner ZipPrefix(fname) → {string}

prefix a filename with the ZIP file the started script came from. The filename is not modified if the script was not loaded from a ZIP file.
Parameters:
Name Type Description
fname string file name.
a ZIP-filename if the running script was loaded from a ZIP file or the passed filename.
string

Members

# inner ARGS

Properties:
Name Type Description
ARGS Array.<string> the command line arguments including the script name.

# inner DEBUG

Properties:
Name Type Description
DEBUG boolean enable/disable Debug() output.

# inner DOJS_VERSION

Properties:
Name Type Description
DOJS_VERSION number the version

# inner FILE

file mode definition.
Properties:
Name Type Description
READ * open file in read mode.
WRITE * open file in write mode (truncating existing contents)
APPEND * open file in append mode.

# inner IPX_AVAILABLE

Properties:
Name Type Description
IPX_AVAILABLE boolean true if networking is available.

# inner KEY

keyboard input.
Properties:
Name Type Description
Code * key definitions.

# inner MOUSE

event interface.
Properties:
Name Type Description
Mode.NONE * no cursor
Mode.ARROW * arrow cursor
Mode.BUSY * busy cursor
Mode.QUESTION * questionmark cursor
Mode.CURSOR_EDIT * edit cursor
Buttons * mouse button definitions
LEFT *
RIGHT *
MIDDLE *

# inner MOUSE_AVAILABLE

Properties:
Name Type Description
MOUSE_AVAILABLE boolean true if mouse is available.

# inner PARALLEL

parallel port IO register definitions. [*] CONTROL.BIDI must be set to 1 in order to read from DATA. Not supported by all ports!
Properties:
Name Type Description
DATA.BIT0 * Data 0, pin 2 (out/in*)
DATA.BIT1 * Data 1, pin 3 (out/in*)
DATA.BIT2 * Data 2, pin 4 (out/in*)
DATA.BIT3 * Data 3, pin 5 (out/in*)
DATA.BIT4 * Data 4, pin 6 (out/in*)
DATA.BIT5 * Data 5, pin 7 (out/in*)
DATA.BIT6 * Data 6, pin 8 (out/in*)
DATA.BIT7 * Data 7, pin 9 (out/in*)
STATUS.BUSY * pin 11, inverted (in)
STATUS.ACK * pin 10 (in)
STATUS.PAPER_OUT * pin 12 (in)
STATUS.SELECT_IN * pin 13 (in)
STATUS.ERROR * pin 15 (in)
STATUS.TIMEOUT * LPTStatus() only
CONTROL.BIDI * this bit must be set in order to read DATA
CONTROL.SELECT_OUT * pin 17, inverted (out)
CONTROL.RESET * pin 16 (out)
CONTROL.LINEFEED * pin 14, inverted (out)
CONTROL.STROBE * pin 1, inverted (out)

# inner RAW_BLOCKSIZE

Properties:
Name Type Description
RAW_BLOCKSIZE number size of sectors when reading/writing raw disks.

# inner RAW_HDD_FLAG

Properties:
Name Type Description
RAW_HDD_FLAG number index for HDDs when using raw disk functions.

# inner REMOTE_DEBUG

Properties:
Name Type Description
REMOTE_DEBUG boolean enable/disable Debug() sending via IPX.

# inner SOUND

sound input selection.
Properties:
Name Type Description
Input.MIC * use microphone input
Input.LINE * use line input
Input.CD * use CD input
Bits.BITS8 * use 8 bits
Bits.BITS16 * use 16 bits

# inner SOUND_AVAILABLE

Properties:
Name Type Description
SOUND_AVAILABLE boolean true if sound is available.

# inner SYSTEM

System() flags for subsystem shutdown/restart.
Properties:
Name Type Description
MOUSE * de/reinit mouse
SOUND * de/reinit sound
JOYSTICK * de/reinit joystick
KEYBOARD * de/reinit keyboard
TIMER * de/reinit timer

# inner ZIP_DELIM

Properties:
Name Type Description
ZIP_DELIM string delimiter between ZIP filename and entry name.

# inner ZIPFILE

ZIP file mode definition.
Properties:
Name Type Description
READ * open ZIP file in read mode.
WRITE * open ZIP file in write mode (truncating existing contents)
APPEND * open ZIP file in append mode.

Methods

# inner _Debug(str)

Internal debug which does not redirect to IPX if enabled.
Parameters:
Name Type Description
str string the message to print.

# inner BytesToString(data) → {string}

Convert byte array to ASCII string. The string is terminated at the first NULL byte or at array length (whichever comes first).
Parameters:
Name Type Description
data Array.<number> array of numbers.
a string.
string

# inner CharCode(s)

get char code.
Parameters:
Name Type Description
s string a string
the ASCII-code of the first character.

# inner CompareKey(k, s)

compare a keycode with a character.
Parameters:
Name Type Description
k number keycode from an Event
s string a string with one char

# inner Debug(str)

print javascript debug output if DEBUG is true.
Parameters:
Name Type Description
str string the message to print.

# inner Gc(info)

Run garbage collector, print statistics to logfile if 'info==true'.
Parameters:
Name Type Description
info boolean true to print collection stats to logfile.

# inner GetFramerate() → {number}

Current frame rate.
current framerate.
number

# inner GetParallelPorts() → {Array.<number>}

get available parallel ports.
list of available parallel ports and their addresses.
Array.<number>

# inner GetSerialPorts() → {Array.<number>}

get available serial ports.
list of available serial ports and their addresses.
Array.<number>

# inner Include(name)

include a module. The exported functions are copied into global scope.
Parameters:
Name Type Description
name string module file name.
See:
  • Require

# inner Info(str)

Print info message.
Parameters:
Name Type Description
str string the message to print.

# inner InPortByte(port) → {number}

read a byte value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
8-bit value read from port.
number

# inner InPortLong(port) → {number}

read a long value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
32-bit value read from port.
number

# inner InPortWord(port) → {number}

read a word value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
16-bit value read from port.
number

# inner List(dname) → {Array.<string>}

Get directory listing.
Parameters:
Name Type Description
dname string name of directory to list.
Throws an error if listing fails.
array of entry names.
Array.<string>

# inner LPTRawControl(port, bits)

write bits to LPT control register.
Parameters:
Name Type Description
port number port number (0-3).
bits number data to write
See:
  • GetParallelPorts

# inner LPTRawData(port, data) → {number}

read/write data to LPT data register.
Parameters:
Name Type Description
port number port number (0-3).
data number data to write, null to read
See:
  • GetParallelPorts
current LPT value if data was null.
number

# inner LPTRawStatus(port)

read status register of LPT port.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner LPTReset(port)

reset parallel port.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner LPTSend(port, data)

send data to parallel port.
Parameters:
Name Type Description
port number port number (0-3).
data string data to transfer.
See:
  • GetParallelPorts

# inner LPTStatus(port)

read parallel port status.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner MemoryInfo() → {MemInfo}

Get information system memory.
an info object.
MemInfo

# inner MkDir(name)

make a directory.
Parameters:
Name Type Description
name string path/name of the new directory

# inner MouseSetCursorMode(mode)

Change mode of the mouse cursor.
Parameters:
Name Type Description
mode * a mode from MOUSE.

# inner MouseSetLimits(x1, y1, x2, y2)

Limit mouse movement.
Parameters:
Name Type Description
x1 number start x coordinate.
y1 number start y coordinate.
x2 number end x coordinate.
y2 number end y coordinate.

# inner MouseSetSpeed(x, y)

Set mouse speed.
Parameters:
Name Type Description
x number horizontal speed.
y number vertical speed.

# inner MouseShowCursor(b)

Show hide mouse cursor.
Parameters:
Name Type Description
b boolean true or false.

# inner MouseWarp(x, y)

Move mouse cursor.
Parameters:
Name Type Description
x number x coordinate.
y number y coordinate.

# inner MsecTime() → {number}

Get ms timestamp.
ms time.
number

# inner NamedFunction(p, s, fopt)

parse a string into a function. Works like Function() by a source file name can be provided.
Parameters:
Name Type Attributes Description
p string name of the single parameter.
s string the source of the function.
f string <optional>
an optional filename where the source came from.

# inner OutPortByte(port, value)

write a byte value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 8-bit value to write to port.

# inner OutPortLong(port, value)

write a long value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 32-bit value to write to port.

# inner OutPortWord(port, value)

write a word value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 16-bit value to write to port.

# inner POST(val)

Write the given value to io-port 80h to be displayed by a POST card.
Parameters:
Name Type Description
val number value to write to 0x80.

# inner Print(s)

Write data to JSLOG.TXT logfile.
Parameters:
Name Type Description
s string the string to print.

# inner Println(s)

Write data to JSLOG.TXT logfile with a newline.
Parameters:
Name Type Description
s string the string to print.

# inner RandomInt(min, max) → {number}

get random integer between min and max (or between 0 and min if max is not provided).
Parameters:
Name Type Description
min number min
max number max
an integer between min and max.
number

# inner Read(filename) → {string}

Load the contents of a file into a string. Throws exception if loading fails.
Parameters:
Name Type Description
filename string name of file to read.
Throws an error if reading fails.
the contents of the file.
string

# inner ReadZIP(filename, entryname) → {string}

Load the contents of a ZIP file entry into a string. Throws exception if loading fails.
Parameters:
Name Type Description
filename string name of file to read.
entryname string name of entry in the ZIP file to read.
Throws an error if reading fails.
the contents of the file.
string

# inner Rename(from, to)

rename file/directory.
Parameters:
Name Type Description
from string old name
to string new name

# inner Require(name)

import a module. DOjS modules must put all exported symbols into an object called 'exports'.
Parameters:
Name Type Description
name string module file name.
the imported module.
Example
exports.myVar = 0;               // will be exported
exports.myFunc = function() {};  // will also be exported
var localVar;                    // will only be accessible in the module
function localFunction() {};     // will also only be accessible in the module

# inner RequireFile(name, fname)

try a specific filename which can ba a plain file or a ZIP-file entry. Throws an Exception if the file cant be read.
Parameters:
Name Type Description
name string module name.
fname string the file name to try.
the imported module.

# inner RmDir(name)

remove a directory (must be empty).
Parameters:
Name Type Description
name string path/name of the directory.

# inner RmFile(name)

remove a file.
Parameters:
Name Type Description
name string path/name of the file.

# inner SetExitKey(key)

Change the exit key from ESCAPE to any other keycode from KEY}.
Parameters:
Name Type Description
key number

# inner SetFramerate(rate)

Set maximum frame rate. If Loop takes longer than '1/rate' seconds then the framerate will not be reached.
Parameters:
Name Type Description
rate number max frame rate wanted.

# inner Sleep(ms)

Sleep for the given number of ms.
Parameters:
Name Type Description
ms number time to sleep.

# inner StartupInfo()

print startup info with screen details.

# inner Stat(name) → {StatInfo}

Get information about a file / directory.
Parameters:
Name Type Description
name string name of the file to get info for.
Throws an error if stat fails.
an info object.
StatInfo

# inner Stop()

DOjS will exit after the current call to Loop.

# inner StopWatch()

create stop watch for benchmarking

# inner StringToBytes(str) → {Array.<number>}

Convert ASCII string to byte array.
Parameters:
Name Type Description
str string string to convert.
array of numbers.
Array.<number>

# inner System(cmd, flags) → {number}

Run a DOS command.
Parameters:
Name Type Description
cmd string the command to execute with its parameters.
flags SYSTEM flags indicating which subsystems to shutdown (if any) during execution of cmd.
the return code of the command.
number

# inner ZipPrefix(fname) → {string}

prefix a filename with the ZIP file the started script came from. The filename is not modified if the script was not loaded from a ZIP file.
Parameters:
Name Type Description
fname string file name.
a ZIP-filename if the running script was loaded from a ZIP file or the passed filename.
string

Members

# inner ARGS

Properties:
Name Type Description
ARGS Array.<string> the command line arguments including the script name.

# inner DEBUG

Properties:
Name Type Description
DEBUG boolean enable/disable Debug() output.

# inner DOJS_VERSION

Properties:
Name Type Description
DOJS_VERSION number the version

# inner FILE

file mode definition.
Properties:
Name Type Description
READ * open file in read mode.
WRITE * open file in write mode (truncating existing contents)
APPEND * open file in append mode.

# inner IPX_AVAILABLE

Properties:
Name Type Description
IPX_AVAILABLE boolean true if networking is available.

# inner KEY

keyboard input.
Properties:
Name Type Description
Code * key definitions.

# inner MOUSE

event interface.
Properties:
Name Type Description
Mode.NONE * no cursor
Mode.ARROW * arrow cursor
Mode.BUSY * busy cursor
Mode.QUESTION * questionmark cursor
Mode.CURSOR_EDIT * edit cursor
Buttons * mouse button definitions
LEFT *
RIGHT *
MIDDLE *

# inner MOUSE_AVAILABLE

Properties:
Name Type Description
MOUSE_AVAILABLE boolean true if mouse is available.

# inner PARALLEL

parallel port IO register definitions. [*] CONTROL.BIDI must be set to 1 in order to read from DATA. Not supported by all ports!
Properties:
Name Type Description
DATA.BIT0 * Data 0, pin 2 (out/in*)
DATA.BIT1 * Data 1, pin 3 (out/in*)
DATA.BIT2 * Data 2, pin 4 (out/in*)
DATA.BIT3 * Data 3, pin 5 (out/in*)
DATA.BIT4 * Data 4, pin 6 (out/in*)
DATA.BIT5 * Data 5, pin 7 (out/in*)
DATA.BIT6 * Data 6, pin 8 (out/in*)
DATA.BIT7 * Data 7, pin 9 (out/in*)
STATUS.BUSY * pin 11, inverted (in)
STATUS.ACK * pin 10 (in)
STATUS.PAPER_OUT * pin 12 (in)
STATUS.SELECT_IN * pin 13 (in)
STATUS.ERROR * pin 15 (in)
STATUS.TIMEOUT * LPTStatus() only
CONTROL.BIDI * this bit must be set in order to read DATA
CONTROL.SELECT_OUT * pin 17, inverted (out)
CONTROL.RESET * pin 16 (out)
CONTROL.LINEFEED * pin 14, inverted (out)
CONTROL.STROBE * pin 1, inverted (out)

# inner RAW_BLOCKSIZE

Properties:
Name Type Description
RAW_BLOCKSIZE number size of sectors when reading/writing raw disks.

# inner RAW_HDD_FLAG

Properties:
Name Type Description
RAW_HDD_FLAG number index for HDDs when using raw disk functions.

# inner REMOTE_DEBUG

Properties:
Name Type Description
REMOTE_DEBUG boolean enable/disable Debug() sending via IPX.

# inner SOUND

sound input selection.
Properties:
Name Type Description
Input.MIC * use microphone input
Input.LINE * use line input
Input.CD * use CD input
Bits.BITS8 * use 8 bits
Bits.BITS16 * use 16 bits

# inner SOUND_AVAILABLE

Properties:
Name Type Description
SOUND_AVAILABLE boolean true if sound is available.

# inner SYSTEM

System() flags for subsystem shutdown/restart.
Properties:
Name Type Description
MOUSE * de/reinit mouse
SOUND * de/reinit sound
JOYSTICK * de/reinit joystick
KEYBOARD * de/reinit keyboard
TIMER * de/reinit timer

# inner ZIP_DELIM

Properties:
Name Type Description
ZIP_DELIM string delimiter between ZIP filename and entry name.

# inner ZIPFILE

ZIP file mode definition.
Properties:
Name Type Description
READ * open ZIP file in read mode.
WRITE * open ZIP file in write mode (truncating existing contents)
APPEND * open ZIP file in append mode.

Methods

# inner _Debug(str)

Internal debug which does not redirect to IPX if enabled.
Parameters:
Name Type Description
str string the message to print.

# inner BytesToString(data) → {string}

Convert byte array to ASCII string. The string is terminated at the first NULL byte or at array length (whichever comes first).
Parameters:
Name Type Description
data Array.<number> array of numbers.
a string.
string

# inner CharCode(s)

get char code.
Parameters:
Name Type Description
s string a string
the ASCII-code of the first character.

# inner CompareKey(k, s)

compare a keycode with a character.
Parameters:
Name Type Description
k number keycode from an Event
s string a string with one char

# inner Debug(str)

print javascript debug output if DEBUG is true.
Parameters:
Name Type Description
str string the message to print.

# inner Gc(info)

Run garbage collector, print statistics to logfile if 'info==true'.
Parameters:
Name Type Description
info boolean true to print collection stats to logfile.

# inner GetFramerate() → {number}

Current frame rate.
current framerate.
number

# inner GetParallelPorts() → {Array.<number>}

get available parallel ports.
list of available parallel ports and their addresses.
Array.<number>

# inner GetSerialPorts() → {Array.<number>}

get available serial ports.
list of available serial ports and their addresses.
Array.<number>

# inner Include(name)

include a module. The exported functions are copied into global scope.
Parameters:
Name Type Description
name string module file name.
See:
  • Require

# inner Info(str)

Print info message.
Parameters:
Name Type Description
str string the message to print.

# inner InPortByte(port) → {number}

read a byte value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
8-bit value read from port.
number

# inner InPortLong(port) → {number}

read a long value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
32-bit value read from port.
number

# inner InPortWord(port) → {number}

read a word value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
16-bit value read from port.
number

# inner List(dname) → {Array.<string>}

Get directory listing.
Parameters:
Name Type Description
dname string name of directory to list.
Throws an error if listing fails.
array of entry names.
Array.<string>

# inner LPTRawControl(port, bits)

write bits to LPT control register.
Parameters:
Name Type Description
port number port number (0-3).
bits number data to write
See:
  • GetParallelPorts

# inner LPTRawData(port, data) → {number}

read/write data to LPT data register.
Parameters:
Name Type Description
port number port number (0-3).
data number data to write, null to read
See:
  • GetParallelPorts
current LPT value if data was null.
number

# inner LPTRawStatus(port)

read status register of LPT port.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner LPTReset(port)

reset parallel port.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner LPTSend(port, data)

send data to parallel port.
Parameters:
Name Type Description
port number port number (0-3).
data string data to transfer.
See:
  • GetParallelPorts

# inner LPTStatus(port)

read parallel port status.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner MemoryInfo() → {MemInfo}

Get information system memory.
an info object.
MemInfo

# inner MkDir(name)

make a directory.
Parameters:
Name Type Description
name string path/name of the new directory

# inner MouseSetCursorMode(mode)

Change mode of the mouse cursor.
Parameters:
Name Type Description
mode * a mode from MOUSE.

# inner MouseSetLimits(x1, y1, x2, y2)

Limit mouse movement.
Parameters:
Name Type Description
x1 number start x coordinate.
y1 number start y coordinate.
x2 number end x coordinate.
y2 number end y coordinate.

# inner MouseSetSpeed(x, y)

Set mouse speed.
Parameters:
Name Type Description
x number horizontal speed.
y number vertical speed.

# inner MouseShowCursor(b)

Show hide mouse cursor.
Parameters:
Name Type Description
b boolean true or false.

# inner MouseWarp(x, y)

Move mouse cursor.
Parameters:
Name Type Description
x number x coordinate.
y number y coordinate.

# inner MsecTime() → {number}

Get ms timestamp.
ms time.
number

# inner NamedFunction(p, s, fopt)

parse a string into a function. Works like Function() by a source file name can be provided.
Parameters:
Name Type Attributes Description
p string name of the single parameter.
s string the source of the function.
f string <optional>
an optional filename where the source came from.

# inner OutPortByte(port, value)

write a byte value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 8-bit value to write to port.

# inner OutPortLong(port, value)

write a long value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 32-bit value to write to port.

# inner OutPortWord(port, value)

write a word value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 16-bit value to write to port.

# inner POST(val)

Write the given value to io-port 80h to be displayed by a POST card.
Parameters:
Name Type Description
val number value to write to 0x80.

# inner Print(s)

Write data to JSLOG.TXT logfile.
Parameters:
Name Type Description
s string the string to print.

# inner Println(s)

Write data to JSLOG.TXT logfile with a newline.
Parameters:
Name Type Description
s string the string to print.

# inner RandomInt(min, max) → {number}

get random integer between min and max (or between 0 and min if max is not provided).
Parameters:
Name Type Description
min number min
max number max
an integer between min and max.
number

# inner Read(filename) → {string}

Load the contents of a file into a string. Throws exception if loading fails.
Parameters:
Name Type Description
filename string name of file to read.
Throws an error if reading fails.
the contents of the file.
string

# inner ReadZIP(filename, entryname) → {string}

Load the contents of a ZIP file entry into a string. Throws exception if loading fails.
Parameters:
Name Type Description
filename string name of file to read.
entryname string name of entry in the ZIP file to read.
Throws an error if reading fails.
the contents of the file.
string

# inner Rename(from, to)

rename file/directory.
Parameters:
Name Type Description
from string old name
to string new name

# inner Require(name)

import a module. DOjS modules must put all exported symbols into an object called 'exports'.
Parameters:
Name Type Description
name string module file name.
the imported module.
Example
exports.myVar = 0;               // will be exported
exports.myFunc = function() {};  // will also be exported
var localVar;                    // will only be accessible in the module
function localFunction() {};     // will also only be accessible in the module

# inner RequireFile(name, fname)

try a specific filename which can ba a plain file or a ZIP-file entry. Throws an Exception if the file cant be read.
Parameters:
Name Type Description
name string module name.
fname string the file name to try.
the imported module.

# inner RmDir(name)

remove a directory (must be empty).
Parameters:
Name Type Description
name string path/name of the directory.

# inner RmFile(name)

remove a file.
Parameters:
Name Type Description
name string path/name of the file.

# inner SetExitKey(key)

Change the exit key from ESCAPE to any other keycode from KEY}.
Parameters:
Name Type Description
key number

# inner SetFramerate(rate)

Set maximum frame rate. If Loop takes longer than '1/rate' seconds then the framerate will not be reached.
Parameters:
Name Type Description
rate number max frame rate wanted.

# inner Sleep(ms)

Sleep for the given number of ms.
Parameters:
Name Type Description
ms number time to sleep.

# inner StartupInfo()

print startup info with screen details.

# inner Stat(name) → {StatInfo}

Get information about a file / directory.
Parameters:
Name Type Description
name string name of the file to get info for.
Throws an error if stat fails.
an info object.
StatInfo

# inner Stop()

DOjS will exit after the current call to Loop.

# inner StopWatch()

create stop watch for benchmarking

# inner StringToBytes(str) → {Array.<number>}

Convert ASCII string to byte array.
Parameters:
Name Type Description
str string string to convert.
array of numbers.
Array.<number>

# inner System(cmd, flags) → {number}

Run a DOS command.
Parameters:
Name Type Description
cmd string the command to execute with its parameters.
flags SYSTEM flags indicating which subsystems to shutdown (if any) during execution of cmd.
the return code of the command.
number

# inner ZipPrefix(fname) → {string}

prefix a filename with the ZIP file the started script came from. The filename is not modified if the script was not loaded from a ZIP file.
Parameters:
Name Type Description
fname string file name.
a ZIP-filename if the running script was loaded from a ZIP file or the passed filename.
string
Other properties

Members

# inner ARGS

Properties:
Name Type Description
ARGS Array.<string> the command line arguments including the script name.

# inner DEBUG

Properties:
Name Type Description
DEBUG boolean enable/disable Debug() output.

# inner DOJS_VERSION

Properties:
Name Type Description
DOJS_VERSION number the version

# inner FILE

file mode definition.
Properties:
Name Type Description
READ * open file in read mode.
WRITE * open file in write mode (truncating existing contents)
APPEND * open file in append mode.

# inner IPX_AVAILABLE

Properties:
Name Type Description
IPX_AVAILABLE boolean true if networking is available.

# inner KEY

keyboard input.
Properties:
Name Type Description
Code * key definitions.

# inner MOUSE

event interface.
Properties:
Name Type Description
Mode.NONE * no cursor
Mode.ARROW * arrow cursor
Mode.BUSY * busy cursor
Mode.QUESTION * questionmark cursor
Mode.CURSOR_EDIT * edit cursor
Buttons * mouse button definitions
LEFT *
RIGHT *
MIDDLE *

# inner MOUSE_AVAILABLE

Properties:
Name Type Description
MOUSE_AVAILABLE boolean true if mouse is available.

# inner PARALLEL

parallel port IO register definitions. [*] CONTROL.BIDI must be set to 1 in order to read from DATA. Not supported by all ports!
Properties:
Name Type Description
DATA.BIT0 * Data 0, pin 2 (out/in*)
DATA.BIT1 * Data 1, pin 3 (out/in*)
DATA.BIT2 * Data 2, pin 4 (out/in*)
DATA.BIT3 * Data 3, pin 5 (out/in*)
DATA.BIT4 * Data 4, pin 6 (out/in*)
DATA.BIT5 * Data 5, pin 7 (out/in*)
DATA.BIT6 * Data 6, pin 8 (out/in*)
DATA.BIT7 * Data 7, pin 9 (out/in*)
STATUS.BUSY * pin 11, inverted (in)
STATUS.ACK * pin 10 (in)
STATUS.PAPER_OUT * pin 12 (in)
STATUS.SELECT_IN * pin 13 (in)
STATUS.ERROR * pin 15 (in)
STATUS.TIMEOUT * LPTStatus() only
CONTROL.BIDI * this bit must be set in order to read DATA
CONTROL.SELECT_OUT * pin 17, inverted (out)
CONTROL.RESET * pin 16 (out)
CONTROL.LINEFEED * pin 14, inverted (out)
CONTROL.STROBE * pin 1, inverted (out)

# inner RAW_BLOCKSIZE

Properties:
Name Type Description
RAW_BLOCKSIZE number size of sectors when reading/writing raw disks.

# inner RAW_HDD_FLAG

Properties:
Name Type Description
RAW_HDD_FLAG number index for HDDs when using raw disk functions.

# inner REMOTE_DEBUG

Properties:
Name Type Description
REMOTE_DEBUG boolean enable/disable Debug() sending via IPX.

# inner SOUND

sound input selection.
Properties:
Name Type Description
Input.MIC * use microphone input
Input.LINE * use line input
Input.CD * use CD input
Bits.BITS8 * use 8 bits
Bits.BITS16 * use 16 bits

# inner SOUND_AVAILABLE

Properties:
Name Type Description
SOUND_AVAILABLE boolean true if sound is available.

# inner SYSTEM

System() flags for subsystem shutdown/restart.
Properties:
Name Type Description
MOUSE * de/reinit mouse
SOUND * de/reinit sound
JOYSTICK * de/reinit joystick
KEYBOARD * de/reinit keyboard
TIMER * de/reinit timer

# inner ZIP_DELIM

Properties:
Name Type Description
ZIP_DELIM string delimiter between ZIP filename and entry name.

# inner ZIPFILE

ZIP file mode definition.
Properties:
Name Type Description
READ * open ZIP file in read mode.
WRITE * open ZIP file in write mode (truncating existing contents)
APPEND * open ZIP file in append mode.

Methods

# inner _Debug(str)

Internal debug which does not redirect to IPX if enabled.
Parameters:
Name Type Description
str string the message to print.

# inner BytesToString(data) → {string}

Convert byte array to ASCII string. The string is terminated at the first NULL byte or at array length (whichever comes first).
Parameters:
Name Type Description
data Array.<number> array of numbers.
a string.
string

# inner CharCode(s)

get char code.
Parameters:
Name Type Description
s string a string
the ASCII-code of the first character.

# inner CompareKey(k, s)

compare a keycode with a character.
Parameters:
Name Type Description
k number keycode from an Event
s string a string with one char

# inner Debug(str)

print javascript debug output if DEBUG is true.
Parameters:
Name Type Description
str string the message to print.

# inner Gc(info)

Run garbage collector, print statistics to logfile if 'info==true'.
Parameters:
Name Type Description
info boolean true to print collection stats to logfile.

# inner GetFramerate() → {number}

Current frame rate.
current framerate.
number

# inner GetParallelPorts() → {Array.<number>}

get available parallel ports.
list of available parallel ports and their addresses.
Array.<number>

# inner GetSerialPorts() → {Array.<number>}

get available serial ports.
list of available serial ports and their addresses.
Array.<number>

# inner Include(name)

include a module. The exported functions are copied into global scope.
Parameters:
Name Type Description
name string module file name.
See:
  • Require

# inner Info(str)

Print info message.
Parameters:
Name Type Description
str string the message to print.

# inner InPortByte(port) → {number}

read a byte value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
8-bit value read from port.
number

# inner InPortLong(port) → {number}

read a long value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
32-bit value read from port.
number

# inner InPortWord(port) → {number}

read a word value from a hardware io-port.
Parameters:
Name Type Description
port number port address to read from.
16-bit value read from port.
number

# inner List(dname) → {Array.<string>}

Get directory listing.
Parameters:
Name Type Description
dname string name of directory to list.
Throws an error if listing fails.
array of entry names.
Array.<string>

# inner LPTRawControl(port, bits)

write bits to LPT control register.
Parameters:
Name Type Description
port number port number (0-3).
bits number data to write
See:
  • GetParallelPorts

# inner LPTRawData(port, data) → {number}

read/write data to LPT data register.
Parameters:
Name Type Description
port number port number (0-3).
data number data to write, null to read
See:
  • GetParallelPorts
current LPT value if data was null.
number

# inner LPTRawStatus(port)

read status register of LPT port.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner LPTReset(port)

reset parallel port.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner LPTSend(port, data)

send data to parallel port.
Parameters:
Name Type Description
port number port number (0-3).
data string data to transfer.
See:
  • GetParallelPorts

# inner LPTStatus(port)

read parallel port status.
Parameters:
Name Type Description
port number port number (0-3).
See:
  • GetParallelPorts

# inner MemoryInfo() → {MemInfo}

Get information system memory.
an info object.
MemInfo

# inner MkDir(name)

make a directory.
Parameters:
Name Type Description
name string path/name of the new directory

# inner MouseSetCursorMode(mode)

Change mode of the mouse cursor.
Parameters:
Name Type Description
mode * a mode from MOUSE.

# inner MouseSetLimits(x1, y1, x2, y2)

Limit mouse movement.
Parameters:
Name Type Description
x1 number start x coordinate.
y1 number start y coordinate.
x2 number end x coordinate.
y2 number end y coordinate.

# inner MouseSetSpeed(x, y)

Set mouse speed.
Parameters:
Name Type Description
x number horizontal speed.
y number vertical speed.

# inner MouseShowCursor(b)

Show hide mouse cursor.
Parameters:
Name Type Description
b boolean true or false.

# inner MouseWarp(x, y)

Move mouse cursor.
Parameters:
Name Type Description
x number x coordinate.
y number y coordinate.

# inner MsecTime() → {number}

Get ms timestamp.
ms time.
number

# inner NamedFunction(p, s, fopt)

parse a string into a function. Works like Function() by a source file name can be provided.
Parameters:
Name Type Attributes Description
p string name of the single parameter.
s string the source of the function.
f string <optional>
an optional filename where the source came from.

# inner OutPortByte(port, value)

write a byte value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 8-bit value to write to port.

# inner OutPortLong(port, value)

write a long value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 32-bit value to write to port.

# inner OutPortWord(port, value)

write a word value to a hardware io-port.
Parameters:
Name Type Description
port number port address to write to.
value number 16-bit value to write to port.

# inner POST(val)

Write the given value to io-port 80h to be displayed by a POST card.
Parameters:
Name Type Description
val number value to write to 0x80.

# inner Print(s)

Write data to JSLOG.TXT logfile.
Parameters:
Name Type Description
s string the string to print.

# inner Println(s)

Write data to JSLOG.TXT logfile with a newline.
Parameters:
Name Type Description
s string the string to print.

# inner RandomInt(min, max) → {number}

get random integer between min and max (or between 0 and min if max is not provided).
Parameters:
Name Type Description
min number min
max number max
an integer between min and max.
number

# inner Read(filename) → {string}

Load the contents of a file into a string. Throws exception if loading fails.
Parameters:
Name Type Description
filename string name of file to read.
Throws an error if reading fails.
the contents of the file.
string

# inner ReadZIP(filename, entryname) → {string}

Load the contents of a ZIP file entry into a string. Throws exception if loading fails.
Parameters:
Name Type Description
filename string name of file to read.
entryname string name of entry in the ZIP file to read.
Throws an error if reading fails.
the contents of the file.
string

# inner Rename(from, to)

rename file/directory.
Parameters:
Name Type Description
from string old name
to string new name

# inner Require(name)

import a module. DOjS modules must put all exported symbols into an object called 'exports'.
Parameters:
Name Type Description
name string module file name.
the imported module.
Example
exports.myVar = 0;               // will be exported
exports.myFunc = function() {};  // will also be exported
var localVar;                    // will only be accessible in the module
function localFunction() {};     // will also only be accessible in the module

# inner RequireFile(name, fname)

try a specific filename which can ba a plain file or a ZIP-file entry. Throws an Exception if the file cant be read.
Parameters:
Name Type Description
name string module name.
fname string the file name to try.
the imported module.

# inner RmDir(name)

remove a directory (must be empty).
Parameters:
Name Type Description
name string path/name of the directory.

# inner RmFile(name)

remove a file.
Parameters:
Name Type Description
name string path/name of the file.

# inner SetExitKey(key)

Change the exit key from ESCAPE to any other keycode from KEY}.
Parameters:
Name Type Description
key number

# inner SetFramerate(rate)

Set maximum frame rate. If Loop takes longer than '1/rate' seconds then the framerate will not be reached.
Parameters:
Name Type Description
rate number max frame rate wanted.

# inner Sleep(ms)

Sleep for the given number of ms.
Parameters:
Name Type Description
ms number time to sleep.

# inner StartupInfo()

print startup info with screen details.

# inner Stat(name) → {StatInfo}

Get information about a file / directory.
Parameters:
Name Type Description
name string name of the file to get info for.
Throws an error if stat fails.
an info object.
StatInfo

# inner Stop()

DOjS will exit after the current call to Loop.

# inner StopWatch()

create stop watch for benchmarking

# inner StringToBytes(str) → {Array.<number>}

Convert ASCII string to byte array.
Parameters:
Name Type Description
str string string to convert.
array of numbers.
Array.<number>

# inner System(cmd, flags) → {number}

Run a DOS command.
Parameters:
Name Type Description
cmd string the command to execute with its parameters.
flags SYSTEM flags indicating which subsystems to shutdown (if any) during execution of cmd.
the return code of the command.
number

# inner ZipPrefix(fname) → {string}

prefix a filename with the ZIP file the started script came from. The filename is not modified if the script was not loaded from a ZIP file.
Parameters:
Name Type Description
fname string file name.
a ZIP-filename if the running script was loaded from a ZIP file or the passed filename.
string