ࡱ > B p q r s t u v w x y z { | } ~ bjbj-- 4]
O O 6a ) " " $ P . $ R$
4 1 ; ( ; ; ; U 6 u 4 * $ ` u ƃ DU | U ƃ ƃ " " ; ; v ƃ " l ; ; ƃ z ! T ,
; y\ | u j 0 6 | f
ƃ ƃ ƃ ƃ ƃ ƃ ƃ $ ƃ ƃ ƃ ƃ ƃ ƃ ƃ ƃ ƃ ƃ ƃ ƃ ƃ ƃ ƃ ƃ : BOCA SYSTEMS, INC.
1065 South Rogers Circle
Boca Raton, Florida 33487
PHONE: 561 998 9600
FAX: 561 998 9609
Email boca@bocasystems.com
PROGRAMMING GUIDE
FRIENDLY GHOST LANGUAGE
Lemur
FGL46 / FGL26
FGL44 / FGL24
FGL42 / FGL22
18 Feb 2020
Revision 12
FRIENDLY GHOST LANGUAGE (FGL) is Bocas industry standard language that allows the user to print data, graphics, boxes and bar codes anywhere on the ticket in virtually any orientation. Great care has been taken to make this language user friendly without sacrificing any of the features and flexibility required by both future and existing customers. FGL has been structured in such a way to easily accommodate adding new functions in the future. FGL46 is the latest version of the Friendly Ghost Language. Unless stated otherwise, all references in the programming guide to Lemur, FGL26/46 &FGL24/44 are the same.
FGL22, 24 and 26 are subsets of FGL42, 44 and 46, respectively. They contain most of the same features as FGL42/44/46. Features unavailable in the FGL22/24/26 code will be identified, when appropriate, throughout the programming guide. For simplicity, all references to FGL46 should be interpreted as valid for all FGL printers, except as noted. Please note that the features identified in this manual represent those features available in the latest version of the firmware. Older revisions of FGL42/44/46 firmware may not contain all of the features discussed in this document. New commands will be highlighted in green to indicate the possibility that older versions of FGL22/24/26 and/or FGL42/44/46 may not contain these features. We hope you enjoy your new Ghostwriter family printer.
The FGL46 language represents the latest enhancements to the FGL language. FGL46 contains many new features (PDF-417, Data Matrix, QR and Aztec 2D barcodes, BMP graphics, Justifying Text, etc.) while retaining all of the commonly used FGL features. Some of the new FGL46 features are available in older FGL44 printers using special firmware version '44G' and above. Note: Downloading of FGL Bitmapped fonts is no longer allowed in order to eliminate potential conflicts with some of the new FGL features.
While the use of FGL provides the programmer with the most efficient means of communicating with the printer, printing through a printer driver (Windows, Mac or Linux) is probably the fastest way to get your printer running. To work with a driver, follow the instructions on the applicable printer driver page of our website.
Copyright c 1989-2020 by Boca Systems, Inc.
TABLE OF CONTENTS
TOC \o "1-3" \h \z HYPERLINK \l "_Toc475957644" GENERAL DESCRIPTION - READ THIS FIRST PAGEREF _Toc475957644 \h 3
HYPERLINK \l "_Toc475957645" COMMAND SEQUENCES PAGEREF _Toc475957645 \h 9
HYPERLINK \l "_Toc475957646" STATUS COMMANDS PAGEREF _Toc475957646 \h 12
HYPERLINK \l "_Toc475957647" FILE COMMANDS PAGEREF _Toc475957647 \h 19
HYPERLINK \l "_Toc475957648" PRINT COMMANDS PAGEREF _Toc475957648 \h 19
HYPERLINK \l "_Toc475957649" SPECIAL COMMANDS PAGEREF _Toc475957649 \h 20
HYPERLINK \l "_Toc475957650" DRIVER COMMANDS (implemented November 2007 on new 26/46 printers) PAGEREF _Toc475957650 \h 21
HYPERLINK \l "_Toc475957652" STANDARD INTERFACE PINOUTS PAGEREF _Toc475957652 \h 22
HYPERLINK \l "_Toc475957653" For Lemur series printer see Standard Interface Pinouts section of user manual. PAGEREF _Toc475957653 \h 22
HYPERLINK \l "_Toc475957654" UPC SUPPLEMENT PAGEREF _Toc475957654 \h 23
HYPERLINK \l "_Toc475957655" INTERLEAVED 2OF5 SUPPLEMENT PAGEREF _Toc475957655 \h 24
HYPERLINK \l "_Toc475957656" EAN13 SUPPLEMENT PAGEREF _Toc475957656 \h 25
HYPERLINK \l "_Toc475957657" CODE 39 SUPPLEMENT PAGEREF _Toc475957657 \h 25
HYPERLINK \l "_Toc475957658" USS-CODABAR SUPPLEMENT PAGEREF _Toc475957658 \h 25
HYPERLINK \l "_Toc475957659" SOFTSTRIP BAR CODE SUPPLEMENT PAGEREF _Toc475957659 \h 26
HYPERLINK \l "_Toc475957660" TWO DIMENSIONAL BAR CODE SUPPLEMENT PAGEREF _Toc475957660 \h 27
HYPERLINK \l "_Toc475957661" FGL Features Minimum Firmware Version PAGEREF _Toc475957661 \h 27
HYPERLINK \l "_Toc475957662" FGL Font file contents SB00 to SB05 PAGEREF _Toc475957662 \h 27
HYPERLINK \l "_Toc475957663" PDF-417 2D Bar Code PAGEREF _Toc475957663 \h 29
HYPERLINK \l "_Toc475957664" Data Matrix 2D Bar Code PAGEREF _Toc475957664 \h 30
HYPERLINK \l "_Toc475957665" Quick Response 2D Bar Code PAGEREF _Toc475957665 \h 31
HYPERLINK \l "_Toc475957666" DOWNLOADING FILE SUPPLEMENT PAGEREF _Toc475957666 \h 34
HYPERLINK \l "_Toc475957667" DOWNLOADING LOGO SUPPLEMENT PAGEREF _Toc475957667 \h 36
HYPERLINK \l "_Toc475957668" DOWNLOADING BMP & PCX SUPPLEMENT PAGEREF _Toc475957668 \h 38
HYPERLINK \l "_Toc475957669" FGL TEXT LOGO (MACRO) SUPPLEMENT PAGEREF _Toc475957669 \h 39
HYPERLINK \l "_Toc475957670" DOWNLOADING FONTS SUPPLEMENT PAGEREF _Toc475957670 \h 40
HYPERLINK \l "_Toc475957671" TRUETYPE FONTS SUPPLEMENT PAGEREF _Toc475957671 \h 42
HYPERLINK \l "_Toc475957672" UPDATING FIRMWARE, FONTS and FEATURES PAGEREF _Toc475957672 \h 44
HYPERLINK \l "_Toc475957673" BOX AND LINE SUPPLEMENT PAGEREF _Toc475957673 \h 45
HYPERLINK \l "_Toc475957674" HOST TO PRINTER COMMUNICATION SUPPLEMENT PAGEREF _Toc475957674 \h 46
HYPERLINK \l "_Toc475957675" DIAGNOSTIC MODE SUPPLEMENT PAGEREF _Toc475957675 \h 47
HYPERLINK \l "_Toc475957676" ORIENTAL CHARACTER SETS PAGEREF _Toc475957676 \h 48
HYPERLINK \l "_Toc475957677" DUAL PRINTER SUPPLEMENT PAGEREF _Toc475957677 \h 50
HYPERLINK \l "_Toc475957678" FGL CONTROL PANEL PAGEREF _Toc475957678 \h 52
HYPERLINK \l "_Toc475957679" PRINTER STATUS SUPPLEMENT PAGEREF _Toc475957679 \h 58
HYPERLINK \l "_Toc475957680" SAMPLE BASIC PROGRAM FOR SENDING AND RECEIVING STATUS FROM PRINTER. PAGEREF _Toc475957680 \h 60
HYPERLINK \l "_Toc475957681" SHADING PATTERN SUPPLEMENT PAGEREF _Toc475957681 \h 61
HYPERLINK \l "_Toc475957682" JUSTIFY TEXT SUPPLEMENT PAGEREF _Toc475957682 \h 63
HYPERLINK \l "_Toc475957683" FLASH MEMORY EXPANSION SUPPLEMENT PAGEREF _Toc475957683 \h 64
HYPERLINK \l "_Toc475957684" FONT SIZE SUPPLEMENT PAGEREF _Toc475957684 \h 65
HYPERLINK \l "_Toc475957685" PRINTER DRIVER SUPPLEMENT PAGEREF _Toc475957685 \h 66
HYPERLINK \l "_Toc475957686" Windows Printer Drivers PAGEREF _Toc475957686 \h 66
HYPERLINK \l "_Toc475957687" Apple/Mac Printer Drivers PAGEREF _Toc475957687 \h 68
HYPERLINK \l "_Toc475957688" Linux Printer Drivers PAGEREF _Toc475957688 \h 69
HYPERLINK \l "_Toc475957689" 42/44/46 CONFIGURATION TEST TICKET SUPPLEMENT PAGEREF _Toc475957689 \h 73
HYPERLINK \l "_Toc475957690" CHANGING ETHERNET PARAMETERS SUPPLEMENT PAGEREF _Toc475957690 \h 80
HYPERLINK \l "_Toc475957691" ETHERNET INTERFACE ADDENDUM - REV H PAGEREF _Toc475957691 \h 82
HYPERLINK \l "_Toc475957692" MEMORY INVENTORY COMMAND SUPPLEMENT PAGEREF _Toc475957692 \h 109
HYPERLINK \l "_Toc475957693" RFID ADDENDUM - REV I PAGEREF _Toc475957693 \h 110
HYPERLINK \l "_Toc475957694" Wi-Fi ADDENDUM PAGEREF _Toc475957694 \h 134
HYPERLINK \l "_Toc475957695" Configure Wi-Fi Connection PAGEREF _Toc475957695 \h 134
HYPERLINK \l "_Toc475957696" Configure Wi-Fi Connection Step by Step PAGEREF _Toc475957696 \h 135
HYPERLINK \l "_Toc475957697" BLUETOOTH ADDENDUM PAGEREF _Toc475957697 \h 137
HYPERLINK \l "_Toc475957698" USB DRIVER ADDENDUM PAGEREF _Toc475957698 \h 142
HYPERLINK \l "_Toc475957699" USB Printer/HID Device Type PAGEREF _Toc475957699 \h 142
HYPERLINK \l "_Toc475957700" APPENDIX A - SAMPLE BASIC PROGRAM FOR 200 DPI PRINT HEAD PAGEREF _Toc475957700 \h 143
HYPERLINK \l "_Toc475957701" APPENDIX B - GHOSTWRITER COMMANDS - Quick Reference Chart PAGEREF _Toc475957701 \h 144
HYPERLINK \l "_Toc475957702" APPENDIX C - ASCII CHARACTER SET PAGEREF _Toc475957702 \h 147
HYPERLINK \l "_Toc475957703" APPENDIX D Special Character Set PAGEREF _Toc475957703 \h 148
HYPERLINK \l "_Toc475957704" 200 DPI FONT SAMPLES PAGEREF _Toc475957704 \h 149
GENERAL DESCRIPTION - READ THIS FIRST
Many people will have neither the time nor patience to read through this entire programming guide. For those of you, we recommend that you skip to Appendix A and B of the manual. Appendix A contains sample basic programs, while Appendix B quickly lists all of the Ghostwriter commands. If you plan to use any special functions not covered in these examples, a quick look at the "command sequence" section and the applicable "supplement" section should provide you with the rest of the information you need. The technically oriented are invited to read the whole manual. The rest of you might find it more enjoyable to skip the "Theory of Operation" section and go straight to the "General" section. In any case, please feel free to call us if you have any questions.
BRIEF THEORY OF OPERATION
In order to produce a ticket or label the Boca printer must first receive ticket data written in FGL. All data transmitted to the printer is immediately placed in its 64k (4k for parallel and serial) byte circular input buffer. The printer uses this information to produce a ticket image. The Ghostwriter uses two independent ticket buffers for storing the ticket image. The data from the input circular buffer is processed and then loaded into one of the printer's two ticket buffers. After the ticket data is fully processed, the printer begins printing that ticket and then starts processing the next ticket's data. This processed data is then loaded into the second ticket buffer. At this point, the two ticket buffers are full so no new information can be processed from the input buffer. However, the printer can still receive more data at this point until it has reached its maximum limit of bytes loaded. Once the ticket has finished printing, the printer can again start processing data. It will start printing the second ticket buffer while inserting processed data into the first ticket buffer. The above cycle will be repeated for each ticket. This double-buffered approach allows the computer system to derive the maximum ticket output from the printer.
In serial mode, the printer will go busy if it has more than 3000 characters stored in its circular input buffer. This is for protection against systems that still send some data even after the printer goes busy. In parallel mode, the printer will go busy if it has more than 4000 characters stored in its circular buffer. (Note: the printer goes busy momentarily for each character sent during parallel transmission.) Since the printer is constantly processing data from the input buffer, it will typically take a transmission of much more than 4000 characters to fill up the buffer. In both parallel and serial mode, the printer will remain busy until it has reduced the number of stored characters below 2500. With the 64k buffer, the printer will goes busy with approximately 6400 characters in its buffer.
In addition to the ready/busy function, the printer can transmit x-on/off and status when operating via its serial interface. X-off (13H) is sent in conjunction with the printer going busy. X-on (11H) is sent whenever the printer goes ready. An ACK (06H) is sent following the successful printing of a ticket. After the last ticket is printed, the printer will send an ACK followed by a 10H indicating an out of ticket condition. A ticket jam will result in the transmission of an 18H (no ACK will be sent).
GENERAL INFORMATION
FGL has evolved over a period of many years. During this time, the Ghostwriter has been used with many different logic boards (421487, FGL I - 421532, FGL II - 421570, FGL III - 421670, FGL IV - 421770, FGL40 422270, 21/41 422770, 42/22 FGL42, 24/44 FGL44 and 26/46 FGL46, Q46, Z46, A46). Although the basic FGL language has remained constant, new features are added with each revision. Some of the new features found in this manual may not be available on certain individual printers. Should you find that you are unable to access any of the features delineated in this manual, please feel free to consult the factory to verify whether or not this option is available in your printer.
This manual has been written specifically for the newest FGL46 board. This board features a fast state-of-the-art 32 bit RISC microprocessor. This new board is an enhanced version of the FGL 42 board and processes data about 4 times faster. It contains twice the memory of the FGL42 board.
The Ghostwriter prints on a variety of ticket and label sizes. The standard widths are 2", 2.125", 2.5", 2.7", 3.25", 4" and 8". Dot sizes of .00492" (203.2 dpi) and .00328" (304.9 dpi) and .0015 (600 dpi) are available. For the sake of clarity, we will assume a standard ticket to be 2" wide by 5.5" long. Additionally, we will refer to the above dot densities as 200 and 300 dpi.
TICKET/LABEL FORMATTING
A ticket can be thought of as a large dot matrix. The printer can place a dot anywhere on the ticket according to set spacing requirements. These spacing requirements are a function of the particular print head used on the printer. The ticket is comprised of a series of dot rows and dot columns. Note, that the printer usually reserves a small margin around the perimeter of the ticket in which no printing can appear. The starting position on each ticket is row 0, column 0 (0, 0). This is the left top-most corner of a ticket. The end of the ticket (the bottom right-hand corner) is considered to be position row 383, column 1049 (383, 1049).
The printer can print different size character sets depending on the font size sent to it. The default font size is called font3 and produces characters 17 dots wide by 31 dots high positioned within a box 20 dots wide (approximately 10 character per inch) by 33 dots high. The box size can be changed by commands to the printer in order to produce different inter-character spacing. Each character is top-left justified within the box depending on its rotation. Each character can be rotated in any of the four directions. Non-rotated (NR) characters are printed across the ticket from left to right. Rotated right (RR) characters are printed down the ticket from top to bottom. Rotated upside down (RU) characters are printed across the ticket from right to left (and build up from their starting points). Rotated left (RL) characters are printed up the ticket from bottom to the top. A character can be positioned to start anywhere on the ticket by sending a row/column command to the printer. The next character will start where the previous character box ended unless a new row/column command is sent. A return command will position the next character on the start of the next line keeping the same rotation from before (unless a new one is sent). Therefore, if a return is sent while printing in a rotated right mode the next character is printed at the top of the ticket and one character line below (to the left of) the previous line. A character line is equal to the box height of a character. In the default mode (font3), a character line is 33 dot positions and a character column is 20 dot positions.
Please note that many software programs will automatically send a return characters based on some arbitrary criteria. These automatic carriage returns should be suppressed.
The different types of command sequences that the printer will accept will be described later. The ticket data is terminated by a FF (0CH) or
indicating that the full ticket has been received. At this point, the Ghostwriter will print, cut and eject the ticket. To print a ticket without cutting, send a 1DH in place of the FF. For a complete list of print commands see the command section. The printer will automatically clear its buffer after printing a ticket.
AUTOMATIC TICKET LENGTH CALCULATION
On power-up, the printer will automatically determine the length (in dot positions) of the ticket being used. This feature allows different sized tickets to be used with the same printer and software. On thermal printers, the ticket will advance past the print head and then return to the initial print position during this measurement. On ribbon printers, a blank ticket will be cut and ejected. This feature can be disabled as explained in the command sequence section.
The printer will allow the user to print data across the entire length of the ticket minus .142" (29 dot columns on a printer with a .005" dot print head). With all ticket stocks, there is a slight variation in the distance between successive black marks that will result in a small variation in the calculated length of the ticket (1-8 dots). It is, therefore, recommended that the user avoid printing in the last three or four dot columns of the ticket to avoid the possibility of truncating the last column due to a variation in calculated ticket length. (For general reference, a 5.5" long ticket will contain about 1077 dot columns for 300dpi.)
SPECIAL CONSIDERATIONS
Most Ghostwriters require a minimum of three characters (blanks are acceptable) to be sent in the first line before accepting a CR character. This is to protect the printer from processing false CR's which are sent by certain PC's. The Ghostwriter also requires a minimum of three lines of data per ticket as a further error checking technique. This restriction does not apply if a
command is used as the print command instead of the form feed character.
Certain printer commands allow the user to select rotated and/or expanded versions of a character set. All modified characters will be top and left justified in their box according to their rotation. For example, a rotated left character that starts at the bottom left-hand corner of the ticket will build up the ticket and to the right. Expanded characters will build even further into rows and columns next to them. Therefore, care must be taken not to start a character in a row or column that is occupied by another character. For instance, if you expand a non-rotated 7x8 box size character by 2 it will occupy a space 16 dot positions down from its starting point and 14 spaces to the right. Therefore, no character should be placed less than 16 dot rows below that character or closer than 14 positions to the right. The printer will automatically do this if no overriding positioning commands are sent. In other words, the Ghostwriter knows if it is printing an extra sized character and it will place the next character in the correct position so it will not be over-written. This also holds true for return commands. The printer will automatically position itself down enough lines depending on the size of the characters printed. However, the printer only remembers the parameters set up for the previously printed character. Therefore, if a sentence is printed across the ticket and it starts with normal characters and ends with double-sized characters, a return will position the next character below the beginning of the sentence as if it started with a double-sized character. If this feature is not desired, skip the return character and send a row/column command to position the next character where desired.
Note - Care must be used when using size modifiers and positioning commands. In most instances, the printer will ignore all data sent outside the ticket boundaries as well as any data sent following an illegal positioning command. In the latter case, the printer will normally ignore all remaining data until a valid command is sent. However, in certain cases, the illegal data may end up being printed on either this or the following ticket. Always check what is being sent to the printer if unexpected results occur.
Printer Default Settings
Font type - Font3 (17x31 dot matrix)
Character box size - 20x33 dot matrix
Starting point - row 0,column 0
Height - normal (1)
Width - normal (1)
Rotation - No rotation (NR)
Ticket length - automatically calculated
Printing length - equal to ticket length
Bar code size - 4 units (32 dots)
Dot row offset - 1 unit (8 rows)
These settings can be changed at any time (and in any combination) before printing a character or string of characters. However, once changed, they will remain in effect until changed with a new command. The printer will also return to the default settings for the start of a new ticket. Once a print command is sent, the printer reverts back to the default settings so each new ticket must repeat any special command settings - they will not be retained from the previous ticket.
INVERTED CHARACTERS
The Ghostwriter will print an inverted version of any character sent provided that the proper modifier has been sent. An EI (enable inversion) command turns on the inverted mode. All subsequent data (except bar codes) will be inverted until a DI (disable inversion) command is sent. An inverted character is simply a negative image of the original. Caution should be exercised in using these modifiers because the whole ticket could be blackened if the DI modifier is forgotten. In inverted mode, the printer will automatically add a black border around the character to improve its readability. Therefore, an inverted character is actually slightly larger than a normal character. This must be remembered when positioning characters beneath inverted characters with row/column commands. It is recommended that a new row/column command be sent for the line following an inverted one. If one is not sent, then the lines may be closer together than expected because of the increased size of the inverted characters. (This feature is not presently available with soft fonts.)
BAR CODES
Code 39, Interleaved 2of 5, EAN13, EAN8, UPC, USS-Coda bar, Code 128 , Softstrip, PDF 417, Aztec, QR and Data Matrix barcodes can be printed via the appropriate select codes. All can be printed in either ladder or picket fence orientations. Ladder bar codes are printed along the width of the ticket and picket fence bar codes are printed along the length of the ticket. Ladder bar codes can be printed top to bottom (RR) or bottom to top (RL). Picket fence bar codes can be printed left to right (NR) or right to left (RU).
All bar codes should be selected by specifying the starting address, bar code size, orientation and type of bar code. Most bar codes are built using bars 8 dots high and 1 dot wide. This is the minimum size of a bar (called a unit dimension). The height of the bar can be changed in units of 8 using the bar code size command. Therefore, the number used to select the bar code size represents the number of 8 dot high bars to be used to construct the bar code. (A bar code size of three translates to a 24 dot high bar code.)
All bar codes can be expanded from their normal bar width of one dot by using the expanded (X) command. The expanded command allows you to double, triple, etc., the length of the bar code. It does not affect the height (size) of the bar code. Normally, on a 200 dpi head you should at least use the command, for 300 dpi.
There are two types of bar code select commands. Using uppercase letters to select a bar code type will allow you to print bar codes in only two rotations, top to bottom and left to right. This command is to keep the software downward compatible with older FGL printers. A new type of command using lowercase letters to select bar code type has been added to the FGL44 language. This command allows the rotation commands to be used to rotate bar codes in all four directions.
A human readable interpretation line can also be selected by sending a BI (bar code interpretation) command. Please note that the bar codes will be printed the same way as characters are. This means that non-rotated picket fence bar codes will expand down and to the right from the initial starting position (with the interpretation below - if selected). Rotated-upside down picket fence bar codes expand in the opposite direction. Rotated-right ladder bar codes are printed down and to the left of the starting point (with the interpretation below - if selected). Rotated-left ladder bar codes expand in the opposite direction. Care must be taken to start the bar codes at a position that will allow them to be printed fully. For example, a rotated-right ladder bar code with a size of 5 will be 40 dots wide. The interpretation, if printed, will take up another 10 dots (2 dots of space + 8 dots of character height. Therefore, the bar code will need at least 50 dot columns to be printed so it should be started somewhere past column 50. Please read the appropriate bar code data supplement before using any of the bar codes.
GRAPHICS
Using Graphics mode, you can individually turn on or off any dot on a ticket. In this manner, you can create your own images, shapes or logos. A Graphic character is made up of one byte of data. Graphic characters can be positioned like normal characters with row, column commands. The first Graphics character will be printed at the row/column position selected. Each succeeding Graphics character will be printed in the next dot column. Following transmission of the graphics select command or , the user is to send the printer bytes of dot data for each column of data to be printed. Each byte will represent one column of 8 dots (the MSB being the top dot) with the leftmost column being transmitted first. A one will print as a black dot and a zero will be a blank dot. If the command is sent without a number, the bytes must be transmitted in multiples of seven. If the command is used, then the number of bytes sent over is equal to #. In either case, the graphics mode must be re-selected after each group of bytes is sent over. If not, the Ghostwriter will be unable to distinguish the graphics bytes from command sequences.
NOTE: The interface must be configured for eight bit data in order to use dot addressable graphics.
Some computers cannot send the full range of 8 bit data (0-255) that is needed to fully describe all possible graphics characters. Therefore, the printer is capable of receiving the dot data bytes not just as straight decimal interpretations of each column but also as ASCII characters. For example, a column that has every other dot on 01010101 (55H) would have a straight decimal value of 85. Therefore, to print this column in normal graphics mode, a byte with a value of 85 would be sent to the printer. In Basic this could be done with a print chr$(85) statement. However, in ASCII graphics mode the byte is split into 2 ASCII bytes representing the hex value of the data. In the above case, the 85 decimal byte is equal to 55H so it is sent as two bytes of ASCII 5's. In Basic this could be done with a simple print "55" command. The ASCII graphics mode is distinguished from the normal mode by using a small g instead of a capital one. There is no default byte count of 7 for ASCII graphics - the command must contain the number of bytes to follow . See the command and logo supplement sections for further clarification.
DOWNLOADABLE FONTS AND LOGOS
Downloaded data is saved in either flash or ram depending on the printers default configuration. 42/44/46 printers are factory set to default to flash, 22/24/26 to ram. See the font and logo supplements for programming information. The process of saving the downloaded data into the flash memory may take several seconds. While saving the data to flash memory, the printer will go busy to prevent further data processing until the operation has finished. Data that has been saved to flash memory will not be lost when the printer is turned off. Logos sent to the printer without ids are stored sequentially.
Customers must keep track of the data sent to the printer in order to prevent overloading of the download space in flash (128k in FGL42, 256k in FGL44, 512K in 46). The printer will send the amount of free bytes remaining in the download space in response to an command. Note: to receive this status you must have a serial printer. You can reuse the download space with the ESC c command. This command will cause the printer to reset all of its download pointers so that all new information is stored at the beginning of the download area. See the command and logo supplement sections for further clarification. All logos can be manipulated (height/width, scaling, rotation) like any standard FGL font. Soft font data can be rotated and multiplied up to a maximum of 16. Scaling is now available for soft fonts.
Logos can be sent to the printer in one of two formats - FGL image or PCX. Customers can either write their own software to generate the FGL format or use a BOCA IMAGE program to convert uncompressed TIFF files to FGL graphics for downloading to the printer. Contact Boca if you wish to purchase this software package. PCX files, preceded with a few simple commands, can be sent as is to the printer. See both the applicable supplements for further details.
DIAGNOSTIC MODE
The printer can be put in a diagnostic mode when there appears to be a problem communicating with it. In this mode, the printer simply stores all the data it receives and prints it out as is on a ticket. It does not process the data as ticket information. See the diagnostic mode supplement for further details.
PAPER MODE
Paper mode is primarily used for internal printer testing. As a result, there are a number of features that do not operate exactly as a standard BOCA printer. In normal operation, the printer will immediately start printing tickets if new tickets are re-loaded. In paper mode, if the printer runs out of tickets it will be unable to print new tickets until the test button is depressed to signal the printer that the tickets are loaded. However, this is not true if the purge printer command has been sent.
INTERFACE SPECIFICATION
Pin outs and interface types vary among customers. A summary of basic interface types is provided on a separate page.
ENHANCED FEATURES
Ability to accept and scale downloaded Soft fonts.
Ability to delete individual fonts or logos.
Permanent and re-settable ticket counters [24/44/26/46 only].
DRAM Size
22 2MB
42 4MB
24/44 8MB
26/46 16MB
Flash Size
22/24/26 - no user addressable flash memory
42 128KB standard / 1.875 MB total (optional)
44 256KB standard / 2.25 MB total (optional)
46 4.0 MB total standard for Lemur series
COMMAND BUFFERING
All FGL commands are now buffered in the printer and therefore processed in the order they were sent. This leads to improved performance of the printer. Older FGL printers would buffer some commands while processing others immediately as they were received (like status or downloading commands). Therefore, some commands will behave differently on a 44/46 printer (like status commands) than they did on the older FGL versions.
DUAL PRINTER
Some customers require different length or width tickets to be printed. The printer can be used to drive two print heads. A Dual printer is available, which can print tickets on two different paper paths. As an example, you could use one path for tickets and the other one for receipts. Many different combinations of print heads are available. See the dual printer supplement for further details.
TEST BUTTON RELOAD/RESET
In the past, a paper jam or unsuccessful ticket load would stop the printer from operating. The user would have to reset the printer in order to resume printing. Any tickets in the printer's buffer prior to recycling power would be lost. Now, simply by holding in the test button, the printer will try and reload tickets. If the printer can successfully reload, it will print any remaining tickets in its buffer. This is a useful feature for operators who had trouble loading the tickets in the required amount of time. The operator can also manually load the ticket under the print head and then push the test button to allow the printer to properly load the ticket.
2S PRINTER (no longer in production)
This is a two sided printer. Please see the 2S supplement for details.
COMMAND SEQUENCES
The Ghostwriter accepts a wide variety of commands to control the printing of characters. A command sequence performs a unique function and many different sequences can be sent for each string to be printed. A command is distinguished from text by the < > characters. A < is used as a front marker for a command sequence and the > is used for an end marker. Any data sent between these markers is interpreted as command data. The data to be printed on the ticket is sent with no markers.
Every command sequence must be bracketed with the < > characters. If more than one command is sent in a line, the front marker of the second command is sent immediately after the end marker of the first sequence. Note that there is no delimiter between commands (ex. ). Usually, commands can be sent in any order. The text to be printed then comes right after the end of the last command end marker. The printer expects all the data it receives to be sent as ASCII characters. Below is a list of all the command sequences, a code example and how they are used. It is important to use the command character letters as indicated below. Lower case and upper case letters are not equivalent and cannot be interchanged. The following is a complete list of FGL46 commands. Please note that not all of these commands will be available in all firmware versions.
Most lowercase commands are permanently stored in Flash memory. Commands accessing flash should be used sparingly. These commands are intended to set the initial defaults and occasionally (monthly, annually) clear out memory. Important: Flash (most lowercase) commands should never be used on every ticket. Excessive use of flash commands slows down ticket throughput and reduces the life of the flash.
ROW/COLUMN COMMAND -
This command positions the character at the row (R) and column (C) sent. There must be a comma sent between the row and column values. In the above example, the row is 10 and the column 330. The character will start there and build according to its rotation. NOTE: The values are ASCII characters. This means that the 10 is sent as an ASCII 1 followed by an ASCII 0 not as a byte with a value of 10.
ROTATION COMMAND
This command sets the rotation mode for all the following text until a new direction is sent. Facing in the direction of rotation, all characters build down and to the right of their starting points.
No rotation
Rotate right (+90)
Rotate upside down (+180)
Rotate left (+270 or - 90)
HEIGHT/WIDTH COMMAND -
This command sets up the height and width of the character. In the above example, the height will be 2 and the width 3. This means that for a 7x8 dot size character it will be 21 dots wide and 16 dots high. Characters are limited in their expansion only by the size of the ticket. Be careful not to build characters into the ones below them. Once the height and width have been changed from normal, you must send a to return to normal size. NOTE: HW is capped at a maximum of 16 when using soft fonts.
FONT SIZE COMMAND
Font1 characters (5x7)
Font2 characters (8x16)
OCRB (17x31)
OCRA (5x9)
large OCRB (30x52)
OCRA (15x29)
Courier (20x40)(20x33)
small OCRB (13x20)
Prestige (25x41)
Script (25x49)
Orator (46x91)
Courier (20x40)(20x42)
This command sets the font size of the characters to be printed. The printer defaults to the font3 size on 200 dpi printers. Alternate font sizes will be available on certain models. See the font size supplement for actual font size samples and further information.
BOXSIZE COMMAND -
This command changes the box size to the values sent. The first value is the box width and the second is the box height. The character printed sits in this box. The font3 box size is 20x33 so in this example the character will sit in a box that is one dot higher (34) and one dot wider (21) than normal. This means that there will be an extra dot space between characters and between lines of characters. This command is used to get compressed or expanded spacing of characters. Note: when printing in inverted mode, the entire box size will be printed in the negative image. If a character only takes up a small fraction of the box size, it will have a large black border around it. This border can be trimmed by sending a box size that is smaller than the font size!
CLEAR BUFFER COMMAND -
This command will clear the ticket buffer and be sent before any other commands. In most instances, this command is not needed as the printer clears itself automatically. The command restores all font definitions back to their normal states. This command should be avoided as it degrades printer throughput.
GRAPHICS COMMAND - byte1,byte2,byte3,byte4,byte5,byte6,byte7 or byte1,byte2...byte#
This command can be sent with or without a number. The number tells the printer how many graphics bytes are coming next. If no number is sent, the printer uses the default value of 7. Therefore, exactly 7 graphics bytes must follow a command of just . The bytes are sent one after the other without any intervening commas! See the logo supplement figure and sample basic programs at the end of the manual for further clarification.
ASCII GRAPHICS COMMAND - ASCII high byte1,ASCII low byte1 ... last byte
This command uses ASCII characters instead of straight decimal representations of the data. For example, a byte value of 3F hex would be sent as an ASCII byte of 3 (33H) and an ASCII byte of F (46H). This command should only be used with computers that cannot send non-ASCII characters to the printer as the number of bytes sent in ASCII graphics mode is twice that sent in normal mode. (Please note that the # following the small g command must be an even number equal to the total number of high and low bytes sent.) Use the logo supplement figure and downloading in ASCII format section for further clarification.
BAR CODE INTERPRETATION COMMAND -
This command will cause the bar code interpretation (human readable code) to be printed underneath the bar code. The command is only active for the bar code immediately following it. The interpretation is printed in font1 and is automatically adjusted depending on the size of the bar code. The different bar code command sequences are listed under the particular bar code supplement desired.
BAR CODE SELECT COMMAND - string or string
Old style - rotation commands have no effect on bar codes.
A= U (for upc and ean8)
A= E (for ean-13)
A= N (for three of nine)
A= F (for interleaved two of five)
A= C (for uss-codabar)
A= O (for code 128)
New style - rotation commands affect the bar codes.
a= u (for upc and ean8)
a= e (for ean-13)
a= n (for three of nine)
a= f (for interleaved two of five)
a= c (for uss-codabar)
a= o (for code 128)
a= s (for softstrip)
B= P (for picket-fence)
B= L (for ladder )
# and string vary as detailed below
The above example is a symbolic representation of a bar code select command. The letter A represents the type of bar code selected. The letter B represents the orientation of the bar code (either picket fence or ladder). The # represents the size (in units) of the bar code. This is an optional parameter and if it is not sent then the default size of 4 will be used. Each unit represents an 8 dot high bar so a default bar code will be 32 dots high. Bar codes can only be rotated in specific directions - and for picket fence; and for ladder bar codes. Refer to the particular bar code supplement selected in order to find the exact commands and strings needed for bar code printing.
BAR CODE EXPANDED COMMAND -
This command allows you to expand the width of a bar code bar (normally based on a one dot unit). The number following the X will be the new dot unit bar size. In the above example, the new width of a bar is 2 dots. This will double the length of the bar code. An command would triple the bar code length. Normally, a setting of 2 dot wide bars is all that is needed for clear, readable bar codes.
Note: 9 (nine) is the largest expansion number allowed.
BAR CODE RATIO ADJUST COMMAND
string or string , future commands: string or string
A= N (for three of nine)
A= F (for interleaved two of five)
a= n (for three of nine)
a= f (for interleaved two of five)
All bar codes naturally default to a 2:1 ratio between wide and narrow spaces. However, certain bar codes (I2of5, 3of9) can be printed in a 3:1 (5:2) wide to narrow ratio. This is accomplished by adding an X (Y) to the normal command structure as shown above. For example, to print a 3:1 (5:2) ratio ladder 3of9 bar code you would use a () string command. Do not use the X (Y) with bar codes that can't be printed in that format!
NOTE: The 5:2 ratio has not yet been implemented and will not be available until sometime in the future.
PRINTING LENGTH COMMAND -
This command allows the user to control the length of a printed ticket. On power-up, the printer calculates the length of the ticket. It then sets the printing length equal to this value. Therefore, a standard ticket is usually printed to about 1050 columns. To reduce the printable area on the ticket, use a number smaller than the actual length of the ticket. The printing length may not exceed the actual ticket length. If a command is sent that is too big, the printer will set it equal to the ticket length. Please note that the first column always starts on the far left-hand side of the ticket. Using this command to reduce the print length will generally cause the print time to be slightly faster. The printer will not have to reverse as much on the first ticket. This command is not used very often.
PERMANENT PRINTING LENGTH COMMAND -
This command will cause the printer to permanently store the printing length value in the flash. The # sent is equal to the number of dot column positions you want to print. If no number is sent, the printing length determined during initialization will be stored. Once a value has been stored, the ticket measuring function of the printer, after power on, is disabled. This is a handy feature when using label stock where the motion of the ticket out and back during initialization can peel off the label. By having the label printing size permanently stored, there is no reason to measure the label.
PERMANENT TICKET LENGTH COMMAND -
This command should only be used if the ticket length is greater than the printing. This command will cause the printer to permanently store the ticket length value in the Flash. The # sent is equal to the dot column size of the ticket. If no number is sent, the ticket length determined during initialization will be stored. Once a value has been stored, the ticket measuring function of the printer, after power on, is disabled.
Normally, the ticket length and the printing length are the same. However, when using short die cut labels (under 1.5") it is often desirable to have the print length smaller than the ticket length. Label stocks usually have a clear (non-printing) area between labels so that the ticket (label) size is larger than the printing size. In this case, the length of the gap between labels is typically used as the difference between the print length and the ticket length. Please note that the command must be sent before command.
DELETE PERMANENT LENGTH COMMAND -
This command re-enables the automatic ticket measuring function of the printer after power on. This command is used when you want to delete the or command. This command clears the printing length and ticket length values from the Flash memory and re-enables the automatic ticket measuring function.
REPEAT COMMAND -
The REPEAT command allows the user to print multiple copies without retransmitting the ticket. The number used in the repeat command represents the number of tickets to be printed in addition to the first ticket. The repeat command can be sent anywhere in the data stream prior to the print command.
TRANSPARENT MODE ON COMMAND -
All data sent after receipt of this command will be transmitted out of the CRT #1 port without being processed by the printer. This mode will continue until receipt of the transparent mode off command.
See the host to printer communication supplement for further details.
TRANSPARENT MODE OFF COMMAND -
This command terminates the printer's transparent mode and returns it to normal operation. NOTE: Transparent mode remains active until receipt of the full command string. In other words, the command string will be transmitted over the CRT #1 port. See the host to printer communication supplement for further details.
STATUS COMMANDS
The status enabled function must be set to activate these commands.
NOTE: Because of the new command buffering structure, the printer will no longer respond to status commands immediately. The printer must first process all of the data received prior to the status command. In other words, there is a potential response delay of a few seconds if the status request is received in the middle of printing a ticket. If the status request is sent by itself, the response will still be immediate.
STATUS REQUEST -
The printer will respond with a one byte status message following the receipt of this command.
PROM TYPE AND TICKET COUNT STATUS REQUEST -
The printer will respond with a seven digit ticket count followed by the software level of the printer. A typical response will be as indicated below:
0004616 PROM = FGL46G42
DELAYED STATUS REQUEST (end of ticket run status) - or
Normally, the printer sends an ack (6) status byte after successfully printing a ticket. Some customers may prefer to receive this ack only after the last ticket in a run is printed. This command will perform that function. It can be sent on the first ticket or every ticket of a run. When the printer is finished with the last ticket, it will issue the acknowledgment. Note: This command remains in effect only for a run of tickets. It must be re-sent with the start of a new run if you desire this status.
NO STATUS - or
This feature disables the transmission of all status information, except for x-on/off information. This command remains in effect until power off.
ASCII STATUS - or
This feature is for customers whose systems can't handle non-ASCII characters or do not pass on the xon/xoff values. All status information, including the xon/xoff, will have 30h added to them to convert them to an ASCII value. (Values over 20H are unaffected by this command.) This command remains in effect until power off.
DOWNLOAD SPACE AVAILABLE STATUS -
This feature enables the user to find out how many free bytes are left in the download memory area of the printer. Usually, there are 128k bytes of space available. After downloading some data to the printer, you can use this command to determine how much space is left. This status is sent as an 8 digit hexadecimal count. For example, if 100k bytes are available the count will be 00019000. On the fgl44 printer, the command can now be used to keep track of both the RAM and flash download space. If you are in temporary mode, the command will return the amount of RAM space available. If you are in permanent mode, it will display the amount of flash space available. Note: deleting a file from flash does not free up the memory for later use unless the flash is empty. The deleted file space is marked as dirty. See command below.
PARTIAL ASCII STATUS - or
This feature is for customers whose systems can't handle non-ASCII characters but need valid xon/xoff values. All status information, except for a valid xon/xoff, will have 30h added to them to convert them to an ASCII value. This command remains in effect until power off. Note: xon/xoff status sent in response to an command will have the 30H added but xon/xoff sent for handshaking will not. (Values over 20H are unaffected by this command.)
DIRTY BYTE TOTAL STATUS - (New command)
This feature enables the user to find out how many dirty bytes there are in the download space of the flash. This status is sent as an 8 digit hexadecimal count. When a file is marked as deleted, its flash space cannot be reused until a reclaim occurs. This space is considered dirty space. You can use the command to reclaim this space (see the downloading file supplement for more details).
LOW PAPER/JAM STATUS - and
This feature is only for Boca Systems printers equipped with a low paper sensor. This feature enables a customer using Boca Systems BiDi printer drivers to read Low Paper status through the operating systems variables know as PRINTER_INFO_2 and PRINTER_INFO_6. The low-jam option can be turned on/off. With this option turned on the printer firmware will report low paper as a jam. The current Boca Systems Bi-Di drivers will set the JAM operating systems variable in PRINTER_INFO_2 & PRINTER_INFO_6 indicating the low paper indicator has been triggered. You can read that and know when the printer is running low of paper.
Make sure plenty of stock is loaded, power up the printer, andthen send the new FGL text command to the printer to turn this option on.
Turn on ticket low-jam mode. Low paper is reported as jam.
Turn off ticket low-jam mode. Return to standard mode.
CLEAR PERMANENT STATUS COMMANDS -
This command clears all permanent status commands from the Flash memory.
PRINT DOWNLOADABLE FONT COMMAND -
Use this font command to specify the desired font. See downloading Font supplement for further details.
PRINT DOWNLOADABLE LOGO COMMAND -
This command causes the Ghostwriter to print one of its customer downloaded logos on the ticket. This command is explained in greater detail in the logo supplement. (NOTE: This command must be preceded by a starting point, , command.)
PRINT RESIDENT LOGO COMMAND -
This command causes the Ghostwriter to print any one of its factory pre-loaded logos on the ticket. This command is explained in greater detail in the logo supplement. (NOTE: This command must be preceded by a starting point, , command.)
STARTING POINT COMMAND -
This command is used only when printing logos. It is used to assign the starting location of the logo in the same way that the command is used to assign the starting position of normal alphanumeric characters.
DRAW BOX COMMAND -
This command tells the printer to draw a box "r" dot rows tall and "c" dot columns wide. We recommend that a row/column command is used immediately following this command to prevent any confusion regarding the location of the cursor following this command.
DRAW VERTICAL LINE COMMAND -
This command draws a vertical line (one dot wide) "r" dots long. We recommend that a row/column command is used immediately following this command to prevent any confusion regarding the location of the cursor following this command.
DRAW HORIZONTAL LINE COMMAND -
This command draws a horizontal line (one dot wide) "c" dots long. We recommend that a row/column command is used immediately following this command to prevent any confusion regarding the location of the cursor following this command.
LINE THICKNESS COMMAND -
This command is used in conjunction with the line and box drawing commands. It allows the user to change the thickness of the lines being drawn from their normal default thickness of one dot. The # in the command represents the number of dots in the thickness of the line. This command must be sent immediately preceding the line or box command it is to work with. All lines revert back to the default size of one after being drawn. Therefore, if you want to draw several boxes with different line thicknesses you must send a separate line thickness command before each box drawing command. The following sequence would produce a box 10 dots long by 10 dots wide with a line thickness of 4 dots. Note that the thickness of a box grows towards the center of the box. A vertical line grows towards the right and a horizontal line grows towards the bottom of a ticket. The only restriction on the thickness of a box drawing line is that it may not be more than 1/2 the size of smallest box dimension. For example, a 10 x 15 box can have a maximum line thickness of 5 (note: this would produce a solid black box).
RESET TICKET COUNT -