-- ///cd17/chipndalecmos.TIP
-- Copyright © 1984 by Xerox Corporation. All rights reserved.
-- Created by: Christian Jacobi, June 1, 1984 5:25:04 pm PDT
-- Last Edited by: Monier, July 25, 1984 7:42:41 pm PDT
-- Last Edited by: Christian Jacobi, July 28, 1984 3:45:24 pm PDT
[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,LCursor,(WHILE ChipndaleLBoxCursor)]
[DEF,NoCursor,(WHILE ChipndaleShadowCursor)]
[DEF,ArrowCursor,(WHILE ChipndaleArrowCursor)]
[DEF,PosCursor,(WHILE ChipndalePosCursor)]
[DEF,BoxCursor,(WHILE ChipndaleBoxCursor)]
[DEF,DontCursor,(WHILE ChipndaleDontCursor)]
[DEF,InFooMode,(WHILE ChipndaleXMode)]
[DEF,NotInFooMode,(WHILE ChipndaleNXMode)]
[DEF,ClearFooMode,(SetXModeOff)]
[DEF,SetFooMode,(SetXModeOn)]
[DEF,Reset,(StopTrack, UseDontTrack, Track)]
[DEF,ResetNoTrack,(StopTrack, UseDontTrack)]
[DEF,FirstSelect,(Coords, ReSelectOnlyP, Track)]
[DEF,ReselectLast,(Coords, DeSelectLP, AddSelectP, Track)]
[DEF,SingleSelect,(Coords, OnlySelectP, Track)]
[DEF,BoxTracking,(Coords, StopTrack, UseBoxTrack, Track)]
[DEF,ArrowTracking,(Coords, StopTrack, UseArrowTrack, Track)]
[
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, UseDontTrack, Track)]
~1 represent's key to catch on up
[
DEF,Catch,(~1 Down => StopTrack, UseDontTrack, Track;
[CatchUp, ~1];
[MiddleDown] WHILE ~1 Down => StopTrack, UseDontTrack, Track)]
~1 represent's key to catch on up, down, middle down
SELECT TRIGGER FROM
Mouse
Mouse => Coords, Track;
Lock
Changing default layers
Lock Down => TestDifFlipToPWorld;
Lock Up => TestDifFlipToNWorld;
ESC
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];
AAA
Stretching and Moving incrementally left the selection
[RightDown] WHILE A Down => [Reset];
[LeftUp] WHILE A Down WHILE [CTRL] => Coords, StretchStepLeftS;
[RightUp] WHILE A Down WHILE [CTRL] => Coords, StretchStepLeftS;
[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 => [Reset];
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 => [Reset];
[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 => [Reset];
Space Down WHILE E Down WHILE [LeftDown] => [SingleSelect];
[LeftUp] WHILE E Down => MirrorYS;
[RightUp] WHILE E Down => MirrorYS;
[Catch, E];
FFF
[RightDown] WHILE F Down => [Reset];
[LeftUp] WHILE F Down => Coords, ShrinkStepS;
[RightUp] WHILE F Down => Coords, ShrinkStepS;
[Catch, F];
GGG
[RightDown] WHILE G Down => [Reset];
[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 => [Reset];
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 => [Reset];
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 => [Reset];
[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 => [Reset];
[LeftUp] WHILE S Down WHILE [CTRL] => Coords, StretchStepRightS;
[RightUp] WHILE S Down WHILE [CTRL] => Coords, StretchStepRightS;
[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 => [Reset];
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 => [Reset];
[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 => [Reset];
[LeftUp] WHILE W Down WHILE [CTRL] => Coords, StretchStepUpS;
[RightUp] WHILE W Down WHILE [CTRL] => Coords, StretchStepUpS;
[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 => [Reset];
[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;
ZZZ
Stretching and Moving incrementally down the selection
[RightDown] WHILE Z Down => [Reset];
[LeftUp] WHILE Z Down WHILE [CTRL] => Coords, StretchStepDownS;
[RightUp] WHILE Z Down WHILE [CTRL] => Coords, StretchStepDownS;
[LeftUp] WHILE Z Down => Coords, LambdaDownS;
[RightUp] WHILE Z Down => Coords, LambdaDownS;
[Catch, Z];
Zero
Zero Down => [ResetNoTrack]; -- this is used to return version number
[CatchUp, Zero];
One
Buried contact
[MiddleDown] WHILE One Down WHILE TAB Down => Coords, DrawNBurCon;
Butting contacts
[MiddleDown] WHILE One Down WHILE Two Down WHILE [LEFTSH] => Coords, DrawPButCon;
[MiddleDown] WHILE One Down WHILE Two Down => Coords, DrawNButCon;
P-diffusion contacts or set P-diffusion
One Down WHILE TAB Down => [ResetNoTrack];
One Down WHILE Two Down => [ResetNoTrack];
One Down
WHILE [
LEFTSH] =>
SELECT
TRIGGER
FROM
[MiddleDown] => Coords, DrawPDifCon;
One Up => SetLayerPDif;
ENDCASE => [ResetNoTrack];
[MiddleDown] WHILE One Down WHILE [LEFTSH] => Coords, DrawPDifCon;
N-diffusion contacts or set N-diffusion
One Down =>
SELECT
TRIGGER
FROM
[MiddleDown] => Coords, DrawNDifCon;
One Up => SetLayerNDif;
ENDCASE => [ResetNoTrack];
[MiddleDown] WHILE One Down => Coords, DrawNDifCon;
[CatchUp, One];
Two
Draw with poly
Two Down WHILE One Down => [ResetNoTrack];
Two Down =>
SELECT
TRIGGER
FROM
[MiddleDown] => Coords, DrawPolCon;
Two Up => SetLayerPol;
ENDCASE => [ResetNoTrack];
[MiddleDown] WHILE Two Down => Coords, DrawPolCon;
[CatchUp, Two];
Three
Draw with metal
Three Down =>
SELECT
TRIGGER
FROM
[MiddleDown] => Coords, DrawMm2Con;
Three Up => SetLayerMet;
ENDCASE => [ResetNoTrack];
[MiddleDown] WHILE Three Down => Coords, DrawMm2Con;
[CatchUp, Three];
Four
Draw with contact-diffusion
Four Down
WHILE [
LEFTSH] =>
SELECT
TRIGGER
FROM
[MiddleDown] => Coords, DrawNWCntCon;
Four Up => SetLayerNWCnt;
ENDCASE => [ResetNoTrack];
[MiddleDown] WHILE Four Down WHILE [LEFTSH] => Coords, DrawNWCntCon;
Four Down =>
SELECT
TRIGGER
FROM
[MiddleDown] => Coords, DrawPWCntCon;
Four Up => SetLayerPWCnt;
ENDCASE => [ResetNoTrack];
[MiddleDown] WHILE Four Down => Coords, DrawPWCntCon;
[CatchUp, Four];
Five
Draw with NWell
Five Down => SetLayerNWell;
[CatchUp, Five];
Six
Draw with Metal2
Six Down => SetLayerMet2;
[CatchUp, Six];
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 => [BoxTracking];
[MiddleDown] WHILE Quote Down => [BoxTracking];
[RightDown] WHILE Quote Down => [BoxTracking];
BW Plot
[LeftUp] WHILE Quote Down WHILE [SHIFT] [BoxCursor] => Coords, VersatecBWPlot;
[MiddleUp] WHILE Quote Down WHILE [SHIFT] [BoxCursor] => Coords, VersatecBWPlot;
[RightUp] WHILE Quote Down WHILE [SHIFT] [BoxCursor] => Coords, VersatecBWPlot;
Color Plot
[LeftUp] WHILE Quote Down [BoxCursor] => Coords, VersatecColorPlot;
[MiddleUp] WHILE Quote Down [BoxCursor] => Coords, VersatecColorPlot;
[RightUp] WHILE Quote Down [BoxCursor] => Coords, VersatecColorPlot;
[Catch, Quote];
LeftBracket
[RightDown] WHILE LeftBracket Down => [Reset];
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 => [Reset];
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 => [Reset];
[MiddleDown] WHILE Equal Down => [ArrowTracking];
[MiddleUp] WHILE Equal Down [ArrowCursor] WHILE [SHIFT] => Coords, ChangeRepetition;
[MiddleUp] WHILE Equal Down [ArrowCursor] => Coords, DrawRepetition;
[Catch, Equal];
Dash, for the tiler program
Dash Down WHILE [SHIFT] => Coords, AddAlignMark;
Dash Down WHILE [CTRL] => Coords, AddStretchLine;
Dash Down WHILE TAB Down => Coords, RunTiler;
[Catch, Dash];
BackSlash
Make an object Conditional
[RightDown] WHILE BackSlash Down => [Reset];
[LeftUp] WHILE BackSlash Down => Coords, DrawConditionS;
[MiddleUp] WHILE BackSlash Down => Coords, DrawConditionS;
[RightUp] WHILE BackSlash Down => Coords, 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 => [BoxTracking];
[MiddleUp] WHILE SemiColon Down [BoxCursor] => Coords, DrawPin;
[Catch, SemiColon];
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 => [Reset];
[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 => [BoxTracking];
[LeftUp] WHILE Space Down [BoxCursor] => 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 => [BoxTracking];
[RightUp] WHILE Space Down [BoxCursor] => Coords, ShowRectX;
Left
De-Selection by contact: area only
[LeftDown] WHILE [SHIFT] WHILE TAB Down WHILE [CTRL] => [BoxTracking];
[LeftUp] [BoxCursor] WHILE TAB Down WHILE [SHIFT] WHILE [CTRL] => Coords, AreaDeSelectTouching;
Selection by contact: area only
[LeftDown] WHILE [CTRL] WHILE TAB Down => [BoxTracking];
[LeftUp] [BoxCursor] WHILE TAB Down WHILE [CTRL] => Coords, DeSelectS, AreaAddSelectTouching;
Area DeSelection contained
[LeftDown] WHILE TAB Down WHILE [SHIFT] => [BoxTracking];
[LeftUp] WHILE TAB Down [BoxCursor] WHILE [SHIFT]=> Coords, AreaOnlySelect;
Area Selection contained
[LeftDown] WHILE TAB Down => [BoxTracking];
[LeftUp] WHILE TAB Down [BoxCursor] => Coords, AreaOnlySelect;
Deselect all
[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] => Coords, StopTrack, UseLTrack, Track;
Space Down WHILE [MiddleDown] [LCursor] => SwitchTrack, Track;
LeftShift Down WHILE [MiddleDown] [LCursor] => Coords, AngleTrack, UseLTrack, Track;
[MiddleUp] [LCursor] => Coords, DrawWire;
Right
Area De-Selection by contact
[RightDown] WHILE [SHIFT] WHILE TAB Down WHILE [CTRL] => [BoxTracking];
[RightUp] [BoxCursor] WHILE TAB Down WHILE [SHIFT] WHILE [CTRL] => Coords, AreaDeSelectTouching;
Area Selection by contact
[RightDown] WHILE [CTRL] WHILE TAB Down => [BoxTracking];
[RightUp] [BoxCursor] WHILE TAB Down WHILE [CTRL] => Coords, AreaAddSelectTouching;
Area DeSelection contained
[RightDown] WHILE TAB Down WHILE [SHIFT] => [BoxTracking];
[RightUp] WHILE TAB Down [BoxCursor] WHILE [SHIFT]=> Coords, AreaDeSelect;
Area Selection contained
[RightDown] WHILE TAB Down => [BoxTracking];
[RightUp] WHILE TAB Down [BoxCursor] => 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, [Reset];
[RightDown] => Coords, [Reset];
[MiddleDown] => Coords, [Reset];
[LeftUp] => Coords, [Reset];
[RightUp] => Coords, [Reset];
[MiddleUp] => Coords, [Reset];
ENDCASE.
Not inluded now
DefaultS, NarrowS, WidenS, LengthenS, ShortenS;