- uufflTconn— Waterloo Computing Systems Limited

158 University Ave. W., Waterloo, Ontario Canada N2L 3E9

(519) 884-2700

Volume 1, Issue 7 Enhancements to WATCOM APL and BASIC have been made with specific business Septem ber 1983 usages in mind.

WATCOM Software, Version 2.0 WATCOM APL V2.0

One of our key objectives is to ensure the WATCOM APL is an extensively rewritten relevance of our products to consumer needs. version of Waterloo microAPL version 1.2. As part of our commitment to listen Many new features have been added and carefully to and encourage user feedback, we existing features improved. For the IBM have responded with the product Personal Computer significant improvements enhancements and additions described in this have been made in performance, floating­ newsletter. point arithmetic (8 byte extended precision utilizing the 8087 co-processor if it is The five languages and editor formerly present; emulated in software otherwise), and known as Waterloo micro APL, BASIC etc., workspace size (limited only by the amount have been extensively rewritten or enhanced of memory present in the PC). to elevate them beyond the traditional 'micro' limitations. This development was New features include: undertaken to accommodate increasing user □ The Random Array File System allows the needs for these products in interactive user to store and retrieve APL objects mainframe environments as well as in from a disk file in random order (similar networking between micro and mainframe to the Sharp APL file system). computers. Significant performance a Extensive report formatting facilities improvements have also been effected in the include QFMT (from Sharp APL) and areas of common need. extended 5 picture formatting (from IBM's APL2). QFMT uses F ORTR AN-like Extensive new documentation as well as formatting clauses, while extended $ uses significant improvements in existing a "picture example" character left documentation have been created to support argum ent. these new products, which include WATCOM o String searching and substitution built in APL, BASIC, COBOL, FORTRAN, Pascal and as a natural extension to indexing/indexed the Editor. These compatible versions are assignment. supported on the IBM Personal Computer B Input numeric processing allows with DOS, the IBM 370 with VM/SP CMS, and verification (DVI) and forming (DFI) of the DEC VAX with VMS. character strings into numeric data. □ Event Trapping and Simulation gives the WATCOM interactive language user the ability to trap and handle errors interpreters are designed specifically but not using Execute A lternate (DEA), Event exclusively for educational use in teaching Type (GET), Event Message (DEM) and computer programming. Of special Event Simulation (QES). (Modeled on significance is the emphasis on effective APL2.) error diagnosis and powerful debugging q Workspace transfer functions allow the capabilities. user to create files containing a form of the workspace which can easily be extended precision numeric computation converted back to the original workspace (performed in software if 8087 not on any version of WATCOM APL on any present) computer system. □ Colour Graphics support allows easy □ Automatic workspace loading allows the access to the PC graphics capabilities. user to develop an application which will □ 40 user-programmable function keys are run without the user requiring any provided. knowledge of the underlying APL support. □ Host communication allows full access to a Multiple statement separator (0) allows the file system of a host machine. the user to place several related □ The PC may be used as a terminal using statements on one function line. the system functions DSETUP and □ User defined collating sequence (DCS) □PASSTHRU. allows sorting of character arrays □ DSETUP allows the user to set and query according to different character sets. serial port settings. The Native File □ Ability to lock user-defined functions. system may be used to access the serial ports. Improved features: □ OCURSOR allows the user to change the □ Major competitive speed improvements position of the cursor as well as query its have been made in the following areas: current position. - primitive function execution - user-defined function execution WATCOM BASIC V2.0 - )COPY and )PCOPY system commands □ Multiple numeric datatypes: boolean, WATCOM BASIC is an extensively integer and floating point numbers now enhanced version of Waterloo microBASIC take the minimum amount of room version 1.2. The major addition is formatted whenever possible for more efficient I/O capabilities with INPUT USING and usage of the workspace. PRINT USING. Many formatting features are □ Gamma function is used for factorial available including credit and debit, floating (monadic !) and binomial (dyadic !). dollar, and asterisk fill. Some examples of □ []MEMALLOC allows the user to the new PRINT USING features follow (the dynamically allocate memory for use with computer response to the user "immediate □PEEK, DPOKE and QSYS. mode" command is underlined in order to distinguish it): Additional features: □ The Native File system allows ? using '(?### diggety ###', 'hotdog' communication with the file system of hot diggety dog the underlying machine. money$=%$$7WV.## CR* □ The Compress primitive function has been print using moneyS, 12345.67;-123 extended to allow an integer left $12,345.67 $123.00 CR argument, which allows the replication of items rather than just selection. Other enhancements are: o Free format structured control Special features for the IBM Personal statements allow you to enter statements Com puter: like: □ The workspace includes all available for i=l to 10:a(i)=i:next i memory. □ Block labels on structure statements o Arrays can have up to 32767 elements allow you to quit from more than one regardless of the data type. This allows level without using a flag variable. floating point arrays of up to 25 6K bytes. □ Short and long precision floating point □ Several features of APL may be arithmetic. optionally included when APL is invoked. □ On the IBM Personal Computer, support Any memory not used as a result of a for 8087 co-processor allows fast, feature not being loaded is freed for use extended precision numeric computation in the workspace. (performed in software if 8087 not □ Support for 8087 co-processor allows fast, present). a Settable print zone width is provided. Improvements have been made in Q Renumber of a subset of the program performance and diagnostics. Several allows portions of the program to be problems of a minor nature have been moved. corrected. No extensive new features have □ Statement trace control has OPTION been added. TRACEON and OPTION TRACEOFF. a Logging of terminal input and output to WATCOMa FORTRAN V2.0 file can be done. □ Workspace name, date and time are The original Waterloo microFORTRAN displayed by the LIST command. was essentially a dialect that varied in many □ Local variables and arrays can be defined respects from standard FORTRAN-77 in inside functions and procedures. For order to accommodate specific teaching aids. example: Strong user feedback indicated that a much closer implementation of the standard was 40 def fn_sum(mat x, n%),i%,sumrequired. WATCOM FORTRAN V2.0 has had 45 ! i%, sum are local variablesextensive and highly detailed changes made 50 sum = 0 to many areas of the language in order to 55 for i% = 1 to n% satisfy user needs and includes a significant 60 sum = sum + x( i% ) portion of the FORTRAN-77 definition. 65 next i% 70 fn_sum = sum The powerful editor and interactive 75 fnend debugger that are included in the interpreter enhance the utility of the product during □ There are new matrix operations for program development and debugging. sorting. □ Matrix inverse has been added. New features include: □ New trigonometric functions such as □ The COMMON and DIMENSION COSH, LOG 10 have been added. statements have been added. □ Several new string functions have been □ CHARACTER support now corresponds to added. Some examples: the FORTRAN 77 standard. □ Additional functions such as REAL and s$ = 'Mixed' ATAN2 have been added. ! show upper case, lower□ case Variable definition checking has been print uprc$( s$ ); lwrc$( s$ made ) optional. MIXEDmixed □ On the IBM Personal Computer, support ! show substring replacementfor 8087 co-processor allows fast, print srep$( s$, 1 ed1, 1ing' extended) precision numeric computation Mixing (performed in software if 8087 not ! show translate functionpresent). print translate$( s$, 'dM', 1sf' ) fixes Language changes include: □ Subprogram recursion is no longer allowed WATCOM COBOL V2.0 in conformance with the FORTRAN-77 standard. As a result the name of a It is designed to support a substantial function can be used within that function implementation of ANS COBOL (1974). The as a variable, without it causing an language supported includes level 1 of the invocation of the function. following modules: Nucleus, Sequential I-O, □ The A format code used in formatted IO Relative 1-0 and Table-handling. As well, has been modified to operate according to parts of level 2 are supported in these the FORTRAN 77 standard. modules including full support for the □ CHARACTER variables in previous PERFORM, STRING and UNSTRING verbs. versions of WATCOM FORTRAN were of WATCOM COBOL includes the WATCOM variable length. They are now of fixed Editor for preparing programs as well as a size, and are declared with a length powerful interactive debugging facility. attribute. This change will affect processor allows fast, extended precision existing programs which use numeric computation (performed in CHARACTER variables. software if 8087 not present).

WATCOM Pascal V2.0 WATCOM Editor V2.0

WATCOM Pascal corresponds very closely The WATCOM Editor is a general-purpose to the ANSI Pascal standard and to the ISO text editor that supports both a command- Pascal committee draft proposal. This oriented and on-screen mode of editing. implementation includes sophisticated Function key support further enhances the features such as text file support, pointer text manipulation capabilities of the editor. variables, multidimensional arrays, string functions, assembly-language interface, Command mode features include: interactive debugging, and support for colour□ line positioning by number or by context graphics on the IBM PC. using powerful string searching □ line insertion or deletion Significant performance improvements □ global and selective text changes have been made in the interpreter, and the □ command recall and modification following new features have been added: a file manipulation commands such as □ Procedure and function names can now be directory listing, file rename, deletion, passed as parameters to other procedures etc. and functions. □ ASCH terminal emulation for connection □ Random file access can be performed to remote host computers using the "Update" and "Setnext" procedures. "Update" opens a file such On-the-screen mode features include: that both input and output operations can□ positioning using cursor movement keys be performed on it. "Setnext" specifies □ overtyping of text the element in a file to which the next □ insertion and deletion of text input or output operation applies. □ The "append" procedure opens a file such Function key support includes: that subsequent output operations to theD up or down movement through text a line file will append to its previous contents. or a screen-full at a time □ The "else" clause in a "case" statement is □ insertion or deletion of lines an extension to standard Pascal which □ selection of foreground and background permits a statement to be executed when colour on the IBM PC no match is found for a case selector □ new function key support; line split, line expression. The "case" statement is join, and a single command/screen mode illustrated by the following: key

case character of Enhancements to the software include: 'a' : Process( y, y ); □ a new meta-character "%#" that 1b', 'c 1 : ; { nul1 action }substitutes for the line number of the line ' d' : being changed thus permitting numbering begin of lines in the workspace a := 1; □ "edit" and "exit" commands b := 2; a "get" and "put" commands no longer end; change the current file name 1e1 : Process( n, y ); □ the current file name is displayed on the else Other( y ); screen as a convenient reminder of the end name of the file being editted □ a revised SET command on the IBM PC □ The "initrandom" procedure and "random" that displays serial port characteristics function provide a pseudo-random number generation mechanism. □ On the IBM PC, support for 8087 co­