Module

other

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 Height

Properties:
Name Type Description
Height number

screen height, alternative to calling SizeY()

# inner IPX_AVAILABLE

Properties:
Name Type Description
IPX_AVAILABLE boolean

true if networking is available.

# inner JSBOOT_DIR

Properties:
Name Type Description
JSBOOT_DIR string

path of the JSBOOT directory

# inner JSBOOT_ZIP

Properties:
Name Type Description
JSBOOT_ZIP string

path/name of the JSBOOT.ZIP

# inner KEY

keyboard input.

Properties:
Name Type Description
Code *

key definitions.

# inner LFN_SUPPORTED

Properties:
Name Type Description
LFN_SUPPORTED boolean

true if long filenames are supported.

# 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 navigator

Properties:
Name Type Description
navigator.appName String

can be used to detect DOjS

# inner PACKAGE_DIR

Properties:
Name Type Description
PACKAGE_DIR string

path of the JSBOOT packages directory

# 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 SEEK

file seek definition.

Properties:
Name Type Description
SET *

the offset is relative to the start of the file.

CUR *

the offset is relative to the the current position indicator.

END *

the offset is relative to the end-of-file.

# 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 Width

Properties:
Name Type Description
Width number

screen width, alternative to calling SizeX()

# 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.

DELETE *

open ZIP file in delete 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 DirExists(dirname) → {boolean}

check for existence of a directory.

Parameters:
Name Type Description
dirname string

name of directory to check.

true if the directory exists, else false.

boolean

# inner Dump(obj)

print an object as JSON to logfile.

Parameters:
Name Type Description
obj *

the object to print

# inner EnableRemoteDebug()

enable IPX remote debugging output.

# inner FileExists(filename) → {boolean}

check for existence of a file.

Parameters:
Name Type Description
filename string

name of file to check.

true if the file exists, else false.

boolean

# inner FlushLog()

Flushes, closes and re-opens the current logfile. This is useful if you want to read the current logfile contents from a runing program.

# 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 GetLoadedLibraries() → {Array.<string>}

Get a list of loaded native libraries.

a list of loaded libraries.

Array.<string>

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

get available parallel ports.

list of available parallel ports and their addresses.

Array.<number>

# inner GetRandomInt(max)

get a random integer between [0..max[

Parameters:
Name Type Description
max number

max value to return (eclusive).

# 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 LoadLibrary(name)

Load and initialize a native library (DXE). Native libraries must reside in the directory jSH.EXE was started from!

Parameters:
Name Type Description
name string

the base name of the library (e.g. if the library is called "foo.dxe" on disk you need to call LoadLibrary("foo")).

# inner LoadModule()

Alias for LoadLibrary().

See:
  • LoadLibrary()

# 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 are CommonJS modules where all exported symbols must be put into an object called 'exports'. A module may provide an optional version using the VERSION member.

Parameters:
Name Type Description
name string

module file name.

the imported module.

Example
exports.__VERSION__ = 23;        // declare module version
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 SetExitMessage(msg)

set a console message to display at shutdown of DOjS.

Parameters:
Name Type Description
msg string

the message.

# 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 Height

Properties:
Name Type Description
Height number

screen height, alternative to calling SizeY()

# inner IPX_AVAILABLE

Properties:
Name Type Description
IPX_AVAILABLE boolean

true if networking is available.

# inner JSBOOT_DIR

Properties:
Name Type Description
JSBOOT_DIR string

path of the JSBOOT directory

# inner JSBOOT_ZIP

Properties:
Name Type Description
JSBOOT_ZIP string

path/name of the JSBOOT.ZIP

# inner KEY

keyboard input.

Properties:
Name Type Description
Code *

key definitions.

# inner LFN_SUPPORTED

Properties:
Name Type Description
LFN_SUPPORTED boolean

true if long filenames are supported.

# 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 navigator

Properties:
Name Type Description
navigator.appName String

can be used to detect DOjS

# inner PACKAGE_DIR

Properties:
Name Type Description
PACKAGE_DIR string

path of the JSBOOT packages directory

# 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 SEEK

file seek definition.

Properties:
Name Type Description
SET *

the offset is relative to the start of the file.

CUR *

the offset is relative to the the current position indicator.

END *

the offset is relative to the end-of-file.

# 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 Width

Properties:
Name Type Description
Width number

screen width, alternative to calling SizeX()

# 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.

DELETE *

open ZIP file in delete 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 DirExists(dirname) → {boolean}

check for existence of a directory.

Parameters:
Name Type Description
dirname string

name of directory to check.

true if the directory exists, else false.

boolean

# inner Dump(obj)

print an object as JSON to logfile.

Parameters:
Name Type Description
obj *

the object to print

# inner EnableRemoteDebug()

enable IPX remote debugging output.

# inner FileExists(filename) → {boolean}

check for existence of a file.

Parameters:
Name Type Description
filename string

name of file to check.

true if the file exists, else false.

boolean

# inner FlushLog()

Flushes, closes and re-opens the current logfile. This is useful if you want to read the current logfile contents from a runing program.

# 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 GetLoadedLibraries() → {Array.<string>}

Get a list of loaded native libraries.

a list of loaded libraries.

Array.<string>

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

get available parallel ports.

list of available parallel ports and their addresses.

Array.<number>

# inner GetRandomInt(max)

get a random integer between [0..max[

Parameters:
Name Type Description
max number

max value to return (eclusive).

# 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 LoadLibrary(name)

Load and initialize a native library (DXE). Native libraries must reside in the directory jSH.EXE was started from!

Parameters:
Name Type Description
name string

the base name of the library (e.g. if the library is called "foo.dxe" on disk you need to call LoadLibrary("foo")).

# inner LoadModule()

Alias for LoadLibrary().

See:
  • LoadLibrary()

# 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 are CommonJS modules where all exported symbols must be put into an object called 'exports'. A module may provide an optional version using the VERSION member.

Parameters:
Name Type Description
name string

module file name.

the imported module.

Example
exports.__VERSION__ = 23;        // declare module version
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 SetExitMessage(msg)

set a console message to display at shutdown of DOjS.

Parameters:
Name Type Description
msg string

the message.

# 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 Height

Properties:
Name Type Description
Height number

screen height, alternative to calling SizeY()

# inner IPX_AVAILABLE

Properties:
Name Type Description
IPX_AVAILABLE boolean

true if networking is available.

# inner JSBOOT_DIR

Properties:
Name Type Description
JSBOOT_DIR string

path of the JSBOOT directory

# inner JSBOOT_ZIP

Properties:
Name Type Description
JSBOOT_ZIP string

path/name of the JSBOOT.ZIP

# inner KEY

keyboard input.

Properties:
Name Type Description
Code *

key definitions.

# inner LFN_SUPPORTED

Properties:
Name Type Description
LFN_SUPPORTED boolean

true if long filenames are supported.

# 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 navigator

Properties:
Name Type Description
navigator.appName String

can be used to detect DOjS

# inner PACKAGE_DIR

Properties:
Name Type Description
PACKAGE_DIR string

path of the JSBOOT packages directory

# 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 SEEK

file seek definition.

Properties:
Name Type Description
SET *

the offset is relative to the start of the file.

CUR *

the offset is relative to the the current position indicator.

END *

the offset is relative to the end-of-file.

# 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 Width

Properties:
Name Type Description
Width number

screen width, alternative to calling SizeX()

# 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.

DELETE *

open ZIP file in delete 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 DirExists(dirname) → {boolean}

check for existence of a directory.

Parameters:
Name Type Description
dirname string

name of directory to check.

true if the directory exists, else false.

boolean

# inner Dump(obj)

print an object as JSON to logfile.

Parameters:
Name Type Description
obj *

the object to print

# inner EnableRemoteDebug()

enable IPX remote debugging output.

# inner FileExists(filename) → {boolean}

check for existence of a file.

Parameters:
Name Type Description
filename string

name of file to check.

true if the file exists, else false.

boolean

# inner FlushLog()

Flushes, closes and re-opens the current logfile. This is useful if you want to read the current logfile contents from a runing program.

# 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 GetLoadedLibraries() → {Array.<string>}

Get a list of loaded native libraries.

a list of loaded libraries.

Array.<string>

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

get available parallel ports.

list of available parallel ports and their addresses.

Array.<number>

# inner GetRandomInt(max)

get a random integer between [0..max[

Parameters:
Name Type Description
max number

max value to return (eclusive).

# 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 LoadLibrary(name)

Load and initialize a native library (DXE). Native libraries must reside in the directory jSH.EXE was started from!

Parameters:
Name Type Description
name string

the base name of the library (e.g. if the library is called "foo.dxe" on disk you need to call LoadLibrary("foo")).

# inner LoadModule()

Alias for LoadLibrary().

See:
  • LoadLibrary()

# 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 are CommonJS modules where all exported symbols must be put into an object called 'exports'. A module may provide an optional version using the VERSION member.

Parameters:
Name Type Description
name string

module file name.

the imported module.

Example
exports.__VERSION__ = 23;        // declare module version
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 SetExitMessage(msg)

set a console message to display at shutdown of DOjS.

Parameters:
Name Type Description
msg string

the message.

# 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 Height

Properties:
Name Type Description
Height number

screen height, alternative to calling SizeY()

# inner IPX_AVAILABLE

Properties:
Name Type Description
IPX_AVAILABLE boolean

true if networking is available.

# inner JSBOOT_DIR

Properties:
Name Type Description
JSBOOT_DIR string

path of the JSBOOT directory

# inner JSBOOT_ZIP

Properties:
Name Type Description
JSBOOT_ZIP string

path/name of the JSBOOT.ZIP

# inner KEY

keyboard input.

Properties:
Name Type Description
Code *

key definitions.

# inner LFN_SUPPORTED

Properties:
Name Type Description
LFN_SUPPORTED boolean

true if long filenames are supported.

# 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 navigator

Properties:
Name Type Description
navigator.appName String

can be used to detect DOjS

# inner PACKAGE_DIR

Properties:
Name Type Description
PACKAGE_DIR string

path of the JSBOOT packages directory

# 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 SEEK

file seek definition.

Properties:
Name Type Description
SET *

the offset is relative to the start of the file.

CUR *

the offset is relative to the the current position indicator.

END *

the offset is relative to the end-of-file.

# 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 Width

Properties:
Name Type Description
Width number

screen width, alternative to calling SizeX()

# 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.

DELETE *

open ZIP file in delete 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 DirExists(dirname) → {boolean}

check for existence of a directory.

Parameters:
Name Type Description
dirname string

name of directory to check.

true if the directory exists, else false.

boolean

# inner Dump(obj)

print an object as JSON to logfile.

Parameters:
Name Type Description
obj *

the object to print

# inner EnableRemoteDebug()

enable IPX remote debugging output.

# inner FileExists(filename) → {boolean}

check for existence of a file.

Parameters:
Name Type Description
filename string

name of file to check.

true if the file exists, else false.

boolean

# inner FlushLog()

Flushes, closes and re-opens the current logfile. This is useful if you want to read the current logfile contents from a runing program.

# 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 GetLoadedLibraries() → {Array.<string>}

Get a list of loaded native libraries.

a list of loaded libraries.

Array.<string>

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

get available parallel ports.

list of available parallel ports and their addresses.

Array.<number>

# inner GetRandomInt(max)

get a random integer between [0..max[

Parameters:
Name Type Description
max number

max value to return (eclusive).

# 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 LoadLibrary(name)

Load and initialize a native library (DXE). Native libraries must reside in the directory jSH.EXE was started from!

Parameters:
Name Type Description
name string

the base name of the library (e.g. if the library is called "foo.dxe" on disk you need to call LoadLibrary("foo")).

# inner LoadModule()

Alias for LoadLibrary().

See:
  • LoadLibrary()

# 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 are CommonJS modules where all exported symbols must be put into an object called 'exports'. A module may provide an optional version using the VERSION member.

Parameters:
Name Type Description
name string

module file name.

the imported module.

Example
exports.__VERSION__ = 23;        // declare module version
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 SetExitMessage(msg)

set a console message to display at shutdown of DOjS.

Parameters:
Name Type Description
msg string

the message.

# 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