API Call               Description
--------               -----------

01h - FFh              Output character to STDOUT

00h 00h                Output NULL character to STDOUT
                       
00h 01h 00h xxh        Data output functions
                       
            00h xxh    Print xxh as decimal 0 - 255
            02h xxh    Print xxh as hex 00h - FFh
            03h xxh    Print xxh as hex 00h - ffh
            04h xxh  x Print xxh as octal 000o - 377o 
                       

00h 01h 01h xxh        Character functions (return 0 if true)

            00h xxh  x IsCtrl, is xxh a control character?
            01h xxh  x IsAlpha, is xxh an alphabetic character?
            02h xxh  x IsDigit, is xxh a digit?
            02h xxh  x IsXDigit, is xxh a hexadecimal digit?
            03h xxh  x IsAlNum, is xxh alphanumeric?
            04h xxh  x IsUpper, is xxh upper case alpha?
            05h xxh  x IsLower, is xxh lower case alpha?
            06h xxh  x IsSymbol, is xxh a symbol?
            07h xxh  x IsWhitepace, is xxh a TAB, Space, CR or LF.
            08h xxh  x ToUpper, convert aplha to upper case
            09h xxh  x ToLower, convert aplha to lower case
            ??h xxh  x IsGraph, is xxh any printing character except space.
            ??h xxh  x IsPrint, is xxh a printing character (including space).
            ??h xxh  x IsPunct, is xxh any printing character that is neither
                       a space nor a character which would return true from
                       IsAlNum.
            ??h xxh  x IsSpace, is xxh either a white space character (one of
                       ' ' '\f' '\n' '\r' '\t' '\v') 


00h 01h 02h xxh        Date / Time Functions
    
            00h      x Return seconds after minute [0-61] (61 allows for 2
                       leap-seconds)
            01h      x Return minutes after hour [0-59]
            02h      x Return hours after midnight [0-23]
            03h      x Return day of the month [1-31]
            04h      x Return month of year [0-11]
            05h      x Return current year-1900
            06h      x Return days since Sunday [0-6]
            07h      x Return days since January 1st [0-365] MSB...LSB
            08h      x Return daylight savings indicator


00h 02h 00h xxh        Command line scanning

            00h        Returns number of parameters passed to program on the
                       command line.
                       

00h 02h 01h xxh        File I/O

            00h xxh  x!Open file, follow with mode and for modes 00h to 05h
                       a NUL terminated filename. Returns 00h yyh on success
                       where yyh is file handle and 01h 00h on failure.
                       See Table 0.2.1.0 for mode types.

            01h xxh  x Close file (xxh is file handle, or 00h to close
                       all open files
            02h xxh  x Flush file (xxh is file handle, or 00h to flush
                       all open buffers)
            03h xxh  x EOF? Returns 0 if true, 1 if false
            04h xxh  x Rewind file pointer to start of file (xxh is file
                       handle)
            05h xxh  x Forward file pointer to end of file (xxh is file
                       handle)
            06h xxh  x Read file pointer (xxh is file handle) returns 4 byte
                       file pointer as MSB...LSB
            07h xxh  x Set file pointer (xxh is file handle) supply 4 byte
                       file pointer as MSB...LSB
            08h xxh  x File error? Returns 0 if true, 1 if false


00h 02h 02h xxh        File Tools

            00h xxh  x!Remove file, follow with a NUL terminated filename.
                       Returns 00h on success and 01h on failure
            01h xxh  x!Rename file, follow with NUL terminated old name and
                       NUL terminated new name.


00h 08h                Networking Support

00h 08h 00h xxh        CGI Environment Support
                       (See table 0.8.0.x for xxh variables)

00h 08h 00h 00h xxh  x Check CGI variable xxh, returns 0 if present or 1 if
                       not defined or empty
            01h xxh  x Read CGI variable, returns NUL terminated string
            02h xxh  x <Reserved>
            03h xxh  x Write CGI variable to STDOUT
            04h xxh  x Read CGI variable name, returns NUL terminated string
            05h xxh  x Write CGI variable name to STDOUT


00h 09h xxh          x PESOIX-SetDialect - Sets PESOIX dialect xxh, returns
                       a result code of 0 if the operation is successful


00h 10h xxh xxh      x PESOIX-SystemCall - Call a PESOIX system function

        ??h xxh      x Cause normal program termination with exit code xxh
                       All streams are flushed and any open files closed
                       

Calls marked x are in the process of being implemented.

Calls marked ! are considered unsafe. Unlesss the user has explicitly enabled
these services the user will be asked to authorise the action. One exception
is 'File Open' 00h 02h 01h 00h xxh where xxh is 01h or 06h.


Table 0.2.1.0 File I/O Mode Types

       xxh    open  stream for  truncate  create  starting
mode  param   read    write      file      file   position
----  -----   ----    -----      ----      ----   --------
"r"    00h     y        n         n         n     beginning
"r+"   01h     y        y         n         n     beginning
"w"    02h     n        y         y         y     beginning
"w+"   03h     y        y         y         y     beginning
"a"    04h     n        y         n         y     end-of-file
"a+"   05h     y        y         n         y     end-of-file
"tmp"  06h     y        y         y         y     beginning (correct?)
<text / binary streams may be added, currently binary streams are used>


Table 0.8.0.x CGI Environment Variables

 ??h QUERY_STRING
 ??h REQUEST_METHOD    (In HTTP, this is "GET", "HEAD", "POST", etc.)
 ??h CONTENT_LENGTH    (The length of the said content as given by the client.)
 ??h CONTENT_TYPE      (For queries which have attached information, such as
                       HTTP POST and PUT, this is the content type of the data)
 ??h AUTH_TYPE
 ??h GATEWAY_INTERFACE
 ??h HTTP_ACCEPT
 ??h HTTP_USER_AGENT
 ??h PATH_INFO
 ??h PATH_TRANSLATED
 ??h REMOTE_ADDR
 ??h REMOTE_HOST
 ??h REMOTE_IDENT
 ??h REMOTE_USER
 ??h SCRIPT_NAME
 ??h SERVER_NAME
 ??h SERVER_PORT
 ??h SERVER_PROTOCOL
 ??h SERVER_SOFTWARE

KeyMaker
    pc-speaker support
    request user confirmation of all potentially dangerous commands
      incl. open file for write/update, system, remove and rename