|Symmetry Group Introduction| |SLATE Introduction| |SLATE| |SLATE with Graphics| |SLATEUTL| |SCRIPT| |S_PRINT| |Supported Printers| |Compilers Supported| |License Agreements| |Terms and Conditions| |Price List and Ordering Information| |Support@SymmetryGroup.com|

Version Updates, Features & Fixes

|Version 3.2.0| |Version 3.0.1| |Version 3.0.0|


Version 3.2.0

|Version Update| |Fixes|


Version 3.2.0 Update

Watcom C/C++ 10.5, 10.6, and 11.0 are now supported. Support for Watcom C/C++ 9.0 and 9.5 has been removed.

More than 100 new printers (more than 200 new specifications with various modes and options) have been added including the following: HP DeskJet 400, 680C, 682C, 690C 693C, 850C, 855C, 870C, and 1600CN. HP OfficeJet and OfficeJet LX, 300, 330, 350, 370, 1150C, and Personal. HP CopyJet. HP LaserJet 5, 5M, 5N, 5si, 5siMX, 6P, and 6MP. Okidata Okilaser 600e, 600e/PS, 610e, 610e/PS, 810e, 810e/PS, 1200, 1200/PS, 16n, and 16n/PS. Okidata Pacemark 3410. Canon BJ-20 and 200ex and BJC-80, 210, 240, 600e, 610, 620, 4000, 4010, 4020, 4100, 4200, and 4550. Many new printers from Brother, Epson, NEC, Panasonic, and QMS.

The Courier italic and bold italic download fonts for LaserJet printers have been included.

PC-850 (codepage 850) Character Set support for resident fonts have been added for HP DeskJet and LaserJet printers (and LaserJet clones). Both IBM-2 and PC-850 fonts are now included. When selecting PC-850 with the sl_mflod() function, the resident PC-850 font will be used rather than using the IBM-2 font and Character Set Conversion. In addition, some changes have been made to the Character Set Conversion tables to work better with these new fonts.

The sl_upd program has been modified to allow removing PC-850 fonts.

A number of Windows only printers are now on the market. (HP DeskJet 820C, OkiJet 2010, OkiPage 4w, NEC Superscript 660, Lexmark ColorJet 1020, 2050, 2070, Canon LPB-465, etc.) These are sometimes called GDI (Graphic Device Interface) printers. These are inexpensive printers with no rasterization capibility built into the printer. They rely on the Windows driver to rasterize fonts as well as images. Some of them claim to support DOS programs when run in the DOS box of Windows. After much testing, the DOS box support for most of these printers has been found to be erratic and unreliable. The manufacturers recognize these problems but have not made solving the problems a high priority because of the limited use of these printers for DOS applications. These printers have been ommitted until their DOS box support is more reliable.

Minor bugs have been fixed.


Version 3.2.0 Fixes

PharLap TNT DOS Extender: Applications built with the PharLap TNT (32 bit) DOS extender give GP faults when run in the DOS Box of Windows (3.1, 95, and NT). This DOS extender provides and requires a DPMI server when running in the DOS Box. (In DOS, no DPMI server is available.) The DPMI server provided by su_prot() causes problems. This was introduced in version 2.2.10 and will be fixed in 3.2.2 and the and the 3.2.0P3 patch.

SLATEUTL sl_hp() Messages: The final status message from the sl_hp() function displays the font file incorrectly. Additionally, it fails to find the correct TFM of PFM file when necessary. This was introduced in version 3.0.1 and will be fixed in 3.2.1 and the and the 3.2.0P2 patch.

Epson Stylus Printing: The Epson Stylus series printers print high resolution images incorrectly for the Symantec and Zortech compilers. This was introduced in version 3.0.0 and will be fixed in 3.2.1 and the and the 3.2.0P1 patch.

Btrieve Problems: When using the Tenberry (Rational) DOS 4G for Btrieve DOS Extender and the Watcom compiler, a GP fault is generated in :B:(sl_open()). The problem is caused by SLATE finding the wrong PSP. The solution is to add the patch su_psp = _psp; immediately after calling su_prot().

Backspace: The backspace character does not clear the last character properly with the Watcom libraries. This bug has been fixed in 3.2.0 release and the 3.2.0P3 patch.

sl_vid.c Missing: The sl_vid.c file referenced in the manual is not installed. This bug was introduced in 3.0.0 and has been fixed in 3.2.0.

Unresolved Externals: When linking applications created with Watcom 10.5 or later with the SLATE Watcom 10.0 libraries, sometimes unresolved externals are reported. Using the /zz compile option solves the problem with 16 bit models. While it will also solve the unresolved externals problem with the 32 bit stack passing model, there are other problems that can cause problems. This option does not solve the problem in the 32 bit register passing model. This has been solved in version 3.2.0 by adding Watcom 10.6 and 11.0 SLATE libraries.


Version 3.0.1

|Version Update| |Fixes|


Version 3.0.1 Update

Borland C/C++ 4.5 is now supported.

Version 3.0.1 has been extensively modified internally to handle far pointers in the medium memory model. In addition, the libraries have been built with flags that assume that SS!=DS when possible. This should make it possible to build a dll in the medium memory model. The compile.txt files now show the flags that were used to build each library.

Unfortunately, these changes cause an internal error in the TopSpeed compiler in the medium memory model. The TopSpeed medium libraries have been omitted until the problem is resolved. All other libraries are still supported.

Only the following documented functions have changed to far pointers: su_mnum(), su_mprn(), and su_smdsk(). See the include files for undocumented functions.

In almost all cases, recompiling with the new include files will handle all differences. Source code needs to be changed only for medium memory model code where a pointer that has been changed to a far is cast (to a near pointer). Unfortunately, most compilers will not report this.

The macro SH_FAR is provided to be used as the far modifier. It evaluates to the proper far name for compilers and memory models that allow it and to a null string where it is not allowed.

WARNING: This modification may increase the stack size requirement. See the notes in the next section.

In a few cases. color printers have a high resolution black only graphic mode. The sl_mglod() function ahs been modified to allow searching for a graphic mode that supports color.

There are now printers in the database that will not even print black and white images side by side (the new DeskJets). Be sure that the sl_gmget() function is tested before printing images side by side. NOTE: The sl_bprn() function emulates block printing by printing images on most of these printers.

The sl_pcxrd() will now read 24 bit PCX image files.

Support for the following printers has been added: most Tektronix printers, the JP DeskJet 320, 340, 540C, 600C, 660C, 1400C, and 1400CM, the HP LaserJet 5L, 5P, and 5MP, the Epson Color Stylus II, IIs, Pro and Pro XL, the Lexmark ExecJet IIc and Optra line, the Canon BJ-30 and BJC-70.

Note that IBM and Lexmark printers have been split. Older Lexmark printers marketed with the IBM name are still in the IBM list. Newer printers are listed under Lesmark.

A number of printer manufacturers now have ink jet printers that will take either a black cartridge or a color cartridge. We have created Black/White versions of these printers to support the black cartridge. (In most cases, the black cartridge will print text and black graphics and the color cartridge will print only color graphics.)

In a few cases, printers have high resolution modes that have speed limitations or only print in black. Separate versions have been created for these high resolution modes.

the sl_test program has been improved to handle printers that have very large top or bottom unprintable areas and printers that will not print any images side by side. Additional warning messages are now printed.

Minor bugs have been fixed.


Version 3.0.1 Fixes

SLATEUTL sl_hp() Messages: The final status message from the sl_hp() function displays the font file incorrectly. Additionally, it fails to find the correct TFM of PFM file when necessary. This was introduced in version 3.0.1 and will be fixed in 3.2.1 and the and the 3.2.0P2 patch.

Epson Stylus Printing: The Epson Stylus series printers print high resolution images incorrectly for the Symantec and Zortech compilers. This was introduced in version 3.0.0 and will be fixed in 3.2.1 and the and the 3.2.0P1 patch.

Unresolved Externals: If sl_stocc() is called, the su_itosp() function is unresolved with Watcom libraries only. This bug was introduced in 3.0.1 and has been fixed in 3.0.1a and the 3.0.1P1 patch.

Demo Programs: Most of the demo programs will generate a GP fault in protected mode if an unknown device code is entered at the prompt. This bug is in the demo program error reporting code, not the library. This bug has been fixed in version 3.0.1.

Borland C/C++ 4.5: SLATE fails to work properly with the 32 bit flat model when the BC4FOBJ libraries are used with the Borland 4.5 compiler. This is caused by internal changes in the 4.5 flat model. Version 3.0.1 has added support for the Borland C/C++ 4.5 compiler.

Printing Images: Printing images before any text fails to initialize properly. This can result in failure to position the image properly, colors printed incorrectly, or failure to set duplexing. This bug was introduced in version 3.0.0 and has been fixed in version 3.0.1 and the 3.0.0P4 patch.

Printing Subimages: Printing several subimages beside each other can print the wrong subimages. This bug was introduced in version 2.2.6 and has been fixed in version 3.0.1 and the 3.0.0P4 patch.

DeskJet Printing: Printing images can cause some DeskJets to print very slowly. This bug was introduced in the 3.0.0 P1, P2, and P3 patches and has been fixed in version 3.0.1 and the 3.0.0P4 patch.

General Protection Faults: Creating a Genus or Metagraphic image in the non-capture mode with 32 bit DOS extenders causes a General Protecion Fault. (There is no problem with any 16 bit mode.) This bug has been fixed in version 3.0.1 and the 3.0.0P4 patch.

Memory Leakage: Aborting while printing color images or before starting to print can fail to release some memory. These bugs were introduced about 2.2.6 and have been fixed in version 3.0.1 and the 3.0.0P4 patch.

SLATE: On some systems, the SLATE program fails to display some data. This was introduced in version 3.0.1 and has been fixed in version 3.0.1b and the 3.0.0P2 patch.

sl_test: Printers with very large top or bottom unprintable areas print the heading or footing over the body text. This has been fixed in version 3.0.1.

sl_test: The Page Limits test prints images side by side. This causes problems with printers that cannot print images side by side. This has been fixed in version 3.0.1.

LaserJet II: The page limits for the LaserJet II are slightly too large. This can result in clipping images and text. This was introduced in version 3.0.0 and has been fixed in version 3.0.1.


Version 3.0.0

|Version Update| |Features| |Fixes|


Version 3.0.0 Update

Version 3.0.0 is a major upgrade of the SLATE system. It includes support for form size selection and the ability to change orientation and form size within the program. An extensive set of download fonts are now provided for HP laser printers and clones. More than 100 new printers have been added.

Applications that were written with earlier versions can be compiled and linked with version 3.0 without changes. However, some extra care must be taken to set the proper default options at installation to access landscape modes.

Support for the Borland PowerPack DOS extender has been added for both 16 bit and 32 bit modes. Watcom C/C++ version 10.0 is now supported. The small and compact model support has been removed.

Note: changes in this version require that source code be recompiled with the new header files.


Version 3.0.0 Features

Forms: Support for Forms has been added. This allows Letter, Legal, A4, and many other form sizes to be selected on laser printers. This provides complete support for various form sizes that were only partially supported in earlier versions.

Landscape forms may also be selected on printers that support them. This means that the Printer Database no longer needs to provide separate portrait and landscape Printer specifications. Applications can change Forms during a single print job, but not within a single page.

Note: Developers who want to incorporate version 3.0, but do not want to modify the application to use Forms can use the Device defaults to select landscape Forms.

Fonts: An extensive set of high quality download fonts are now provided for HP laser printers and clones.

Manuals: The manuals have been expanded and reorganized to make them easier to use for reference. An index is now provided. Each function is listed in aplhabetical order and has an examle. A new Programming chapter has been added. New Printer Topics and Common Problems sections ahve been added.

The SLATELIB Reference Manual and the SLATEGPH Reference Manual have been combined into a single manual.

Defaults: Defaults for Form (size, orientation, and duplex mode), Graphic Mode, Paper Source, and Font can now be set in the Device.

In addition, the Load Graphic Mode, Set Paper Source, and Load Font Functions now accept 0 as a code to load the default from the Device.

New Functions: In addition to the functions related to Forms, several new functions have been provided in version 3.0 (or in the later 2.2.x versions): Get Page State sl_psget(). Get Font Requirements sl_fhtgt(). Get Font Depth sl_fdpgt(). Print Character Literal slclprn(). Print String Literal sl_slprn().

Updated Tools: The sl_plist program has been completely rewritten. It will now list all data from the printer database.

Additional tests have been added to the sl_test program.



Version 3.0.0 Fixes

PCX Files:SLATE fails to read more than one PCX file. Using the sl_pcxrd() function returns a "File Error" on all subsequent calls. This was introduced in version 2.2.12 and has been fixed in version 3.0.0 and the 2.2.12P3 patch.

Deleting Images: SLATE fails to release all memory when images are deleted with the sl_imdel() function. (The memory used to store the table of images is not released when all the images are deleted. However, the table will be reused if new images are created.) This was introduced in version 2.2.8 and has been fixed in version 3.0.0 and the 2.2.12P3 patch.

NetWare: The NetWare requester using the ODI stack and the Capture command will open the file LPT1: but generate write errors when writing to it. The file LPT1 works properly. SLATE has been modified in version 3.0.0 to detect this problem and convert the file name to one that will work.

PCX Files: Some PCX files have the image size in the header set one pixel larger than the image data. In some cases, this causes the sl_pcxrd() function to fail or load the image incorrectly. The function has been modified in version 3.0.0 to prevent failure under this condition. However, for some incorrect files, the last row and column of the image may contain bad data.

Printer Errors: Printer errors sometimes take excessive time to be reported when using the Parallel via BIOS mode. This was introduced in 2.2.11 and has been fixed in 3.0.0 and the 2.2.12P2 patch.

Best Matching Font: The Load Best Matching Font sl_mflod() function sometimes fails to find the font with the proper Character Set if Character Set Conversion is enabled. This has been fixed in 3.0.0.

PostScript Fonts: Downloaded PostScript fonts are lost. This was introduced in 2.2.11 and has been fixed in 3.0.0.

New Page: In some cases, SLATE continues to overprint lines at the bottom of the page rather than generating a new page. This only happens when the Bottom Margin is set in the bottom unprintable area. This has been fixed in 3.0.0.

Printer Abort: When aborting after a printer error, the output file is sometimes left open. This can result in loss of file handles and buffer memory leaks. This has been fixed in version 3.0.0 and in the 2.2.12P2 patch.

Clearing Images: Palette table memory may not be released when images are cleared or deleted. This has been fixed in version 3.0.0 and in the 2.2.12P2 patch.

Genus Images: Version 3.x of the Genus Library causes memory overwrite problems. The size of a structure passed by SLATE to Genus functions was expanded. This has been fixed in version 3.0.0 and in the 2.2.12P2 patch.

Block Print: The Block Print function sl_bprn() fails to work properly on IBM Laser Printers in the PPDS mode. This was introduced in 2.2.11 and has been fixed in 2.2.12a and in the 2.2.12P1 patch.

Function Prototypes: When the macros were converted to true functions in version 2.2.11, the include file prototypes for functions that take function pointers as parameters failed to specify parameter prototypes for the function pointers. This can cause problems when compiling C++ programs or compiling in C++ mode unless casts are used. This has been fixed in 2.2.12.

Underline: In some cases, space printed with sl_hsprn() fails to underline. This was fixed in 2.2.12.