This is a quick hack disassembler for COM files.
Rename EXE files to EX or something before using on them,
otherwise it bombs out.
Usage: DISM filename [disfile]
If disfile is not specified, LIST is used to show the output.
If you don't have LIST, edit the batch to change the line
"set list=LIST" to a suitable text viewer.
The output consists of a hex dump then an unassembly.
------------------  File DISM.BAT -------------------------
@echo off
:: DISM.BAT - A Quicky Disassembler (C)1996 Terry Newton
:: Calls LIST to view if disfile not specified
:: Change 'set list=' line if LIST is not available 
if '%1=='Shell goto comshell
if exist %1 goto do_it
echo Uses the DEBUG command to dump and disassemble. 
echo Rename EXE files before examining them!
echo Will delete the file AX.BAT if it exists.
echo Usage: %0 codefile [disfile]
echo LIST is used if disfile not specified
goto done
command /e:5000 /c %0 Shell %1 %2
goto cleanup 
:: set this to your lister program...
set list=LIST
:: Get hex filelength in evar CX
echo R>d_$
echo Q>>d_$
debug %1<d_$>d_$$
find "CX"<d_$$>d_$.bat
echo set CX=%%5>ax.bat
call d_$.bat
echo Disassembling %CX% (hex) bytes...
:: Add FF to evar CX
:: (yes - batch file math!)
echo H %CX% FF>d_$
echo Q>>d_$
find "  "<d_$$>d_$$$
echo N d_$.bat>d_$
echo E 0100 'AX '>>d_$
echo RCX>>d_$
echo 3>>d_$
echo W>>d_$
echo Q>>d_$
type d_$$$>>d_$.bat
echo set CX=%%1>ax.bat
call d_$.bat
:: Dump and disassemble from 0100 to evar CX
echo D 100 %CX%>d_$
echo U 100 %CX%>>d_$
echo Q>>d_$
if '%2==' goto listit
debug %1<d_$>%2
goto done
debug %1<d_$>dism_out
call %list% dism_out
goto done
:: Clean up temp files
del d_$??
del d_$.bat
del ax.bat
if exist dism_out del dism_out