-- NewCmos.TIP
-- created by Christian Jacobi, June 1, 1984 5:25:04 pm PDT
-- last edited by Christian Jacobi, June 19, 1984 5:48:50 pm PDT
[DEF,MarkDown,(Red Down)]
[DEF,MarkUp,(Red Up)]
[DEF,DrawDown,(Yellow Down)]
[DEF,DrawUp,(Yellow Up)]
[DEF,SelDown,(Blue Down)]
[DEF,SelUp,(Blue Up)]
[DEF,CTRL,(Ctrl Down)]
[DEF,SHIFT,(RightShift Down | LeftShift Down)]
[DEF,LCursor,(WHILE ChipndaleLBoxCursor)]
[DEF,NoCursor,(WHILE ChipndaleShadowCursor)]
[DEF,ArrowCursor,(WHILE ChipndaleArrowCursor)]
[DEF,PosCursor,(WHILE ChipndalePosCursor)]
[DEF,BoxCursor,(WHILE ChipndaleBoxCursor)]
[DEF,DontCursor,(WHILE ChipndaleDontCursor)]
[DEF,ArrowTrack,(UseArrowTrack, Track)]
[DEF,BoxTrack,(UseBoxTrack, Track)]
[DEF,LTrack,(UseLTrack, Track)]
[DEF,DontTrack,(UseDontTrack, Track)]
[DEF,IsPendingD,(ChipndaleXMode)]
[DEF,IsNotPendingD,(ChipndaleNXMode)]
[DEF,ClearPendingD,(SetXModeOff)]
[DEF,SetPendingD,(SetXModeOn)]
[DEF,WOff,(StopTrack, [DontTrack])]
[DEF,WOffM,(StopTrack, [DontTrack])]
[DEF,Reset,(StopTrack, [DontTrack])]
SELECT TRIGGER FROM
Mouse
Mouse WHILE [MarkDown] => Coords, Track;
Mouse WHILE [DrawDown] => Coords, Track;
Mouse WHILE [SelDown] => Coords, Track;
ESC
ESC Down => StopTrack, [ClearPendingD], StopDrawing;
AAA
[DrawDown] WHILE A Down WHILE TAB Down => Coords, [WOffM], DrawNBurCon;
[DrawDown] WHILE A Down => Coords, [WOffM], DrawNDifCon;
[SelDown] WHILE A Down => [WOff], SetLayerNDif;
[MarkDown] WHILE A Down => [WOff], SetLayerNDif;
A Down WHILE [CTRL] => [WOff], SetLayerNDif;
A Up => [Reset];
A Down => [Reset];
BBB
[DrawDown] WHILE B Down => Coords, StopTrack, [ArrowTrack];
[DrawUp] WHILE B Down [ArrowCursor] => Coords, DrawRepetition;
[MarkDown] WHILE B Down WHILE [SHIFT] => Coords, [WOff], DecCountP;
[MarkDown] WHILE B Down => Coords, [WOff], IncCountP;
[SelDown] WHILE B Down WHILE [SHIFT] => Coords, [WOff], DecCountS;
[SelDown] WHILE B Down => Coords, [WOff], IncCountS;
B Down => [Reset];
B Up => [Reset];
CCC
[SelDown] WHILE C Down WHILE [CTRL] => [WOff], DefaultS;
[MarkDown] WHILE C Down WHILE [CTRL] => Coords, [WOff], DefaultP;
[SelDown] WHILE C Down WHILE [SHIFT] => [WOff], LengthenS;
[MarkDown] WHILE C Down WHILE [SHIFT] WHILE [SHIFT] => Coords, [WOff], LengthenP;
[SelDown] WHILE C Down => [WOff], LambdaUpS;
[MarkDown] WHILE C Down => Coords, [WOff], LambdaUpP;
C Down => [Reset];
C Up => [Reset];
DDD
[SelDown] WHILE D Down => [WOff], SetLayerPol;
[MarkDown] WHILE D Down => [WOff], SetLayerPol;
D Down WHILE [CTRL] => [WOff], SetLayerPol;
[DrawDown] WHILE D Down WHILE TAB Down => Coords, [WOffM], DrawNButCon;
[DrawDown] WHILE D Down => Coords, [WOffM], DrawPolCon;
D Up => [Reset];
D Down => [Reset];
EEE
[SelDown] WHILE E Down WHILE TAB Down => [WOff], ExpandS;
[SelDown] WHILE E Down => [WOff], PushS;
[MarkDown] WHILE E Down WHILE TAB Down => Coords, [WOff], ExpandP;
[DrawDown] WHILE E Down WHILE ESC Down => Coords, [WOff], PopFlush;
[MarkDown] WHILE E Down => Coords, [WOff], PushP;
[DrawDown] WHILE E Down WHILE [CTRL] => [WOff], CreateCellSUnNamed;
[DrawDown] WHILE E Down WHILE TAB Down => [WOff], CreateCellSAndName;
[DrawDown] WHILE E Down => [WOff], PopMenu;
E Down WHILE Space Down => [Reset], SetSimplification;
E Up => [Reset];
E Down => [Reset];
FFF
[SelDown] WHILE F Down => [WOff], SetLayerMet;
[MarkDown] WHILE F Down => [WOff], SetLayerMet;
F Down WHILE [CTRL] => [WOff], SetLayerMet;
[DrawDown] WHILE F Down WHILE TAB Down => Coords, [WOffM], DrawPButCon;
[DrawDown] WHILE F Down => Coords, [WOffM], DrawMm2Con;
F Up => [Reset];
F Down => [Reset];
GGG
[SelDown] WHILE G Down => [WOff], SetLayerMet2;
[MarkDown] WHILE G Down => [WOff], SetLayerMet2;
G Down WHILE [CTRL] => [WOff], SetLayerMet2;
[DrawDown] WHILE G Down => Coords, [WOffM], DrawMm2Con;
G Up => [Reset];
G Down => [Reset];
HHH
H Up => [Reset];
H Down => [Reset];
III
I Up => [Reset];
I Down => [Reset];
JJJ
J Up => [Reset];
J Down => [Reset];
KKK
K Up => [Reset];
K Down => [Reset];
LLL
L Up => [Reset];
L Down => [Reset];
MMM
M Up => [Reset];
M Down => [Reset];
NN
N Up => [Reset];
N Down => [Reset];
OOO
O Up => [Reset];
O Down => [Reset];
PPP
P Up => [Reset];
P Down => [Reset];
QQQ
[DrawDown] WHILE Q Down WHILE TAB Down => Coords, [WOffM], DrawAngleNXstr;
[DrawDown] WHILE Q Down => Coords, [WOffM], DrawNXstr;
[MarkDown] WHILE Q Down => Coords, [WOffM], RotP;
[SelDown] WHILE Q Down => Coords, [WOffM], RotS;
Q Up => [Reset];
Q Down => [Reset];
RRR
[SelDown] WHILE R Down => [WOff], SetLayerPWCnt;
[MarkDown] WHILE R Down => [WOff], SetLayerPWCnt;
R Down WHILE [CTRL] => [WOff], SetLayerPWCnt;
[DrawDown] WHILE R Down WHILE [CTRL] => [WOff], PopNew;
[DrawDown] WHILE R Down WHILE TAB Down => [WOff], PopReplace;
[DrawDown] WHILE R Down => Coords, [WOffM], DrawPWCntCon;
R Up => [Reset];
R Down => [Reset];
SSS
[SelDown] WHILE S Down => [WOff], SetLayerPDif;
[MarkDown] WHILE S Down => [WOff], SetLayerPDif;
S Down WHILE [CTRL] => [WOff], SetLayerPDif;
[DrawDown] WHILE S Down WHILE TAB Down => Coords, [WOffM], DrawPBurCon;
[DrawDown] WHILE S Down => Coords, [WOffM], DrawPDifCon;
S Up => [Reset];
S Down => [Reset];
TTT
[SelDown] WHILE T Down WHILE TAB Down => Coords, [WOff], DrawConditionP;
[MarkDown] WHILE T Down WHILE TAB Down => Coords, [WOff], DrawConditionS;
[SelDown] WHILE T Down => [WOff], SetLayerNWCnt;
[MarkDown] WHILE T Down => [WOff], SetLayerNWCnt;
T Down WHILE [CTRL] => [WOff], SetLayerNWCnt;
[DrawDown] WHILE T Down => Coords, [WOffM], DrawNWCntCon;
T Up => [Reset];
T Down => [Reset];
UUU
U Up => [Reset];
U Down => [Reset];
VVV
[SelDown] WHILE V Down WHILE [CTRL] => [WOff], AlterS;
[MarkDown] WHILE V Down WHILE [CTRL] => Coords, [WOff], AlterP;
[SelDown] WHILE V Down WHILE [SHIFT] => [WOff], ShortenS;
[MarkDown] WHILE V Down WHILE [SHIFT] => Coords, [WOff], ShortenP;
[SelDown] WHILE V Down => [WOff], LambdaDownS;
[MarkDown] WHILE V Down => Coords, [WOff], LambdaDownP;
V Down => [Reset];
V Up => [Reset];
WWW
[DrawDown] WHILE W Down WHILE TAB Down => Coords, [WOffM], DrawAnglePXstr;
[DrawDown] WHILE W Down => Coords, [WOffM], DrawPXstr;
[MarkDown] WHILE W Down => Coords, [WOffM], MirrorP;
[SelDown] WHILE W Down => Coords, [WOffM], MirrorS;
W Up => [Reset];
W Down => [Reset];
XXX
[DrawDown] WHILE X Down WHILE [CTRL] => Coords, StopTrack, [ArrowTrack];
[DrawUp] WHILE X Down WHILE [CTRL] [ArrowCursor] => Coords, StretchPS;
[MarkDown] WHILE X Down WHILE [CTRL] => Coords, StopTrack, [ArrowTrack];
[SelDown] WHILE X Down WHILE [CTRL] => Coords, StopTrack, [ArrowTrack];
[MarkUp] WHILE X Down WHILE [CTRL] [ArrowCursor] => Coords, StretchP;
[SelUp] WHILE X Down WHILE [CTRL] [ArrowCursor] => Coords, StretchS;
[SelDown] WHILE X Down WHILE [SHIFT] => [WOff], NarrowS;
[MarkDown] WHILE X Down WHILE [SHIFT] => Coords, [WOff], NarrowP;
[SelDown] WHILE X Down => [WOff], LambdaRightS;
[MarkDown] WHILE X Down => Coords, [WOff], LambdaRightP;
[MarkUp] WHILE X Down => [Reset];
[DrawUp] WHILE X Down => [Reset];
[SelUp] WHILE X Down => [Reset];
X Down => [Reset];
X Up => [Reset];
YYY
Y Down => [Reset];
Y Up => [Reset];
ZZZ
[SelDown] WHILE Z Down WHILE [CTRL] => [WOff], TransformS;
[SelDown] WHILE Z Down WHILE [SHIFT] => [WOff], WidenS;
[MarkDown] WHILE Z Down WHILE [CTRL] => Coords, [WOff], TransformP;
[MarkDown] WHILE Z Down WHILE [SHIFT] => Coords, [WOff], WidenP;
[SelDown] WHILE Z Down => [WOff], LambdaLeftS;
[MarkDown] WHILE Z Down => Coords, [WOff], LambdaLeftP;
Z Down => [Reset];
Z Up => [Reset];
Zero
Zero Down => [Reset]; -- this is used to return version number
Zero Up => [Reset];
One
One Down WHILE Space Down => [WOff], ViewerMenu;
One Down WHILE TAB Down => [WOff], DesignMenu;
One Down WHILE [CTRL] => [WOff], DesignMenu;
[MarkDown] WHILE One Down => Coords, [WOffM], EnterNameP;
[SelDown] WHILE One Down => Coords, [WOffM], EnterNameS;
One Down => [Reset];
One Up => [Reset];
Two
Two Down WHILE Space Down => [WOff], ViewerMenu;
Two Down WHILE TAB Down => [WOff], ViewerMenu;
Two Down WHILE [CTRL] => [WOff], ViewerMenu;
Two Down WHILE [SHIFT] => [WOff], ShowPropertiesS;
[MarkDown] WHILE Two Down => Coords, [WOffM], EnterPropertyP;
[SelDown] WHILE Two Down => Coords, [WOffM], EnterPropertyS;
Two Down => [Reset];
Two Up => [Reset];
Three
[MarkDown] WHILE Three Down => [WOff], RenameP;
[SelDown] WHILE Three Down => [WOff], RenameS;
Three Down WHILE TAB Down => [WOff], DirectoryMenu;
Three Down WHILE [CTRL] => [WOff], DirectoryMenu;
[DrawDown] WHILE Three Down => Coords, [WOffM], DrawCell;
Three Down => [Reset];
Three Up => [Reset];
Four
Four Down WHILE TAB Down => [WOff], IOMenu;
Four Down WHILE [CTRL] => [WOff], IOMenu;
[DrawDown] WHILE Four Down => Coords, [WOffM], DrawImportedCell;
Four Down => [Reset];
Four Up => [Reset];
Five
[MarkDown] WHILE Five Down => Coords, [WOffM], SelectADesign;
[DrawDown] WHILE Five Down => Coords, [WOffM], DrawCorrespondingObject;
Five Down => [Reset];
Five Up => [Reset];
Six
[SelDown] WHILE Six Down => [WOff], TransformToCellS;
[MarkDown] WHILE Six Down => Coords, [WOff], TransformToCellP;
Six Down => [Reset];
Six Up => [Reset];
Seven
Seven Down => [Reset];
Seven Up => [Reset];
Eight
Eight Down => [Reset];
Eight Up => [Reset];
Arrow
Arrow Down WHILE TAB Down => [WOff], WriteCif;
Arrow Down => [Reset];
Arrow Up => [Reset];
Space
[MarkUp] WHILE Space Down WHILE [CTRL] => [WOff], DisplayViewers;
[SelUp] WHILE Space Down WHILE [CTRL] => [WOff], DisplayNames;
[MarkDown] WHILE Space Down WHILE [SHIFT] => [WOff], ScaleMoreDetail;
[SelDown] WHILE Space Down WHILE [SHIFT] => [WOff], ScaleLessDetail;
[DrawDown] WHILE Space Down WHILE [SHIFT] => [WOff], ResetScale;
[DrawUp] WHILE Space Down [ArrowCursor] => Coords, MoveScreen;
[MarkUp] WHILE Space Down [BoxCursor] => Coords, ShowRect;
[SelUp] WHILE Space Down [BoxCursor] => Coords, ShowRectX;
[MarkDown] WHILE Space Down => Coords, StopTrack, [BoxTrack];
[DrawDown] WHILE Space Down => Coords, StopTrack, [ArrowTrack];
[SelDown] WHILE Space Down => Coords, StopTrack, [BoxTrack];
Space Up => [Reset];
Space Down => [Reset];
Ctrl
Shift: LeftShift, RightShift
Quote
Quote Down => [Reset];
Quote Up => [Reset];
LeftBracket
[MarkDown] WHILE LeftBracket Down => Coords, StopTrack, UseBoxTrack, Track;
[MarkUp] WHILE LeftBracket Down [BoxCursor] => Coords, VersatecColorPlot;
LeftBracket Down => [Reset];
LeftBracket Up => [Reset];
RightBracket
[MarkDown] WHILE RightBracket Down => Coords, StopTrack, UseBoxTrack, Track;
[MarkUp] WHILE RightBracket Down [BoxCursor] => Coords, VersatecBWPlot;
RightBracket Down => [Reset];
RightBracket Up => [Reset];
Equal
Equal Down WHILE TAB Down => [WOff], ShowErrors;
Equal Down WHILE [CTRL] => [WOff], Analysis;
Equal Down => [Reset];
Equal Up => [Reset];
BackSlash
BackSlash Down WHILE [CTRL] => [WOff], FlatCif;
[DrawDown] WHILE BackSlash Down => Coords, Debug;
BackSlash Down => [Reset];
BackSlash Up => [Reset];
LF
LF Down => [Reset];
LF Up => [Reset];
DEL
DEL Down => [Reset];
DEL Up => [Reset];
Comma
Comma Down => [WOff], ScaleMoreDetail;
Comma Up => [Reset];
Period
Period Down => [WOff], ScaleLessDetail;
Period Up => [Reset];
Slash
Slash Down => [Reset];
Slash Up => [Reset];
Ctrl, Shift, MOUSE BUTTONS, (Spare3=Ctrl), (Shift: LeftShift, RightShift)
Mark
[MarkDown] WHILE [CTRL] WHILE [SHIFT] => Coords, StopTrack, UseArrowTrack, Track;
[MarkDown] WHILE [CTRL] WHILE TAB Down => Coords, StopTrack, UseArrowTrack, Track;
[MarkUp] WHILE [CTRL] WHILE [SHIFT] [ArrowCursor] => Coords, [ClearPendingD], MoveP;
[MarkUp] WHILE [CTRL] WHILE TAB Down [ArrowCursor] => Coords, [ClearPendingD], StretchyMoveP;
[MarkDown] WHILE [SHIFT] => Coords, StopTrack, UseArrowTrack, Track;
[MarkUp] WHILE [SHIFT] [ArrowCursor] => Coords, [ClearPendingD], CopyP;
[MarkDown] WHILE TAB Down => SELECT TRIGGER FROM
[MarkUp] BEFORE 200 => Coords, [WOff], [SetPendingD], DeSelectP;
ENDCASE => Coords, StopTrack, [SetPendingD], UseBoxTrack, Track;
[MarkDown] WHILE [CTRL] => Coords, StopTrack, DeleteP;
[MarkDown] => SELECT TRIGGER FROM
[MarkUp] BEFORE 200 => Coords, [WOff], OnlySelectP;
ENDCASE => Coords, StopTrack, UseBoxTrack, Track;
TAB Up WHILE [MarkDown] => StopTrack;
[MarkUp] [BoxCursor] WHILE TAB Down => Coords, AreaDeSelect;
[MarkUp] [BoxCursor] => Coords, AreaOnlySelect;
[MarkUp] => Coords, StopTrack;
Draw
[DrawDown] WHILE TAB Down => SELECT TRIGGER FROM
[DrawUp] BEFORE 200 => Coords, [WOff], Statistic;
ENDCASE => Coords, StopTrack, [ArrowTrack];
[DrawDown] => Coords, StopTrack, [ClearPendingD], UseLTrack, Track;
TAB Down WHILE [DrawDown] [LCursor] => SwitchTrack, Track;
RightShift Down WHILE [DrawDown] [LCursor] => Coords, AngleTrack, UseLTrack, Track;
LeftShift Down WHILE [DrawDown] [LCursor] => Coords, AngleTrack, UseLTrack, Track;
[DrawUp] [LCursor] => Coords, DrawWire;
[DrawUp] [ArrowCursor] => Coords, Coordinates;
[DrawUp] => Coords, StopTrack;
Select
[SelDown] WHILE [CTRL] WHILE [SHIFT] => Coords, StopTrack, UseArrowTrack, Track;
[SelDown] WHILE [CTRL] WHILE TAB Down => Coords, StopTrack, UseArrowTrack, Track;
[SelUp] WHILE [CTRL] WHILE [SHIFT] [ArrowCursor] => Coords, [ClearPendingD], MoveS;
[SelUp] WHILE [CTRL] WHILE TAB Down [ArrowCursor] => Coords, [ClearPendingD], StretchyMoveS;
[SelDown] WHILE [SHIFT] => Coords, StopTrack, UseArrowTrack, Track;
[SelUp] WHILE [SHIFT] [ArrowCursor] => Coords, [ClearPendingD], CopyS;
[SelDown] WHILE TAB Down => SELECT TRIGGER FROM
[SelUp] BEFORE 200 => Coords, [WOff], [SetPendingD], DeSelectP;
ENDCASE => Coords, StopTrack, [SetPendingD], UseBoxTrack, Track;
[SelDown] WHILE [CTRL] => Coords, StopTrack, DeleteS;
[SelDown] => SELECT TRIGGER FROM
[SelUp] BEFORE 200 => Coords, [WOff], [SetPendingD], AddSelectP;
ENDCASE => Coords, StopTrack, [SetPendingD], UseBoxTrack, Track;
TAB Up WHILE [SelDown] => StopTrack;
[SelUp] WHILE TAB Down [BoxCursor] => Coords, AreaDeSelect;
[SelUp] [BoxCursor] => Coords, AreaAddSelect;
[SelUp] => Coords, StopTrack;
[CTRL] WHILE [MarkDown] => [SetPendingD];
[CTRL] WHILE [SelDown] => [SetPendingD];
Ctrl Up => [WOff], [ClearPendingD];
Ctrl Down => [WOff];
Mouse => Coords, Track;
Zero Down => CHIPNDALEx8;
ENDCASE.