Short.Stop's
About VBX
Excerpts from the documentation for VBX 3.00–3.07,
by Manfred Jainz

Introduction
ÄÄÄÄÄÄÄÄÄÄÄÄ
 VBX is a full-screen character mode box drawing tool for DOS and the
Windows 95/98 DOS-box.

 Its main purpose is to support box drawing in text files, which is why it
contains only usual text edit functions. Complex text editing
(i.e. word processing) should be done with a text editor like VDE. It is
only meaningful to work with a fixed font.


Features
ÄÄÄÄÄÄÄÄ

   - simple user control by single-character commands

   - fast hypertext help called by F1 (file: vbx.htx)

   - draw lines,boxes with single or double bar ASCII graphic characters
     by using the cursor keys only, supplying all the necessary corners,
     tees and crosses itself, NOT available characters default to BLANK.

   - draw with character under cursor or with a blank

   - select character for drawing from complete extended ASCII
     character table

   - mark rectangular regions (in VDE: column blocks) (see VBX online help)

   - mark text as usual for cut & paste

   - reformat text in a box, range of lines, the complete file

   - draw a box onto the border of a marked region with one keystroke
          - b  for single bar box
          - B  for double bar box

   - add horizontal/vertical line to a marked box to subdivide it into
     sub-boxes with one keystroke, supplying eventually necessary tees
     and crosses itself (even mixed single/double bar)
          - h/v  for single bar line (horizontal/vertical)
          - H/V  for double bar line (horizontal/vertical)

   - move, shrink, extend a box or marked region, preserving the line
     graphics and NOT accidentally destroying text outside the region
      Text being mowed down by moving or extending is saved in a "shadow"
     buffer of the size of the marked region and will reappear, if you
     go on moving, or shrink after accidentally extending too much.

   - comprehensive undo for one or a sequence of any paint/edit operations

   - copy, clear marked regions (cut and paste), with a paste buffer,
     from which you may recover text accidentally cleared (last clear)
     (paste will also mark the pasted text; text overwritten by a paste
      operation is still in the "shadow" buffer under the marked region.
      If you clear=delete a marked region into the paste buffer, any
      shadowed text will reappear.)

   - directory wildcard select (file browser), selected directory entries
     may be shown on the screen either rowwise or columnwise arranged,
     default is columnwise. If you prefer rowwise, then add the following
     line at the end of your profile file: Directory=Rows

   - sort directory by filename/extension

   - arrange directory row/column-wise

   - change drive

   - copy/move from one file to another (using the paste buffer)
     (there is no split-screen feature, but you can enter another file
      either with a single character command or by going into the directory
      and selecting it from there)

   - find string (forward/backward) case insensitively

   - change string with undo last change (forward only)

   - fill blanks in marked region with character currently under the cursor

   - a paste buffer indicator in the header line, which changes shape
     each time you change the paste buffer's contents ( 0 = empty )

   - save  entire file  into a file
     if extension is .EML (for E-mail), all extended ASCII graphics are
     translated to 7-bit ASCII equivalents "|-=+^v<>".

   - sort marked area content

   - write paste buffer into a file
   - read  paste buffer from a file

   - tab from box to next box (left upper corners)

   - text edit the interior of a box by placing the cursor on the upper
     left corner of a box and issue 'e' (without blips for edit).
     Terminate editing by Esc.

   - text edit total file by issuing 'e' NOT on an upper left corner of a box.

   - toggle box<=>text marking when editing text

   - translate marked text to lower/upper case

   - translate marked text to hexadecimal characters

   - translate edit object with user defined code translation table

   - load, view, edit translation table

   - open a file in text / binary (=stream) mode (see COMMAND.VBX)

   - edit file in character/hexadecimal mode (see COMMAND.VBX)

   - call (spawn) VDE for intermediate text editing (see COMMAND.VBX)
     VBX uses the SPAWNO routines by Ralf Brown to minimize memory use while
     shelling to DOS and running VDE.

   - view and edit the contents of the paste buffer

   - use mouse for marking, selecting, escaping and moving the cursor
     To enable the mouse add "Mouse=Yes" in your profile VBX.FSP.

   - keeping a backup version of file (before update image) as name.BAK

   - color setup: choose your own combinations of standard DOS colors
                  or even use privately mixed non-standard colors

   - cursor setup: - non-blinking block cursor    (Steady    )
                   - blinking block cursor        (Block     )
                   - blinking underscore cursor   (Underscore)

Go back to top of page

What's new in VBX 3.07 - 2008/03/27
===================================

 For quickly rearranging a sequence of lines, I implemented two
 functions to swap current line with preceding/succeeding line.
 (Current line is the line containing the cursor)

 Changed commands:
 -----------------
 Previously Ctl+Up/Ctl+Down were used to paint fat arrow up/down.
 These have to be painted now by using the ASCII picker.

 Now
 - Ctl+Up   swaps current line with preceding one,
 - Ctl+Down swaps current line with succeeding one.

 This works for either complete text lines or the lines in a box-marked
 region./pre>

Go back to top of this page

What's new in VBX 3.06 - 2006/05/20
===================================

 New commands:
 -------------
   Ctl+K       copy file directly into member currently being edited
               If you are in Box-mark mode (Box), the file is inserted as a
               rectangular area (width=longest text line), honoring Ins=On/Off,
               otherwise (Txt) the file is inserted like a normal text
               paste.

 Changed commands:
 -----------------
   b,B         may now be used to paint a mini-multi-box (see Alt+F6)

   Alt+F6    - grabs current cursor column as interval for expanding tabs
             - also grabs now current cursor row and column, where
               cursor row    => no. of rows    for next b/B command,
               cursor column => no. of columns for next b/B command

               After the next b/B command these no. of rows/columns are
               both reset to (1,1).

   Ctl+F       acts now like F2=Find string, no longer synonym to Alt+F.

 Miscellaneous:
 --------------
   Line buffersize has been increased from 256 => 1024.

Go back to top of this page

What's new in VBX 3.05 - 2005/08/31
===================================

 The main reason for this version is the correction of a buffer-overflow
 bug.

 New commands: none
 -------------

 Changed commands:
 -----------------
   Alt-cursor  move graphic box when cursor placed on upper left corner
   of a box.

 Miscellaneous:
 --------------
   Buffer-overflow bug corrected.
   Directory display (sort) in VBXV.EXE (which uses XMS) accelerated.

 Details:
 ========

 - Buffer-overflow occurred when lines became longer than 256 chars
   during a paste operation or by combining two lines (line1, line2)
   with Del at the end of line1 or Backspace at pos1 of line2.
   VBX splits such a resulting line now into one line containing
   255 chars and another line containing the excessive chars.

 - In extension of the idea of the preceding version - moving graphic
   lines without prior marking -, you may now grab a complete box at
   the upper left corner and move it without prior marking. If VBX
   is in Txt-mark mode, it will switch into Box-mark mode prior to
   the operation.

Go back to top of this page

What's new in VBX 3.04 - 2005/02/02
===================================

 New command:
 ------------
 Alt-s        sort marked

 Changed commands:
 -----------------
  v,V         paint vertical   line (v=single bar, V=double bar)
  h,H         paint horizontal line (h=single bar, H=double bar)
  Alt-cursor  move/resize marked object

 Miscellaneous:
 --------------
 - Bugs corrected in special cases of v,V,h,H commands

 Details:
 ========

 1. With Alt-s you may sort

    - the contents of a rectangular (box marked) area or

    - the contents of a text-marked range of lines.


 2. The basic idea behind the changes is to have a convenient way
   to insert, delete, and move cell boundaries in boxes
   without the need to mark anything.
   v,V,h,H have become "toggles" in the sense, that you may
   create/destroy lines with them.

 - Expanded behaviour of v,V,h,H commands in paint mode=0
   ------------------------------------------------------

   - In box-marked area:

     v,V: if    the cursor sits on a marked vertical line then
                the vertical line is blanked
          elsif the cursor sits on a marked vertical line of blanks then
                paint vertical line
          end if

     h,H: if    the cursor sits on a marked horizontal line then
                the horizontal line is blanked
          elsif the cursor sits on a marked horizontal line of blanks then
                paint horizontal line
          end if

   - Unmarked:

     v,V: VBX looks from the current cursor position
          each to the top and to the bottom for the first
          bounding graphic character containing a horizontal leg

          if VBX finds such characters then
             if    the intervening chars are blank then
                   paint vertical line
             elsif the intervening chars contain a vertical bar char then
                   blank the vertical line between the bounding chars
             else ignore
             end if
          else ignore
          end if

     h,H: VBX looks from the current cursor position
          each to the left and to the right for the first
          bounding graphic character containing a vertical leg

          if VBX finds such characters then
             if    the intervening chars are blank then
                   paint horizontal line
             elsif the intervening chars contain a horizontal bar char then
                   blank the horizontal line between the bounding chars
             else ignore
             end if
          else ignore
          end if

 - Expanded behaviour of Alt-cursor commands in paint mode=0
   and edit mode=E (box mark mode!)
   ---------------------------------------------------------

   - In box-marked area: as before ...

   - Unmarked:

     Alt-cursor_up, Alt-cursor_down: (move horizontal line)

        VBX looks from the current cursor position
        each to the left and to the right for the first
        bounding graphic character containing a vertical leg

        if VBX finds such characters then
           if the intervening chars are a clean horizontal line then
              the bounded horizontal line is moved up/down
           else ignore
           end if
        else ignore
        end if

     Alt-cursor_left, Alt-cursor_right: (move vertical line)

        VBX looks from the current cursor position
        each to the top and to the bottom for the first
        bounding graphic character containing a horizontal leg

        if VBX finds such characters then
           if the intervening chars are a clean vertical line then
              the bounded vertical line is moved to the left/right
           else ignore
           end if
        else ignore
        end if

     Note: if moving a line with Alt-cursor would overwrite any
           non-blank character, the move is not executed.

Go back to top of this page

What's new in VBX 3.03 - 2004/01/23
===================================

 New commands:
 -------------
  Ctl+L      load translation table for code translation
  Alt+V      view current translation table via PASTE
  Alt+Y      delete ALL empty (=blank) lines from a file
             or marked region
  E          sort directory by Extension
  F          sort directory by Filename
  C          arrange directory Columnwise
  R          arrange directory Rowwise

  VBX's directory screen trailer line has been changed
  correspondingly.

 Changed commands:
 -----------------
  Ctl+T      translate text (previously synonym to Alt+T => call VDE)
  HOME, END  if pressed repeatedly
  Esc        when used in hypertext help

 Miscellaneous:
 --------------
 - New in VBX303.ZIP: VBX.FSP (my favourite colour profile)
                      VBX.TRT (cp437=>win1252 translation table)
 - Bug corrected in directory navigation.
 - Bug corrected in ASCII picker (when using monochrome screen)
 - Bug corrected in Cut/Paste: Pasting text-marked text into a
       file being in box-mark mode sometimes caused a crash.

 - Code translation
   ----------------
   VBX.EXE contains an internal code translation table.
   Initially VBX.TRT is loaded as current translation table.
   If VBX.TRT does not exist, the translation table will be idempotent,
   i.e. each character will be translated into itself.
   For further information on translation consult VBX's F1=>Help.

   - Ctl-T  translates current edit file with current translation table
            (F9=>Undo  allowed)

   - Ctl-L  loads current edit file as current translation table
            and exits from current edit file
            If the file contains invalid hex character(s), the file
            is not exited and the cursor is placed on the (first)
            invalid character

   - Alt+V  moves current translation table into paste buffer and
            shows it on screen for Viewing (+editing).
            After editing/correcting you may use Ctl+L.

Go back to top of this page

What's new in VBX 3.02 - 2003/03/21
===================================

 - corrected bug in return (ESC) from zoomed Box-edit when zoom is wider
   than screen and left margin of zoom was no longer visible on the screen

 - marked region is no longer unmarked after delete (Del) in view mode or
   when using box-mark in edit mode

 - changed behaviour of fill marked region: fill only blanks in the marked
   region with selected character. If you want to fill ALL characters in a
   marked region with a selected character and the region is not blank,
   delete (Del) it first. This allows for example to fill in leading zeros
   in a column of (variable long, right adjusted) decimal integers.

 - allow blank only in Find/Change locate-string

 - translate marked characters to hexadecimal characters (Alt-F7, F9=Undo)
 - translate marked hexadecimal characters to characters (Alt-F8, F9=Undo)

   +-------+----+----------+
   |*******|cccc|**********|         - cccc marked
   +-------+----+----------+
           |    \
        Alt-F7   \
           |      \
           v       \
   +-------+--------+----------+
   |*******|hhhhhhhh|**********|     - after Alt-F7 (hhhhhhhh marked)
   +-------+--------+----------+
           |       /
        Alt-F8    /
           |     /
           v    /
   +-------+----+----------+
   |*******|cccc|**********|         - after Alt-F8 (cccc marked)

Go back to top of this page

What's new in VBX 3.01 - 2002/10/14
===================================

 - Translate marked text to upper case    (Alt+U)
 - Translate marked text to lower case    (Alt+L)
 - Added missing Undo for Delete-to-EOL   (Ctl+Del or Alt+End)
 - Updated VBX.HTX (hypertext help) correspondingly
 - Sorted list of ALL commands in VBX.HTX
 - Short Install and Profile information in VBX.HTX
 - Specifying colors in VBX.FSP alternatively with #rrggbb (HTML like)
 - VBXMIX shows now color values also in the #rrggbb format and as %-values
   (thanks to Gary Welles)

Go back to top of this page

What's new in VBX 3.00 - 2002/04/30
===================================

 - Use of up to 32MB of virtual storage
 - Comprehensive Undo                     (F9)
 - Extensive Hypertext Help               (F1)
 - Toggle Text/Box marking                (Ctl+B)
 - Reformat left/right/center/block       (Alt+F1,F2,F3,F4)
 - Expand tab characters                  (Alt+F5)
 - Set tab interval for expanding         (Alt+F6)
 - Cut from file, paste into prompt field (Ctl+C,Ctl+V)
 - Use ASCII picker wherever VBX expects  (Ctl+A)
   keyboard input.

 Details:

 -  Help became too large, it's now better structured as hypertext. (F1)
   Suggestions for content improvement are welcome.
   The name of the new helpfile is: VBX.HTX and, like VBX.HLP, it should
   be placed in the same directory, where VBX.EXE resides.

 -  A new profile option in VBX.FSP:
       Startmode = Edit / Paint
   allows now to start VBX in text edit mode. (Default=Paint)

 -  Marking allows now both Box/Text mark mode.
   When you start editing (E or Alt+E) you are in Text mark mode, but
   here you may toggle between Box<=>Text mark mode with Ctl-B.
   When drawing you are always in Box mark mode.
   The paste indicator in the header reflects this by displaying Box/Txt.
    When box-marking, a box containing some title text in the upper
   horizontal line will still be recognized as a box when you hit Ctl+M
   with the cursor on the upper left corner of the box in order to mark
   the box.

 -  I changed the behaviour of Shift+End when box-marking:
   If something is already marked, Shift+End extends the marked rectangle
   to the right up to the length of the longest already marked line.
   If nothing is marked yet, the current line is marked up to its own end.

 -  A simple reformat function allows to reformat text:
       Alt+F1 => reformat left  aligned
       Alt+F2 => reformat right aligned
       Alt+F3 => reformat centered
       Alt+F4 => reformat block aligned
       Alt+F5 => expand tabs
       Alt+F6 => grab current cursor column as interval for expanding tabs
   You may reformat text in the complete file or in a marked area.

 - F3 is now
      - Next for Find/Replace if in a find/replace loop.
      - Quit otherwise

   Note: Press Esc in a Find/Replace loop to break the loop and to return F3
         back to it's original Quit-functionality.

 - Undo has become quite powerful.
   F9 is now
      - find preceding when in a find loop
      - undo change when in a change loop
      - undo (a finite sequence of) any paint/edit/reformat operation(s)

 -  VBX now makes use of virtual storage. It uses its own paging and element
   allocation algorithms, allocating/freeing pages is delegated to MS VMALLOC.
    Currently VBX can manage up to 32MB of virtual storage and each
   individual file may have up to 32K-1 lines. I plan to have even the
   virtual storage page index itself in virtual storage, so that VBX will
   be able to manage up to 512MB of virtual storage, depending on
   available disk storage and without compromising the size of VBX.EXE
   too much.

   Note: VBX.EXE v3.00 does NOT include the use of virtual storage,
         it only uses DOS main storage like VBX v2.00.

         VBXV.EXE does not differ functionally from VBX.EXE but makes use
         of virtual storage (VMALLOC).


  2001/05/02   VBX 2.00
  1999/09/11   VBX 1.05
  1999/09/23   VBX 1.04
  2000/08/06   VBX 1.06
  1999/07/02   VBX 1.03
  1999/06/09   VBX 1.02
  1999/05/28   VBX 1.01
  1999/05/05   Initial first release VBX 1.00

Go back to top of this page