Utility Routines ---------------- The following routines are all Utility Routines. The first routines listed below compute the number of print positions required by a 16-bit and 32-bit signed and unsigned integer value. UlSize is like the LSize except it treats the value in DX:AX as an unsigned long integer. The next set of routines in this section check the character in the AL register to see whether it is a hexidecimal digit, if it alphabetic, if it is a lower case alphabetic, if it is a upper case alphabetic, and if it is numeric. Then there are some miscellaneous routines (macros) which process command line parameters, invoke DOS and exit the program. Routine: ISize --------------- Category: Utility Routine Register on entry: AX- 16-bit value to compute the output size for. Register on return: AX- Number of print positions required by this number (including the minus sign, if necessary). Flags affected: None Example of usage: mov ax, I ISize puti ;Prints positions ;req'd by I. Description: This routine computes the number of print positions required by a 16-bit signed integer value. ISize computes the minimum number of character positions it takes to print the signed decimal value in the AX register. If the number is negative, it will include space for the minus sign in the count. Include: stdlib.a or util.a Routine: USize --------------- Category: Utility Routine Register on entry: AX- 16 bit value to compute the output size for Register on return: AX- number of print positions required by this number (including the minus sign, if necessary) Flags affected: None Example of usage: mov ax, I USize puti ;prints position ;required by I Description: This routine computes the number of print positions required by a 16-bit signed integer value. It also computes the number of print positions required by a 16-bit unsigned value. USize computes the minimum number of character positions it will take to print an unsigned decimal value in the AX register. If the number is negative, it will include space for the minus sign in the count. Include: stdlib.a or util.a Routine: LSize --------------- Category: Utility Routine Register on entry: DX:AX - 32-bit value to compute the output size for. Register on return: AX - Number of print positions required by this number (including the minus sign, if necessary). Flags affected: None Example of Usage: mov ax, word ptr L mov dx, word ptr L+2 LSize puti ;Prints positions ;req'd by L. Description: This routine computes the number of print positions required by a 32-bit signed integer value. LSize computes the minimum number of character positions it will take to print the signed decimal value in the DX:AX registers. If the number is negative, it will include space for the minus sign in the count. Include: stdlib.a or util.a Routine: ULSize ---------------- Category: Utility Routine Registers on Entry: DX:AX - 32-bit value to compute the output size for. Registers on return: AX - number of print positions required by this number Flags affected: None Example of Usage: mov ax, word ptr L mov dx, word ptr L+2 ULSize puti ; Prints positions req'd by L Description: ULSize computes the minimum number of character positions it will take to print an unsigned decimal value in the DX:AX registers. Include: stdlib.a or util.a Routine: IsAlNum ----------------- Category: Utility routine Register on entry: AL - character to check. Register on return: None Flags affected: Zero flag - set if character is alphanumeric, clear if not. Example of usage : mov al, char IsAlNum je IsAlNumChar Description : This routine checks the character in the AL register to see if it is in the range A-Z, a-z, or 0-9. Upon return, you can use the JE instruction to check to see if the character was in this range (or, conversely, you can use JNE to see if it is not in range). Include: stdlib.a or util.a Routine: IsXDigit ------------------ Category: Utility Routine Register on Entry: AL- character to check Registers on Return: None Flags Affected: Zero flag- Set if character is a hex digit, clear if not Example of Usage: mov al, char IsXDigit je IsXDigitChar Description: This routine checks the character in the AL register to see if it is in the range A-F, a-f, or 0-9. Upon return, you can use the JE instruction to check to see if the character was in this range (or, conversely, you can use jne to see if it is not in the range). Include: stdlib.a or util.a Routine: IsDigit ------------------ Category: Utility Routine Register on entry: AL- Character to check Register on return: None Flags affected: Zero flag- set if character is numeric, clear if not. Example of Usage: mov al, char IsDigit je IsDecChar Description: This routine checks the character in the AL register to see if it is in the range 0-9. Upon return, you can use the JE instruction to check to see if the character was in the range (or, conversely, you can use JNE to see if it is not in the range). Include: stdlib.a or util.a Routine: IsAlpha ------------------ Category: Utility Routine Register on entry: AL- Character to check Register on return: None Flags affected: Zero flag- set if character is alphabetic, clear if not. Example of Usage: mov al, char IsAlpha je IsAlChar Description: This routine checks the character in the AL register to see if it is in the range A-Z or a-z. Upon return, you can use the JE instruction to check to see if the character was in the range (or, conversely, you can use JNE to see if it is not in the range). Include: stdlib.a or util.a Routine: IsLower ---------------- Category: Utility Routine Registers on Entry: AL- character to test Registers on Return: None Flags Affected: Zero = 1 if character is a lower case alphabetic character Zero = 0 if character is not a lower case alphabetic character Example of Usage: mov AL, char ; put char in AL IsLower ; is char lower a-z? je IsLowerChar ; if yes, jump to IsLowerChar Description: This routine checks the character in the AL register to see if it is in the range a-z. Upon return, you can use the JE instruction to check and see if the character was in this range (or you can use JNE to check and see if the character was not in this range). This procedure is implemented as a macro for high performance. Include: stdlib.a or util.a Routine: IsUpper ----------------- Category: Utility Routine Registers on Entry: AL- character to check Registers on Return: None Flags Affected: Zero flag - set if character is uppercase alpha, clear if not. Example of Usage: mov al, char IsUpper je IsUpperChar Description: This routine checks the character in the AL register to see if it is in the ranger A-Z. Upon return, you can use the JE instruction to check to see if it not in the range). It uses macro implementation for high performance. Include: stdlib.a or util.a