home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / asmutil / asmenv19.zip / ASMENV.DOC next >
Text File  |  1993-11-14  |  30KB  |  471 lines

  1. ASMEnv.DOC:
  2. Pronounce ASM as TASM with T dropped. And, then, ASM En, letting the v go.
  3. The full name is ASMEnvironment.
  4.  
  5. ASMEnv.EXE is copyright (C) 1993 by Gene Fowler, and all rights are reserved.
  6. However, you may use this version (1.9) without paying a licensing fee and you
  7. may hand it to somebody else so long as you don't ask that person for more than
  8. a reasonably few dollars to cover the disk, mailer, and pack room on the U.S.
  9. Mule (or telephone lines). And providing you send along this document, which
  10. is all the manual and documentation there is at this point. If you wish to
  11. make a donation of $20 to the "workbench" fund, though, I'll consider that to
  12. be "registration" and send you any fix of 1.9 and a distribution copy of 2.0. 
  13. Someday, I'll add a hardcopy "user's guide" to 2.x. Or that's the dream...
  14.  
  15. There's no warranty of any sort, stated or implied, as ASMEnv is evolving and
  16. experimental. I can't see how you can do any damage with the program, but I
  17. accept no responsibility if you manage it. Oh, for those outfits that make
  18. a living gathering patents and copyrights and searching others' code for
  19. "matches"...forget it! Ain't an algorithm in here. It's straight forward,
  20. don't-save-a-byte-or-cycle Turbo Vision. There ain't a look and feel idea in
  21. it, just using what Borland serves up plus squeezing different colors from
  22. their tubes onto the palette in App.TPU.
  23.  
  24.  ********************** A Temporary Nuisance *************************
  25.  
  26.    ASMEnv is evolved from TVEdit, a demo accompanying Turbo Pascal
  27.    6.0 and Turbo Vision 1.0. In TVEdit if you are at LineEnd and use
  28.    the Right Arrow, you go to the next line. This is fine in a word
  29.    processor (WordPerfect), but drives users up walls in a text editor.
  30.  
  31.       I've "opened the screen to the right." The Right Arrow will
  32.    add a space. Tab will add spaces to the target column. A single
  33.    mouse click adds necessary spaces to pull the cursor.
  34.  
  35.       To hold down accumulated spaces in the limited buffer, Tab
  36.    Home, and End keys "clean" lines. Up and Down Arrows add spaces
  37.    to the line entered and clean the line left. While it's an amateur's
  38.    hack under the hood, the surface is quite nice, and you'll be happy
  39.    in your .ASM files. It's all done under lock, so you have no speed
  40.    penalties or clumsiness of any sort.
  41.  
  42.       THE NUISANCE: You'll be bringing in .LST files to look over to
  43.    study your ASM code together with the resultant machine code. TASM
  44.    uses #9 (tab) codes in the .LST file. Using Left and Right Arrow on
  45.    a line of text, you find occasional lateral skips. They make sense
  46.    and won't bother you. It's as if you had the "every eight" tabs and
  47.    hit Tab. For a time, I had chaos as I used my Up and Down Arrows and
  48.    serious problems after a PgUp or PgDn...
  49.  
  50.       ...I solved that, and you can travel up and down with these keys.
  51.    But sometimes after traveling, a first lateral move might yield an
  52.    erratic jump. Subsequent keyings are all right. For a time, on first
  53.    or last lines a Home or End might freeze. I'm not sure it's wholly
  54.    fixed. If it happens, hit the other key. While working, if a Left
  55.    Arrow, Right Arrow, Home, or End "froze," one of the other three
  56.    always broke the jam. Consider it the emergency exit.
  57.  
  58.  *********************************************************************
  59.  
  60. A "PROTOTYPE" BORLAND TURBO ASSEMBLER IDE:
  61.  
  62. ASMEnv.EXE is not a Borland product, and Borland's designers, engineers, and
  63. programmers bear no responsibility for whatever shortcomings this TASM IDE
  64. might prove to have. In fact, I don't take a whole lot of responsibility and
  65. call it a prototype because it's primarily a learning project I've assigned to
  66. myself and secondarily the bearer of my ideas about a TASM IDE that I'd like
  67. to hand to those who produce products and the industry's literature (to the
  68. extent that there is a literature). I bump the version number (usually) when
  69. I've added some new direction of exploration to this "prototype" and am al-
  70. ways tinkering and fixing and plugging in new pieces in old directions; so if
  71. two copies find their way to you with the same version number, take the one
  72. with the latest file date...it'll be better. There will be "holes" for a long
  73. time to come, since I'm a one-man team.
  74.  
  75. The TP6 "Professional" package, which you'll need whether or not you're a
  76. professional, if you do any serious TP work, includes among its added-in but
  77. hardly peripheral tools Turbo Assembler. Presumably Borland long ago decided
  78. that the assembler wouldn't require an IDE like the ones packaged with their
  79. TP and TC/C++ compilers...because real programmers (who use assembly language)
  80. would be insulted by such "greasy kid stuff" and would head for industrial
  81. strength programmers' editors like Brief (which Borland recently bought). Or
  82. some such reasoning. But we semi-pro's who get these "professional" packages
  83. are, quite often, inhabitants of the IDEs. Turbo Debugger "emulates" the com-
  84. piler IDEs, so presumably Borland folks believe that users of the "profes-
  85. sional" packages will appreciate some tools having that familiar housing.
  86.  
  87. So, I took as my Turbo Vision project the building of an IDE for TASM, a fair-
  88. ly large project for a semi-pro or amateur and, really, a novice. But I had
  89. TVEdit to start from, so I wasn't starting with a blank page. I can push and
  90. pull, squeeze and expand, redirect... . And I have "see-able" goals. On the
  91. one hand, I have the TP6 IDE to contrast with TVEdit. On the other, I have an
  92. image defined by how the IDE ought to be different if I am typing ASM code
  93. instead of Pascal code, a columnar notation instead of a narrative notation.
  94. I am in untraveled territory, but not quite without my packet of maps. And
  95. just about three months later, I'm using ASMEnv pretty heavily and not just
  96. because it's mine. It's already more useful than anything I know about, let
  97. alone anything I've got on hand or could get quickly.
  98.  
  99. STARTING UP AND CLOSING DOWN
  100.  
  101. Put ASMEnv.EXE, ASMEnv.Hlp, ASMEnv.CFG, and ASMEnv.DSK into your TA (or TASM)
  102. directory. ASMEnv.CFG and ASMEnv.DSK are "bare bones" files that will hold
  103. settings between work sessions. If you don't have these, you will not have any
  104. problem and they will be created for you on exiting the program or, in the case
  105. of ASMEnv.DSK when you deliberately Save Desktop. Enter ASMEnv by typing ASMEnv
  106. at the DOS prompt. You could add filenames (wild cards ok) and have them opened
  107. inside, but skip that this time. If you haven't the .CFG file, you get an error
  108. box. Press OK and ignore it. Now, you have my ego box. Press okay and it goes
  109. away. ^F3 brings up your last "desktop" arrangement. Try it and if you have the
  110. minimal ASMEnv.DSK I created, you get two New File windows. Later, ^F3 will be
  111. your "main man." For now, your best move is to read the status line at the
  112. bottom of the screen, and the menu of menus at the top. Alt-F drops the first
  113. menu. Arrow keys move circularly, either way, around menus. Read what's there.
  114. And...try Help. F1 gets context-sensitive help. Shift-F1 always gets the "no
  115. context" help; if you are anywhere except in the menu structure, that is the
  116. Main Introduction that F1 gets when you're on the blotter with nothing open.
  117. The right mouse button opens the Help screen like the F1 key (mouse's location
  118. diesn't matter) and closes it like the ESC key if it is open.
  119.  
  120. But let's look at the two files ASMEnv looked for, if you didn't have them,
  121. the .CFG file it wanted to load on startup and the .DSK file it wanted to load 
  122. when you asked for "Last Desk."
  123.  
  124. You are going to find that you have "histories" and "editable strings" con-
  125. nected with input boxes and dialogs. ASMEnv saves these, between work ses-
  126. sions, in the .CFG file so that you do not have to recreate histories or edit
  127. paths, params, and batch text each time you work on a project. And you may
  128. have multiple .CFG files, any one of which can be the ASMEnv.CFG when you
  129. intend to work on the associated project. When you close down, the ASMEnv.CFG
  130. in the current directory is updated. And on startup, the one in the current
  131. directory is loaded and the histories and strings are reinitialized from the
  132. defaults to your last entries.
  133.  
  134. When you Exit, ASMEnv.DSK in the current directory is also updated to save your
  135. "desktop," or all the Editors you have running, with their scroll positions,
  136. cursor positions, bookmark settings, block selections, and more included. If
  137. your Clipboard is showing or the calculator running, these won't be saved, but
  138. their presence won't cause any problems. When you start ASMEnv, the Last Desk
  139. isn't set up for you as it is when you start Borland IDEs. I wanted a quick
  140. shifting of the desk or project at any time, including startup time, so I put
  141. Save and Retrieve DeskTop on a menu and on hot keys and the Retrieve hot key on
  142. the Status line. That's ^F3. At startup, you hit ^F3, F3, or Shift-F3...and
  143. you begin working. Shift-F5 gets a Windows List. It lists the first nine opened
  144. windows and gives the file name in the window. Blanks show closed windows, and
  145. the lowest numbered blank will be the next window opened. It tells you that
  146. Alt-# brings the window to the top. You have to OK the dialog before that key-
  147. ing works.
  148.  
  149. ASMEnv EDITOR AND IDE
  150.  
  151. ASMEnv isn't a text editor. It's a whole gang of text editors, for starters,
  152. and...it's a lot more than that. IDE stands for Integrated Development
  153. Environment. I guess you can say "environment" generalizes "editor." But a
  154. "gang of editors" isn't a multiple window editor. The plural means something
  155. and in fact follows from the "object" technology of TP and TV. Each of the
  156. editors in the gang (the number being up to you) is a thing unto itself. But
  157. they're all the same until you give each its "setup" for the file that's in it.
  158.  
  159. The next section describes an editor in ASMEnv. Here I'll describe what else
  160. you have in the environment. The desktop, or the desktop "blotter," with the
  161. menu and status lines instead of those cushy leather borders on a real desk, is
  162. the background for your editors and internal tools. Unless I'm forgetting
  163. something, I have only three internal tools so far. There is the "clipboard,"
  164. which looks like an ordinary editor and in which you can do some editing,
  165. though you can't load (you can save the contents to) a file. It isn't an
  166. ordinary editor but a temporary storage used to transfer text between editors.
  167. When you show it, it opens like an editor, but when you close it, it goes into
  168. hiding and keeps its contents. The contents are not saved across sessions in
  169. .CFG or .DSK.
  170.  
  171. The second tool is a hex calculator/translator that's very useful when writing
  172. ASM code. I made this from the little Casio among the TV demos. I've given the
  173. calculator one memory that's in ASMEnv not the calculator, so you can store a
  174. result, close the calculator, reopen the calculator, and retrieve that re-
  175. sult. Or you can open two calculators and transfer an item through that one
  176. memory location. The memory is kept across work sessions in the .CFG file.
  177. The "I" key gives you information on the calculator. The Calculator is on the
  178. F11 key and the Utilities menu.
  179.  
  180. The third tool is an Ascii table which is a powerful book closer on your over-
  181. crowded workbench.
  182.  
  183. There is one other internal tool. I've thought of it as an external tool
  184. because of its look. This is "Last Dos Screen." On startup, you can look at
  185. the DOS screen that you just left. But This tool is worth its "weight" in gold
  186. when you use your number one external tool: TASM, the assembler. TASM puts its
  187. output on the DOS screen, including errors listed with source code line
  188. numbers. I keep you on the DOS screen after running TASM to study the
  189. output. But you'll want to "recall" that list while working on your source.
  190. That's what Last Dos Screen is for. On the Utils menu, you have Find Line #
  191. forjumping to these error locations.
  192.  
  193. The external tools are DOS Shell, DOS Command, and "wired-in" programs that
  194. are, in fact, Exec'd. The programs are TASM, TLINK, Turbo Debugger, Turbo
  195. Profiler, and TxtPager. All except Dos Shell let you run programs from inside
  196. ASMEnv, and Dos Shell lets you run programs "on top of" the IDE. In an IDE,
  197. it's convenient to run a program from a hot key or mouse click, with the
  198. path and re-used param line all set...and to do this across work sessions. As
  199. things stand, you won't run the debugger or profiler from inside. They are too
  200. large and you run programs in them. Here's where ^F3 shows its value. Alt-X
  201. out, do your debugging or profiling, Enter, hit ^F3, and you're right where you
  202. were. Later, you'll use the support files TA.BAT (to get TASMS Help inside
  203. ASMEnv, on the ^F1 key) and TA386.BAT (to run TD386 and TF386 within ASMEnv).
  204.  
  205. The external tools are self explanatory, except possibly DOS Command and Txt-
  206. Split. You know about DOS' Exec function (and TP's). DOS Command is a "trans-
  207. parent" Command Line identical to the one at any DOS prompt. You may use it as
  208. if it were a DOS prompt, but keep in mind that ASMEnv is setting up child
  209. processes and know something of your RAM capacity and structure before you do
  210. any wild launching.
  211.  
  212. TxtPager is a tool for handling large modules in small capacity editors, as
  213. each of the gang of editors is. The concept of handling a large file in a small
  214. editor is new. Every one assumes you don't. You go away and come back with
  215. smaller files. In any case, you'd be more likely to have large .PAS files than
  216. large .ASM files...and TP never had a way to work with large files before doing
  217. away with the 64K editor. Anyway, I wrote TxtPager as a stand-alone, but I in-
  218. clude it on the disk and wire it into ASMEnv. The help facility tells you how to
  219. use it. There are advantages to "paging" even smaller files for rapid multiple 
  220. site working where bookmarks are cumbersome. TxtPager is used both to page and
  221. recollect your file. Ctrl-F7 gets the param box. Give the name of your file as
  222. the only paramater. The param will come up every time you hit ^F7, even in your
  223. next work session because it is save in the .CFG file. Hit OK and choose s to 
  224. split the file into multiple pages. Pull each page into an editor. Use the
  225. Alt-# keys to jump among pages and Shift-F5 to see the Windows List. When you
  226. work on a page, save that page. When you're ready to assemble the whole file
  227. or do something else to it, hit ^F7, note the same file is the param, hit OK
  228. and, when you are in TxtPager, select j for join. TxtPager will rebuild the
  229. complete file from the updated pages. Between sessions your editors with the
  230. pages in them are saved in the .DSK file.
  231.  
  232. The "paging" concept has value beyond distributing a large file over several
  233. editors or providing a more sophisticated bookmark system than the ones on
  234. the F8 key in each editor. When typing TASM (or MASM) code, you often use the
  235. PAGE command to go to a new page. You might have a PAGE break after equates
  236. and macros, another after dseg, and so forth. To use that system of paging
  237. here, you don't start with filename.asm, but filename.pt1. When you'd use
  238. PAGE to start a new section, open a new file and save it as filename..pt2.
  239. And so forth to accumulate yourset of pt? files. Then, call TxtPager, give
  240. filename.asm as the param and choose j (join). You'll have to keep your
  241. set of pt? files for the duration because no subsequent splitting of the
  242. .asm file will give you this unique paging. You can insert a page by re-
  243. naming a ptN with a later number, let the desk open the original number
  244. with an empty sheet and load up the higher number. In fact, you can create
  245. any stack of .pt? files with some desktop work and file naming. Create the
  246. setup you want.
  247.  
  248. Some "services" border on being "tools." TVEdit made .BAK files on saves. And
  249. I cut this out until recently. But now, ^F7 and Alt-F7 turn this on and off.
  250. Not a toggle, but two definite settings. The default, if you start without a
  251. .CFG in the current directory, is off. Other services on menus and keys are
  252. Borland's numbered windows, accessible with Alt-# or F6, the displayable clip-
  253. board, window zoom, tiling and cascading of windows, and the any-time Save or
  254. Retrieve of .DSK to and from the current directory. And a gang of search ser-
  255. vices, of course. Th main one for a TASM (or MASM) user is Find Line #.
  256.  
  257. ASMEnv--EDITOR
  258.  
  259. Everything described above is "support" services and "tools." What ASMEnv is
  260. about, of course, is editing your .ASM source code. Each window opened is a
  261. full-featured text editor pre-customized for assembly language source code
  262. production.
  263.  
  264. Open Screen: The screen must be a sheet of paper rather than a monitor screen
  265.              in any text editor and particularly in one used for the columnar
  266. assembly language notation. TVEdit presented a monitor. As in WordPerfect or
  267. some other word processors, holding down the Right Arrow took you to the line
  268. end and, then, to the beginning of the next line. The monitor to the right of
  269. the line ends was "nothingness." Modifying the Editors.PAS code to even rough-
  270. ly emulate the TP IDE "open screen" was wading in the briar patch and cutting
  271. strands as though disarming a bomb. But, I've got a fairly smooth open screen
  272. for you.
  273.  
  274. Hit the Right Arrow key when you are at the end of a line of text, and a space
  275. is added and the cursor moved forward. Use the Tab key, and spaces will be
  276. added, if needed, to put the cursor on the target column. Use the Up or Down
  277. Arrow key, and spaces are added, if needed, so you can go onto the new line in
  278. the column you presently occupy. Use PgUp or PgDn and you are in the column
  279. you expect to be in when you arrive.
  280.  
  281. You'd think this would fill up your small (61440K) files with spaces in short
  282. order if you happen to travel a lot. So I've built in "cleaning" of trailing
  283. spaces. I had to do that, too, so that use of the End key didn't sometimes
  284. leave you out in the boonies and so that some Shift-cursor combos didn't fail
  285. to select properly. I put ShrinkLine (my cleaner) on the Home, End, and Enter
  286. keys for starters (though I had to take it off Enter to keep Autoindent after
  287. a skipped line). More elegantly, I fixed the Up and Down Arrows so the key
  288. padded, if necessary, the line it was going to, went, and cleaned the line
  289. just abandoned. Usually, when landing on a line you aimed at, you'll use
  290. lateral arrows, Home, End, Tab keys to get to where you type something and
  291. "freeze" the line (with interior spaces) to that point and beyond.
  292.  
  293. Tabs:        TP's IDE uses tabs in conjunction with Backspace to implement
  294.              a system of indent-handlings that is very useful given a nar-
  295. rative language like Pascal. And TVEdit simply used the "multiples of eight"
  296. (from left) positioning of the cursor. For assembly language programs and the
  297. standard four columns for labels, opCodes, operands, and comments, I wanted a
  298. tab setup different from either TP's IDE of TVEDit.
  299.  
  300. All the editors (windows) are the same. Four tab positions form a cycle, and
  301. you forward tab through them: 17-25-42-1-17. Right now, Shift-tab gets you an
  302. Information box about the tabs. Backward tabbing would take as intricate cod-
  303. ing as the forward did. And there are only four. Home back-tabs to 1 and
  304. sometimes End will get you out in the neighborhood you want so a single tab
  305. will place you where you want to be. I've not yet felt any constraint on my
  306. movement due to lack of back-tabbing.
  307.  
  308. TP's Tab is meant to be used on a "clean" line. If used on a line with text
  309. to the right of the cursor, it pushes that text ahead of it. I can't imagine a
  310. situation in which you'd use it for this, so it c'n be considered a nuisance.
  311. Fortunately, you aren't likely to be going to the targets you know Tab seeks
  312. from such a position. In ASMEnv, you definitely want to "float" over text in
  313. one column to get to a column on the right to add or correct something. So the
  314. Tab key definitely DOES NOT push text ahead of it. It floats over text to the
  315. next target column.
  316.  
  317. In ASMEnv, you will want to push text with the Tab in one circumstance. In
  318. another section of this file, I describe my single most important and pride-
  319. yielding "feature." This is what I call "batch text" and, for identification
  320. purposes, the AutoTyping of assembly code chunks. The old-fashioned term is
  321. boilerplate, I think. Anyway, if you use menus in place of hot keys, you can
  322. damn near type an .ASM module using only your mouse. In any case, ^m will type
  323. "mov     " and if you keyed it on the opCodes column, you are on the Operands
  324. column and ready to type "ax, 0" or whatever. If you accidentally typed your
  325. ^m in the labels column, go ahead and type your "ax, 0" and then hit Home and
  326. Alt-Tab...to push the whole two column entry into place.
  327.  
  328. AutoTyping:  I have five menus of hot key bound typing potentials for easing
  329. everybody's number one gripe about assembly language programming: typing those
  330. small chunks of just-so code in their respective columns. My whole design plan
  331. for the IDE, or editor(s), grew out of this. I wanted as many of the TASM code
  332. elements as possible to be typeable as what I call "batch text." So I did the
  333. first thinking about key use that's apparently been done since the days of
  334. CP/M. The cannibalized typewriter keyboard is no longer hooked up to our
  335. machines. We've four banks (shift states) of letter keys and, then, of "other"
  336. keys, the function and pad keys. It made sense, even if I didn't want all the
  337. extra text keys I could get, to use letter keys for things having to do with
  338. "reading" and other keys for things having to with "acting."
  339.  
  340. I've kept the Alt-Ltr combos for hooking menus. And used letters in the menu
  341. items, of course, since the user is in the menu and not the editor. And the
  342. user is reading and typing what's read to get more to read. If you use ^f to
  343. get your Find Dialog, you aren't doing this at all. You are trying to use the
  344. letter f as a mnemonic for the action named Find, but that breaks down fast as
  345. you must use ^l for the Find Next occurrence because ^N is used for New Line,
  346. and ^a for replAce, because ^r is taken for something else. And with the
  347. WordStar diamond, ...all pretense is gone. Oh, in the example I've just used,
  348. I didn't mention the ^Q before some of those keys. It wasn't relevant, and
  349. I've fixed my TP IDE so you don't need it. ^f and ^a work as well as ^q,f and
  350. ^q,a. And I'm aware that out in the world, in say WinWord in Windows, the user
  351. sets up hot keys that use ALL THREE shift keys WITH any other key on the 102
  352. board. So...my design principle is for little, but hot IDEs.
  353.  
  354. Batch Text:  I call the chunks of text on a key batch text. Some of the con-
  355.              structs are complex. For instance, Set DS on ^@ or ^2 will type
  356. two lines and put the cursor on the first line in position to add what is to
  357. be moved into ax for relay into ds. You'll find this on the Constructs menu.
  358. Another construct has some features that you might not find on your own. This
  359. is the IfDef and Else/EndIf on the DefSegs menu. You'll use these for condit-
  360. ional compilation or assembly. It's usual to tab to OpCodes and hit ^y,x. You
  361.  
  362.                 IfDef    _
  363.  
  364. get what you see just above. You can type in the symbol and drop down and put
  365. in the code that will be compiled or assembled IF the symbol is defined earl-
  366. ier in the file (sorry, not yet optional in the IDE).
  367.  
  368.                 IfDef    Production
  369.                   ; code here
  370.  
  371. That's usually as far as it goes. But sometimes, you want an "else" block or
  372. even an "ElseIf." Now, you'll see some features. You've just typed "code
  373. here," so now hit Enter. You are under the semi-colon and are tempted to use
  374. Backspace to get under IfDef (not being in TP's IDE, you must hit it twice).
  375. Don't bother. Type ^y, z. You will get what is below, because ASMEnv saved
  376.  
  377.                 IfDef    Production
  378.                   ; code here
  379.                 Else_
  380.                 EndIf
  381.  
  382. IfDef's column and uses it. You are at the end of Else. You can type "If"
  383. and Tab to put in a symbol. Or just hit Enter to get a line between Else and
  384. EndIf for a code block. Suppose you hit ^y,x in the Label column? Easy, type
  385. your symbol where your cursor is, Home, Alt-Tab to push the text. Now, ^y,z
  386. will Put the Else/EndIf block in the Label column. And your cursor is after
  387. Else. Don't type, push, or fix. Hit ^Backspace twice. It takes out the two
  388. lines. Now, type ^y,z again. It will print in Column 17 this time because it
  389. adjusted the column tracker variable after the first print. The default IS
  390. column 17, the OpCodes column.
  391.  
  392. Editables:   The segment definition strings, from my batch text, and the paths
  393.              for the programs wired in as tools, are editable. I've given the
  394. definition lines that are standard in texts for novice programmers, since I am
  395. a novice programmer and work with these. You can replace them with whatever
  396. you use, including the "short form" notations such as .CODE or CODESEG. I've
  397. tied the spacing in with the tab settings for decent appearance, so you might
  398. want to hit the insert key for typeover before editing.
  399.  
  400. Edited strings and the accumulated histories are saved from one work session
  401. to the next in the ASMEnv.CFG file. But if you want to change the defaults so
  402. you don't have to redo all these if you decide to "work differently" in some
  403. transcendental sense later, you have to go into a byte editor like Norton's
  404. DiskEdit. Find the string and you'll see zeros behind it up to a face symbol.
  405. That's the field (space) available to you. Type in the string you want with
  406. zeros filling that excess, write the cluster to disk, and you're set. DO NOT
  407. FORGET that the byte before my lead c is the line length and you must make
  408. that match your new string length (on the hex dump side).
  409.  
  410. Printing:    Printing is on the File Menu and the Alt-F2 hot key. If you have
  411.              a block selected, that, rather than the whole buffer, will be
  412. printed. The "save to PRN" of 1.8 has been replaced. ASMEnv uses a child pro-
  413. gram, ASMPRN.EXE, which must be on your path. Key or click Print and you get
  414. a message reminding you to prepare your printer. OK or Cancel. ASMEnv sends
  415. the selected block or the whole buffer to the disk as ASMPRN.TMP. It then
  416. Exec's ASMPRN. After ASMPRN returns, the .TMP file is deleted and you're told
  417. the process is finished. You set the command switches in Print Setup. There
  418. is a stack of switch lines you set and this is kept in the .CFG file between
  419. sessions. If the bar is on Print Setup, or you are in the dialog, F1 gets
  420. information about the switches.
  421.  
  422. Clipboard:   The clipboard is a transfer point for inter-editor copies or
  423.              cuts and pastes. I've altered TVEdit's clipboard to match TP's.
  424. That is, when you put something new in, what was there is not deleted but
  425. simply deselected and the new insertion begins on the next line. You can go
  426. back in and delete or deselect the current selection and select something
  427. you were copying out before. Perhaps a series of insertions was interrupted
  428. for a quick one. You can also use the Clipboard as a SCRATCH PAD. Type a
  429. trial entry. If it's right, Select it, and paste it into an editor. But
  430. remember to take it out, reselect what was selected, and put the cursor at
  431. the END, not the start, of the selection. That's so that something new put
  432. in will get its new line AFTER the selection. Of course, if you want your
  433. scratch piece to be the last entry, do nothing but be sure you've selected
  434. it front to end and DON'T select backwards after typing. Cursor must be
  435. at the end of the selection and at line end...so that NewLine works without
  436. pushing text. If you're at end of non-selected text, a new entry won't get
  437. a fresh line, so you might Enter to get a fresh line. The rule with selected
  438. text is that SelEnd = LineEnd = Cursor.
  439.  
  440. On-Line Help: This .DOC file is sketchy and isn't intended to be a manual or
  441.               even "help" when you're working. It's something between a de-
  442. scription and a conversation. You'll find REAL help, context sensitive and
  443. detailed, on your F1 key. (The right mouse button opens help like F1 and
  444. closes it like ESC no matter where the mouse is.) Shift-F1 has the last "no 
  445. context" help , so that if you are in an Editor you get the Intro F1 would 
  446. get on the empty desktop blotter. And if you read the note in TA.BAT on the 
  447. distribution disk and set up that .BAT file and use it, you'll have Borland's 
  448. THelp.COM on ^F1. In fact, look at the TA386.BAT, Config.386, and AutoExec.386 
  449. files and see how to set up to have TD386 and TF386 from inside ASMEnv. In 
  450. the on-line help, you find how to "page" large (and other) files, how to use 
  451. a great variety of printers, including Postscript and Laserjet printers, as
  452. "line printers" or "highlighting" printers. In fact, the "manual" is in there
  453. in draft form.
  454.  
  455. INFORMATION:
  456.  
  457. I'm more or less contactable at The Re-Geniusing Project, 1432 Spruce St.,
  458. Berkeley, CA 94709. Sorry, no electronic addresses, you'll just have to
  459. put it on the U.S. Mule for carrying. I'm there sometimes, as are my col-
  460. leagues Crine Outlaud and Mr. Sprech, First Artificer of Enterprises, and
  461. others. C'n engage in shop talk, but of course can't wave source code
  462. around for reasons outlined above. If you're seeing this on somebody else's
  463. machine and want a copy, send ten bucks for disk, pack room on the Mule,
  464. and such, since the lot of us often can't scrape up the price of a box of
  465. disks. But, if you don't have it, don't NOT ask...we'll find it. And if,
  466. gawd willing, you want to underwrite further puttering with a non-required
  467. "license fee," ...we'll think of you as we empty dust out of and fill
  468. the coffee pot!
  469.                                                        -Gene Fowler
  470.                                                        July, 1993
  471.