DIRECTORY CD, CDColors, CDOps, CDPanel, CDSil, CDTipEtc, CDValue, CDViewer, Commander USING [CommandProc, Register], Rope, TerminalIO, UserProfile; CDSilImpl: CEDAR PROGRAM IMPORTS CD, CDTipEtc, CDColors, CDOps, CDPanel, CDValue, CDViewer, Commander, Rope, TerminalIO, UserProfile EXPORTS CDSil = BEGIN cdsil: PUBLIC CD.Technology ~ CD.RegisterTechnology[$chipnsil, "chipnsil"]; xred: PUBLIC CD.Level; xblue: PUBLIC CD.Level; xyellow: PUBLIC CD.Level; xgreen: PUBLIC CD.Level; xblack: PUBLIC CD.Level; xgrey1: PUBLIC CD.Level; tipTable: Rope.ROPE _ NIL; NewSWorld: Commander.CommandProc = BEGIN design: CD.Design ~ CDOps.CreateDesign[cdsil]; [] _ CDViewer.CreateViewer[design]; END; NoteProfileChange: UserProfile.ProfileChangedProc = BEGIN newTipTable: Rope.ROPE _ UserProfile.Token[ key: "Chipndale.Chipnsil.TIPTable", default: "Chipndale.TIP" ]; IF ~Rope.Equal[tipTable, newTipTable] THEN { CDTipEtc.SetTipTable[cdsil, newTipTable]; tipTable _ newTipTable } END; Init: PROC [] = BEGIN xblack _ CD.NewLevel[cdsil, $xblack]; xgrey1 _ CD.NewLevel[cdsil, $xgrey1]; xred _ CD.NewLevel[cdsil, $xred]; xblue _ CD.NewLevel[cdsil, $xblue]; xyellow _ CD.NewLevel[cdsil, $xyellow]; xgreen _ CD.NewLevel[cdsil, $xgreen]; UserProfile.CallWhenProfileChanges[NoteProfileChange]; CDColors.DefineColor[xblack, NEW[CDColors.Brick_[10*1111H, 10*1111H, 10*1111H, 10*1111H]], bit4]; CDColors.DefineColor[xblack, NEW[CDColors.Brick_[10*1111H, 10*1111H, 10*1111H, 10*1111H]], bit8]; CDColors.DefineColor[xblack, NEW[CDColors.Brick_[0EH*1111H, 0DH*1111H, 0BH*1111H, 07H*1111H]], bw]; CDColors.DefineColor[xgrey1, NEW[CDColors.Brick_[10*1010H, 10*0101H, 10*1010H, 10*0101H]], bit4]; CDColors.DefineColor[xgrey1, NEW[CDColors.Brick_[10*1010H, 10*0101H, 10*1010H, 10*0101H]], bit8]; CDColors.DefineColor[xgrey1, NEW[CDColors.Brick_[05H*1111H, 0AH*1111H, 05H*1111H, 0AH*1111H]], bw]; CDPanel.DefineLevelEntry[cdsil, xblack, "black", 0, 2*CD.lambda]; CDPanel.DefineLevelEntry[cdsil, xgrey1, "grey", 0, 2*CD.lambda]; CDPanel.DefineIntEntry[cdValueKey: $CDxSelectNewMode, tech: cdsil, text: "select new:", min: 0, max: 1, default: 1]; CDPanel.DefineNewLine[cdsil]; CDPanel.DefineIntEntry[cdValueKey: $CDxStepValue, tech: cdsil, text: "step moves size:", min: 1, default: 4]; CDPanel.DefineIntEntry[cdValueKey: $CDxStretchyMove, tech: cdsil, text: "stretchy:", min: 0, max: 1, default: 0]; CDPanel.DefineNewLine[cdsil]; CDValue.StoreInt[boundTo: cdsil, key: $CDxInitScale, value: 10]; CDValue.StoreInt[boundTo: cdsil, key: $CDxInitGrid, value: 16]; Commander.Register[ key: "cdnewsil", proc: NewSWorld, doc: "Creates new chipndale 'sil' design" ]; TerminalIO.WriteRope["ChiPencil impl\n"]; END; Init[] END. bCDSilImpl.mesa Copyright c 1983, 1984 by Xerox Corporation. All rights reserved. by Ch. Jacobi August 11, 1983 3:56 pm last edited Christian Jacobi October 22, 1984 9:39:17 am PDT -- PROC [reason: ProfileChangeReason] the 1 bit pattern are fair but not great the 4 bit pattern are nice with cmos-chipmonk the 8 bit pattern don't fit anywhere ÊM˜šœ™Jšœ Ïmœ7™BJšœ'™'Jšœ>™>—J˜šÏk ˜ Jšžœ˜J˜ J˜Jšœ˜Jšœ˜Jšœ ˜ J˜J˜ Jšœ žœ˜(Jšœ˜Jšœ ˜ Jšœ ˜ J˜—šÏb œžœž˜Jšžœžœb˜lJšžœ˜—Jšž˜˜Jšœž œžœ+˜KJ˜Jšœž œ˜Jšœž œ˜Jšœ ž œ˜Jšœž œ˜Jšœž œ˜Jšœž œ˜J˜Jšœžœžœ˜J˜—J˜šÏn œ˜#Jšž˜Jšœžœ$˜.J˜#Jšžœ˜—J˜šŸœ"˜3Jšœžœ™%Jšž˜šœžœ˜+Jšœ$˜$Jšœ˜Jšœ˜—šžœ$žœ˜,Jšœ)˜)Jšœ˜Jšœ˜—Jšžœ˜—J˜š œžœ˜Jšž˜J˜Jšœ žœ˜%Jšœ žœ˜%Jšœžœ˜!Jšœžœ˜#Jšœ žœ˜'Jšœ žœ˜%J˜Jšœ6˜6J˜Jšœ(™(Jšœ-™-Jšœ$™$J˜šœ˜JšžœA˜D—šœ˜JšžœA˜D—šœ˜JšžœC˜F—J˜šœ˜JšžœA˜D—šœ˜JšžœA˜D—šœ˜JšžœC˜F—J˜Jšœ6žœ ˜AJšœ5žœ ˜@J™šœB˜BJ˜1—Jšœ˜J˜Jšœo˜ošœA˜AJ˜/—Jšœ˜J˜Jšœ@˜@Jšœ?˜?J˜šœ˜Jšœ˜J˜Jšœ)˜)J˜—J˜)Jšžœ˜J˜—J˜Jšžœ˜J˜J˜—…— œK