Warning: Unknown: Unable to allocate memory for pool. in Unknown on line 0

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/index.php on line 54

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebStart.php on line 63

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 94

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 97

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 100

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 103

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Defines.php on line 187

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 115

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 150

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 157

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/languages/Language.php on line 20

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: include_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Skin.php on line 153

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/skins/Vector.deps.php on line 11

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Skin.php on line 155

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: include(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/resourceloader/ResourceLoader.php on line 201

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/json/FormatJson.php on line 12

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007
Asc2Com - Just Solve the File Format Problem

Asc2Com

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007
(Software)
 
(8 intermediate revisions by 2 users not shown)
Line 7: Line 7:
 
'''Asc2Com''' is a DOS utility that converts a text document to a [[DOS executable (.com)|COM]] file that, when executed, displays the text in a viewer. It was developed by MorganSoft. It supports a number of different viewing styles and options.
 
'''Asc2Com''' is a DOS utility that converts a text document to a [[DOS executable (.com)|COM]] file that, when executed, displays the text in a viewer. It was developed by MorganSoft. It supports a number of different viewing styles and options.
  
 +
== Discussion ==
 
The software was originally in the form of a command-line utility named '''Asc2Com'''. Later versions include both a menu-driven utility named '''Asc2Com''', and a command-line utility named '''A2C'''.
 
The software was originally in the form of a command-line utility named '''Asc2Com'''. Later versions include both a menu-driven utility named '''Asc2Com''', and a command-line utility named '''A2C'''.
  
 
Depending on the version, and the options used when generating the COM file, it may have a feature (Alt-F or Alt-W) to write the text to a disk file. Run the file, and try pressing F1 for help.
 
Depending on the version, and the options used when generating the COM file, it may have a feature (Alt-F or Alt-W) to write the text to a disk file. Run the file, and try pressing F1 for help.
 +
 +
== Format details ==
 +
 +
=== Compression scheme ===
 +
Version 2.00+ has an option to compress the embedded text with [[LZW]]. Here are some notes on the compression scheme.
 +
 +
Code size is 9 to 10 bits. Special codes:
 +
 +
{| class="wikitable" style="font-size: 85%;"
 +
| 256 || Unused or unknown.
 +
|-
 +
| 257 || Increment code size (from 9 to 10). Seek to the next byte boundary.
 +
|-
 +
| 258 || Stop.
 +
|}
 +
 +
The first dynamic code is 259. The code table is never cleared.
 +
 +
The Asc2Com documentation includes some very minimal information about its LZW format.
  
 
== Identification ==
 
== Identification ==
More research needed. Generated files usually contain one of the following ASCII strings somewhere in them:
+
Most versions (except the very early ones) offer 5 or 6 different "listers", i.e. templates for the generated COM file, with different feature sets. Files made by a particular version, using a particular lister, have a fairly consistent format, and can readily be identified. But there are many versions of Asc2com (some of which might be lost), and a combinatorial explosion of formats.
* "{{magic|Com File  Generated by ASC2COM}}"
+
 
 +
Not every version+lister combination represents a unique format, but there are still a few dozen essentially different formats to deal with. So, precisely identifying and analyzing Asc2Com files can take significant effort.
 +
 
 +
Generated files usually contain one of the following ASCII strings somewhere in them:
 +
 
 +
* "{{magic|Com File  Generated by ASC2COM}}" (Used by older versions.)
 
* "{{magic|Com File generated by ASC2COM}}"
 
* "{{magic|Com File generated by ASC2COM}}"
 
* "{{magic|File made by ASC2COM}}"
 
* "{{magic|File made by ASC2COM}}"
 +
 +
Known exceptions:
 +
 +
* Compressed v2.01 files contain "{{magic|ASC2COM  V2.00,COMPRESS}}".
 +
* Compressed v2.05 files contain "{{magic|ASC2COM  V2.01,COMPRESS}}".
  
 
== Software ==
 
== Software ==
 +
Encoding/decoding:
 +
 
* Asc2Com
 
* Asc2Com
** {{CdTextfiles|somuch/smsharew/UTIL1/ASC2COM.ZIP|v1.10b}}
+
** {{CdTextfiles|somuch/smsharew/UTIL1/ASC2COM.ZIP|v1.10b}} (or [https://archive.org/details/msdos_festival_ASC2COM at Internet Archive])
** {{CdTextfiles|rbbsv3n1/atnu/asc2com.zip|v1.25}}
+
** v1.25 and v1.25b (no copy found)
 +
** {{CdTextfiles|rbbsv3n1/atnu/asc2com.zip|v1.30}}
 +
** v1.50 (no copy found)
 +
** v1.65 (no copy found)
 
** v1.66: {{CdTextfiles|pcsig12/WOR/DISK1948.ZIP|DISK1948.ZIP}} → ASC2C166.LZH
 
** v1.66: {{CdTextfiles|pcsig12/WOR/DISK1948.ZIP|DISK1948.ZIP}} → ASC2C166.LZH
 
** v1.75: [https://archive.org/details/frostbyte_1980s_DOS_collection Frostbyte's 1980s DOS Shareware Collection] → floppyshareware.zip → LUNACY/ASC2C175.ZIP
 
** v1.75: [https://archive.org/details/frostbyte_1980s_DOS_collection Frostbyte's 1980s DOS Shareware Collection] → floppyshareware.zip → LUNACY/ASC2C175.ZIP
 
** {{CdTextfiles|pier01/007a/asc2c176.exe|v1.76}}
 
** {{CdTextfiles|pier01/007a/asc2c176.exe|v1.76}}
** {{CdTextfiles|pier01/035a/a2c201.zip|v2.01(?)}}
+
** {{CdTextfiles|bbox4/fileutil/a2c200.arj|v2.00}}
 +
** v2.00f: {{CdTextfiles|pier01/035a/a2c20f.exe|a2c20f.exe}} - Patch to upgrade v2.00 to v2.00f
 +
** {{CdTextfiles|pier01/035a/a2c201.zip|v2.01}}
 
** {{CdTextfiles|psl/pslv2nv10/UTILS/DOS/FILEVIEW/ASC2COM.ZIP|v2.05}}
 
** {{CdTextfiles|psl/pslv2nv10/UTILS/DOS/FILEVIEW/ASC2COM.ZIP|v2.05}}
 +
* {{Deark}}
 +
 +
Other:
 +
 +
* [https://github.com/jsummers/myfilecmdmagic] - Has brute-force patterns for use with the [[file command]].
 +
 +
== Sample files ==
 +
* {{CdTextfiles|psl/psl9310/DOS/PRGMMING/BTX.ZIP|BTX.ZIP}} → *.COM
 +
* {{CdTextfiles|simtel/stmsdos9709/disk1/DISC1/FINANCE/AMORT21.ZIP|AMORT21.ZIP}} → *.COM
 +
* {{CdTextfiles|simtel/stmsdos9709/disk1/DISC1/BUSINESS/TMCAP311.ZIP|TMCAP311.ZIP}} → *.COM
 +
* {{CdTextfiles|simtel/stmsdos9709/disk1/DISC1/SCREEN/FRAMEGRB.ZIP|FRAMEGRB.ZIP}} → INFO1.COM
 +
* {{CdTextfiles|cavebbsfiles/tw2002/twplanet.zip|twplanet.zip}} → README.COM
 +
* {{CdTextfiles|pier01/009a/ada301a.zip|ada301a.zip}} → README.COM (Made by v1.25?)
 +
* {{DexvertSamples|document/asc2com}}

Latest revision as of 14:52, 2 December 2024

File Format
Name Asc2Com
Ontology
Extension(s) .com
Released 1989

Asc2Com is a DOS utility that converts a text document to a COM file that, when executed, displays the text in a viewer. It was developed by MorganSoft. It supports a number of different viewing styles and options.

Contents

[edit] Discussion

The software was originally in the form of a command-line utility named Asc2Com. Later versions include both a menu-driven utility named Asc2Com, and a command-line utility named A2C.

Depending on the version, and the options used when generating the COM file, it may have a feature (Alt-F or Alt-W) to write the text to a disk file. Run the file, and try pressing F1 for help.

[edit] Format details

[edit] Compression scheme

Version 2.00+ has an option to compress the embedded text with LZW. Here are some notes on the compression scheme.

Code size is 9 to 10 bits. Special codes:

256 Unused or unknown.
257 Increment code size (from 9 to 10). Seek to the next byte boundary.
258 Stop.

The first dynamic code is 259. The code table is never cleared.

The Asc2Com documentation includes some very minimal information about its LZW format.

[edit] Identification

Most versions (except the very early ones) offer 5 or 6 different "listers", i.e. templates for the generated COM file, with different feature sets. Files made by a particular version, using a particular lister, have a fairly consistent format, and can readily be identified. But there are many versions of Asc2com (some of which might be lost), and a combinatorial explosion of formats.

Not every version+lister combination represents a unique format, but there are still a few dozen essentially different formats to deal with. So, precisely identifying and analyzing Asc2Com files can take significant effort.

Generated files usually contain one of the following ASCII strings somewhere in them:

  • "Com File  Generated by ASC2COM" (Used by older versions.)
  • "Com File generated by ASC2COM"
  • "File made by ASC2COM"

Known exceptions:

  • Compressed v2.01 files contain "ASC2COM  V2.00,COMPRESS".
  • Compressed v2.05 files contain "ASC2COM  V2.01,COMPRESS".

[edit] Software

Encoding/decoding:

Other:

[edit] Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007