-- ///cd18/chipndalenmos.TIP
-- Tip-table for ChipNDale NMos
-- Copyright © 1984 by Xerox Corporation. All rights reserved.
-- Created by: Christian Jacobi, June 1, 1984 5:25:04 pm PDT
-- Last Edited by: Christian Jacobi, November 9, 1984 9:57:19 am PST
[DEF,LeftDown,(Red Down)]
[DEF,LeftUp,(Red Up)]
[DEF,MiddleDown,(Yellow Down)]
[DEF,MiddleUp,(Yellow Up)]
[DEF,RightDown,(Blue Down)]
[DEF,RightUp,(Blue Up)]
[DEF,CTRL,(Ctrl Down)]
[DEF,SHIFT,(LeftShift Down | RightShift Down)]
[DEF,LEFTSH,(LeftShift Down | Lock Down)]
[DEF,WireCursor,(WHILE ChipndaleWireCursor)]
[DEF,ArrowCursor,(WHILE ChipndaleArrowCursor)]
[DEF,RectCursor,(WHILE ChipndaleRectCursor)]
[DEF,InFooMode,(WHILE ChipndaleXMode)]
[DEF,NotInFooMode,(WHILE ChipndaleNXMode)]
[DEF,ClearFooMode,(UseCursor, SetXModeOff)]
[DEF,SetFooMode,(UseCursor, SetXModeOn)]
[DEF,ResetT,(Coords, StopTrack, Track)]
[DEF,Reset,(StopTrack)]
[DEF,FirstSelect,(Coords, ReSelectOnlyP, Track)]
[DEF,ReselectLast,(Coords, DeSelectLP, AddSelectP, Track)]
[DEF,SingleSelect,(Coords, OnlySelectP, Track)]
[DEF,RectTracking,(Coords, StopTrack, UseCursor, rect, Track)]
[DEF,ArrowTracking,(Coords, StopTrack, UseCursor, arrow, Track)]
[DEF,WireTracking,(Coords, StopTrack, UseCursor, wire, Track)]
[DEF,PartialWire,(Coords, ContinueWire, UseCursor, PartialWireAdvance, Track)]
[DEF,FlipWire,(UseCursor, FlipWire, Coords, Track)] --WARNING these Coords might be out of range
[DEF,Menu,
(~1 Down WHILE Space Down
WHILE [RightUp] WHILE [LeftUp] WHILE [MiddleUp] => ~2;
Space Down WHILE ~1 Down
WHILE [RightUp] WHILE [LeftUp] WHILE [MiddleUp] => ~2)]
~1 represent's key; ~2 represent's Menu atom to call
[DEF,CatchUp,(~1 Up => StopTrack, UseCursor, default)]
~1 represent's key to catch on up
[DEF,Catch,(~1 Down => StopTrack, UseCursor, default;
[CatchUp, ~1];
[MiddleDown] WHILE ~1 Down => StopTrack, UseCursor, default)]
~1 represent's key to catch on up, down, middle down
SELECT TRIGGER FROM
Mouse
Mouse => Coords, Track;
ESC
--remember: ESC-LF aborts an ongoing paint process
DEL Down WHILE ESC Down => AbortCommand;
ESC Down WHILE DEL Down => AbortCommand;
Select close
[LeftDown] WHILE ESC Down WHILE TAB Down => Coords, CloseReSelectOnlyP;
Select all of current layer; (somewhat crazy)
[RightDown] WHILE ESC Down WHILE Space Down => Coords, AddSelectLevel;
Select, Deselect all
[LeftDown] WHILE ESC Down => DeSelectS;
[RightDown] WHILE ESC Down => SelectAll;
Undelete, Abort
[MiddleDown] WHILE ESC Down WHILE TAB Down => AbortCommand;
[MiddleDown] WHILE ESC Down WHILE [CTRL] => AbortCommand;
[MiddleDown] WHILE ESC Down => StopDrawing;
[Catch, ESC];
Space for menu's
All the pop-up menus
[Menu, G, GlobalMenu];
[Menu, V, ViewerMenu];
[Menu, D, DirectoryMenu];
[Menu, I, IOMenu];
[Menu, O, IOMenu];
[Menu, P, ProgramMenu];
[Menu, T, TransformS];
[Menu, C, CellMenu];
[Menu, B, DisplayMenu];
[Menu, BackSlash, ConditionsMenu];
AAA
Stretching and Moving incrementally left the selection
[RightDown] WHILE A Down => [ResetT];
[LeftUp] WHILE A Down WHILE [CTRL] => Coords, StretchStepLeftS;
[RightUp] WHILE A Down WHILE [CTRL] => Coords, StretchStepLeftS;
[LeftUp] WHILE A Down WHILE [SHIFT] => Coords, StretchyMoveStepLeftS;
[RightUp] WHILE A Down WHILE [SHIFT] => Coords, StretchyMoveStepLeftS;
[LeftUp] WHILE A Down => Coords, LambdaLeftS;
[RightUp] WHILE A Down => Coords, LambdaLeftS;
[Catch, A];
BBB
Split Wire (do you see how the B is split in the middle?)
[RightDown] WHILE B Down => [ArrowTracking];
B Down WHILE [LeftDown] => [ArrowTracking];
[LeftDown] WHILE B Down => [FirstSelect], [ArrowTracking];
Space Down WHILE [LeftDown] WHILE B Down => [SingleSelect], [ArrowTracking];
[LeftUp] WHILE B Down [ArrowCursor] => Coords, SplitWireS;
[RightUp] WHILE B Down [ArrowCursor] => Coords, SplitWireS;
[Catch, B];
CCC
[RightDown] WHILE C Down => [ResetT];
Creation of cell (use X key)
[MiddleDown] WHILE C Down WHILE X Down => CreateCellSAndName;
[MiddleDown] WHILE C Down WHILE V Down => PopReplace;
Transform to cell (use V key)
[LeftUp] WHILE C Down WHILE V Down => TransformToCellS;
[RightUp] WHILE C Down WHILE V Down => TransformToCellS;
Create or draw expand a Cell (use X key)
[MiddleDown] WHILE C Down => Coords, DrawCell;
[LeftUp] WHILE C Down WHILE X Down => ExpandS;
[RightUp] WHILE C Down WHILE X Down => ExpandS;
Push and Pop
[LeftUp] WHILE C Down => PushS;
[RightUp] WHILE C Down => PopMenu;
DDD
See also V
Deleting
[RightDown] WHILE D Down => [ResetT];
[MiddleDown] WHILE D Down WHILE V Down => PopFlush;
[MiddleDown] WHILE D Down => Undel;
[LeftUp] WHILE D Down => DeleteS;
[RightUp] WHILE D Down => DeleteS;
[Catch, D];
EEE
Mirror up-down (this key is close to R (otation); further, it is symmetric )
[RightDown] WHILE E Down => [ResetT];
Space Down WHILE E Down WHILE [LeftDown] => [SingleSelect];
[LeftUp] WHILE E Down => MirrorYS;
[RightUp] WHILE E Down => MirrorYS;
[MiddleDown] WHILE E Down => Coords, DrawPullup;
[Catch, E];
FFF
[RightDown] WHILE F Down => [ResetT];
[LeftUp] WHILE F Down => Coords, ShrinkStepS;
[RightUp] WHILE F Down => Coords, ShrinkStepS;
[Catch, F];
GGG
[RightDown] WHILE G Down => [ResetT];
[LeftUp] WHILE G Down => Coords, GrowStepS;
[RightUp] WHILE G Down => Coords, GrowStepS;
[Catch, G];
NN
Signal or instance Names (Stil CRAZXY)
[RightDown] WHILE N Down => [ResetT];
Space Down WHILE N Down WHILE [LeftDown] => [SingleSelect];
[MiddleDown] WHILE N Down => Coords, EnterNameS;
[LeftUp] WHILE N Down => DisplayNames;
[RightUp] WHILE N Down => DisplayNames;
PPP
[RightDown] WHILE P Down => [ResetT];
Rect program menu
[MiddleDown] WHILE P Down WHILE [SHIFT] => [RectTracking];
[MiddleUp] WHILE P Down WHILE [SHIFT] => Coords, RectProgramMenu;
Show properties of single-selected object
Space Down WHILE P Down WHILE [LeftDown] => [SingleSelect];
[LeftUp] WHILE P Down => ShowPropertiesS;
[RightUp] WHILE P Down => ShowPropertiesS;
Put property on single-selected object
[MiddleDown] WHILE P Down => EnterPropertyS;
[Catch, P];
QQQ
Move, Copy, Stretch single-selected object
Q Down WHILE [LeftDown] => [ArrowTracking];
[LeftDown] WHILE Q Down => [FirstSelect], [ArrowTracking];
Space Down WHILE [LeftDown] WHILE Q Down => [SingleSelect], [ArrowTracking];
[LeftUp] WHILE Q Down WHILE TAB Down [ArrowCursor] => Coords, CopyS;
[LeftUp] WHILE Q Down WHILE [CTRL] [ArrowCursor] => Coords, StretchS;
[LeftUp] WHILE Q Down WHILE [SHIFT] [ArrowCursor] => Coords, StretchyMoveS;
[LeftUp] WHILE Q Down [ArrowCursor] => Coords, MoveS;
Move, Copy, Stretch
Q Down WHILE [RightDown] => [ArrowTracking];
[RightDown] WHILE Q Down => [ArrowTracking];
Space Down WHILE [RightDown] WHILE Q Down => [ReselectLast], [ArrowTracking];
[RightUp] WHILE Q Down WHILE TAB Down [ArrowCursor] => Coords, CopyS;
[RightUp] WHILE Q Down WHILE [SHIFT] [ArrowCursor] => Coords, StretchyMoveS;
[RightUp] WHILE Q Down WHILE [CTRL] [ArrowCursor] => Coords, StretchS;
[RightUp] WHILE Q Down [ArrowCursor] => Coords, MoveS;
Transistors
[MiddleDown] WHILE Q Down WHILE [LEFTSH] => Coords, DrawPXstr;
[MiddleDown] WHILE Q Down => Coords, DrawNXstr;
[Catch, Q];
RRR
Rotation and rename of objects
Space Down WHILE R Down WHILE [LeftDown] => [SingleSelect];
[LeftUp] WHILE R Down WHILE TAB Down => RenameS;
[RightDown] WHILE R Down => [ResetT];
[RightUp] WHILE R Down WHILE TAB Down => RenameS;
[LeftUp] WHILE R Down => RotS;
[RightUp] WHILE R Down => RotS;
SSS
Stretching and Moving incrementally right the selection
[RightDown] WHILE S Down => [ResetT];
[LeftUp] WHILE S Down WHILE [CTRL] => Coords, StretchStepRightS;
[RightUp] WHILE S Down WHILE [CTRL] => Coords, StretchStepRightS;
[LeftUp] WHILE S Down WHILE [SHIFT] => Coords, StretchyMoveStepRightS;
[RightUp] WHILE S Down WHILE [SHIFT] => Coords, StretchyMoveStepRightS;
[LeftUp] WHILE S Down => Coords, LambdaRightS;
[RightUp] WHILE S Down => Coords, LambdaRightS;
[Catch, S];
TTT
Mirror left-right (this key is close to R (otation); further, it is symmetric )
[RightDown] WHILE T Down => [ResetT];
Space Down WHILE T Down WHILE [LeftDown] => [SingleSelect];
[LeftUp] WHILE T Down => MirrorS;
[RightUp] WHILE T Down => MirrorS;
[Catch, T];
VVV
See also C,D Keys;
Push and Pop (V: see how it goes up and down ?)
[RightDown] WHILE V Down => [ResetT];
[RightUp] WHILE V Down => PushS;
[LeftUp] WHILE V Down => PushS;
[MiddleDown] WHILE V Down WHILE X Down => PopNew;
[MiddleDown] WHILE V Down => PopMenu;
[Catch, V];
WWW
Stretching and Moving incrementally up the selection
[RightDown] WHILE W Down => [ResetT];
[LeftUp] WHILE W Down WHILE [CTRL] => Coords, StretchStepUpS;
[RightUp] WHILE W Down WHILE [CTRL] => Coords, StretchStepUpS;
[LeftUp] WHILE W Down WHILE [SHIFT] => Coords, StretchyMoveStepUpS;
[RightUp] WHILE W Down WHILE [SHIFT] => Coords, StretchyMoveStepUpS;
[LeftUp] WHILE W Down => Coords, LambdaUpS;
[RightUp] WHILE W Down => Coords, LambdaUpS;
Angle transistors
[MiddleDown] WHILE W Down WHILE [LEFTSH] => Coords, DrawAnglePXstr;
[MiddleDown] WHILE W Down => Coords, DrawAngleNXstr;
[Catch, W];
XXX
See also C key if topic is Cell
external (imported) objects
[RightDown] WHILE X Down => [ResetT];
[RightUp] WHILE X Down WHILE Space Down => Coords, SelectADesign; --is textually after expand
[LeftUp] WHILE X Down WHILE Space Down => Coords, SelectADesign; --is textually after expand
[MiddleDown] WHILE X Down WHILE Space Down => Coords, DrawCorrespondingObject;
[MiddleDown] WHILE X Down => Coords, DrawImported;
YYY
[MiddleDown] WHILE Y Down WHILE [SHIFT] => Coords, SetInterestRect;
[MiddleDown] WHILE Y Down => Coords, DrawMark;
ZZZ
Stretching and Moving incrementally down the selection
[RightDown] WHILE Z Down => [ResetT];
[LeftUp] WHILE Z Down WHILE [CTRL] => Coords, StretchStepDownS;
[RightUp] WHILE Z Down WHILE [CTRL] => Coords, StretchStepDownS;
[LeftUp] WHILE Z Down WHILE [SHIFT] => Coords, StretchyMoveStepDownS;
[RightUp] WHILE Z Down WHILE [SHIFT] => Coords, StretchyMoveStepDownS;
[LeftUp] WHILE Z Down => Coords, LambdaDownS;
[RightUp] WHILE Z Down => Coords, LambdaDownS;
[Catch, Z];
Zero
Zero Down => [Reset]; -- this is used to return version number
[CatchUp, Zero];
One
Butting contact
[MiddleDown] WHILE One Down WHILE Two Down WHILE Three Down => Coords, DrawNButCon;
Buried contacts
[MiddleDown] WHILE One Down WHILE Two Down => Coords, DrawNBurCon;
One Down WHILE Two Down => [Reset];
One Down WHILE Three Down => [Reset];
N-diffusion contacts or set N-diffusion
One Down => SELECT TRIGGER FROM
[MiddleDown] => Coords, DrawNDifCon;
One Up => SetLayerNDif;
ENDCASE => [Reset];
[MiddleDown] WHILE One Down => Coords, DrawNDifCon;
[CatchUp, One];
Two
Draw with poly
Two Down WHILE One Down => [Reset];
Two Down WHILE Three Down => [Reset];
Two Down => SELECT TRIGGER FROM
[MiddleDown] => Coords, DrawPolCon;
Two Up => SetLayerPol;
ENDCASE => [Reset];
[MiddleDown] WHILE Two Down => Coords, DrawPolCon;
[CatchUp, Two];
Three
Draw with metal
Three Down WHILE One Down => [Reset];
Three Down WHILE Two Down => [Reset];
Three Down => SELECT TRIGGER FROM
[MiddleDown] => Coords, DrawNButCon;
Three Up => SetLayerMet;
ENDCASE => [Reset];
[MiddleDown] WHILE Three Down => Coords, DrawNButCon;
[CatchUp, Three];
Four
Draw with Metal2
Four Down => SELECT TRIGGER FROM
[MiddleDown] => Coords, DrawMm2Con;
Four Up => SetLayerMet2;
ENDCASE => [Reset];
[MiddleDown] WHILE Four Down => DrawMm2Con;
Four Down => SetLayerMet2;
[CatchUp, Four];
Arrow
Debug chipndale
[LeftDown] WHILE Arrow Down => Coords, Debug;
[MiddleDown] WHILE Arrow Down => Coords, Debug;
[RightDown] WHILE Arrow Down => Coords, Debug;
Quote
Prepare plots
[LeftDown] WHILE Quote Down => [RectTracking];
[MiddleDown] WHILE Quote Down => [RectTracking];
[RightDown] WHILE Quote Down => [RectTracking];
BW Plot
[LeftUp] WHILE Quote Down WHILE [SHIFT] [RectCursor] => Coords, VersatecBWPlot;
[MiddleUp] WHILE Quote Down WHILE [SHIFT] [RectCursor] => Coords, VersatecBWPlot;
[RightUp] WHILE Quote Down WHILE [SHIFT] [RectCursor] => Coords, VersatecBWPlot;
Color Plot
[LeftUp] WHILE Quote Down [RectCursor] => Coords, VersatecColorPlot;
[MiddleUp] WHILE Quote Down [RectCursor] => Coords, VersatecColorPlot;
[RightUp] WHILE Quote Down [RectCursor] => Coords, VersatecColorPlot;
[Catch, Quote];
LeftBracket
[RightDown] WHILE LeftBracket Down => [ResetT];
LeftBracket together with RightBracket: Alter
[LeftUp] WHILE LeftBracket Down WHILE RightBracket Down => AlterS;
[RightUp] WHILE LeftBracket Down WHILE RightBracket Down => AlterS;
Increment the repetition (LeftBracket is near the =)
[LeftUp] WHILE LeftBracket Down => Coords, IncCountS;
[RightUp] WHILE LeftBracket Down => Coords, IncCountS;
[Catch, LeftBracket];
RightBracket
[RightDown] WHILE RightBracket Down => [ResetT];
Decrement the repetition (RightBracket is near the =)
[LeftUp] WHILE RightBracket Down => Coords, DecCountS;
[RightUp] WHILE RightBracket Down => Coords, DecCountS;
[Catch, RightBracket];
Equal
Create a Repetition (do you se the repeated horizontal lines?)
[RightDown] WHILE Equal Down => [ResetT];
[MiddleDown] WHILE Equal Down => [ArrowTracking];
[MiddleUp] WHILE Equal Down [ArrowCursor] => Coords, DrawRepetition;
[Catch, Equal];
Dash, for the tiler program
[MiddleDown] WHILE Dash Down => Coords, ModuleMenu;
[LeftDown] WHILE Dash Down => Coords, ModuleMenu;
[RightDown] WHILE Dash Down => Coords, ModuleMenu;
Dash Down WHILE TAB Down => RunTiler;
[Catch, Dash];
BackSlash
Make an object Conditional
[MiddleUp] WHILE BackSlash Down WHILE [SHIFT] => RemoveConditionS;
[MiddleUp] WHILE BackSlash Down => DrawConditionS;
[Catch, BackSlash];
SemiColon
Pins (EXXPERIMENTAL)
[LeftUp] WHILE SemiColon Down WHILE [SHIFT] => RemovePinGraphicModeS;
[RightUp] WHILE SemiColon Down WHILE [SHIFT] => RemovePinGraphicModeS;
[LeftUp] WHILE SemiColon Down => PinGraphicModeS;
[RightUp] WHILE SemiColon Down => PinGraphicModeS;
[MiddleDown] WHILE SemiColon Down => [RectTracking];
[MiddleUp] WHILE SemiColon Down [RectCursor] => Coords, DrawPin;
[Catch, SemiColon];
LF
--remember: LF-ESC aborts an ongoing paint process
LF Down WHILE [SHIFT] => EnforcePanel;
[Catch, LF];
DEL
--remember: ESC-DEL => AbortCommand
[Catch, DEL];
Comma <
Zoom in
Comma Down => ScaleMoreDetail;
[CatchUp, Comma];
Period >
Zoom out
Period Down => ScaleLessDetail;
[CatchUp, Period];
Slash (but you really see the <?> )
Display hierarchy
[RightDown] WHILE Slash Down => [ResetT];
[MiddleDown] WHILE Slash Down => Coords, SpinifexHighlightNodeP;
[LeftUp] WHILE Slash Down => DisplayHierarchyS;
[RightUp] WHILE Slash Down => DisplayHierarchyS;
Display Foo
Slash Down WHILE [SHIFT] => ShowErrors;
Slash Down WHILE [CTRL] => Statistic;
Keyset1
[Catch, Keyset1];
Keyset2
[Catch, Keyset2];
Keyset3
[Catch, Keyset3];
Keyset4
[Catch, Keyset4];
Keyset5
[Catch, Keyset5];
Space
Show Box this viewer; (drag) or select all (click)
[LeftDown] WHILE Space Down WHILE TAB Down => DeSelectS;
[LeftDown] WHILE Space Down => SELECT TRIGGER FROM
[LeftUp] BEFORE 200 => ResetScaleSel;
ENDCASE => [RectTracking];
[LeftUp] WHILE Space Down [RectCursor] => Coords, ShowRect;
Move viewer (drag) or reset scale (click)
[MiddleDown] WHILE Space Down WHILE TAB Down => ResetScaleAll;
[MiddleDown] WHILE Space Down => SELECT TRIGGER FROM
[MiddleUp] BEFORE 200 => ResetScaleTop;
ENDCASE => [ArrowTracking];
[MiddleUp] WHILE Space Down [ArrowCursor] => Coords, MoveScreen;
Show Box another viewer; (drag) or show other viewers (click)
[RightDown] WHILE Space Down WHILE TAB Down => SelectAll;
[RightDown] WHILE Space Down => SELECT TRIGGER FROM
[RightUp] BEFORE 200 => DisplayViewers;
ENDCASE => [RectTracking];
[RightUp] WHILE Space Down [RectCursor] => Coords, ShowRectX;
Left
De-Selection by contact: area only
[LeftDown] WHILE [SHIFT] WHILE TAB Down WHILE [CTRL] => [RectTracking];
[LeftUp] [RectCursor] WHILE TAB Down WHILE [SHIFT] WHILE [CTRL] => Coords, AreaDeSelectTouching;
Selection by contact: area only
[LeftDown] WHILE [CTRL] WHILE TAB Down => [RectTracking];
[LeftUp] [RectCursor] WHILE TAB Down WHILE [CTRL] => Coords, DeSelectS, AreaAddSelectTouching;
Area DeSelection contained
[LeftDown] WHILE TAB Down WHILE [SHIFT] => [RectTracking];
[LeftUp] WHILE TAB Down [RectCursor] WHILE [SHIFT]=> Coords, AreaOnlySelect;
Area Selection contained
[LeftDown] WHILE TAB Down => [RectTracking];
[LeftUp] WHILE TAB Down [RectCursor] => Coords, AreaOnlySelect;
Select exclusive, cycle trough
[LeftDown] WHILE [SHIFT] => [SingleSelect];
Regular select
[LeftDown] => [FirstSelect];
Space Down WHILE [LeftDown] => [SingleSelect];
Middle
Select layer
Select all of current layer; (somewhat crazy)
[MiddleDown] WHILE TAB Down WHILE Space Down => Coords, AddSelectLevel;
Pointed to current layer
[MiddleDown] WHILE TAB Down => Coords, SetLayerP;
Measure size and coordinates
[MiddleDown] WHILE [CTRL] => SELECT TRIGGER FROM
[MiddleUp] BEFORE 200 => Coords, Statistic;
ENDCASE => [ArrowTracking];
[MiddleUp] WHILE [CTRL] [ArrowCursor] => Coords, Coordinates;
[MiddleDown] => [WireTracking];
Space Down WHILE [MiddleDown] [WireCursor] => [FlipWire];
LeftShift Down WHILE [MiddleDown] [WireCursor] => [PartialWire];
[MiddleUp] [WireCursor] => Coords, DrawWire;
Right
Area De-Selection by contact
[RightDown] WHILE [SHIFT] WHILE TAB Down WHILE [CTRL] => [RectTracking];
[RightUp] [RectCursor] WHILE TAB Down WHILE [SHIFT] WHILE [CTRL] => Coords, AreaDeSelectTouching;
Area Selection by contact
[RightDown] WHILE [CTRL] WHILE TAB Down => [RectTracking];
[RightUp] [RectCursor] WHILE TAB Down WHILE [CTRL] => Coords, AreaAddSelectTouching;
Area DeSelection contained
[RightDown] WHILE TAB Down WHILE [SHIFT] => [RectTracking];
[RightUp] WHILE TAB Down [RectCursor] WHILE [SHIFT]=> Coords, AreaDeSelect;
Area Selection contained
[RightDown] WHILE TAB Down => [RectTracking];
[RightUp] WHILE TAB Down [RectCursor] => Coords, AreaAddSelect;
De select
[RightDown] WHILE [SHIFT] => Coords, DeSelectFP;
Regular select
[RightDown] => Coords, AddSelectP;
Space Down WHILE [RightDown] => [ReselectLast];
Version Number
Zero Down => ChipndaleCmosX1;
Catches
[LeftDown] => Coords, [ResetT];
[RightDown] => Coords, [ResetT];
[MiddleDown] => Coords, [ResetT];
[LeftUp] => Coords, [ResetT];
[RightUp] => Coords, [ResetT];
[MiddleUp] => Coords, [ResetT];
ENDCASE.
Not inluded now
DefaultS, NarrowS, WidenS, LengthenS, ShortenS;