About
Docs
Files
Support
Index

Essentials
AutoDocs
Library functions
Cooperate
Process mastering
Debug
Own debugging kit
FGE
Smart modeid pick
Loader
Shared lib. loader
Macros
Helper macros
Structs
All the structures
Logs
Library changelogs
Tools
Progs baked inside

Tools
amiscreen0.3
ansifilter0.1
auto2guide0.1
ccfilter0.1
chipset0.1
cputype0.1
device640.1
dupfilter0.1
expandlogs0.1
findsm0.2
fmpp0.1
fsmount0.1
genanim0.3
gensymtab0.1
hashlab0.4
ktm0.6
linkpoint0.1
logo2ilbm0.1
lpradio0.1
lzwpack0.1
minism0.2
mkheader0.1
modeidctrl0.1
mss0.6
multisum0.3
newterm0.2
numconv0.1
palhack1.1
patmat0.1
pfr0.2
playamitape0.1
qdbflags0.1
qfill0.1
resmodinit0.2
sadctrl0.2
saveassign0.1
setanim0.2
systime0.1
tokendump0.1
uassign0.1
viewlogo0.1
waitback0.4
wrapmount0.1



M
S
S

mss-0.6
--------

---


                                        m        mssmss
                                         s       s    s
               s  s      mss     mss      s      s    s
              m ss m    m       m          m     m    m
              s  m s     ss      ss       s      s    s
              s    s       m       m     s       s    s
              m    m    mss     mss     m        mssssm
          
               mega    screen   shell   ver.      0.6



What you see here is totally new incarnation of 'mss'(a program that does
the fullscreen CLI with ANSI-like feeling). Main advantages over the last
version are:

   () Upto 4 independent shell processes on a single screen. They are not
   just windows, they reverse-react against each other!

   () Control over the window arrangement(vertical, horizontal, tiled) as
   well as control over the viewport size(shells can be "zoomed").

   () Additional  animated(#?.logo)  or  still(also in 24 bit)  logo  per
   shell can now be set :-) .

   () Custom background  colors(each shell can have its own bg/fg colors,
   without the need to alter the palette).

   () Proper screen pen mappings(windows invited to screen mainatained by
   'mss' look like those on the Workbench at at least 4 bits).

   () Enhanced  modeid  selection(thanks to 'nfo_findgfxentry()'), so you
   got maximum control over the screen mode.

   () OCS/ECS/AGA/P96/CGX/... compatible(but only under V39+ of the OS!).

   () Screen bar trigger(screen bar can now be switched on or off just by
   clicking top-left corner of the screen).

   () Palette(8 bit == 256 colors)  can  be specified on the command line
   as well as loaded from file.

   () Local(tooltypes/comment field)  or  global(environment) preferences
   support, so usage is really nice and easy.

   () Totally CLI secure,  which means that can be started from Workbench
   and still be a CLI process!


Features that were here before enhancements:

   () Fonts are freely settable and can be as big/small as you like.

   () Allows to use different than standard 'CON' handler, such as 'KCON'
   or 'VNC'.

   () Screen title even though in most cases invisible can be adjusted to
   whatever name you like.

   () Marking, copying and pasting text is possible of course.
  
   () UNIX-like proggies can now shine with its  ANSI colors if 'amiga-f'
   terminfo/termcap is being used.

---

NEWS:

   [18-Feb-2013]   0.6   * New compile due to reworked library subsystems
                           plus  switched  to native  shell launcher  for
                           maximum compatibility.

                         * Proggy  sets now 'mss' environment variable to
                           indicate fullscreen  CLI so  it is possible to
                           take some action in the startup script.



   [30-Jan-2011]   0.5   * Thanks  to  Lombi  for  pointing  out  lack of 
                           screen  activation! I  am  using  'mcp', so it
                           does this automatically for me.

                         * Major rewrite. Quite modular, 'qdev' dependant
                           design with lots of new features.



   [28-Jun-2009]   0.4   * Thanks to Wawa for pointing out  VNC: . Due to 
                           strict  error code checking ViNCEd didnt work.

                         * Added Commodore64 look and feel option ;-) .



   [24-Jun-2009]   0.3   * Mega thanks to  Stellan Pistoor  for reporting
                           problems  with  unofficial  handlers.  I  have
                           added  workaround  for buggy KingCON 1.4+,  so
                           hopefully  screen will close now after issuing
                           'endcli'.

                         * Proggy can now be compiled with 'gcc' as well.



   [20-Jun-2009]   0.2   * Removed some bloating code.

---

NOTES:

[*]
Requires 68020(no FPU)+, OS2.04(theoretically)+, 40+ kilo of free memory.

[*]
By default 'mss' gets modeid from Workbench, but if no "Workbench Screen"
is opened then it tries to read  'env:sys/screenmode.prefs',  and if that
fails then reverts to 0.

[*]
On startup no 'diskfont.library' is being used, it will be used only when
you request a font. No error message will appear on failure though!

[*]
To switch between screens use  'LAMIGA + n' or 'LAMIGA + m'. You can also
do that with mouse, just click top-left corner of the screen with LMB.

[*]
Aside from  'endcli' you can terminate the shell also with 'CTRL + \' key
combination. Please note that this may not work with certain keymaps!

[*]
If  you  want logo to be loaded through datatypes then make sure you have
got  'guigfx.library'  and  'render.library' installed(any recent version
should do)!

[*]
It is assumed that the pen number  0 is the transparent pen for logos. So
remember about that while making your own animation or still picture!

[*]
There is absolutely no need to supply external palette per logo!  Palette
will  be  taken from the picture  and will be quantized  and  the picture
itself remapped with possible auto color allocation!

[*]
A  bunch  of  animated  logos  can be found in 'qdev' archive in 'logos/'
directory.

[*]
Currently  there  is  no way for the logo area to share custom background
color as set with 'BF=BGFG/K', sorry!

[*]
Now it is possible to make permanent customisation. You  can either embed
preferences in the executable(in the comment field) or create 'mss.prefs'
in 'Env:'. The  very  first  method  is  considered  local  and the other
global(advantage over the local). Please note that file comment can be as
big as 80 bytes only! Also,  you  can  overrride the settings at any time
by providing command line alternatives.

[*]
Environment  settings  can  be multiline. You can pass each argument in a
separate line so config is more readable. Comments are allowed of course.

[*]
If you are an  AGA  user and want to save on precious chip memory as much
as possible and boost the chipset then go Aminet and in the search string
type 'gfxroute'. In this  package you  will find some infos on that topic
and also links to programs who make that possible.

[*]
Use 'newterm "MSS:[arguments]"'  as a background launcher which adds some
nice features too.

---

HELP:

   > mss ?

     TITLE,PUB=PUBNAME/K,DEV=DEVICE/K,ID=MODEID/K,D=DEPTH/K,A=ACTIVE/S,
     F=FONT/K,NA=NOANSI/S,M=MONO/S,P=PALETTE/K,NC=NUMCON/K,L0=LOGO/K,
     L1=LOGO1/K,L2=LOGO2/K,L3=LOGO3/K,F0=FROM/K,F1=FROM1/K,F2=FROM2/K,
     F3=FROM3/K,RF=RFLAGS/K,ZF=ZOOMFCT/K,BP=BACKPEN/K,YL=YLIMIT/K,
     BF=BGFG/K,RC=RESETCON/S,C64=COMMO/S,SB=SHOWBAR/S,B=BEHIND/S,
     PT=PROMPT/K



   TITLE          -  Screen  title of this fullscreen CLI session. If not
                     specified then public screen name will be used. Note
                     that  there  can  be  two  or more screens with same
                     names!

   PUB=PUBNAME/K  -  Name  of  the  public screen that will be created by 
                     the  'mss'.  By default ascending numbering is being
                     used. Public screen names must be unique!

   DEV=DEVICE/K   -  Console handler name and/or its arguments.  'CON' is
                     being  used by default or when provided handler does
                     not  exist  or  does  not work. Handler must support
                     attached 'WINDOW' argument!

   ID=MODEID/K    -  Despite the key name 'mss' offers now amazingly easy
                     and powerful  resolution  selection. Lazy people can
                     benefit, because  there is no need to memorize those
                     cryptic  hecadecimals  anymore. For  example, having
                     just one graphics board and wanting to  use 1024x768
                     you  just  type it: 1024x768 and that is it. You can
                     also pass the depth if you do not want OS to pick it
                     for you. If  you  got multiboard system then monitor
                     name   will   do(input   must   really  be  quoted):
                     "640x480x4 NTSC similar" . I  dont  know  if you did 
                     notice  it,  but  by  default  'NTSC'  does not come
                     with  such  a mode.  The very last argument makes it
                     possible. Refer  to autodocs on 'nfo_findgfx#?()' or
                     read the  additional  docs and study the source code
                     for more details.

   D=DEPTH/K      -  Allows  to  pick new color depth for a screen(if not
                     passed through the key above already). Depth  can be
                     expressed  in  bits only, in range from 1 to 32. All
                     non-standard  depths  will  be  rounded  to  nearest
                     available.

   A=ACTIVE/S     -  By default 'Workbench' modeid will be used, but with
                     this  switch you can tell  'mss'  to take the modeid
                     from current/active screen.

   F=FONT/K       -  Font  that  should  be used in the shell window. The
                     syntax is:  <fontname>/<fontsize> where '<fontname>'
                     lacks '.font' suffix like: topaz/16 .

   NA=NOANSI/S    -  Tell  'mss'  not to use ANSI-like palette. This will
                     most probably employ  'Workbench' colors if there is
                     no custom palette.

   M=MONO/S       -  This  switch  aside  from picking 1 bit ANSI palette
                     will also enforce 1 bit depth!

   P=PALETTE/K    -  Allows  to  set  8 bit  palette that consists of RGB
                     values,  that   must  be   comma   separated   like:
                     0x00AABBCC,0x01CCAABB,... You can also create a file
                     with  newline  separated  values  and  pass its name
                     here. Color coding is simple, having 0xpprrggbb they
                     correspond:  pp - pen number(0-255),  rr - red value
                     gg - green value,  bb - blue value. Pen numbers need
                     not to grow, can be passed in any order. Please note
                     that only first 12 and last 4 colors will be locked!

   NC=NUMCON/K    -  Number of shell processes  to start for this screen.
                     Currently  there  can be  max  4 shells. Please note
                     that "view control" works with at least 2 shells!

   L0=LOGO/K      -  Name  of the logo/picture that  will be installed in
                     top-left corner of the first shell.

   L1=LOGO1/K     -  Name  of the logo/picture that  will be installed in
                     top-left corner of the second shell.

   L2=LOGO2/K     -  Name  of the logo/picture that  will be installed in
                     top-left corner of the third shell.

   L3=LOGO3/K     -  Name  of the logo/picture that  will be installed in
                     top-left corner of the fourth shell.

   F0=FROM/K      -  Name  of the shell script  that will executed in the
                     first shell at startup.

   F1=FROM1/K     -  Name  of the shell script  that will executed in the
                     second shell at startup.

   F2=FROM2/K     -  Name  of the shell script  that will executed in the
                     third shell at startup.

   F3=FROM3/K     -  Name  of the shell script  that will executed in the
                     fourth shell at startup.

   RF=RFLAGS/K    -  Window  rearrange  flags. These are: h - horizontal,
                     v - vertical,  t - tile .  After  each  arrangement:
                     c - (no) cross   can be specified if spacing between
                     shells is not desired.  The (re)arrangement can also
                     be done while the 'mss' is running.

   ZF=ZOOMFCT/K   -  Zoom  factor(in percents) used for scalling windows.
                     Zoom  value  can  be in range of 1 to 100 where 1 is
                     slow and 100 is fast. Really usable  range starts at
                     something like 16 to maybe 32. You will have to pick
                     this experimentally based upon your liking.

   BP=BACKPEN/K   -  Background   pen  number(0-7)  used  for  so  called 
                     "cross" rendition.

   YL=YLIMIT/K    -  Maximum pixels logo will take in Y axis. Please note
                     that there is still safety value you cannot go over.

   BF=BGFG/K      -  Allows to  set background/foreground pair similarily
                     to palette. General syntax  and in file organisation
                     are  same.  The  difference lies in function of each
                     octet. Here  we  have: 0xssnnbgfg where:  ss - shell
                     number(0-3),   nn - null,  bg - background pen(0-7),
                     fg - foreground pen(0-7). Please note that this ties
                     to 'prompt', so you should not be touching it or the
                     colors will go away on console reset!

   RC=RESETCON/S  -  Try  to  reset  the foreground pen to something like
                     white color. When  using  this,  you  cannot use the
                     option above and vice versa!

   C64=COMMO/S    -  Turn  on Commodore64 look and feel.  This  only sets
                     the  "paper"  area, proper colors and minimal depth.
                     It is up to you to provide  the right resolution and
                     the font.

   SB=SHOWBAR/S   -  By default no screen bar is being displayed, but can
                     be toggled. If  you want it to be visible on startup
                     then use this switch.

   B=BEHIND/S     -  Open  behind  all  other screens. This will not make
                     the screen/window active!

   PT=PROMPT/K    -  Allows  to  set  CLI prompt independently of current
                     settings. Useful when using tooltypes.

---

RUNTIME:

   +-------------------- - -
   |\__My_Shell_Screen__ _ _
   | \
   |  \
   |   Click here if you want title bar to showup or disappear(1)
   |
   |
   |
   
   |

   |20.RamDisk:> _                                                   |

                                                                     |

                                                                     |
                                                                     |
       Put mouse pointer in this area to change the properties(2)    |
                                                                     |
                                                            _________|
                                                           | 640x480 |
                                             - - --------------------+

  (1) - If you click top-left corner of  the screen with  LMB then screen
  title bar should appear. If you do that once again it will disappear.

  (2) - On  the other side of the  screen you can  find  another surprise
  called:  "view control".  It  does  not  only  display  current  window
  dimensions, but  also allows  to control the  window with keyboard. Put
  your  mouse  pointer  near bottom-right corner of the shell window,  so
  little OSD will light up. To kill it, take the mouse pointer from there
  and put it there once again.

  While the OSD is being displayed you can control the shell with numeric
  keypad(comfortable) or if your Miggy lacks it use analogic  keys on the
  ordinary keyboard. Currently following keys are bound:

     '+'  -  Enlarge/zoom in current window,  so all other windows do the
             opposite.

     '-'  -  Shrink/zoom out  current window, so all other windows do the
             opposite(as much as they can).

     '/'  -  Switch  between  arrangements(horizontal,  vertical, tiled).
             Please note that tiling works only with 4 shell processes!

     '*'  -  Reset current arrangement, so all windows share equal amount
             of screen.

     '.'  -  Toggle window separator - "cross".

     RET  -  Return  key  transfers  back to shell.  Same can be  done by
             placing mouse pointer in bottom-right area once again.

---

CLI USAGE:

   ; Workbench modeid, pen mappings and fonts + ANSI-like colors
   mss

   ; modify the very first color so it is not totally black
   mss p 0x00123456

   ; shells have different colors
   mss nc 4 bgfg 0x00000200,0x01000503,0x02000407,0x03000301

   ; custom name, two processes and other than CON: handler
   mss MyShell nc 2 dev KCON://///JUMP/ASYNC/FASTUPDATE

   ; Commodore64 experience(resolution of 800x600 and 'topaz/16'
   ; make it look right imo)
   mss C64ish c64 dev VNC: id "800x600 ACTIVE similar" f topaz/16


   ; setup some defaults in such a manner that all the settings
   ; will be sitting in the binary
   filenote mss comment "Miggy logo //logos/boing/boing.loco"
   mss

---

WB USAGE:

   1) Create a project icon(just an '.info' stub)

   2) Use Workbench to inspect it(Information...)

   3) Set the tooltypes to what you would type on
   the command line

   4) Set default tool to  'mss' and press 'Save'

   5) Now  just double click  that icon and enjoy

---
megacz
    


No more fear cus pure HTML is here!
Copyright (C) 2013-2014 by Burnt Chip Dominators