====== ANSI Editors ======

Editors that support files with ANSI X3.64 Terminal escape sequences and IBM CP437 (extended-ASCII) characters:

^Name     ^Platforms ^[[custom:Ctrl-A Codes|Ctrl-A]]^BIN^SAUCE^Open Source^
|[[https://vert.synchro.net/api/files.ssjs?call=download-file&dir=graphics&file=adraw120.zip|ACiDDraw]]|DOS           |No |Yes|Yes|No |
|[[https://www.cs.helsinki.fi/u/penberg/duhdraw/|DuhDraw]] |Linux         |No |No |Yes|Yes |
|[[https://vert.synchro.net/api/files.ssjs?call=download-file&dir=graphics&file=tdrw463r.zip|TheDraw]] |DOS           |No |Yes|No|No |
|[[https://vert.synchro.net/api/files.ssjs?call=download-file&dir=bbs&file=thebrush.zip|TheBrush, Thedraw companion ANSI art painter]] |DOS           |No |Yes|No|No |
|[[https://blocktronics.github.io/moebius/|Moebius Editor]]                     |Windows, Linux, Mac OS-X |No | Yes |??? | Yes|
|[[https://sourceforge.net/projects/mysticdraw/|MysticDraw]]   |Windows, *nix |No|???|???|Yes|
|[[https://www.cs.helsinki.fi/u/penberg/newdraw/|NewDraw]] |*nix          |No |Yes|No|Yes |
|[[http://picoe.ca/products/pablodraw/|PabloDraw]]             |Windows, Linux, Mac OS-X       |Yes |Yes|Yes|Yes|
|[[https://www.johndaileysoftware.com/download/?id=220RAGE&fileName=ragev99a.exe|R.A.G.E ANSI Editor]] |DOS           |No |Yes|No|No |
|[[http://syncdraw.bbsdev.net/|SyncDraw]]                      |Windows, *nix, Mac OS-X |Yes|Yes|Yes|Yes|
|[[http://sourceforge.net/projects/tundradraw/|TundraDraw]]    |Windows, *nix, |No |No|No| Yes|
|[[https://github.com/codewar65/VTXEdit|VTXEdit]]              |*nix           |?? |??|Yes| Yes|
===== PabloDraw =====
PabloDraw is the recommended display file (e.g. screen/menu) editor for use with Synchronet BBS.

==== Ctrl-A Support ====
PabloDraw supports a subset of Synchronet's Ctrl-A color/attribute codes in the files it can open/edit:

{{:resource:pablodraw_open_ctrl-a.png?600|You must manually choose "Ctrl-A" in the format selection box when opening ''.asc'' files}}

  - PabloDraw assumes [[config:text files]] with a ''.msg'' suffix/extension may contain Synchronet Ctrl-A codes\\ (so files with ''.msg'' extensions are a bit easier to open/edit than ''.asc'' files with PabloDraw)
  - By default, PabloDraw does **not** support [[custom:Ctrl-A codes]] when opening/saving files with a ''.asc'' suffix/extension\\ (solution: the user must manually choose "Ctrl-A" for the file format/type when opening or saving ''.asc'' files with Ctrl-A codes)
  - Many [[custom:Ctrl-A codes]] (e.g. Ctrl-AL for clearing the screen) are not recognized by PabloDraw and will be stripped when editing a file\\  (solution: use equivalent [[custom:atcodes|@-codes]] instead as @-codes are not interpreted or stripped by PabloDraw)

==== BIN Support ====
PabloDraw supports the viewing and modification of ''.bin'' files (e.g. like those used for [[module:Avatars]] collections) and has features that make it nice for editing .bin file (e.g. SAUCE record reading/writing, narrower widths). However, the current version of PabloDraw (3.2.1) has a bug where by the last line of a .bin file is removed/truncated when saving the file (solution: add an extra line of any character before saving ''.bin'' files).

===== TheDraw =====
TheDraw was one of the most widely used tools for ANSI file creation/editing for MS-DOS systems. Since it is a 16-bit DOS program with no source code available to the public (that we know of), it has to be run in an emulated or virtual x86/DOS environment which can be a challenge.

==== Block-Save ====
When saving display files (e.g. screens/menus) with TheDraw, in order to assure there are no unintended ANSI-animation sequences or extra blank lines at the end of the file, use the Block-Save (Alt-B) command to mark the area of the file (i.e. top-left to bottom-right) and save as "Ansi" with no delay and no animation.

  Save screen in what format? (ESC aborts)
  Ansi asciI aVatar @-codes asM Pascal C obJect Binary bSave COM TheDraw Library

===== See Also =====
  * [[:custom:|Customization]]
  * [[:util:ans2asc|ANS2ASC Utility]]
  * [[:util:asc2ans|ASC2ANS Utility]]
  * [[:Resource:|Resources]]

{{tag>ansi}}
