
1.0 Introduction

 AsmMgr is an assembler IDE front end.  It calls several
 support programs and can coordinate development.  The
 design is similiar to the mc file manager.

1.1 Purpose

 AsmMgr was written to ease assembly developement and
 remove some of the hurdles faced by novice programmers.
 At the time of this writting the goal was getting close
 but still needed the project setup module and debugger.
 These limitation will be insignificant to experienced
 programmers who can plug in their favorite debugger
 and setup projects manually.

 The major IDE programs are:
  asmedit - editor
  asmlib -  library
  asmplan - todo list (design functions planned)
  asmref  - extensive help system
  asmfunc - helper programs for asmedit, asmmgr, and others
  asmmgr - front end
  asmpub - builds documents from comments in source (in design)
  asmbug - debugger, not available yet

1.2 Overview

  The AsmMgr window looks like this:
+------------------------------------------------------------------------------+
| Project | Setup | Help  | Quit  | -- | plan | make | debug | home | home | ho|
+------------------------------------------------------------------------------+
| alt-p   | alt-s | alt-h | alt-q | -- | alt0 | alt1 | alt2  | alt3 | alt4 | al|
+------------------------------+-----------+-----------------------------------+
|  (left window)               | status    |   (right window)                  |
|                              |  F1       |                                   |
|                              | Open      |                                   |
|  first time put hint here.   |  F2       |                                   |
|  use Open to create project  | View      |                                   |
|                              |  F3       |                                   |
|  if no project name input,   | Edit      |                                   |
|  then use history            |  F4       |                                   |
|                              | Copy      |                                   |
|  if no history use /asm      |  F5       |                                   |
|                              | Move      |                                   |
|  show results of terminal    |  F6       |                                   |
|  commands in non-active      | Mkdir     |                                   |
|  window.                     |  F7       |                                   |
|                              | Delete    |                                   |
|                              |  F8       |                                   |
|                              | Expand    |                                   |
|                              |  F9       |                                   |
|                              | tar.gz    |                                   |
|                              |  F10      |                                   |
|                              | Compar    |                                   |
|                              |  F11      |                                   |
|                              | Print     |                                   |
|                              |  F12      |                                   |
+------------------------------+-----------+-----------------------------------+
| Term |        (show selected path, hints, input data prompts)                |
+------------------------------------------------------------------------------+
|alt-t | >      (terminal cmd)                                                 |
+------------------------------------------------------------------------------+

 The middle buttons are file related and work on the highlighted file.
 For move or copy operatons the higlighted file/directory is moved to
 directory shown in oposing panel.

 The bottom line is always available for shell commands.

 the top row of buttons are user defined.  The defaults are
 setup to create an ide for assembler.  All top buttons are
 attached to external programs or scripts.


2.0 Program Inputs

 AsmMgr can accept paths for the two windows.  If a path is
 not provided the current working directory is used.
 Eventually, AsmMgr will accept project names in
 additon to a path.  This will appear when the project module
 is completed.

3.0 Usage

 The mouse is active in all windows (if AsmMgr is executed in
 an xterm).  In console mode,  the keyboard is used.  In most
 menu's the up/down arrow keys followed by enter, will select
 options.  Escape can be used to exit most windows.

3.1 Mouse Usage

 All buttons can be selected by mouse clicks.  The right/left
 pannels can be activated by mouse clicks and once selected
 individual files can be highlighted.

3.2 Top button bar

 The top buttons can be configured with "setup" as either
 functions or bookmarks.  A bookmark label has to start
 with the "/" character and functions can be any executable.
 All top buttons result in execution of a shell command.

 Since some of the buttons call scripts it is easy to change
 the way they operate.  Each top button executable recieves
 the selected right/left window entries as parameters.

3.3 vertical button bar

3.3.1 status

 The status button brings up a table showing the
 status of current highlighted entry.  It also allows
 attributes and owners to be changed.

3.3.2 open

 The open button works on highlighted entry.  If a
 directory is highlighted, it is entered.  If a file
 is highlighted it is decoded using a table of
 instructions (see setup function to edit table).
 If the file is an executable it will be executed.

3.3.3 view

 the view button works on highlighted entry.  It
 will try to determine viewing options using a
 table of instructions. (see setup button to
 edit table).

3.3.4 edit

 The edit button starts an editor on the currently
 highlighted file.  The default editor can be selected
 from the setup button.

3.3.5 copy

 Copy transfers files/directories from on pannel to
 the other.  An option to change names occures before
 the copy.

3.3.6 move

 Move will move files and directories and rename
 them.  To rename anything set both pannels to the
 same location an use move with name change.

3.3.7 makedir
 
 Not much to say here.

3.3.8 delete

 Delete is a very dangerous button.  Beware, it does
 not ask first.

3.3.9 expand

 Expand knows about most compression types and expands
 them.

3.3.10 tar.gz

 Tar.gz makes compressed files in only one format. 

3.3.11 compar

 Compare will compare the two text files in right
 and left pannels.  It uses an external program to
 do this which can be changed by editing the compar
 script.

3.3.12 print

 Print needs to be setup for your printer.  It is
 currently setup for a deskjet 500 which may not
 be ideal.  The print script can be edited to
 change its operation.

3.4 Terminal Button

 The terminal button can be used to check on the results
 of AsmMgr shell commands or work in the shell.  Once in
 the shell it is necessary to type "exit" to return.

3.5 Terminal Entry Line

 The terminal entry line accepts all alpha characters typed.
 Pressing <return> will execute the line.  Note: if no
 characters have been typed, the <return> key is connected
 to the open button.

 The highlighted file can be inserted into a terminal command
 by entering "%f".  For example: to edit the current file with
 vi type:
  
     vi %f <enter>

3.6 Keyboard commands

  esc    -  exit
  alt-q

  tab    - swithces pannels

  right/left
  arrow keys - traverse directory tree

  up/down
  arrow keys - traverse up/down file list

  pgup/pgdn  - page up down file selection pannel

  enter - same as open button if terminal line blank

  all other keys are show on buttons and usage is
  obvious.

4.0 Installation.

  The command "make install" can be used to install
  all programs in the AsmIDE family.  General use
  executables are placed in users space at /bin if
  it is available.  If not available the files are
  placed at /usr/bin.

  The remaining files are placed in the AsmIDE work
  area ($HOME/.asmide/xxx).  The work area has all
  temporary files, scripts, data files, library file,
  and is divided into directories.

5.0 Design

  AsmMgr is written in assembler but calls numerous
  common system programs.  Unfortunatly, it is not
  portable beyond Linux x86 systems.

  Most of the code is in AsmLib and was created with
  AsmEdit.  The AsmRef function was used for information.

  The code is not optimized and could be shrunk by at
  least 50%.


program flow
------------

  * open library
  * parse input line and save
  * if first time check if directory structure setup.
  *   if directory missing, exit and display error msg
  *   else - verify project directory and files copied by config.
  * if no project selected, read dir and pick first one.
  * if project selected, then read dir and create new proj if
  *     name does not match existing projects.
  * compute window demensions
  * display window
  *   display_buttons
  *   display_mid_buttons
  *   display_inactive_window
  *   display_status_line
  *   display_active_window
  *   display_term_line ; waits for input
  
  * if new project button press, present table of options
    assembler - project name - 
  * copy files and check if assembler avail.  check other
    tools.

