ASMFLOW updates and bug fixes for version 1.21 1. The default values for CPU clock speed on page 5-3 in the manual are incorrect. The new values are as follows: 8088 - 5 Mhz 80286 - 10 Mhz 80386 - 20 Mhz 2. Stack sizing calculations were not always correct. The correction changed the place where the stack size is summed. 3. Recursive code caused an incorrect stack size by incorrectly assuming nesting to 16 levels. Currently, duplicates must be displayed to get the correct stack size for one level of nesting in recursive code. A future release will include a better method for helping to deal with calculating the stack size for recursive code. Call or write if you have suggestions. 4. Some error messages are now more complete. Previously some messages were missing the file name and line number where the error was detected. 5. IRP, IRPC, REPT blocks did not work properly and have been fixed in conjunction with item 6 below. 6. Support has been added for nested MACRO and PROC definitions up to 16 levels deep. Because of this support the program now uses a minimum of 16K more memory. Register analysis assumes that each procedure is structured such that it stands on its own. Error message 19 (page D-3) has been changed to "Block nesting error" to indicate an error in the nesting of MACROS and/or PROCedures. Error message 22 has been added: "Block Nesting Limit exceeded" to indicate that the limit of 16 nested macros/procs has been exceeded. Note: Now that procedures can be nested you may be confused by the flow charts if your procedures are not "pure" in structure. In other words, ASMFLOW assumes that you do not allow the execution of one procedure to fall through into the next procedure. It is recommended that procedures be nested as follows: Main proc ... Ret sub_proc1 proc ... Ret sub_proc1 endp sub_proc2 proc ... Ret sub_proc2 endp main endp 7. A system crash sometimes occurred when reference was made to a label that was not a procedure when printing a tree diagram. This was due to use of an unintialized variable and has been corrected. 8. Code is no longer required to be inside a PROC/ENDP pair of directives in order for it to be flow charted. 9. Support for the following features in MASM 5.1 has been added: a. All ELSEIF directives b. continuation lines up to 512 characters c. local labels (new @@: feature) d. USES portion of the PROC directive e. local stack variables f. local/global labels (HLL support for labels with two colons and repeated use of labels with one colon) NOT implemented 10. More than 10 parameters and/or switches on the command line may cause incorrect operation. This has been partially fixed. Note the top of page 3-2 in the manual. /0 sets all switches to zero, /1 sets all switches to 1, etc. 11. Saving setups on some mono systems may have caused a system crash. This was due to an error that incorrectly caused the system to wait for a CGA video retrace only during the save function. This has been corrected. 12. An uppercase/lowercase mismatch in labels in a jump statements caused flow charts to incorrectly indicate that a jump was outside the current procedure. This has been corrected so that any case is properly matched. 13. Tabs in MAKE files were not properly handled on a dependancy line. This has been corrected to properly allow spaces and tabs. 14. A problem in printing the called by cross-reference list has been corrected. 15. Processing the output from Sourcer(tm) may have caused a crash due to an error in the use of some extended ASCII characters. This has been corrected so that extended ASCII characters are allowed in comments or string constants.