Features: 03/10/1999 JDA
JetASM Version 5.0
JetASM 5.0 - New Features:
JetASM 5.0 contains a new subsystem I call XLLint. This is an XL parser that disassembles and analyzes XL binaries the same way the printer does and reports errors in the XL file. The current version will report errors where required attributes are missing, where combinations of attributes are missing or illegally combined, where extra attributes are included with operators that don't use them, and when the data class (E.g.. Array, XY, Box or Array) for an attribute is used illegally. Version 5.0 will report warnings where the data class is the same, but the type (E.g. ubyte, uint16, real32, etc.) is wrong or wasteful for the attribute. Notes are marked where optional attributes are included with operators.

The XLLint system is invoked by using the -dl command line parameter. XLLint does not operate on PCL5 files (yet!).

jetasm32 -dl testfile.xl -o testfile.lnt
For Windows users, there is an XLLint button on JetASM98's main dialog screen.

An example of an ERROR:  Here is a case of a  missing attribute and an attribute where it doesn't belong...

$print Operator #141 - ERROR: (MissingAttribute) ColorMapping is a required attribute
ubyte e1Bit ColorDepth
uint16 8 SourceWidth
uint16 1 SourceHeight
uint16_xy 256 256 DestinationSize
sint16 1 PatternDefineID
ubyte eTempPattern PatternPersistence
ubyte 0 CharCode
$print Operator #141 - ERROR: (IllegalAttribute) Attribute CharCode is illegal with operator BeginRastPattern
// Operator Position: 141
BeginRastPattern
Another error example...

ybyte_xy 0 0 ColorMapping
$print Operator #169 - ERROR: (IllegalAttributeDataType) Data type ubyte_xy is illegal for use with attribute colorMapping

Errors and Warnings are placed in the output file using the $print assembler directive. This allows the file to be edited and reassembled if desired. The other advantage to using $print over the // comment operator is that most editors will not syntax highlight elements of the error message if it begins with //.

An example of a WARNING:...

uint16 0 CharCode
$print Operator #141 - WARNING: Data Type sint16 may not be valid for attribute CharCode
An example of a NOTE:
ubyte eBackChAndErrPage ErrorReport // NOTE: Optional Attribute
BeginPage
At the end of the file output, a summary is printed...
// XLLint Results: 3 Errors, 1 Warning, 1 Note.
Future version of XLLint will be capable of detecting errors in the attribute data (range errors, illegal values, etc.) and even be able to mark inefficient usage of operators and attributes (E.G. Two or more NewPath operators without any other path operators between them).

 Features: 02/02/1999 JDA
Text2XL Version 1.3
Text2XL 1.3 - New Features:
I added support for duplex, punched paper (changes the margins) and stapling. I also added support for multiple copies. The new -? printout looks like this...

PCL XL Text->XL Filter. Revision: 1.3  (Feb  2 1999)
Copyright Hewlett-Packard Company, 1998, 1999.  All rights are reserved.

usage as a filter:
 tail textfile | text2xl [ options ] > [output]

usage as a file converter:
 text2xl [ options ] [inFile] [-o <outFile>]

Command Line Options:
  -? | -h This help output
  -o = path of the output file (default: stdout)
  -e = path for error & status output (default: stderr)
  -p = Print Page Number at the bottom of each page
  -s = Adjusts top margin down for a staple in upper left corner
  -3 = Selects 3 hole (prepunched) media type & adjust margins to fit
  -d = Selects duplex output
  -t n = Set tab stops at n space characters along the line
  -c n = Copy Count, n = copies to print
  -cc n = Host Collated Copies
  -cp n = Printer Collated Copies

For multiple copies, there is are two collate options. The -cc option tells Text2XL to just keep sending the entire document over and over again untill the desired number of copies has been printed. The -cp option lets Text2XL instruct the printer to handle the collation and sends one copy of the document. If the printer is equipped with enough memory or a disk drive, no problem. Otherwise the printer will display an out-of-memory message and you'll get one copy.

The rest of the new features (staple, duplex, prepunched paper, adjustable tab stops) are pretty self explanitory. If not, email me and I'll answer any questions.

I've also added a whole bunch of new comments to the source and cleaned up a couple areas of the code.

Enjoy.


Transfer interrupted!

TH="100%"> Features: 01/25/1999 JDA
JetASM 4.15
JetASM 4.15 - Bug Fix:
Oops! There were a couple problems with the strings. I forgot to handle embedded quotes, and if the line was too long, JetASM's margin settings kicked in and didn't give me a chance to wrap a string properly. I fixed this and any executables dated Jan 25th or later work as advertised.

 Features: 01/21/1999 JDA
JetASM 4.15
JetASM 4.15 - New Feature:
 I finally fulfilled a promise I made to myself and worked on getting the XL disassembler to scan ubyte_array data before putting it into the source file and testing whether the data could be displayed in "quoted string" format. I came up with a formula that decided that if less than 10% of the ubyte data was above 127, or below 32 (ASCII space) then the data would be output to the source file as a string. Above 10% control or unprintable content and the data would appear in the old Hex format. After running it on several representative files, it seems to work very will. The percentage can be changed up or down in future versions.

The PJL and XL stream header generally found at the beginning of an XL file will be displayed in this format...

// UEL Should Follow:
string* "\x1B%-12345X"

// PJL Should Follow:
string* "@PJL SET DUPLEX=OFF\n"
string* "@PJL SET PAGEPROTECT=AUTO\n"
string* "@PJL SET RESOLUTION=600\n"
string* "@PJL ENTER LANGUAGE=PCLXL\n"

// Stream Header Should Follow:
string* ") HP-PCL XL;2;0;Comment: Testing strings.\n"

Notice that JetASM now groups PJL commands under a single header, rather than prepending a header to each line of PJL as before.

An example of a disassembled Text operator is this...

ubyte_array "PCL XL Feature Reference" TextData
ubyte_array [
 56  67  59  26  73  60  25  56 // 8C;.I<.8
 44  44  28  50  34  44  25  67 // ,,.2",.C
 44  33  45  33  44  50  45   0 // ,!-!,2-.
] XSpacingData
Text

Because more than 10% of the XSpacingData is not printable (5 bytes out of 24), JetASM stuck to the Hex format for the spacing data.

This makes source listings derived from binary XL files much easier to read and understand. Another advantage to using quoted strings for font names and text data is that now the \%n can be used to insert parameters in the strings at compile time. (See version 4.14 release notes).

For the traditionalists in the crowd, I have added the -a option for disassembly to the command line versions of JetASM to turn this string feature off and revert to printing all ubyte_array data and PJL data as hex.


Bug Fixes 10/26/1998 JDA
JetASM 4.14
JetASM 4.14 - Note:
 I've tested JetASM on PCL files as far back as PCL 3.0 and it works great. I haven't tested it on standalone HPGL files (pre PCL4) but I suspect that if anywone needs to go that far back, I can work something out.
JetASM 4.14 - bug fix...
Subroutine parameters inside quoted strings are now supported. To differentiate the subroutine parameter from the rest of the text in the string, add a \ (backslash) before the % character and the parameter number. Example...

$beginsub gotoxy
    string* "\x1B*p\%1x\%2Y"
$endsub

$execsub gotoxy 100 200

Will results in this string in the final output

string* "\x1B*p100x200Y"

JetASM will accept any number for an argument except 0 (zero). Starting at the \%, JetASM parses until a non numeric character is encountered and passes the number to the parameter replacement routine. If there is a parameter, the\%n is replaced with the paramter text. If there is no cooresponding parameter, the original \%n will be left in the resulting string.

If there is a need to insert a subroutine parameter in front of a number, use another '\' to delimit the number. Example...

$beginsub gotoxy
    string* "\x1B*p500\%1\300\%2"
$endsub

$execsub gotoxy x Y
$execsub goto y X

Results?

string* "\x1B*p500x300Y"
strint* "\x1B*p500y300X"

Of course, this fix works for both XL and PCL files. I just used PCL as an example. The command line -man option, as well as the JetASM98's ReadMe button, have been updated with this information, and the -? or -h output has been updated and clarified.

 JetASM98 4.14  - new feature...
Because there is sometines a need to send the same file to multiple printers for testing, I have extended the printer destination in the Options dialog to include a name for both a local printer, and when JetASM98 is running on NT, a network printer. For the local printer, a shared name (\\host\printername format) or a local port (lpt1, com1, etc.) can be entered as the default destination when a local printer is to be used.

The server and printer name can be entered in the Network Printer control in two formats. If the printer is equipped with its own network card, and acts as its own server, then simply enter the name (or IP address) of the printer, or a single backslash and the name. If the printer is attached to a print server,  start with \\ (double backslash), then server name (or IP address), a single backslash, then the printer name. Example. Network printing support is only available when JetASM98 is running under NT.

\\hrb3445\LJ4000 where hrb3445 is the print server, and LJ4000 is the printer.

When the Print button on the main dialog is pressed, a dialog box pops up requesting a print destination, the choices are Local, Network, Display, and Cancel. In additon, the Local name field and the Network name field are editable. The default destination is filled in by JetASM98, but the operator can change the destination without affecting the default setting. This allows temporarily send the output to a different printer. The temporary printer name is remembered until JetASM98 is restarted, or the user opens the Options dialog.


Bug Fixes 10/26/1998 JDA
JetASM 4.12
JetASM 4.12 has fixes for the following bugs...
JetASM bungled the handling of the Y parameter in uint32_xy and sint32_xy data types, casting and sending it to the binary file as a uint16. This has been fixed and a 4.2 version of JetLIB has been published.
If HPGL mode is entered via ESC%0A, ESC%-12345X (UEL) closes the HPGL mode along with the usual EscE and Esc%0B operators.

While disassembling PCL, EscE and Esc%-12345X (UEL) didn't reset HPGL's label terminator (DT) to \x03. This is fixed.

New Features...
The PCL and HPGL statistics are now sorted by the Count field, in decending order.

The statisics output for XL was not well formatted and looked confusing. I  limited the printout to only those operators, attributes and data types that actually appear in the file, and cleaned up the column spacing for easer reading.

 

Release Notes 10/09/1998 JDA
JetASM 4.11
Features Added - JetASM / JetaASM98
New feature or a bug fix, depending on how you look at it. When Statistics was selected and a PCL file was disassembled, XL statistics data (all zeros, of course) was appended to the end of the source listing. I've modified JetASM to now print PCL statistics for PCL files.

An example output looks like this...

// PCL/HPGL Operator Statistics:
// fileSize, D:\TestFiles\51490.pcl   , 2934472

//  PCL Operator Statistics
//  Count : Operator Description

//     32 : Universal End-Of-Language
//     28 : Enter Language = PCL 5
//      8 : Reset
//      4 : Unit of Measure
//     28 : Enter Language = HP-GL/2
//  54720 : Transfer Raster by Row/Block : 2224737 Bytes Transfered
//      2 : Symbol Set Select (Primary)

//  HPGL Operator Statistics
//  Count : Operator Description

//     12 : initialize
//     12 : Select Pen
//     12 : Pixel Placement
//     12 : Transparency Mode
//     12 : Pen Width Unit Selection
//     12 : Pen Width
//     12 : Input P1 and P2
//     12 : Scale
//     23 : Polyline Encoded

The operators are listed in the order they are encountered in the file. Note that transfer operators also list the total number of bytes transferred by each type of operator.

Features Added - JetaASM98
Two new checkboxes have been added to the Options dialog, these concern JetASM98's automatic creation and use of file names when a source or binary file is to be written to disk. In the previous versions, and if these boxes are checked inVer4.11 and up, JetASM98 creates a file name rooted in the opened file and uses that as default. When these check boxes are cleared, JetASM98 will display a dialog box allowing you to name the file that is to be written.
.

Release Notes 10/06/1998 JDA
JetASM 4.10
Bugs Fixed - JetASM / JetaASM98
There was a bug in the HPGL's PE disassembly that caused the PE data to be displayed incorrectly. This meant that when the file was reassembled, the PE data was corrupted. Instead of just fixing the display of the hex data in a PE command, I changed it to allow editing the data. See the following note.
Features Added - JetASM / JetaASM98
JetASM now decodes and displays HPGL's PE command in human readable format. The data can be edited, and JetASM will re-encode the information during assembly.

Example, when JetaASM disassembles a PE command, the format of the output appears this way..

string* "PE"  // Polyline Encoded
PE_cmd [ = < 5978 4539 ; ]

Any information between the brackets of the PE_cmd will be encoded according to the HP-GL/2 Programmer's Guide.

There are syntax considerations, for example, to invoke the 7-bit Mode, you must enter \7 (backslash 7) to allow JetASM to differentiate between the Flag 7 and the number 7. Example...

PE_cmd [= \7 < 5978 4593 ; ]

Since JetASM will parse macros and definitions within the brackets, you can define labels to substitute for the single character flags, and use parameter substitution for any entity the PE command supports. This example uses both. The user sends the starting X and Y co-ordinates for a 300x300 pixel square to be drawn.

$define PenUp <
$define Absolute =
$define EndPE ;
$define SevenBit \7
$define FractionalData >

$beginsub MOVEANDDRAWSQUARE
string* "PE"
PE_cmd [Absolute SelPen 1 PenUp %1 %2 +300 0  0 +300  -300 0  0 -300 EndPE]
$endsub
.
.
.
$execsub MOVEANDDRAWDRAWSQUARE 1640 2189

The -p pre-processor option can be used when assembling files with PE commands where macros and subroutines are used to view the final output of the assembler.

JetASM does very little syntax checking on assembly. If a characters other than PE flags or numbers are entered between the brackets, JetASM will flag an error on assembly. However, any character preceded by a \ (backslash) will be entered into the stream as a literal. On a disassembly error, JetASM will stop decoding the PE data, put out an error comment, and finish the rest of the PE command in the hex_raw* format. JetASM may not be able to reassemble the resulting source.


Release Notes 07/09/1998 JDA
JetASM 4.09
Bugs Fixed - JetASM / JetaASM98
PCL - If there was a backspace character (hex 7F) in the text of a PCL file, and the character fell at the start of a string* statement, the PCL disassembler would hang. This has been fixed.

HPGL - The BR, BZ and CO HPGL operators are now recognized and commented on. The DT operator, (which sets the terminating character for the LB operator) is now parsed and the terminating character is used for all further LB operators encountered in the file. The ETX terminator is default when the disassembler is started.

I also discovered that not every UNIX version of JetASM32 was built with the latest source files and that some got less than complete PCL disassemblers. I have identified this as a problem using FTP and have changed my methods. The UNIX versions of JetASM will now disassemble the files the same way as the Windows & DOS versions.


Release Notes 06/30/1998 JDA
JetASM 4.07
Features Added - JetASM / JetaASM98
I've made JetASM's HPGL disassembler smarter. I've put each HPGL operator on its own line and added meaningful comments after each. Example:

string* "SP1"    // Select Pen
string* "PP1"    // Pixel Placement
string* "TR0"    // Transparency Mode
string* "LA1,4,2,1"    // Line Attributes
string* "WU0"    // Pen Width Unit Selection
string* "PW0"    // Pen Width
string* "UL2,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5;"    // User Defined Line Types
string* "UL5,40,25,10,25;"    // User Defined Line Types
string* "UL6,35,15,10,15,10,15;"    // User Defined Line Types
string* "LT0,8.5,1"    // Line Types

Currently, the PE operator is simply followed by hex_raw* information until the terminating ';'. Example:

string* "PE"  // Polyline Encoded
hex_raw* [
eb c2 c1 bf df c2 c1 bf d5 c2 c1 bf cf c2 c1 bf cd c2 c1 bf cb c2 c1 bf cb
c2 c1 bf c9 c2 c1 bf c9 c2 c1 bf c7 c2 c1 bf c7 c2 c1 bf c7 c2 c1 bf c7 c2
]
 string* ";"    // Polyline Encoded

Future plans call for decoding and displaying the PE data, allowing modification and reencoding the data.

Known defects
The current version of JetASm does not recognize the BR, BZ or CO HPGL operators. This will be corrected for 4.08.
Also, the DT operator, (which sets the terminating character for the LB operator) currently does not get parsed. Look to 4.08 for a fix.

Release Notes 06/16/1998 JDA
JetASM 4.06
Features Added - JetASM / JetaASM98

Release Notes 06/09/1998 JDA
JetASM 4.05
Features Added - JetASM
 
Release Notes 05/14/98 JDA
JetASM 4.01
Features Added - JetASM Bugs Fixed - JetASM

Release Notes 05/09/98 JDA
JetASM 4.00
Features Added - JetASM & JetASM98 Bugs Fixed - JetASM & JetASM98

Release Notes 04/06/98 JDA
JetASM 3.84
Bugs Fixed - JetASM98 When the macro parser was modified to ignore macro names in strings (See the 07/17/1997 release notes) parameter substitution inside strings was also disabled. For example, the string (@PJL SET RESOLUTION = %1) would not change the %1 to the value of the first parameter sent by $execsub. In this version of JetASM, strings inside parens () will have parameter expansion and other macro or keyword substitution will be performed. Strings inside quote marks (") do not have macro expansion capability in this version. So, if you want the string (use the eInch enumeration) to not come out at (use the 0 enumeration), use quote marks "use the eInch enumeration".
 
Product Note:

Release Notes 03/20/98 JDA
JetASM98 4.00 Beta 2
Bugs Fixed - JetASM98 When the View Source button was pushed, an unititialized variable sometimes didn't allow launching the editor. This is fixed.
 
Features Added - JetASM98 By popular demand (well, Jeff asked me) I added an Exit button to supplement the X box in the caption. Your welcome, Jeff.

I also added a button marked Readme that generates a copy of the JetASM user's manual (the command line -man option) and starts the Source editor to display it. Unlike all the other Viewer operations, this one does not cause JetASM98 to wait until the editor is finished before allowing JetASM98 to continue, so you can launch a Readme session and leave it open while you work on other files. The document is permanently stored on disk to make for quicker launch, or to allow reading when JetASM98 is not running. When the Readme button is pressed, JetASM98 checks the file date of the document against its own time stamp and if the document is older, JetASM98 automatically generates an up to date copy before launching the editor.


Release Notes 03/18/98 JDA
JetASM98 4.00 Beta 1
JetASM98, a new Version of MainJET

Release Notes 12/05/97 JDA
MainJET Version 3.82
Bugs Fixed - JetASM When the macro parser was modified to ignore macro names in strings (See the 07/17/1997 release notes) parameter substitution inside strings was also disabled. For example, the string (@PJL SET RESOLUTION = %1) would not change the %1 to the value of the first parameter sent by $execsub. In this version of JetASM, strings inside parens will only have parameter expansion performed on attributes that begin with % and fall between %1 and %99. Any other macro or keyword substitution will not be performed. Strings inside quote marks (") do not have macro expansion capability in this version. Bugs Fixed - MainJET When a new project is started by opening a source or binary file, the <new> tag in front of the project filename , which indicates that the file does not yet exist on disk, would not go away after the project file was saved and the file then did exist. This has been fixed.

Release Notes 10/10/97 JDA
MainJET Version 3.81
New Features - MainJET NOTE: Technically, these are features that should have been in MainJET all along.

There is now a dialog box displayed to allow the user to enter a string in response to JetASM's $input directive. The dialog box allows entering a string up to 2047 characters long, using all the standard Windows line editing features. After the line is entered, either click the Ok button, or hit the Enter key to send the string back to JetASM. If a NULL (empty) string is entered, a warning dialog will be displayed. Clicking on the Yes to All button will disable the NULL string warnings for any further $input directives found during that assembly.

MainJET will remember each $input string and log them in the project file. Then each time the source file is assembled, MainJET will use the last entered string as the default. Most of the time just clicking Ok will all that will be needed when assembling over and over again. Where this falls apart is if you edit the source file and add or delete $input directives. Then MainJET will be out of sync for one assemble.

The $print directive output went into the bit-bucket in previous versions of MainJET. It now send output to the status window. The status window will not close automatically at the end of the assemble if messages from $print are present. Clicking on the Close button will close the status window.


Release Notes 09/26/97 JDA
MainJET Version 3.80
New Features - MainJET Bugs Fixed - MainJET In the Rebuild dialog, the Cancel button acted the same as the Current button. This has been fixed. When you click Cancel, the dialog box will be closed and no further action will occur.

On projects with multiple include files, one of the include file names appeared as the Project Name in the main dialog. This could lead to the include file being overwritten by project information. This has been corrected.


Release Notes 09/16/97 JDA
MainJET Version 3.71
Bugs Fixed - MainJET
Release Notes: 07/17/1997 JDA
JetASM32 Version 3.70
MainJET Version 3.70

NOTE: Because MainJET is a GUI front end for JetASM, all features and fixes listed for JetASM apply to MainJET as well.

Bugs fixed - JetASM Parsing Tokens in byte arrays

A bug occurred when the ( ) delimiters are used to indicate "string" for the ubyte_array data types. While scanning a line for macros and enumerations, JetASM did not exclude the data inside the parens from the scan. If you entered the source line

ubyte_array (This attribute is the eInch enumeration) CommentData
EchoComment

JetASM would translate the eInch to the 0 character, converting the line to read

(This Attribute uses the 0 enumeration)

This has been fixed.

New Features - JetASM32 In addition to the above fix, full ASCII string support has been added to JetASM. The above example line can now be entered like this

ubyte_array "This attribute is the eInch enumeration" CommentData
EchoComment

In addition, several standard programmer's string options have been added. These (as listed by the -man command line option) are

String Constants:

\" Embedded Quote
\\ Embedded Backslash
\' Embedded Single Quote
\? Embedded Question Mark
Escape Sequences: \a BEL (0x07)
\b BS (0x08)
\f FF (0x0C)
\n LF (0x0A)
\r CR (0x0D)
\t TAB (0x09)
\v VT (0x0B)
\0 OCT up to three octal digits
\x HEX up to 4 HEX digits
\X HEX up to 4 HEX digits
Example,

ubyte_array "This attribute is the \"eInch\" enumeration" CommentData
EchoComment

would appear as

This Attribute is the "eInch" enumeration

Strings can be concatenated two ways, this one-line method would print as one string.

ubyte_array "This attribute" " is the eInch enumeration" CommentData
EchoComment

Multiple lines of strings can be placed like this

ubyte_array "This attribute" \
" is the eInch enumeration" \
" in use for this particular example" CommentData
EchoComment

This following format is also legal, although tricky. There cannot be any characters other than the CRLF, whitespace or otherwise, to the right of the last '\' on the line.

ubyte_array "This attribute \
is the eInch enumeration \
in use for this particular example" CommentData
EchoComment

When the binary is disassembled, the line will be disassembled into the old ubyte_array hex format. NOTE: Under version 2.1, there will be a new string data type, already supported by JetASM. The string data type (an alias for ubyte_array) is scheduled to be supported in PCL-XL V2.1 in the future, so don't use it in your source files till then.

In addition, for those UEL and @PJL commands at the beginning and end of the source file, you can now use the new assembler operator string* to replace hex_raw*. So instead of keying in the line

hex_raw*
[
40 50 4a 4c 20 45 4e 54 45 52 20 4c 41 4e 47 55
41 47 45 20 3d 20 50 43 4c 58 4c 0a
]

these lines can be entered like this

string* "\x1B%-12345X"
string* "@PJL ENTER LANGUAGE = PCLXL\n"

Again, when the binary is disassembled, these lines will be disassembled into the old hex_raw* format.

PCL-XL Version 2.0 Support

All features in the current release of 2.0 PCL-XL are fully supported in JetASM.

New Features - MainJET File Extensions

MainJET users can now specify multiple file extensions in the Options|File Extensions: entry. Just separate extensions with the ';' character, example, "cht;prn;obj" for Default PCL-XL File Extensions:. All files with the entered extensions will be displayed in any open/save file dialog box. The first extension in each field will be used as the default when MainJET forms default file names.

Of course, under NT and Win95, extensions can be any case, any characters (except ';') and up to 128 characters long. JetASM32.exe supports all NT and Win95 long file names and extensions.

File Dependencies

MainJET can now keep track of files that are included in the assemble using the $include, $include_raw, and $include_bmp assembler directives. The Source Files: filename is now a drop-down list. You can select any dependent file (after assembling the root source file at least once) by clicking on the source file name to drop down the list, then selecting the include file your interested in. MainJET keeps track of a dependent file's usage, so a file included with $include will be edited by the program named in Options|Source Editor:. A file included with the $include_raw directive will be viewed/edited by the program named in Options|Binary (HEX) File Operations: and any file included with the $include_bmp directive will be edited by the program named in Options|Bitmap Editor:. The File Details button will bring up a dialog box giving details about the currently highlighted file.

These dependent files are checked for age dependencies against the root source file, as well as the binary file, whenever an unlocked binary file is operated on.

Makefiles and Scripts

MainJET can now generate makefiles and script/batch files from the information in the project file. Makefiles and scripts can be generated for DOS or UNIX based systems. There is a DOS->UNIX mapping table that can be edited through Options|Edit Drive Mapping or through Makefile|Map DOS Drives when the UNIX flavor button is selected. Each DOS drive letter, A: through Z:, can be assigned an equivalent UNIX path.

To generate a makefile or script, suitable for make or GNUmake, open a project and with the Project: button selected, press the Makefile button. You will be presented with a file name and a Create, Edit and Close buttons. If Edit is dimmed, then the file name listed does not yet exist and only Create is active. If the file does exist, you can Create a new one or Edit the current one. You can also select a flavor of file (DOS or UNIX), and whether you want a makefile or script (known as a Batch file under DOS).

If UNIX is the selected flavor, then any DOS drive letter found in the project's paths will be mapped to the equivalent UNIX path (if the path is specified in the Map DOS drives dialog) and back slashes '\' will be converted to forward slashes '/' before being written to the script or makefile. If no path is entered for a given drive letter, the drive letter and colon characters will be replaced with a single forward slash '/'.

JetASM -man option

You can now view the JetASM -man text from MainJET. Simply open a project, select the Source File: radio button, and the context button Manual will appear. Click on it and the JetASM -man text will be loaded into the Source Editor.