inicomp$ nasm -I ../lmacros/ testfile.asm -D_MVCOMP -o testfile.com -D_DEBUG0 && dosemu -dumb -td -kt -K "$PWD" -q -quiet -E "ldebug testmv.com fooz.mv fooz.bin -v -b" About to Execute : ldebug testmv.com fooz.mv fooz.bin -v -b lDebug (2024-07-09) -g Unexpected breakpoint interrupt AX=FFFF BX=0001 CX=001E DX=0000 SP=0AEC BP=0AEE SI=0000 DI=0000 DS=9FFD ES=2C18 SS=2B68 CS=2B68 IP=0390 NV UP EI PL ZR NA PE NC 2B68:0390 E84103 call 06D4 -d ds:si l dxcx 9FFD:0000 66 02 6F 6F 7A 66 03 F0-03 F0 03 20 62 08 61 72 f.oozf..... b.ar 9FFD:0010 68 61 67 73 68 73 67 73-66 6A 64 6A 64 0A hagshsgsfjdjd. -r v0 esdi -p dest=0000_0005h src=0000_0008h Match at minus 0004h length 0010h. dest=0000_0015h src=0000_000Ah Match at minus 0004h length 0010h. dest=0000_0025h src=0000_000Ch Match at minus 0004h length 0003h. AX=0000 BX=0002 CX=0000 DX=0009 SP=0AEC BP=0AEE SI=000E DI=0009 DS=9FFE ES=2C1B SS=2B68 CS=2B68 IP=0393 NV UP EI PL ZR NA PE NC 2B68:0393 7303 jae 0398 jumping 2B68:0395 E99A00 jmp 0432 not jumping -d ptr v0 l (linear es:di, - linear ptr v0) 2C18:0000 66 6F 6F 7A 66 6F 6F 7A-66 6F 6F 7A 66 6F 6F 7A foozfoozfoozfooz 2C18:0010 66 6F 6F 7A 66 6F 6F 7A-66 6F 6F 7A 66 6F 6F 7A foozfoozfoozfooz 2C18:0020 66 6F 6F 7A 66 6F 6F 7A-62 61 72 68 61 67 73 68 foozfoozbarhagsh 2C18:0030 73 67 73 66 6A 64 6A 64-0A sgsfjdjd. -h (linear es:di, - linear ptr v0) 0039 decimal: 57 -h hhresult + (hhresult / #31) + 1 003B decimal: 59 -h hhresult - 1E 001D decimal: 29 -l -g Unexpected breakpoint interrupt AX=FFFF BX=0001 CX=001E DX=0000 SP=0AEC BP=0AEE SI=0000 DI=0000 DS=9FFD ES=2C18 SS=2B68 CS=2B68 IP=0390 NV UP EI PL ZR NA PE NC 2B68:0390 E84103 call 06D4 -r vf linear ds:si -r vf -= #29 -r es (vf >> 4) -r di vf & F -r AX=FFFF BX=0001 CX=001E DX=0000 SP=0AEC BP=0AEE SI=0000 DI=0003 DS=9FFD ES=9FFB SS=2B68 CS=2B68 IP=0390 NV UP EI PL ZR NA PE NC 2B68:0390 E84103 call 06D4 -p dest=0000_0005h src=0000_0008h Match at minus 0004h length 0010h. dest=0000_0015h src=0000_000Ah Match at minus 0004h length 0010h. dest=0000_0025h src=0000_000Ch Match at minus 0004h length 0003h. AX=0000 BX=0009 CX=0000 DX=0009 SP=0AEC BP=0AEE SI=000E DI=000C DS=9FFE ES=9FFE SS=2B68 CS=2B68 IP=0393 NV UP EI PL ZR NA PE NC 2B68:0393 7303 jae 0398 jumping 2B68:0395 E99A00 jmp 0432 not jumping - mvcomp$ time ./mvsize ~/proj/ldebug/tmp/cdebugx.big packed Done depack with full buffer. SSSFSFFSFFSSSF Done binary search, 14 attempts, needs 1557 paragraphs before source. 1557 real 0m0.007s user 0m0.004s sys 0m0.003s mvcomp$ stat -c %s ~/proj/ldebug/tmp/cdebugx.big 139840 mvcomp$ stat -c %s ~/proj/ldebug/tmp/cdebugx.big 139840 mvcomp$ uncompressedsize="$(stat -c %s ~/proj/ldebug/tmp/cdebugx.big)" mvcomp$ buffersize="$((uncompressedsize + uncompressedsize / 31 + 1))" mvcomp$ compressedsize="$(stat -c %s packed)" mvcomp$ mvsizelength="$((1557 * 16))" mvcomp$ echo $((compressedsize + mvsizelength)) 139852 mvcomp$ echo $((buffersize)) 144351 mvcomp$