home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / EDITOR / TDE120.ZIP / READ_ME.TDE < prev    next >
Encoding:
Text File  |  1991-10-05  |  15.0 KB  |  315 lines

  1.  
  2.                           tde, the Thomson-Davis Editor
  3.                                   Version 1.2
  4.                                     10-5-91
  5.                                   Frank Davis
  6.  
  7.  
  8. Author:
  9.  
  10.                program name:    tde, the Thomson-Davis Editor
  11.                                 version 1.2
  12.  
  13.                author:          Frank Davis
  14.                                 fmd@tifton.bitnet
  15.  
  16.                home address:    102 Starr Street
  17.                                 Tifton, Georgia  31794
  18.                                 USA
  19.  
  20.                work address:    U.S Dept. of Agriculture
  21.                                 P.O. Box 946
  22.                                 Tifton, Georgia  31793
  23.                                 USA
  24.  
  25.  
  26. Based on an editor by:          Douglas Thomson
  27.                                 c/- Computing
  28.                                 M.U.C.G.
  29.                                 Switchback Road
  30.                                 Churchill
  31.                                 Victoria   3842
  32.                                 AUSTRALIA
  33.                                 doug@giaea.oz
  34.  
  35. Contributions by:
  36.  
  37.    Tom Waters, twaters@nswc-wo.navy.mil
  38.  
  39.  
  40.  
  41. File descriptions:
  42.  
  43.    TDE.EXE       tde executable for IBM PC or compatible
  44.    TDE.DOC       tde user's manual
  45.  
  46.    TDECFG.EXE    utility to customize color and keys in tde.exe
  47.    TDECFG.DOC    tdecfg user's manual
  48.    SAMPLE.HLP    sample file for redefining help screen
  49.  
  50.    READ_ME.TDE   this file (you're reading it now)
  51.    CHANGES.TDE   log of changes, inconvenience adjustments, additions
  52.  
  53.  
  54.       All source for tde editor, not needed unless you want to modify tde.
  55.  
  56.    SIMUL101.ASM  utility to simulate 101 scan codes on 83/84 key keyboards
  57.    BLOCK.C       line and box block functions
  58.    ED.C          basic editor functions
  59.    FINDREP.C     Boyer-Moore search routines
  60.    HWIND.C       initialization and display routines
  61.    MAIN.C        main function and hardware routines
  62.    TDEASM.C      pointer/string/display assembly routines
  63.    UTILS.C       misc editor functions
  64.    WINDOW.C      window routines
  65.    COMMON.H      external global variable declarations
  66.    DEFAULT.H     default function key assignments
  67.    DEFINE.H      editor function defs
  68.    GLOBAL.H      initial global variable declarations
  69.    HELP.H        intro and help screen
  70.    TDEFUNC.H     prototypes of all functions
  71.    TDESTR.H      defs for all structures and defines
  72.    VERSION.H     tde version number
  73.    TDE.NMK       MSC 6.0a make (nmake) file
  74.    TDE.QMK       QuickC 2.5 make (nmake) file
  75.  
  76.  
  77.   All source for configuration utility, not needed unless you want to modify.
  78.  
  79.    TDECFG.C      main programs for configuration
  80.    TDECOLOR.C    color utility routines
  81.    TDEHELP.C     redefine the help screen
  82.    TDEKEYS.C     key redefinition routines
  83.    TDECFG.H      global structures and prototypes for tdecfg
  84.    TDECOLOR.H    defines for color utility
  85.    TDEHELP.H     defines for rewriting help screen
  86.    TDEKEYS.H     structures for all available keys and functions
  87.    TDECFG.NMK    MSC 6.0a make (nmake) file
  88.    TDECFG.QMK    QuickC 2.5 make (nmake) file
  89.  
  90.  
  91. Disclaimer:
  92.  
  93. This program is provided "as is" without warranty of any kind, either expressed
  94. or implied, including, but not limited to the fitness for a particular purpose.
  95. You assume all risk for the use, inability to use, misuse, or abuse of this
  96. program.  In any event, you (and not Frank Davis) assume the entire cost of loss
  97. of use; loss of information; loss of savings; loss of business profits, business
  98. interruption; mental anguish, mental distress; all direct, consequential, or
  99. incidental damages or losses; all necessary servicing, repair, or correction;
  100. and all physical and mental health problems, acute or chronic, caused by direct
  101. or indirect use of this program by you or any of your relatives, friends,
  102. acquaintances, co-workers, or otherwise fellow man either known or unknown
  103. by you.
  104.  
  105. Your use of this software constitutes agreement with and notice of
  106. acknowledgement of the above heretofore stated warranty and limitations.  In
  107. addition with your agreement, you henceforth and forever relinquish, waive, and
  108. forfeit all claims, rights, rulings, or judgements against the forementioned
  109. author of said software; however, you retain the right to keep your first born.
  110. If you decide that it is in your best interest to waive your right to your
  111. first born child, the author is in no way obligated to accept or support the
  112. offspring, regardless of age, marital or employment status of said offspring.
  113.  
  114.  
  115. Claimer:
  116.  
  117. I use this program all-day-every-day on all of my FORTRAN, C, and assembly
  118. source code at home and at work, Frank Davis.
  119.  
  120.  
  121. Licensing:
  122.  
  123. This program is released into the public domain.  You may use and distribute it
  124. freely.  There is no copyright, no fee for use, no licensing, no registration,
  125. no legal bull, no nothing.  This editor is not user supported, corporate
  126. sponsored, or government subsidized - it is sustained and maintained solely
  127. by Frank Davis.  This editor was written for use not only as a simple text
  128. editor but also as a learning tool.  Examine the code and discover the basics
  129. of editor construction.  Experiment a little and add your favorite functions or
  130. modify the existing functions to suit your needs/requirements/tastes/etc.  If
  131. anyone includes tde with their own software, please use common courtesy and
  132. give Douglas Thomson and Frank Davis credit for their work (that's the only
  133. payment I ask).  If you release any changes or additions to the tde editor,
  134. please observe the original spirit of Douglas Thomson's dte 5.1 and release
  135. the changes as public domain software.
  136.  
  137.  
  138. Distribution Sites:
  139.  
  140. You will always be able to find the latest version of tde in the Simtel 20
  141. archives in the PD1:<MSDOS.EDITOR> directory or in Library 16 of the Utilforum
  142. in PC MagNet on CompuServe.  I do not upload tde to any other file archive.
  143.  
  144.                     Standard SIMTEL20 download Info
  145.  
  146. "If you are unable to access SIMTEL20 or mirror site wuarchive.wustl.edu
  147. via FTP or through one of the BITNET/EARN file servers, most SIMTEL20
  148. MSDOS files, including the PC-Blue collection, are available for
  149. downloading on the Detroit Download Central network at 313-885-3956.
  150. DDC has multiple lines which support 300/1200/2400/9600/14400 bps
  151. (103/212/V22bis/HST/V32bis/V42bis/MNP).  This is a subscription system
  152. with an average hourly cost of 17 cents.  It is also accessible on
  153. Telenet via PC Pursuit and on Tymnet via StarLink outdial.  New files
  154. uploaded to SIMTEL20 are usually available on DDC within 24 hours."
  155.  
  156.  
  157. Background:
  158.  
  159. At work, I have written several editors that may only be used for a certain
  160. type of file (almost an expert system).  I have always wanted to write a
  161. general purpose public domain text editor.  It seems none of the existing
  162. public domain or shareware editors have all of the features I like.  My wish
  163. list of features are:
  164.  
  165.    Blocks:
  166.       Line and box blocks.
  167.       Move, delete, copy, kopy, overlay, and fill block options.
  168.       Block actions within or between files.
  169.  
  170.    Files:
  171.       Multiple files limited only by memory.
  172.  
  173.    Windows:
  174.       Multiple windows limited only by memory.
  175.       Split screen horizontally (don't use vertical screens very often).
  176.       Changes to text in one window are updated in all windows of same file.
  177.       Interactively resize windows.
  178.       Two windows of same size so two files can be easily compared.
  179.  
  180.    Search/Replace:
  181.       Ignore or Match case of pattern.
  182.       Prompt or no prompt replace.
  183.       Boyer-Moore pattern matching algorithm.
  184.  
  185.    Other:
  186.       Split/join line.
  187.       Lines as long a 255 characters.
  188.       Paren balance.
  189.       Support for functions keys.
  190.       Mode/information line.
  191.  
  192.  
  193. Douglas Thomson's editor, dte 5.1:
  194.  
  195. Well, I found a public domain editor that had most of the features on my wish
  196. list.  The original code was extremely well documented.  That editor was
  197. dte 5.1, written by Douglas Thomson, Gippsland, Victoria, Australia.  So
  198. instead of writing an editor from scratch, I based my editor around Doug's
  199. well designed and documented program.   My editor was written using dte 5.1
  200. as an outline.  Doug, thanks a lot for releasing the source code for your
  201. editor.
  202.  
  203. dte 5.1 is pretty much machine independent.  It runs on PC's, HP 3000's, and
  204. generic Unix system V release 2 systems.  It was designed to work well over
  205. slow communication lines, eg 1200 baud.  Screen updates are kept to a minimum
  206. which saves time and money when using dial-up phone lines.  dte 5.1 uses the
  207. WordStar/Turbo x style key definitions.  If you need an editor for use over
  208. slow communication terminals, check out Doug's editor.
  209.  
  210.  
  211. tde, the Thomson-Davis Editor:
  212.  
  213. My dream editor was to be written specifically for PC's.  At work, we have
  214. an IBM mainframe.  The only reason I use the mainframe is for e-mail and for
  215. backup of my PC files (I have exaggerated a little).  I use my PC editors to
  216. compose my mail then upload to the mainframe to send it.  So, I really don't
  217. need or desire a machine independent editor.  Although I have IBM OS/2 1.3 on
  218. my machine at work, I don't use OS/2 enough to justify writing a bound version.
  219. (To make a program run under both IBM/MS DOS and OS/2, you have to bind it and
  220. refrain from doing neat BIOS and hardware tricks.)
  221.  
  222. Another of my design considerations was the machine-compiler-memory model
  223. factor.  At work I use a 16 Mhz 386 machine with Microsoft C 6.0a and at
  224. home I use a 8 Mhz 286 machine with Microsoft QuickC 2.51 w/ QuickAssembler.
  225. I wanted the editor to work fast on the slow machine, so I wrote some of the
  226. often used string functions in assembly.  To edit files larger than 64k, you
  227. just about have to use the huge memory model; however, QuickC cannot debug
  228. programs compiled with the huge option.  Additionally, programs compiled using
  229. the huge model run a lot slower because of all the compiler generated pointer
  230. arithmetic.  I wrote some functions in assembly that allow my editor to be
  231. compiled with either the small, compact, or large memory model.  Now, I can run
  232. and debug the program at work or at home.  All of those assembly routines that
  233. support huge pointer arithmetic are original.  If you're into assembly, check
  234. out the tdeasm.c module for some good assembly tips on manually manipulating
  235. far pointers.
  236.  
  237. I also wanted the ability to edit the files produced by our water quality model.
  238. Null characters, or '\0', are allowed as part of the normal text in those files.
  239. Since DOS uses ^Z to mark the end of files (in text mode), I decided to use ^Z
  240. to mark the end of strings.  Any character, except ^Z, is allowed in the text
  241. file.  Consequently, the standard C string library functions will not work when
  242. doing operations on text in the file (can't rely on library functions to handle
  243. '\0' properly).  The assembly language routines in tdeasm.c take care of the ^Z
  244. terminated strings.
  245.  
  246. I modified almost all of the algorithms in the original dte 5.1 editor and added
  247. several more.  The block and find/replace algorithms are completely rewritten.
  248. Block operations use either line or box blocks instead of stream blocks.
  249. Available block operations include move, delete, copy, kopy, fill, overlay,
  250. block expand tabs, block print, block write to file (some of these functions
  251. were available for stream blocks in the original dte 5.1).  Block operations are
  252. allowed within or between files.  The "brute force" text find algorithm was
  253. replaced by the Boyer-Moore string matching algorithm, a very fast text search
  254. algorithm.  The text display algorithms were rewritten.  Window operations were
  255. rewritten, enhanced, and streamlined.  Support for lines as long as 255 charact-
  256. ers was added.  Horizontal scrolling/paging are allowed.   A mode/information
  257. lite bar was added to display the various modes at the bottom of the screen.
  258. Displayed in the lite bar are:  number of open files and total number of
  259. windows, available memory for editing the current file or additional files, and
  260. the editor mode flags.  Displayed with the file name are:  the total number of
  261. lines in the file (size) and the current line number and column number of the
  262. cursor.  The join line, split line, and dup line functions were added.  Any
  263. ASCII or Extended ASCII character, except control z, can be entered into the
  264. text file by using the ALT-xxx method.  Several often used string routines were
  265. rewritten in assembly and optimized for 16 bit processors, which makes cursor
  266. movement very fast through any size file.  One function that I sorely missed,
  267. a simple undo function, was added.  A configuration utility was written to
  268. allow the user to customize all colors and the 184 recognized function keys.
  269. And last, an instant help screen with key definitions was added.
  270.  
  271.  
  272. Programming Notes:
  273.  
  274. This program makes extensive use of multi-segment pointers.  The assembly
  275. routines in tdeasm.c were written to avoid a LOT of pointer arithmetic
  276. generated by the compiler.  If you do decide to modify tde, keep in mind that
  277. you are responsible for pointer integrity.  That is, functions that use
  278. pointers to access text forwards through the file need to check those pointers
  279. to make sure they don't "wrap" around a segment.  Same goes for accessing text
  280. backwards through the file.  The functions responsible for pointer integrity
  281. are cpf (check pointer forwards) and cpb (check pointer backwards).  Also, you
  282. can't reliably add large numbers to pointers in the compact and large memory
  283. model.  The small, compact, and large memory models were not designed for use
  284. with multisegment (huge) pointers (you may always explicitly declare and use
  285. huge pointers in those models, though).  Use the function addltop (add long to
  286. pointer) to handle adding large numbers to pointers.
  287.  
  288. The 101 key keyboard simulation utility requires an assembler to produce object
  289. code.  If you don't have access to an assembler, you may comment out the calls
  290. to function simulate_enh_kbd( ) in main.c.  tde will still take advantage of
  291. the 101 enhanced keyboard, but will not be able to use the simulated 101 keys
  292. on older 83/84 keyboard systems.
  293.  
  294.  
  295. Bug reports:
  296.  
  297. There are no bugs in tde, only features that may inconvenience you. ;*)
  298. Please send inconvenience reports via e-mail, if at all possible, to
  299. fmd@tifton.bitnet.  For y'all over there on Compuserve, my e-mail address is
  300. ">INTERNET:FMD%TIFTON.BITNET@CUNYVM.CUNY.EDU" (don't type the quotes, just
  301. everything between them).  I'll try to respond as quickly as possible to reports
  302. received via e-mail.
  303.  
  304.  
  305. About the author of tde, Frank Davis:
  306.  
  307. Frank "yank" Davis, who has an impressive collection of inflatable bed bunnies,
  308. received a BS in Information and Computer Science from Georgia Tech in 1983.  He
  309. can be found drinking massive quantities of beer in his underwear (boxer shorts)
  310. on his couch while watching college football and Atlanta Braves baseball on his
  311. 19 inch color TV.  Hobbies include:  sex, drugs, and rock 'n' roll.
  312.  
  313. This program is another quality product from Yank Software, "Software you just
  314. can't beat".
  315.