: MU/MOD        ( ud# un1 -- r d#quot ) >R 0 R@ UM/MOD R> SWAP >R UM/MOD R> ;
: <#            ( -- )                  PAD PADSIZE + HLD ! ;
: HOLD          ( char -- )             HLD @ 1- DUP HLD ! C! ;
: >DIGIT        ( n -- c )              DUP 9 > 7 AND + [CHAR] 0 + ;
: #             ( ud1 -- ud2 )          BASE @ MU/MOD ROT >DIGIT HOLD ;
: #S            ( ud -- 0 )             BEGIN # 2DUP OR WHILE REPEAT ;
: SIGN          ( x -- )                0< IF [CHAR] - HOLD THEN ;
: #>            ( ud -- addr len )      2DROP HLD @ <# HLD @ OVER - ;

0386 0BF4     MU/MOD      SP=SP-1
0387 3801                 Push S1 to return stack
0388 5001                 S0=W=S1
0389 0013                 S1=0
038A 800E                 Call 001C:_UM/MOD
038B 3C00                 Pop S0 from return stack
038C 3801                 Push S1 to return stack
038D 5010                 S1=W=S0
038E 0814                 SP=SP+1
038F 800E                 Call 001C:_UM/MOD
0390 3C00                 Pop S0 from return stack
0391 0409                 Return
0392 00861001 <#          G0=#4097
0394 00961023             G1=#4131
0396 0009                 Return, without flush 
0397 6E98                 Data(G0)=G1
0398 00861001 HOLD        G0=#4097
039A 66F8                 x=Data(G0)
039B 64F8                 G7=x, x=Data(G0)
039C 0BF4                 SP=SP-1
039D 530F                 S0=W=G7-1
039E 00861001             G0=#4097
03A0 6E08                 Data(G0)=S0
03A1 6E10                 Data(S0)=S1
03A2 0009                 Return, without flush 
03A3 0824                 SP=SP+2
03A4 00860009 >DIGIT      G0=#9
03A6 4108                 W=S0+(-G0), latch CF
03A7 0FF3                 G7=-1 when W<=0 xor V=0 (>) else 0
03A8 00E60007             G6=#7
03AA 4DEF                 G6=W=G6 AND G7
03AB 420E                 W=S0+G6, latch CF
03AC 00D5                 G5=W
03AD 00060030             S0=#48
03AF 0009                 Return, without flush 
03B0 4A0D                 S0=W=S0+G5, latch CF
03B1 FFFF                 
03B2 0BF4     #           SP=SP-1
03B3 00061000             S0=#4096
03B5 80B1                 Call 0162:@
03B6 81C3                 Call 0386:MU/MOD
03B7 8085                 Call 010A:ROT
03B8 81D2                 Call 03A4:>DIGIT
03B9 81CC                 Call 0398:HOLD
03BA 0409                 Return
03BB FFFF                 
03BC 81D9     #S          Call 03B2:#
03BD 8051                 Call 00A2:2DUP
03BE 809B                 Call 0136:OR
03BF 4400                 W=S0
03C0 0720                 Skip when W<>0, DROP
03C1 1001                 Branch: P=03C3
03C2 1FF9                 Branch: P=03BC:#S
03C3 0409                 Return
03C4 8081     SIGN        Call 0102:0<
03C5 4400                 W=S0
03C6 0720                 Skip when W<>0, DROP
03C7 1004                 Branch: P=03CC
03C8 0BF4                 SP=SP-1
03C9 0006002D             S0=#45
03CB 81CC                 Call 0398:HOLD
03CC 0409                 Return
03CD FFFF                 
03CE 8055     #>          Call 00AA:2DROP
03CF 0BF4                 SP=SP-1
03D0 00061001             S0=#4097
03D2 80B1                 Call 0162:@
03D3 81C9                 Call 0392:<#
03D4 0BF4                 SP=SP-1
03D5 00061001             S0=#4097
03D7 80B1                 Call 0162:@
03D8 804C                 Call 0098:OVER
03D9 808F                 Call 011E:-
03DA 0409                 Return
