//dwv:dword
//wNumber:dword
//iTopDigit:int
//wz:dword
//Digit:array[1..8] of char
L L#87654321 //test number
T #dwNumber
L #dwNumber
L L#9999999 //if greater than 9,999,999 reduce it down before converting to bcd
>D
JC tob
DTB //else convert to bcd
T #dwv //and make top digit 0
L 0
T #iTopDigit
JU pas //convert to chars
tob: NOP 0
TAK
L L#10000000 //find out number of 10,000,000 in number
/D
T #iTopDigit //to form top digit
L L#10000000
*D
L #dwNumber
TAK
-D //now take off number of 10,000,000 so we can use BCD convert
DTB
T #dwv
pas: NOP 0
L #dwv //now get nibbles of number and form character result
T #wz
LAR1 P##wz
L B [AR1,P#0.0]
AW W#16#F
+ 48
T #Digit[7]
L #iTopDigit
ITB
AW W#16#F
+ 48
T #Digit[8]
L B [AR1,P#1.0]
AW W#16#F
+ 48
T #Digit[5]
L B [AR1,P#1.0]
SRW 4
AW W#16#F
+ 48
T #Digit[6]
L B [AR1,P#2.0]
AW W#16#F
+ 48
T #Digit[3]
L B [AR1,P#2.0]
SRW 4
AW W#16#F
+ 48
T #Digit[4]
L B [AR1,P#3.0]
AW W#16#F
+ 48
T #Digit[1]
L B [AR1,P#3.0]
SRW 4
AW W#16#F
+ 48
T #Digit[2]