-- ChipNDaleCMosB.TIP
-- Tip-table for ChipNDale CMosB
-- Copyright © 1984, 1985, 1986, 1987, 1988 by Xerox Corporation. All rights reserved.
--  Created by: Christian Jacobi, June 1, 1984 5:25:04 pm PDT
--  Last edited by: Christian Jacobi, February 5, 1988 10:55:40 am PST
[DEF,MiddleDown,(Yellow Down)]
[DEF,LEFTSH,(LeftShift Down | Lock Down)]
[DEF,Reset,(StopTrack)]
[DEF,LeftUp,(Red Up)]
[DEF,LeftDown,(Red Down)]
[DEF,RightUp,(Blue Up)]
[DEF,CTRL,(Ctrl Down)]
[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
SELECT TRIGGER FROM
Mouse
Mouse => Coords, Track;
Lock
Changing default layers
Lock Down => TestDifFlipToPWorld;
Lock Up => TestDifFlipToNWorld;
Double letters
M Down WHILE S Down => SetSchematicMode;
S Down WHILE M Down => SetSchematicMode;
M Down WHILE L Down => SetLayoutMode;
L Down WHILE M Down => SetLayoutMode;
QQQ
Transistors
[MiddleDown] WHILE Q Down WHILE [LEFTSH] => Coords, DrawWPXstr;
[MiddleDown] WHILE Q Down => Coords, DrawNXstr;
WWW
Angle transistors
[MiddleDown] WHILE W Down WHILE E Down => [Reset];
[MiddleDown] WHILE W Down WHILE [LEFTSH] => Coords, DrawAngleWPXstr;
[MiddleDown] WHILE W Down => Coords, DrawAngleNXstr;
One
Contact-diffusion
[MiddleDown] WHILE One Down WHILE Four Down WHILE [LEFTSH] => Coords, DrawWPDifShortCon;
[MiddleDown] WHILE One Down WHILE Four Down => Coords, DrawNDifShortCon;
P-diffusion contacts or set P-diffusion
One Down WHILE Two Down => [Reset];
One Down WHILE Three Down => [Reset];
One Down WHILE Four Down => [Reset];
Space Down WHILE One Down => [Reset];
One Down WHILE [LEFTSH] => SELECT TRIGGER FROM
Space Down => [Reset];
Space Up => [Reset];
[MiddleDown] WHILE Space Down => Coords, DrawLWPDifCon;
[MiddleDown] => Coords, DrawWPDifCon;
[LeftDown] => Coords, SetLayerPDif, ReSelectOnlyWithLayerP;
One Up => SetLayerPDif;
ENDCASE => [Reset];
[MiddleDown] WHILE One Down WHILE [LEFTSH] WHILE Space Down => Coords, DrawLWPDifCon;
[MiddleDown] WHILE One Down WHILE [LEFTSH] => Coords, DrawWPDifCon;
[LeftDown] WHILE One Down WHILE [LEFTSH] => Coords, SetLayerPDif, ReSelectOnlyWithLayerP;
N-diffusion contacts or set N-diffusion
One Down => SELECT TRIGGER FROM
Space Down => [Reset];
Space Up => [Reset];
[MiddleDown] WHILE Space Down => Coords, DrawLNDifCon;
[MiddleDown] => Coords, DrawNDifCon;
[LeftDown] => Coords, SetLayerNDif, ReSelectOnlyWithLayerP;
One Up => SetLayerNDif;
ENDCASE => [Reset];
[MiddleDown] WHILE One Down WHILE Space Down => Coords, DrawLNDifCon;
[MiddleDown] WHILE One Down => Coords, DrawNDifCon;
[LeftDown] WHILE One Down => Coords, SetLayerNDif, ReSelectOnlyWithLayerP;
Two
Draw with poly
Two Down WHILE Three Down => [Reset];
Two Down WHILE One Down => [Reset];
Two Down WHILE Four Down => [Reset];
Two Down WHILE Space Down => [Reset];
Space Down WHILE Two Down => [Reset];
Two Down => SELECT TRIGGER FROM
Space Down => [Reset];
Space Up => [Reset];
[MiddleDown] WHILE Space Down => Coords, DrawLPolCon;
[MiddleDown] => Coords, DrawPolCon;
[LeftDown] => Coords, SetLayerPol, ReSelectOnlyWithLayerP;
Two Up => SetLayerPol;
ENDCASE => [Reset];
[MiddleDown] WHILE Two Down WHILE Space Down => Coords, DrawLPolCon;
[MiddleDown] WHILE Two Down => Coords, DrawPolCon;
[LeftDown] WHILE Two Down => Coords, SetLayerPol, ReSelectOnlyWithLayerP;
Three
Draw with metal contacts
Three Down => [Reset];
Three Up => SetLayerMet;
[LeftDown] WHILE Three Down => Coords, SetLayerMet, ReSelectOnlyWithLayerP;
Four
Draw with contact-diffusion
Four Down WHILE One Down => [Reset];
Four Down WHILE Space Down => [Reset];
Four Down WHILE [LEFTSH] => SELECT TRIGGER FROM
[MiddleDown] => Coords, DrawWNWCntCon;
Four Up => SetLayerWNWCnt;
[LeftDown] => Coords, SetLayerWNWCnt, ReSelectOnlyWithLayerP;
ENDCASE => [Reset];
[MiddleDown] WHILE Four Down WHILE [LEFTSH] WHILE Space Down => Coords, DrawLWNWCntCon;
[MiddleDown] WHILE Four Down WHILE [LEFTSH] => Coords, DrawWNWCntCon;
Four Down => SELECT TRIGGER FROM
[MiddleDown] => Coords, DrawPWCntCon;
Four Up => SetLayerPWCnt;
[LeftDown] => Coords, SetLayerPWCnt, ReSelectOnlyWithLayerP;
ENDCASE => [Reset];
[MiddleDown] WHILE Four Down WHILE Space Down => Coords, DrawLPWCntCon;
[MiddleDown] WHILE Four Down => Coords, DrawPWCntCon;
[LeftDown] WHILE Four Down => Coords, SetLayerPWCnt, ReSelectOnlyWithLayerP;
Five
Draw with NWell
Five Down => SetLayerNWell;
[LeftDown] WHILE Five Down => Coords, SetLayerNWell, ReSelectOnlyWithLayerP;
Six
Draw with Metal2
Six Down => SELECT TRIGGER FROM
Space Down => [Reset];
Space Up => [Reset];
[MiddleDown] WHILE Space Down => Coords, DrawLVia;
[MiddleDown] => Coords, DrawMm2Con;
[LeftDown] => Coords, SetLayerMet2, ReSelectOnlyWithLayerP;
Six Up => SetLayerMet2;
ENDCASE => [Reset];
[MiddleDown] WHILE Six Down WHILE Space Down => Coords, DrawLVia;
[MiddleDown] WHILE Six Down => Coords, DrawMm2Con;
Six Down => SetLayerMet2;
[LeftDown] WHILE Six Down => Coords, SetLayerMet2, ReSelectOnlyWithLayerP;
Zero
Zero Down => SELECT TRIGGER FROM
[MiddleDown] => Coords, DrawText;
Zero Up => SetLayerComment;
ENDCASE => [Reset];
[MouseUpOrCTRL, Zero, ChangeText];
Nine
Nine Down => CmosBxAprilx2x1987
ENDCASE.