;+ ; Macro: CBTAR2 NCHAR,RADIX,SIGN,FILL ; Set R2 equal to mask required for system library routine $CBTA (Convert ; Binary (value in R1) To Ascii (string address in R0)) ; Where: ; NCHAR - number of characters to result from conversion ; RADIX - radix of conversion....one of: ; O -- octal ; D -- decimal ; H -- hexadecimal ; B -- binary ; n -- numeric base n ; SIGN - flag for signed or unsigned value conversion....one of: ; U -- unsigned ; S -- signed ; FILL - flag for zero-fill characteristic....one of: ; ZERO -- fill with zeroes ; SPACE -- fill with spaces ; NONE -- left-justify string with no fill characters ; ; Example: ; CBTAR2 4,D,S,NONE ;convert 4 signed decimal digits ; ;if R1 < 1000., print < 4 digits ; ; CBTAR2 3,8.,U,ZERO ;convert 3 unsigned octal digits ; ;right-justified with leading zeroes ;- .MACRO CBTAR2 NCHAR,RADIX,SIGN,FILL .NLIST $$$NCH = NCHAR * 4000 $$$RDX = -1 $$$SGN = -1 $$$FIL = -1 .IIF IDN,RADIX,O $$$RDX=8. .IIF IDN,RADIX,D $$$RDX=10. .IIF IDN,RADIX,H $$$RDX=16. .IIF IDN,RADIX,B $$$RDX=2 .IIF LT,$$$RDX $$$RDX=RADIX .IIF IDN,SIGN,U $$$SGN=0 .IIF IDN,SIGN,S $$$SGN=400 .IIF LT,$$$SGN .ERROR ;BAD SIGN ARG IN CBTAR2 .IIF IDN,FILL,ZERO $$$FIL=1000 .IIF IDN,FILL,SPACE $$$FIL=3000 .IIF IDN,FILL,NONE $$$FIL=0 .IIF LT,$$$FIL .ERROR ;BAD FILL ARG IN CBTAR2 $$$$R2=$$$NCH!$$$RDX!$$$SGN!$$$FIL .LIST MOV #$$$$R2,R2 ;SET CBTA CONVERSION CHARACTERISTICS .ENDM