-- ChipNDale.TIP
-- Tip-table for ChipNDale
-- Copyright © 1984, 1985 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: Jacobi, April 30, 1985 6:17:51 pm PDT
--  Last Edited by: Sindhu, January 15, 1985 12:01:17 pm 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)] -- might Track
[DEF,Reset,(StopTrack)]
[DEF,FirstSelect,(Coords, ReSelectOnlyP, Track)]
[DEF,CloseFirstSelect,(Coords, CloseReSelectOnlyP, Track)]
[DEF,OtherSelect,(Coords, OnlySelectP, Track)]
[DEF,ReselectLast,(Coords, DeSelectLP, AddSelectP, 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] => Coords, ~2;
Space Down WHILE ~1 Down
WHILE [RightUp] WHILE [LeftUp] WHILE [MiddleUp] => Coords, ~2)]
~1 represent's key; ~2 represent's Menu atom to call
[DEF,Catch,(~1 Down => StopTrack, UseCursor, default;
~1 Up => StopTrack, UseCursor, default;
[RightDown] WHILE ~1 Down => [ResetT];
[LeftDown] WHILE ~1 Down => [FirstSelect];
[MiddleDown] WHILE ~1 Down => StopTrack, UseCursor, default
)]
~1 represent's key to catch
[DEF,MouseUpOrCTRL,([LeftUp] WHILE ~1 Down => ~2;
[RightUp] WHILE ~1 Down => ~2;
~1 Down WHILE [CTRL] => ~2;
[CTRL] WHILE ~1 Down => ~2
)]
~1 represent's key ; ~2 represents action
[DEF,StepStretch,
([LeftUp] WHILE ~1 Down WHILE TAB Down => Coords, ~2;
[RightUp] WHILE ~1 Down WHILE TAB Down => Coords, ~2;
~1 Down WHILE TAB Down WHILE [LeftDown] => Coords, ~2;
~1 Down WHILE TAB Down WHILE [RightDown] => Coords, ~2)]
~1 represent's key ; ~2 represents action atom
[DEF,StepConnecty,
(~1 Down WHILE [CTRL] WHILE TAB Down => ~2;
[CTRL] WHILE ~1 Down WHILE TAB Down => ~2)]
-- NOT TAB last key down.
~1 represent's key ; ~2 represents action atom
SELECT TRIGGER FROM
Mouse
Mouse => Coords, Track;
[LeftDown] WHILE [RightDown] => [Reset];
[LeftDown] WHILE [MiddleDown] => [Reset];
[MiddleDown] WHILE [LeftDown] => [Reset];
[MiddleDown] WHILE [RightDown] => [Reset];
[RightDown] WHILE [LeftDown] => [Reset];
[RightDown] WHILE [MiddleDown] => [Reset];
ESC
Abort commands
Remember: ESC-LF aborts an ongoing paint process
DEL Down WHILE ESC Down => AbortCommand;
ESC Down WHILE DEL Down => AbortCommand;
Un-delete, un-arrow
D Down WHILE ESC Down => Undel;
ESC Down WHILE D Down => Undel;
A Down WHILE ESC Down => RemoveArrow;
ESC Down WHILE A Down => RemoveArrow;
Space Down WHILE ESC Down => RestoreView;
ESC Down WHILE Space Down => RestoreView;
Layer Commands: select layer and set current layer
[LeftUp] WHILE [SHIFT] WHILE ESC Down => DeSelectS, AddSelectLevel;
[RightUp] WHILE [SHIFT] WHILE ESC Down => AddSelectLevel;
Deselect all, Deselect incrementally by pointing and by area
[LeftDown] WHILE ESC Down => [ResetT];
[LeftUp] WHILE ESC Down => DeSelectS;
[RightDown] WHILE ESC Down WHILE [SHIFT] => [ResetT];
[RightDown] WHILE ESC Down => SELECT TRIGGER FROM
[RightUp] BEFORE 200 => Coords, DeSelectLP;
ENDCASE => [RectTracking]; -- start Area Selection
[RightUp] [RectCursor] WHILE ESC Down => Coords, AreaDeSelect;
Set layer
[MiddleDown] WHILE ESC Down => Coords, SetLayerP;
[RightUp] WHILE ESC Down => [ResetT];
[MiddleUp] WHILE ESC Down => [ResetT];
[Catch, ESC];
Space for menu's
All the pop-up menus
[Menu, B, DisplayMenu];
[Menu, C, CellMenu];
[Menu, D, DirectoryMenu];
[Menu, G, GlobalMenu];
[Menu, I, IOMenu];
[Menu, M, DrawMode];
[Menu, N, NameMenu];
[Menu, O, OtherProgramMenu];
[Menu, P, ProgramMenu];
[Menu, S, SpecialMenu];
[Menu, T, TransformS];
[Menu, V, ViewerMenu];
[Menu, Comma, SetSimplification];
[Menu, Period, TicksInfo];
[Menu, Slash, GridInfo];
[Menu, U, GeneratorMenu];
[Menu, X, ImportMenu];
[Menu, BackSlash, ConditionsMenu];
AAA
Stretching and Moving incrementally left the selection
[StepConnecty, A, StretchyMoveStepLeftS];
[StepStretch, A, StretchStepLeftS];
[MouseUpOrCTRL, A, LambdaLeftS];
[MiddleUp] WHILE A Down => Coords, SetArrow;
[Catch, A];
BBB
[Catch, B];
CCC
Creation of cell (use X key)
[MiddleDown] WHILE C Down WHILE X Down => CreateCellSAndName;
Create or draw expand a Cell (use X key)
[MiddleDown] WHILE C Down => Coords, DrawCell;
Pop
LeftShift Down WHILE C Down => PopMenu;
C Down WHILE LeftShift Down => PopMenu;
Push
[MouseUpOrCTRL, C, PushS];
[Catch, C];
DDD
Deleting
[MouseUpOrCTRL, D, DeleteS];
[Catch, D];
EEE
Mirror up-down (this key is close to R (otation); further, it is symmetric )
Space Down WHILE E Down WHILE [LeftDown] => [OtherSelect];
[MouseUpOrCTRL, E, MirrorYS];
[Catch, E];
FFF
[Catch, F];
GGG
[MouseUpOrCTRL, G, IncreaseByWidth];
[Catch, G];
HHH
hard copy
[MiddleDown] WHILE H Down => [RectTracking];
[LeftDown] WHILE H Down => [FirstSelect], [RectTracking];
[RightDown] WHILE H Down => [ResetT], [RectTracking];
[MiddleUp] WHILE H Down => Coords, HardCopyMenu;
[RightUp] WHILE H Down => Coords, HardCopyMenu;
[LeftUp] WHILE H Down => Coords, HardCopyMenu;
[Catch, H];
III
[MiddleDown] WHILE I Down => DisplayInstanceNames;
[Catch, I];
JJJ
[Catch, J];
KKK
[Catch, K];
LLL
[Catch, L];
MMM
measure; note also CTRL middle does measure
[LeftDown] WHILE M Down => SELECT TRIGGER FROM
[MiddleUp] BEFORE 200 => Coords, Statistic;
ENDCASE => [ArrowTracking];
[LeftUp] WHILE M Down [ArrowCursor] => Coords, Coordinates;
[Catch, M];
NNN
Signal or instance Names
[MiddleDown] WHILE N Down => SignalNameS; --enter a signalname
[LeftUp] WHILE N Down => ShowPropertiesS; --on terminal
[RightUp] WHILE N Down => DisplayNames; --on design viewers
[Catch, N];
OOO
[Catch, O];
PPP
Show or put properties of single-selected object; speed up commands
[MiddleDown] WHILE P Down WHILE [SHIFT] => PropertyApp;
[LeftUp] WHILE P Down WHILE [SHIFT] => ShowPropertiesS;
Rect program menu
[MiddleDown] WHILE P Down => [RectTracking];
[LeftDown] WHILE P Down => [FirstSelect], [RectTracking];
[RightDown] WHILE P Down => [ResetT], [RectTracking];
[MiddleUp] WHILE P Down [RectCursor] => Coords, RectProgramMenu;
[RightUp] WHILE P Down [RectCursor] => Coords, RectProgramMenu;
[LeftUp] WHILE P Down [RectCursor] => Coords, RectProgramMenu;
[Catch, P];
QQQ
[Catch, Q];
RRR
Rotation and rename of objects
Space Down WHILE R Down WHILE [LeftDown] => [OtherSelect];
[MouseUpOrCTRL, R, RotS];
[Catch, R];
SSS
Stretching and Moving incrementally right the selection
[StepConnecty, S, StretchyMoveStepRightS];
[StepStretch, S, StretchStepRightS];
[MouseUpOrCTRL, S, LambdaRightS];
[MiddleDown] WHILE S Down => [RectTracking];
[MiddleUp] WHILE S Down [RectCursor] => Coords, RectSpecialMenu;
[Catch, S];
TTT
Mirror left-right (this key is close to R (otation); further, it is symmetric )
Space Down WHILE T Down WHILE [LeftDown] => [OtherSelect];
[MouseUpOrCTRL, T, MirrorS];
[Catch, T];
UUU
[MiddleDown] WHILE U Down => [RectTracking];
[MiddleUp] WHILE U Down [RectCursor] => Coords, CallGenerator;
[Catch, U];
VVV
Display the viewers
[MiddleDown] WHILE V Down => DisplayViewers;
[Catch, V];
WWW
Stretching and Moving incrementally up the selection
[StepConnecty, W, StretchyMoveStepUpS];
[StepStretch, W, StretchStepUpS];
[MouseUpOrCTRL, W, LambdaUpS];
[Catch, W];
XXX
external (imported) objects
[RightDown] WHILE X Down WHILE Z Down => Reset;
[LeftDown] WHILE X Down WHILE Z Down => Reset;
[RightUp] WHILE X Down WHILE Z Down => Coords, SelectADesign, CloseReSelectOnlyP, Track;
[LeftUp] WHILE X Down WHILE Z Down => Coords, SelectADesign, CloseReSelectOnlyP, Track;
[MiddleDown] WHILE X Down WHILE Z Down => Coords, DrawCorrespondingObject;
[MiddleDown] WHILE X Down => Coords, DrawImported;
[Catch, X];
YYY
[MiddleDown] WHILE Y Down => Coords, DrawMark;
[Catch, Y];
ZZZ
Stretching and Moving incrementally down the selection
[StepConnecty, Z, StretchyMoveStepDownS];
[StepStretch, Z, StretchStepDownS];
[MouseUpOrCTRL, Z, LambdaDownS];
[Catch, Z];
Zero
Zero Down => TipTableVersionFeb10x1986;
[Catch, Zero];
One
[Catch, One];
Two
[Catch, Two];
Three
[Catch, Three];
Four
[Catch, Four];
Five
[Catch, Five];
Six
[Catch, Six];
Seven
[Catch, Seven];
Eight
[Catch, Eight];
Arrow
Debug chipndale
[LeftUp] WHILE Arrow Down => Coords, Debug;
[MiddleUp] WHILE Arrow Down => Coords, Debug;
[RightUp] WHILE Arrow Down => Coords, Debug;
[Catch, Arrow];
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
LeftBracket together with RightBracket: undo repetition
[LeftUp] WHILE LeftBracket Down WHILE RightBracket Down => TransformToCellS, ExpandS;
[RightUp] WHILE LeftBracket Down WHILE RightBracket Down => TransformToCellS, ExpandS;
Increment the repetition (LeftBracket is near the =)
[MouseUpOrCTRL, LeftBracket, IncCountS];
[Catch, LeftBracket];
RightBracket
Decrement the repetition (RightBracket is near the =)
[MouseUpOrCTRL, RightBracket, DecCountS];
[Catch, RightBracket];
Equal
Create a Repetition (do you se the repeated horizontal lines?)
[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 polygons
[MiddleDown] WHILE Dash Down => [ArrowTracking];
[MiddleUp] WHILE Dash Down [ArrowCursor] => Coords, PolygonMenu;
[Catch, Dash];
BackSlash
Split Wire (do you see how the | splits the wires?)
[RightDown] WHILE BackSlash Down => [ArrowTracking];
[MiddleDown] WHILE BackSlash Down => [ArrowTracking];
[LeftDown] WHILE BackSlash Down => [FirstSelect], [ArrowTracking];
Space Down WHILE [LeftDown] WHILE BackSlash Down => [OtherSelect], [ArrowTracking];
[LeftUp] WHILE BackSlash Down [ArrowCursor] => Coords, SplitWireS;
[RightUp] WHILE BackSlash Down [ArrowCursor] => Coords, SplitWireS;
[MiddleUp] WHILE BackSlash Down [ArrowCursor] => Coords, SplitWireS;
[Catch, BackSlash];
SemiColon
Pins (EXXPERIMENTAL)
[MiddleDown] WHILE SemiColon Down => [RectTracking];
[MiddleUp] WHILE SemiColon Down WHILE [SHIFT] [RectCursor] => Coords, DrawSegment;
[MiddleUp] WHILE SemiColon Down [RectCursor] => Coords, DrawPin;
[MouseUpOrCTRL, SemiColon, ChangeSymbolicLayer];
[Catch, SemiColon];
LF
--remember: LF-ESC aborts an ongoing paint process
[LeftDown] WHILE LF Down => DeSelectS, AddSelectLayer;
[RightDown] WHILE LF Down => AddSelectLayer;
[Catch, LF];
DEL
--remember: ESC-DEL => AbortCommand
[Catch, DEL];
Comma <
Zoom in
Comma Down => ScaleMoreDetail;
[Catch, Comma];
Period >
Zoom out
Period Down => ScaleLessDetail;
[Catch, Period];
Slash (but you really see the <?> )
Display hierarchy
[MiddleDown] WHILE Slash Down => Coords, SpinifexHighlightNodeP;
[MouseUpOrCTRL, Slash, MoveToGrid];
Display Foo
Slash Down WHILE [SHIFT] => Statistic;
Slash Down WHILE [CTRL] => Statistic;
[Catch, Slash];
Keyset1
[Catch, Keyset1];
Keyset2
[Catch, Keyset2];
Keyset3
[Catch, Keyset3];
Keyset4
[Catch, Keyset4];
Keyset5
[Catch, Keyset5];
BS
[Catch, BS];
Spare2
[MouseUpOrCTRL, Spare2, ShowErrors];
[Catch, Spare2];
Spare3
area selection touching
[RightDown] WHILE Spare3 Down => [RectTracking]; -- start Area Selection
[LeftDown] WHILE Spare3 Down => [RectTracking]; -- start Area Selection
area de selection touching
[RightUp] [RectCursor] WHILE Spare3 Down WHILE RightShift Down => Coords, AreaDeSelectTouching;
area exclusive selection touching
[LeftUp] [RectCursor] WHILE Spare3 Down => Coords, DeSelectS, AreaAddSelectTouching;
area inclusive selection touching
[RightUp] [RectCursor] WHILE Spare3 Down => Coords, AreaAddSelectTouching;
[Catch, Spare3];
Space
Reselection
Space Down WHILE [RightDown] [ArrowCursor] => [ReselectLast], UseCursor, arrow, Track;
Space Down WHILE [LeftDown] [ArrowCursor] => [OtherSelect], UseCursor, arrow, Track;
Space Down WHILE [RightDown] => [ReselectLast];
Space Down WHILE [LeftDown] => [OtherSelect];
Show Box viewer
[LeftDown] WHILE Space Down => [RectTracking];
[LeftUp] WHILE Space Down WHILE [SHIFT] [RectCursor] => Coords, ShowRectX;
[LeftUp] WHILE Space Down [RectCursor] => Coords, ShowRect;
Move viewer (drag) or reset scale (click)
[MiddleDown] WHILE Space Down => [ArrowTracking];
[MiddleUp] WHILE Space Down [ArrowCursor] => Coords, MoveScreen;
Select all
[RightDown] WHILE Space Down => [ResetT];
[RightUp] WHILE Space Down=> SelectAll;
Show all, selection
TAB Down WHILE Space Down => ResetScaleTop;
Space Down WHILE TAB Down => ResetScaleTop;
[CTRL] WHILE Space Down => ResetScaleSel;
Space Down WHILE [CTRL] => ResetScaleSel;
Wires
Space Down WHILE [MiddleDown] [WireCursor] => [FlipWire];
CTRL
Stretchy move
[LeftUp] WHILE [CTRL] WHILE TAB Down [ArrowCursor] => Coords, StretchyMoveS;
[RightUp] WHILE [CTRL] WHILE TAB Down [ArrowCursor] => Coords, StretchyMoveS;
Move
[LeftDown] WHILE [CTRL] => [FirstSelect], [ArrowTracking];
[RightDown] WHILE [CTRL] => [ArrowTracking];
[LeftUp] WHILE [CTRL] [ArrowCursor] => Coords, MoveS;
[RightUp] WHILE [CTRL] [ArrowCursor] => Coords, MoveS;
TAB
Stretch
[LeftDown] WHILE TAB Down => [FirstSelect], [ArrowTracking];
[RightDown] WHILE TAB Down => [ArrowTracking];
[LeftUp] WHILE TAB Down [ArrowCursor] => Coords, StretchS;
[RightUp] WHILE TAB Down [ArrowCursor] => Coords, StretchS;
SHIFT
Copy
[RightDown] WHILE [SHIFT] => [ArrowTracking];
[LeftDown] WHILE [SHIFT] => [FirstSelect], [ArrowTracking];
[LeftUp] WHILE [SHIFT] [ArrowCursor] => Coords, CopyS;
[RightUp] WHILE [SHIFT] [ArrowCursor] => Coords, CopyS;
[LeftUp] WHILE [RightDown] => DeSelectS;
[LeftUp] WHILE [MiddleDown] => DeSelectS;
[RightUp] WHILE [LeftDown] => DeSelectS;
[RightUp] WHILE [MiddleDown] => DeSelectS;
[MiddleUp] WHILE [LeftDown] => [Reset];
[MiddleUp] WHILE [RightDown] => [Reset];

Right
Selection
[RightDown] => SELECT TRIGGER FROM
[RightUp] BEFORE 200 => Coords, DoubleAddSelect;
ENDCASE => [RectTracking]; -- start Area Selection
[RightUp] [RectCursor] => Coords, MultiAddSelect; -- Area inclusive Selection contained
Left
Selection
[LeftDown] => SELECT TRIGGER FROM
[LeftUp] BEFORE 200 => [CloseFirstSelect];
ENDCASE => [RectTracking]; -- start Area Selection
[LeftUp] [RectCursor] => Coords, MultiOnlySelect;-- Area exclusive Selection contained
Middle
Measure size and coordinates, statistic
[MiddleDown] WHILE [CTRL] => SELECT TRIGGER FROM
[MiddleUp] BEFORE 200 => Coords, Statistic, Track;
ENDCASE => [ArrowTracking];
[MiddleUp] WHILE [CTRL] [ArrowCursor] => Coords, Coordinates;
Wires
[MiddleDown] => [WireTracking];
LeftShift Down WHILE [MiddleDown] [WireCursor] => [PartialWire];
[MiddleUp] [WireCursor] => Coords, DrawWire;
Catches
[LeftDown] => [ResetT];
[RightDown] => [ResetT];
[MiddleDown] => [ResetT];
[LeftUp] => [ResetT];
[RightUp] => [ResetT];
[MiddleUp] => [ResetT];
ENDCASE.