From: notsaying@nospicedham.invalid.org   
      
   On Thu, 05 Apr 2018 09:10:04 GMT, "Kerr-Mudd,John"   
    wrote:   
      
   > On Thu, 05 Apr 2018 08:57:47 GMT, "Kerr-Mudd,John"   
   > wrote:   
   >   
   >> On Wed, 04 Apr 2018 09:15:43 GMT, "wolfgang kern"    
   >> wrote:   
   >>   
   >>> Kerr-Mudd,John wrote:   
   >>>   
   >>>>>>> Criticisms welcome:   
   >>>   
   >>>   
   >>> Yeah, a LUT would be overkill. A bit reordering and CMOVcc, SETcc   
   >>> could save some jumps.   
   >> Actually, it's OK   
   >>   
   []   
   >   
   > Now contemplating SMC to make all these redundant.   
   > (have to drop EXP as an option)   
   >   
   Nope, space to put it back in;   
      
   BE8000AC9891E8A7007663954EAC3C20E1FB745A50E8980091587652982C253C   
   0A774B3C027505E8C600EB1299BE9A01D0E001C68B34958936E901E8AB00BF96   
   01B9680080FB10740AB12009C07904F7D8B12D31D2F7F3923C0A1C692F88054F   
   9209C075EE880D575AB409CD21C3BA7301EBF655736167652069733A2063616C   
   63206E756D31205B2B2D2A2F25262728295D206E756D320D0A24F7F121C8F7F1   
   09C831C8F7E101C8F7E129C8F7F1F7F1AC3C20E1FB7431BB0A003C687503B310   
   AC5531FF3C2D74034F4E4131EDAC3C30720E244FD4379895F7E3720B01C5E2ED   
   954F7B02F7D8F85DC301C84D790192C389E849F7E57202E2FAC3   
      
      
   161D:0100 BE 80 00 mov si,0080   
   161D:0103 AC lodsb   
   161D:0104 98 cbw   
   161D:0105 91 xchg ax,cx   
   161D:0106 E8 A7 00 call 01B0   
   161D:0109 76 63 jbe 016E   
   161D:010B 95 xchg ax,bp   
   161D:010C 4E dec si   
   161D:010D AC lodsb   
   161D:010E 3C 20 cmp al,20   
   161D:0110 E1 FB loopzw 010D   
   161D:0112 74 5A jz 016E   
   161D:0114 50 push ax   
   161D:0115 E8 98 00 call 01B0   
   161D:0118 91 xchg ax,cx   
   161D:0119 58 pop ax   
   161D:011A 76 52 jbe 016E   
   161D:011C 98 cbw   
   161D:011D 2C 25 sub al,25   
   161D:011F 3C 0A cmp al,0A   
   161D:0121 77 4B ja 016E   
   161D:0123 3C 02 cmp al,02 ; '=exp is special   
   161D:0125 75 05 jnz 012C   
   161D:0127 E8 C6 00 call 01F0   
   161D:012A EB 12 jmp 013E   
   161D:012C 99 cwd   
   161D:012D BE 9A 01 mov si,019A ;LUT   
   161D:0130 D0 E0 shl al,1   
   161D:0132 01 C6 add si,ax   
   161D:0134 8B 34 mov si,[si]   
   161D:0136 95 xchg ax,bp   
   161D:0137 89 36 E9 01 mov [01E9],si ;SMC! DoCalc   
   161D:013B E8 AB 00 call 01E9   
   PrtNum:   
   161D:013E BF 96 01 mov di,0196   
   161D:0141 B9 68 00 mov cx,0068   
   161D:0144 80 FB 10 cmp bl,10   
   161D:0147 74 0A jz 0153   
   161D:0149 B1 20 mov cl,20   
   161D:014B 09 C0 or ax,ax   
   161D:014D 79 04 jns 0153   
   161D:014F F7 D8 neg ax   
   161D:0151 B1 2D mov cl,2D   
   161D:0153 31 D2 xor dx,dx   
   161D:0155 F7 F3 div bx   
   161D:0157 92 xchg ax,dx   
   161D:0158 3C 0A cmp al,0A   
   161D:015A 1C 69 sbb al,69   
   161D:015C 2F das   
   161D:015D 88 05 mov [di],al   
   161D:015F 4F dec di   
   161D:0160 92 xchg ax,dx   
   161D:0161 09 C0 or ax,ax   
   161D:0163 75 EE jnz 0153   
   161D:0165 88 0D mov [di],cl   
   161D:0167 57 push di   
   161D:0168 5A pop dx   
   161D:0169 B4 09 mov ah,09   
   161D:016B CD 21 int 21   
   161D:016D C3 ret   
   PrtUsage:   
   161D:016E BA 73 01 mov dx,0173   
   161D:0171 EB F6 jmp 0169   
      
   LUT   
   161D:019A F7 F1 div cx   
   161D:019C 21 C8 and ax,cx   
   161D:019E F7 F1 div cx   
   161D:01A0 09 C8 or ax,cx   
   161D:01A2 31 C8 xor ax,cx   
   161D:01A4 F7 E1 mul cx   
   161D:01A6 01 C8 add ax,cx   
   161D:01A8 F7 E1 mul cx   
   161D:01AA 29 C8 sub ax,cx   
   161D:01AC F7 F1 div cx   
   161D:01AE F7 F1 div cx   
      
   GetNum:   
   161D:01B0 AC lodsb   
   161D:01B1 3C 20 cmp al,20   
   161D:01B3 E1 FB loopzw 01B0   
   161D:01B5 74 31 jz 01E8   
   161D:01B7 BB 0A 00 mov bx,000A   
   161D:01BA 3C 68 cmp al,68   
   161D:01BC 75 03 jnz 01C1   
   161D:01BE B3 10 mov bl,10   
   161D:01C0 AC lodsb   
   161D:01C1 55 push bp   
   161D:01C2 31 FF xor di,di   
   161D:01C4 3C 2D cmp al,2D   
   161D:01C6 74 03 jz 01CB   
   161D:01C8 4F dec di   
   161D:01C9 4E dec si   
   161D:01CA 41 inc cx   
   161D:01CB 31 ED xor bp,bp   
   161D:01CD AC lodsb   
   161D:01CE 3C 30 cmp al,30   
   161D:01D0 72 0E jb 01E0   
   161D:01D2 24 4F and al,4F   
   161D:01D4 D4 37 aam 37   
   161D:01D6 98 cbw   
   161D:01D7 95 xchg ax,bp   
   161D:01D8 F7 E3 mul bx   
   161D:01DA 72 0B jb 01E7   
   161D:01DC 01 C5 add bp,ax   
   161D:01DE E2 ED loopw 01CD   
   161D:01E0 95 xchg ax,bp   
   161D:01E1 4F dec di   
   161D:01E2 7B 02 jnp 01E6   
   161D:01E4 F7 D8 neg ax   
   161D:01E6 F8 clc   
   161D:01E7 5D pop bp   
   161D:01E8 C3 ret   
   DoCalc:   
   161D:01E9 01 C8 add ax,cx   
   161D:01EB 4D dec bp   
   161D:01EC 79 01 jns 01EF   
   161D:01EE 92 xchg ax,dx   
   161D:01EF C3 ret   
   ExpNum:   
   161D:01F0 89 E8 mov ax,bp   
   161D:01F2 49 dec cx   
   161D:01F3 F7 E5 mul bp   
   161D:01F5 72 02 jb 01F9   
   161D:01F7 E2 FA loopw 01F3   
   161D:01F9 C3 ret   
      
   ; 7 spare   
      
      
      
      
   --   
   Bah, and indeed, Humbug.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|