--ChipndaleCMos.TIP
--created by Christian Jacobi, December 2, 1983 3:20 pm
--last edited by Christian Jacobi, April 13, 1984 8:04:54 pm PST
[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,(Spare3 Down | Ctrl Down)]
[DEF,SHIFT,(RightShift Down | LeftShift Down)]
[DEF,CTTAB,([CTRL] WHILE TAB 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,WMode,(WHILE ChipndaleWMode)]
[DEF,NWMode,(WHILE ChipndaleNWMode)]
[DEF,AMode,([WMode] [LCursor])]
[DEF,MStop,(SetMarkOnStop, ShowMark)]
[DEF,MStart,(SetMarkOnStart, ShowMark)]
[DEF,WOff,(StopTrack, WiringOff, UseDontTrack)]
--CM [DEF,WOffM,([WOff], [MStop])]
--CD-- [DEF,WOffM,(StopTrack)]
[DEF,WOn,(StopTrack, WiringOn, UseLTrack, SetStartOnMark, Track)]
[DEF,ArrowTrack,(UseArrowTrack, Track)]
[DEF,BoxTrack,(UseBoxTrack, Track)]
[DEF,LTrack,(UseLTrack, Track)]
[DEF,DontTrack,(UseDontTrack, Track)]
[DEF,Reset,([WOff], [DontTrack])]
SELECT TRIGGER FROM
Mouse
--CM Mouse => Coords, Track;
--CD-- Mouse WHILE [MarkDown] => Coords, Track;
--CD-- Mouse WHILE [DrawDown] => Coords, Track;
--CD-- Mouse WHILE [SelDown] => Coords, Track;
ESC
ESC Down WHILE [SHIFT] => StopTrack, StopDrawing;
--CD-- ESC Down => StopTrack;
--CM ESC Down => [WOff];
AAA
[SelUp] WHILE A Down WHILE [SHIFT] [BoxCursor] => Coords, [WOff], AreaAddSelect;
[SelUp] WHILE A Down WHILE [CTRL] [BoxCursor] => Coords, [WOff], AreaAddSelect;
[SelUp] WHILE A Down WHILE TAB Down [BoxCursor] => Coords, [WOff], AreaDeSelect;
[SelUp] WHILE A Down [BoxCursor] => Coords, [WOff], AreaOnlySelect;
--CM [SelDown] WHILE A Down => Coords, [WOff], SetStartOnMark, [BoxTrack];
--CM A Down WHILE [SelDown] => Coords, [WOff], SetStartOnMark, [BoxTrack];
--CD-- [SelDown] WHILE A Down => Coords, StopTrack, UseBoxTrack, Track;
--CD-- A Down WHILE [SelDown] => Coords, UseBoxTrack, Track;
A Down WHILE Space Down => [WOff], SelectAll;
--CM A Down => [WOff], SetStartOnMark, UseBoxTrack;
[MarkDown] WHILE A Down => Coords, [WOff], AlterP;
A Down => [Reset];
A Up => [Reset];
BBB
--XMOS-- [DrawDown] WHILE B Down => Coords, [WOffM], DrawBurCon;
--CMOS-- [MarkDown] WHILE B Down WHILE [SHIFT] => Coords, [WOffM], DrawPBurCon;
B Down => [Reset];
B Up => [Reset];
CCC
--CM [MarkDown] WHILE C Down => Coords, [WOffM], DrawCell;
--CD-- [DrawUp] WHILE C Down => Coords, [WOffM], DrawCell;
C Down WHILE TAB Down WHILE [CTRL] => [WOff], TransformToCellS;
--XMOS-- C Down WHILE TAB Down => [WOff], WriteCif;
C Down WHILE [CTRL] => [WOff], CreateCellS;
--CM [DrawDown] WHILE C Down => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CM C Down WHILE [DrawDown] => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CM [DrawUp] WHILE C Down => Coords, [WOff], CopyS, [MStop];
--CM C Down => [WOff], SetStartOnMark, UseArrowTrack;
--CD-- [MarkUp] WHILE C Down [ArrowCursor] => Coords, CopyS;
--CD-- [MarkDown] WHILE C Down => Coords, StopTrack, UseArrowTrack, Track;
C Down => [Reset];
C Up => [Reset];
DDD
[MarkDown] WHILE D Down => Coords, Debug;
[DrawDown] WHILE D Down => Coords, [WOff], DeleteP;
D Down WHILE TAB Down => [WOff], RemoveCell;
D Down WHILE [CTRL] => [WOff], DeleteS;
--CD-- [SelUp] WHILE D Down => Coords, [WOff], DeSelectP;
--CM [SelDown] WHILE D Down => Coords, [WOff], DeSelectP;
D Down => [Reset];
D Up => [Reset];
EEE
[MarkDown] WHILE E Down => Coords, [WOff], ExpandP;
E Down WHILE TAB Down => [WOff], ShowErrors;
E Down WHILE [CTRL] => [WOff], ExpandS;
E Down => [Reset];
E Up => [Reset];
FFF
F Down WHILE [SHIFT] => [WOff], FlushUndelList;
F Down => [Reset];
F Up => [Reset];
GGG
G Down => [WOff], DesignMenu;
G Up => [Reset];
HHH
H Down WHILE [CTRL] => [WOff], SelectADesign;
[DrawDown] WHILE H Down => Coords, [WOffM], DrawCorrespondingObject;
H Down => [Reset];
H Up => [Reset];
III
[DrawDown] WHILE I Down => Coords, [WOffM], DrawImportedCell;
[MarkDown] WHILE I Down WHILE [SHIFT] => Coords, [WOff], DecCountP;
[MarkDown] WHILE I Down => Coords, [WOff], IncCountP;
I Down WHILE TAB Down => [WOff], ImportADesign;
I Down WHILE [CTTAB] => [WOff], IncludeADesign;
I Down WHILE [CTRL] WHILE [SHIFT] => [WOff], DecCountS;
I Down WHILE [CTRL] => [WOff], IncCountS;
I Down => [Reset];
I Up => [Reset];
JJJ
--CM [DrawDown] WHILE J Down => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CM J Down WHILE [DrawDown] => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CM [DrawUp] WHILE J Down => Coords, [WOff], StretchyMoveS, [MStop];
--CM J Down => [WOff], SetStartOnMark, UseArrowTrack;
--CD-- [MarkUp] WHILE J Down [ArrowCursor] => Coords, StretchyMoveS;
--CD-- [MarkDown] WHILE J Down => Coords, StopTrack, UseArrowTrack, Track;
--CD-- J Down WHILE [MarkDown] => Coords, UseArrowTrack, Track;
J Up => [Reset];
KKK
K Down => [WOff], SetSimplification;
K Up => [Reset];
LLL
[MarkDown] WHILE L Down => Coords, [WOff], LenthenP;
[DrawDown] WHILE L Down => Coords, [WOffM], DrawText;
L Down WHILE [CTRL] => [WOff], LenthenS;
L Down => [Reset];
L Up => [Reset];
MMM
--CM [MarkDown] WHILE M Down => Coords, [WOff], MirrorP;
M Down WHILE [CTRL] => [WOff], MirrorS;
--CM [DrawDown] WHILE M Down => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CM M Down WHILE [DrawDown] => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CM [DrawUp] WHILE M Down => Coords, [WOff], MoveS, [MStop];
--CM M Down => [WOff], SetStartOnMark, UseArrowTrack;
--CD-- [MarkUp] WHILE M Down [ArrowCursor] => Coords, MoveS;
--CD-- [MarkDown] WHILE M Down => Coords, StopTrack, UseArrowTrack, Track;
--CD-- M Down WHILE [MarkDown] => Coords, UseArrowTrack, Track;
M Up => [Reset];
NNN
N Down WHILE TAB Down WHILE [CTRL] => [WOff], RenameS;
[MarkDown] WHILE N Down => Coords, [WOff], NarrowP;
N Down WHILE [CTRL] => [WOff], NarrowS;
--?? N Down WHILE [CTTAB] => [WOff], Normalize;
N Down WHILE TAB Down => [WOff], RenameDesign;
N Down => [Reset];
N Up => [Reset];
OOO
O Down WHILE [CTTAB] => [WOff], OutputDesign;
O Down WHILE Space Down => [WOff], ChipmonkOutput;
O Down => [Reset];
O Up => [Reset];
PPP
[MarkDown] WHILE P Down => Coords, [WOff], PushP;
--NMOS [DrawDown] WHILE P Down => Coords, [WOffM], DrawPullup;
--CMOS-- [DrawDown] WHILE P Down => Coords, [WOffM], DrawPXstr;
P Down WHILE [CTRL] => [WOff], PushS;
P Down => [Reset];
P Up => [Reset];
QQQ
[MarkUp] WHILE Q Down [ArrowCursor] => Coords, [WOff], Coordinates;
--CM [DrawDown] WHILE Q Down => Coords, [WOff], DrawWire, [MStop];
--CM [MarkDown] WHILE Q Down => Coords, [WOff], StopTrack, [ArrowTrack];
--CM Q Down WHILE [MarkDown] => Coords, [WOff], StopTrack, [ArrowTrack];
--CM Q Down [NWMode] => SetStartOnMark, UseArrowTrack;
--CD-- [MarkDown] WHILE Q Down => Coords, StopTrack, UseArrowTrack, Track;
--CD-- Q Down WHILE [MarkDown] => Coords, UseArrowTrack, Track;
Q Down => [Reset];
Q Up => [Reset];
RRR
[MarkDown] WHILE R Down => Coords, [WOff], RotP;
R Down WHILE [CTRL] => [WOff], RotS;
--CM [DrawDown] WHILE R Down => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CM [DrawUp] WHILE R Down [ArrowCursor] => Coords, [WOff], DrawRepetition;
--CM R Down WHILE [DrawDown] => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CD-- [DrawUp] WHILE R Down => Coords, DrawRepetition;
--CD-- [DrawDown] WHILE R Down => Coords, StopTrack, UseArrowTrack, Track;
--CD-- R Down WHILE [DrawDown] => Coords, UseArrowTrack, Track;
R Down WHILE TAB Down => [WOff], ResetScale;
--CM R Down [NWMode] => SetStartOnMark, UseArrowTrack;
R Down => [Reset];
R Up => [Reset];
SSS
[MarkDown] WHILE S Down => Coords, [WOff], ShortenP;
--CM [DrawDown] WHILE S Down => Coords, [WOff], SetStartOnMark, [ArrowTrack];
[DrawUp] WHILE S Down [ArrowCursor] => [WOff], StretchPS;
S Down WHILE [DrawDown] => Coords, [ArrowTrack];
--CD-- [DrawDown] WHILE S Down => Coords, StopTrack, UseArrowTrack, Track;
S Down WHILE [CTRL] => [WOff], ShortenS;
S Down WHILE TAB Down => [WOff], DisplayNames;
--CM S Down [NWMode] => SetStartOnMark, UseArrowTrack;
S Down => [Reset];
S Up => [Reset];
TTT
--SIL [DrawDown] WHILE T Down => Coords, [WOffM], DrawText;
--XMOS-- T Down WHILE [CTRL] => [WOff], EnterNameS;
--XMOS-- [MarkDown] WHILE T Down => Coords, [WOffM], EnterNameP;
--XMOS-- [DrawDown] WHILE T Down => Coords, [WOffM], DrawXstr;
T Down => [Reset];
T Up => [Reset];
UUU
U Down WHILE [CTRL] => [WOff], Undel;
U Down => [Reset];
U Up => [Reset];
VVV
V Down => [WOff], ViewerMenu;
V Up => [Reset];
WWW
[MarkDown] WHILE W Down => Coords, [WOff], WidenP;
[DrawDown] WHILE W Down => Coords, [WOff], AlterWidth;
W Down WHILE [CTRL] => [WOff], WidenS;
W Down => [Reset];
W Up => [Reset];
XXX
--XMOS-- [DrawDown] WHILE X Down => Coords, [WOffM], DrawXstr;
X Down WHILE TAB Down => [WOff], AnalysisS;
X Down WHILE [CTRL] => [WOff], TransformS;
[MarkDown] WHILE X Down => Coords, [WOff], TransformP;
X Down => [Reset];
X Up => [Reset];
YYY
--CM [MarkDown] WHILE Y Down => Coords, [WOff], SetStartOnMark, [BoxTrack];
--CM Y Down WHILE [MarkDown] => Coords, [WOff], SetStartOnMark, [BoxTrack];
[MarkUp] WHILE Y Down [BoxCursor] => Coords, [WOff], VPlot; -- Versatec Plot
--CM Y Down => [WOff], SetStartOnMark, UseBoxTrack;
--CD-- [MarkDown] WHILE Y Down => Coords, StopTrack, UseBoxTrack, Track;
--CD-- Y Down WHILE [MarkDown] => Coords, UseBoxTrack, Track;
Y Down => [Reset];
Y Up => [Reset];
ZZZ
--XMOS-- [DrawDown] WHILE Z Down => Coords, [WOffM], DrawAngleXstr;
Z Down WHILE [CTRL] WHILE [SHIFT] => [WOff], DisplayImportedEntries;
Z Down WHILE [SHIFT] => [WOff], DisplayImports;
Z Down WHILE [CTRL] => [WOff], DisplayCellNames;
Z Down => [Reset];
Z Up => [Reset];
Zero
[MarkDown] WHILE Zero Down => Coords, [WOff], DefaultP;
--SIL Zero Down WHILE [CTTAB] => [WOff], ModifyMacroS;
Zero Down WHILE [CTRL] => [WOff], DefaultS;
Zero Down => [Reset];
Zero Up => [Reset];
One
--CMOS-- [SelDown] WHILE One Down => [WOff], SetLayerNDif;
--NMOS [SelDown] WHILE One Down => [WOff], SetLayerDif;
--CMOS-- [MarkDown] WHILE One Down => [WOff], SetLayerNDif;
--NMOS [MarkDown] WHILE One Down => [WOff], SetLayerDif;
--CMOS-- One Down WHILE [CTRL] => [WOff], SetLayerNDif;
--NMOS One Down WHILE [CTRL] => [WOff], SetLayerDif;
--XMOS-- [DrawDown] WHILE One Down => Coords, [WOffM], DrawDifCon;
One Up => [Reset];
One Down => [Reset];
Two
--XMOS-- [SelDown] WHILE Two Down => [WOff], SetLayerPol;
--XMOS-- [MarkDown] WHILE Two Down => [WOff], SetLayerPol;
--XMOS-- Two Down WHILE [CTRL] => [WOff], SetLayerPol;
--XMOS-- [DrawDown] WHILE Two Down => Coords, [WOffM], DrawPolCon;
Two Up => [Reset];
Two Down => [Reset];
Three
--XMOS-- [SelDown] WHILE Three Down => [WOff], SetLayerMet;
--XMOS-- [MarkDown] WHILE Three Down => [WOff], SetLayerMet;
--XMOS-- Three Down WHILE [CTRL] => [WOff], SetLayerMet;
--XMOS-- [DrawDown] WHILE Three Down => Coords, [WOffM], DrawButCon;
Three Up => UseDontTrack;
Three Down => UseDontTrack;
Four
--CMOS-- [SelDown] WHILE Four Down => [WOff], SetLayerPDif;
--CMOS-- [MarkDown] WHILE Four Down => [WOff], SetLayerPDif;
--CMOS-- Four Down WHILE [CTRL] => [WOff], SetLayerPDif;
--CMOS-- [DrawDown] WHILE Four Down => Coords, [WOffM], DrawPDifCon;
--NMOS [DrawDown] WHILE Four Down => Coords, [WOffM], DrawBurCon;
Four Up => UseDontTrack;
Four Down => UseDontTrack;
Five
--XMOS-- [DrawDown] WHILE Five Down => Coords, [WOffM], DrawMm2Con;
--XMOS-- [SelDown] WHILE Five Down => Coords, [WOff], SetLayerMet2;
--XMOS-- [MarkDown] WHILE Five Down => Coords, [WOff], SetLayerMet2;
--XMOS-- Five Down WHILE [CTRL] => [WOff], SetLayerMet2;
Five Up => [Reset];
Five Down => [Reset];
Six
Six Up => [Reset];
Six Down => [Reset];
--CD-- [DrawDown] WHILE Six Down => Coords, StopTrack, UseBoxTrack, Track;
--CD-- Six Down WHILE [DrawDown] => Coords, UseBoxTrack, Track;
--CD-- [DrawUp] WHILE Six Down [BoxCursor] => Coords, DrawDiagonale;
Seven
--CMOS-- [DrawDown] WHILE Seven Down => Coords, [WOffM], DrawNDifShortCon;
Seven Up => [Reset];
Seven Down => [Reset];
Eight
--CMOS-- [DrawDown] WHILE Eight Down => Coords, [WOffM], DrawPDifShortCon;
Eight Up => [Reset];
Eight Down => [Reset];
Arrow
Arrow Down WHILE [CTRL] => [WOff], Pop;
Arrow Down WHILE [CTTAB] => [WOff], Pop;
Arrow Down WHILE [SHIFT] => [WOff], Pop;
Arrow Down WHILE TAB Down => [WOff], Pop;
Arrow Down => [Reset];
Arrow Up => [Reset];
Space
--CM [DrawDown] WHILE Space Down => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CM Space Down WHILE [DrawDown] => Coords, [WOff], SetStartOnMark, [ArrowTrack];
--CM [DrawUp] WHILE Space Down => Coords, [WOff], MoveScreen, SetStartOnMark;
--CM [MarkDown] WHILE Space Down => Coords, [WOff], SetStartOnMark, [BoxTrack];
--CM Space Down WHILE [MarkDown] => Coords, [WOff], SetStartOnMark, [BoxTrack];
--CM [MarkUp] WHILE Space Down => Coords, [WOff], ShowRect, SetStartOnMark;
--CM [SelDown] WHILE Space Down => Coords, [WOff], SetStartOnMark, [BoxTrack];
--CM Space Down WHILE [SelDown] => Coords, [WOff], SetStartOnMark, [BoxTrack];
--CM [SelUp] WHILE Space Down => Coords, [WOff], ShowRectX, SetStartOnMark;
--CM Space Down => [WOff], SetStartOnMark, UseBoxTrack;
--CD-- [DrawUp] WHILE Space Down [ArrowCursor] => Coords, MoveScreen;
--CD-- [MarkUp] WHILE Space Down [BoxCursor] => Coords, ShowRect;
--CD-- [SelUp] WHILE Space Down [BoxCursor] => Coords, ShowRectX;
--CD-- [MarkDown] WHILE Space Down => Coords, StopTrack, UseBoxTrack, Track;
--CD-- [DrawDown] WHILE Space Down => Coords, StopTrack, UseArrowTrack, Track;
--CD-- [SelDown] WHILE Space Down => Coords, StopTrack, UseBoxTrack, Track;
--CD-- Space Down WHILE [DrawDown] [LCursor] => SwitchTrack;
--CD-- Space Down WHILE [MarkDown] => Coords, UseBoxTrack, Track;
--CD-- Space Down WHILE [SelDown] => Coords, UseBoxTrack, Track;
--CM Space Down => [Reset];
--CM Space Up => [Reset];
Ctrl, Spare3
--CM Ctrl Down [AMode] => SwitchTrack;
--CM Spare3 Down [AMode] => SwitchTrack;
--CD-- Spare3 Down WHILE [DrawDown] [LCursor] => Coords, AngleTrack, UseLTrack;
--CD-- Ctrl Down WHILE [DrawDown] [LCursor] => Coords, AngleTrack, UseLTrack;
--CD-- TAB Down WHILE [DrawDown] [LCursor]=> Coords, AngleTrack, UseLTrack;
Shift: LeftShift, RightShift
--CM LeftShift Down [AMode] => SwitchTrack;
--CM RightShift Down [AMode] => SwitchTrack;
--CD-- RightShift Down WHILE [DrawDown] [LCursor] => Coords, AngleTrack, UseLTrack;
--CD-- LeftShift Down WHILE [DrawDown] [LCursor] => Coords, AngleTrack, UseLTrack;
Quote
Quote Down WHILE [CTRL] WHILE [SHIFT] => [WOff], CheckConditions;
Quote Down WHILE [CTRL] => [WOff], DrawCondition;
Quote Up => [Reset];
Quote Down => [Reset];
LeftBracket
LeftBracket Down WHILE [CTRL] WHILE [SHIFT] => [WOff], EnterPropertyS;
LeftBracket Down WHILE [CTRL] => [WOff], ShowPropertiesS;
LeftBracket Up => [Reset];
LeftBracket Down => [Reset];
Equal
Equal Down => [WOff], LambdaLeftS;
BackSlash
BackSlash Down WHILE [CTRL] => [WOff], FlatCif;
BackSlash Down => [WOff], LambdaRightS;
LF
LF Down => [WOff], LambdaUpS;
DEL
DEL Down => [WOff], LambdaDownS;
Comma
Comma Down => [WOff], ScaleMoreDetail;
Period
Period Down => [WOff], ScaleLessDetail;
Slash
Slash Down WHILE [SHIFT] => [WOff], Statistic;
Slash Down => [WOff], DisplayViewers;
MOUSE BUTTONS
--CM [SelDown] WHILE [SHIFT] => Coords, [WOff], AddSelectP;
--CM [SelDown] WHILE [CTRL] => Coords, [WOff], AddSelectP;
--CM [SelDown] => Coords, [WOff], OnlySelectP;
--CD-- [SelUp] WHILE [SHIFT] => Coords, AddSelectP;
--CD-- [SelUp] WHILE [CTRL] => Coords, AddSelectP;
--CD-- [SelUp] => Coords, OnlySelectP;
--CM [DrawDown] [AMode] => Coords, AngleTrack, [MStart], [LTrack];
--CM [DrawDown] [WMode] [BoxCursor] => Coords, [WOff], DrawWire, [MStop];
--CM [DrawDown] [WMode] => Coords, [WOffM];
--CM [DrawDown] [NWMode] => Coords, [WOn];
--CM [MarkDown] [NWMode] => Coords, [WOffM];
--CM [MarkDown] [WMode] => Coords, [WOffM], [WOn];
--CD-- [DrawUp] [LCursor] => Coords, DrawWire;
--CD-- [SelDown] => Coords, StopTrack, UsePosTrack, Track;
--CD-- [MarkDown] => Coords, StopTrack, UseDontTrack, Track;
--CD-- [DrawDown] => Coords, StopTrack, UseLTrack, Track;
--CD-- [DrawUp] => StopTrack;
--CD-- [SelUp] => StopTrack;
--CD-- [MarkUp] => StopTrack;
Mouse => Coords, Track;
ENDCASE.