Home

The Smalltalk Environment, August 1981, BYTE Magazine

image

Contents

1. inspect command photo 12d On the screen appears another inspect window showing that center is an instarice of class Point photo 12e You can now ex 12a 12b mange inspect 12c amine that point s variables x and y reactivate the original inspect window close either or both windows or work in any other window You are not in a mode Browsing Through Existing Definitions Now that you have inspected a sample regular polygon you might want to find out what methods have been defined in its class One way to do this is to activate a window called a browse window or browser Most Smalltalk programmers leave a browser or two on the screen at all times with the work space window The title tab of the browser photo 13a says Classes because the standard browser lets you examine and change the definitions of all Smalltalk classes classes supplied by the system as well as classes supplied by yourself It is easy to create a more restricted browser that protects the system from ill conceived modification But on a personal computer you are just going to hurt yourself The browser has five panes The principal dependen 12d triangle inspect radius plorter Photo 12 Inspecting data structures in Smalltalk 120 August 1981 BYTE Publications Inc ADD EXCITING MUSIC TO YOUR APPLE wie PPI 0 Ho cared MEASURE 3 SUB 9474 FREE END SAVES A L F s 9 voice Mu
2. time in the editing pane and issue the do it command To close in on the planted bug we can evaluate self cornerAngle an expression on the last line of the method Select that expression and issue the do it command photo 18a The answer 120 appears to the right of the question photo 18b Since the interior angle of a regular 17b RegularPolygon gt gt come aipu FEE ULAT POLYGON gt gt plot tH Uride firedObyect gt gt DOl JLA0Compuer gt evaluat Hattie ode Pane gt executesin Half Alo LI transfornmnaror TESTING Recta rugl RedwlarPolygar 17d plotter colo plotter peru Bikenter radius Photo 17 Use of the notify window 138 August 1981 BYTE Publications Inc ie fw Hi ra dinate POSE NIE p lift ie center aar Sie ap GF Bie aN ASILIA af a OOTY unAn carcel aiiari TUITE FC OAL he fi car H fes iar ME pern fa n FIZI 333 THERE QF NIE CAO p HFE ME pen 6 HAUAE ANTAU gt self center PaSILIaN Ge ET CET fia fap af mie ATEEN adius ME LIATT 2f 1 CATIES 180 self comer Anale Pag 2 ITI fa face I d Shige ink secre ie fir calc lauar E PET A eT CON Mees vertex in degrees POLYGON gt plo self notify about fo cab ride fine di Sbyect gt DC NT R T 360 sides ADC orp r gt evaluate nit ode Pane gt gt execute Nti ade Pang gt execute for ode Pare gt g
3. RegularPolygon initialization analysis display transformation testing and private methods You can tell that scale is a transformation message in class RegularPolygon because that category is highlighted The class category pane lists several groups of classes including numbers files and graphical objects You can tell that class RegularPolygon is in the graphical objects group because that category is highlighted Suppose you want to look at a different method translateBy Click its name in the method pane and its definition is immediately displayed in that pane s depen dent the editing pane photo 13b If the method you want to see is in the method category analysis first click that category name Immediately after you do that its dependent the method pane lists the methods in that category Now you can click the name of the desired method photo 13c If you want to know things about the class as a whole like its superclass and field names click Class Definition in the method category pane and the defini tion appears in the editing pane photo 13d Suppose you want to look at a different class say IrregularPolygon Click its name in the class pane and its method categories are immediately displayed in the next pane photo 13e If the class you want to see is in the class category windows first click that category name Immediately after you do that the class pane lists the classes in that category Now
4. from page 144 high level language including modeless editing win dows the compiler and the notify mechanism This was possible because Smalltalk represents everything in cluding the dynamic state of its own processes as objects that remember their own state and that can be sent messages by other objects Using the browser you can examine and carefully change the definitions of the software development aids In the implementation of Smalltalk 76 classes Inspect Window BrowseWindow and NotifyWindow are all tiny subclasses of class PanedWindow which defines their common behavior Similarly classes StackPane VariablePane ValuePane and so on are all tiny subclasses of class ListPane The superclass defines com mon behavior such as scrolling and selecting entries If someone shows you a system claimed to be Smalltalk find out whether the software development aids exist and whether they are programmed as class definitions in the high level language If not the system is not bona fide Conclusions The Smalltalk programming environment is reactive That is the user tells it what to do and it reacts instead of the other way around To enable the user to switch be tween tasks the state of the tasks is preserved in instantly accessible windows that overlap on desk tops To give the user the maximum freedom of choice at every mo ment modes rarely occur in the user interface The result of this organization is that ta
5. itself Some of the program saving capabilities of Smalltalk are described briefly below One important facility is the snapshot photo 22a The entire state of the Smalltalk environment including class and method definitions data objects suspended processes windows on the screen and project desk tops can be momentarily frozen and saved on second ary storage The snapshot can be restored later and resumed People familiar with the sysout in InterLISP or the workspace concept in APL will understand the benefit of this facility Another facility allows definitions of one or more methods or classes to be listed on a printer A related facility is filin filout The filout message photo 22b writes an ASCII representation of one or more definitions onto a conventional text file The definitions can then be transfused into another Smalltalk environment by using the filin message in that environment Often during a programming session the user changes a number of method definitions that are scattered throughout many classes and cannot recall which ones were changed The changes facility automatically keeps a record of what definitions changed in each project and makes it easy for the user to filout those definitions at the end of the session Implementation of the Environment Because Smalltalk is an integrated environment all the facilities described in this article are implemented in the Text continued on page 147 Text continued
6. the whole integrated environment lives in one address space It includes not only the usual run time language support but window oriented graphics the FORM PATH IMAGE AND DOCUMENT COMPOSITION wy Work panig the last sixomonths has bsn focuisd on pesev ing th Smalitalk Form Path imaga Sen metaphor ause find it conveniant top ee ntext Of an oe pune th the malori a User View workspace i sdai PETSI the FPorn Pay to E adina and maniy nts form manner ig dix diken Letraset hin annon text mal talk pare tie Photo 2 A typical Smalltalk display The various windows look and behave like overlapping sheets of paper editor the compiler and other software development i aids The programs you write tend to be small because they can build on existing facilities no system facilities are hidden from the user Users of LISP and FORTH will be familiar with this idea C t Smalltalk supports its preferred hardware by incor om D L Jg porating software packages that provide ga e output to the user through overlapping windows orms input from a keyboard a pointing device and menus euniform treatment of textual graphical symbolic and C at al O g numeric information These interactive facilities are utilized heavily by the z built in programming aids and are available to all user with 32 pages of written applications The style of software development to which Smalltalk conti nuous is oriented is explorator
7. to reduce screen clutter and maximize utilization of precious screen space no inactive scroll bars or menus are displayed On machines that use a pointing device with three buttons some versions of Smalltalk even hide the active menus until one of two menu buttons is pressed at which time the associated menu pops up and stays up until the button is released If the button is released when the cursor is over a command in the menu that command is executed photo 4e Modeless Editing The overlapping window paradigm helps eliminate preemption It can also reduce the need for certain prompts and their associated modes For example you never have to type the name of a procedure you want to examine At worst you point to its name in a list at best the desired procedure is already in a window on the screen and you activate that window Unfortunately overlapping windows do not eliminate command modes like insert and replace by themselves Between 1973 and 1975 I worked at PARC with various collaborators including Dan Swinehart and Timothy Mott to banish command modes from interac 4d iis text 15 y pane ofa wees panied window A window may have any number of panes but between one and six are typical reak at A pane can contain both text and graphics ally When a window 1s uncove red all its pares redisplay their contents A user can arrange the des sk top by changing th 1205 and locarwns of windows Text
8. unsafe Examples of unsafe languages are Pascal PL 1 and C Examples of fairly safe languages are BASIC and LISP Smalltalk is a safe language It cannot be wiped out by normal programming In particular it never crashes when there are type mismatches It just reports a Message not understood error and helps the program mer quickly find and fix the problem through the notify window eln most systems the edit compile debug cycle is so tedious that early error detection is indispensable In Smalltalk type errors are found early in testing along with value range errors and other bugs e Type declarations help to document programs This is true but well chosen variable names and pertinent com ments provide more specific information than do type declarations A poor documenter can convey as little in formation in a strongly typed program as in an untyped program Bi 1 ae LD iy Raisin ee ceils ore ai AAA E z n e REVO aia Masta tea 2 5 Photo 21 Project windows in Smalltalk Each window when selected makes available all the windows associated with that project 22a T exit to overview E quit open a subpww open a browser 7 CL OEE TE Eat A ves Nas EiS ae A AE NE AOE ee emea J Float Object gt d Rectaruql eqularraiyqaon an 5 PP gt Photo 22 Recording results in Smalltalk The current state of the Smalltalk system can be saved with
9. COMPLETE LINE OF ATARI SOFTWARE i PLEASE WRITE FOR OUR CATALOG QUALITY SOFTWARE 6660 Reseda Bivd Suite 105 Reseda CA 91335 213 344 6599 A pane can contain both text and graphics When a Window i exposed all its panes redisplay their contents ASK FOR QUALITY SOFTWARE products at your favorite computer store If necessary you may order directly from us MasterCard and Visa cardholders may place orders by A a ges 4 atranae tt desktop bii calling us at 213 344 6599 Or mail your check or bankcard number to the address lt A af e ii lt 2 above California residents add 6 sales tax Shipping Charges Within North America orders must include 1 50 for shipping and handling Outside North America the charge for airmail shipping and handling is 5 00 Pay in U S currency Indicates trademarks of Atari Photo 9 Cutting text in Smalltalk 110 August 1981 BYTE Publications Inc Circle 322 on inquiry card 6809 _ SOFTWARE POWER TOOLS BY MICROWARE OS 9 MULTIPROGRAMMING OPERATING SYSTEM true multitasking real time operating system for timesharing software development database process control and other general applications This versatile OS runs on almost any 6809 based computer W UNIX like file system with hierarchical directories byte addressable random access files and full file security Versatile easy to use input output system is hardware in dependent a
10. For further information pricing and brochures contact GIMiX The Company that delivers Quality Electronic products since 1975 1337 WEST 37th PLACE CHICAGO IL 60609 312 927 5510 TWX 910 221 4055 and GHOST are registered trademarks of GIMIX Inc Flex and Uniflex are trademarks of Technical Systems Consultants Inc OS9 is a trademark of Microware Inc See their ads for other GIMIX compatible software For GIMIX compatible software see Technical Systems Consultants ad page 183 and Microware ad page 112 128 August 1981 BYTE Publications Inc Circle 145 on inquiry card cancel command photo 14c The cancel command redisplays the last successfully compiled version of the method photo 14d If you cancel by accident just issue the undo command to return the revised version Adding New Definitions To add a new method definition select a method category In the editing pane a template appears for defining a new method photo 15a The template reminds you of the required syntax of a method 15a Class Organization initializarion piay transformation testing private instance m Truuambers age zi rg w rollectwns ai imda ZM un iT a2 xt Half Toner Ti a IrreqularPoaluqan Poart rransfonruat Rect rugl Testing PAPRI wish noimndows egy s and menus Permi fer agami the sum of my side benaghs copy t sides self Sule L nagh CUT past
11. Inc Circle 266 on inquiry card eThe text editor is simple modeless and requires a minimum of keystrokes eThe user can move among programming compiling testing and debugging activities with the push of a button e Any desired information about the program or its execution is accessible in seconds with minimal effort eThe compiler can translate and relink a single change into the environment in a few seconds so the time usual ly wasted waiting for recompilation after a small pro gram modification is avoided eSmalltalk programs grow gracefully In most en vironments a system gets more difficult to change as it grows If you add 2 megabytes of virtual memory to the Smalltalk environment you can fill the second megabyte with useful capabilities as fast as you can fill the first eThe class structure of the language prevents objects from making too many assumptions about the internal behavior of other objects see David Robson s article Object Oriented Software Systems on page 74 of this issue The programmer can augment or change the methods used in one part of a program without having to reprogram other parts The Anatomy of a Window Over the years members of the Learning Research Group have embellished Kay s original window concept Let us look at a Smalltalk window in more detail figure The window is shown as a framed rectangular area with a title tab attached to its top edge The program associated with the wi
12. NE DAY that am absolutely delighted with it In addition purchased the three boards although ALREADY own Mountain Hardware s music system Now that have seen and own your system am putting my old one up for sale think that your software makes it far easier to enter music and that the software routines allow for far greater flexibility Again extend my compliments to you As said have owned another music system and consider myself therefore qualified to make a judgement between the use of the two Yours is the clear choice Levittown New York See your local Apple dealer or write A L F Products Inc 1448 Estes Denver CO 80215 Appie is a trademark of Appie Computer Ine 122 August 1981 BYTE Publications Inc cies between panes are symbolized by arrows in figure 4 The top row has four panes called the class category pane class pane method category pane and method pane The large lower pane is called the editing pane After you have used the system for a few minutes the significance of each pane becomes apparent and it is not necessary to memorize their technical names In photo 13a the browser shows a method definition in the editing pane You can tell that the method is class RegularPolygon s version of scale because Regular Polygon is highlighted in the class pane and scale is highlighted in the method pane The method category pane lists several groups of methods within class
13. RN RECOGNITION IMAGE PROCESSING MEDICAL AND SCIENTIFIC RESEARCH 100 August 1981 BYTE Publications Inc FULL COLOR GRAPHICS Complete line of color imaging systems with high resolution real time video FRAME GRABBER lt eel a o gt Pia We or yy i gt Pesa n S M ee ee s95 PERJA soneer E kapt tahi 3 Pi S yyy e s AW parini Eg bE Highest quality 480x512x8 digital video image Input capability from TV cameras or other sources Variety of synchronization choices 2 selectable video A D conversion circuits Choice of 1 2 4 8 16 or 24 bits per pixel 32K byte image memory on the basic system 64K 128K 192K and 256K byte system capacity High resolution lightpen input Photographic trigger control input Software selectable system parameters e Stand alone intelligent graphics unit with universal interface Accessories RGB color monitor High performance lightpen DIGITAL a GRAPHIC SYSTEMS e Hard copy printer plotter Software packages available 935 Industrial Avenue Palo Alto CA 94303 415 856 2500 Circle 113 on inquiry card addition a pane has a scroll bar on its left side used to scroll the contents of the pane when more information ex ists than fits in the frame at one time Although you can see many windows and panes at once you can interact with only one pane at a time That pane and its
14. The Smalltalk Environment Larry Tesler Apple Computer Inc 10260 Bandley Dr Cupertino CA 95014 As I write this article I am wearing a T shirt photo 1 given to me by a friend Emblazoned across the chest is the loud plea DON T MODE ME IN Surrounding the caption is a ring of barbed wire that symbolizes the trapped feeling I often experience when my computer is in a mode In small print around the shirt are the names of some modes I have known and deplored since the early 1960s when I came out of the darkness of punched cards into the dawn of interactive terminals My rogues gallery of inhuman factors includes command modes like INSERT REPLACE DELETE and SEARCH as well as that in escapable prompt FILE NAME The color of the silk screen is appropriately enough very blue My friend gave me the shirt to make fun of a near fanatical campaign I have waged for several years a cam paign to eliminate modes from the face of the earth or at least from the face of my computer s display screen It started in 1973 when I began work at the Xerox Palo Alto Research Center PARC on the design of interactive systems to be used by office workers for document preparation My observations of secretaries learning to use the text editors of that era soon convinced me that my beloved computers were in fact unfriendly monsters and that their sharpest fangs were the ever present modes The most common question asked by n
15. a message to an object There are two ways to for the ATAR l 800 send a message from Ingalls s user interface You can send and ATARI 400 from QUALITY SOFTWARE certain commonly sent messages to the active pane or window by choosing them from menus you can send any message to any object by direct execution of a Smalltalk statement 9a A one paned say reap Ki S text ts M NE oy pane of a ome paned window A window may hape any number o STARBASE HYPERION By Don Ursem Become absorbed in this intri guing original space simulation of war in the far future Use Strategy to defend a front line Star Fortress against invasion forces of an alien empire You create deploy and command a fleet of various classes of space ships while managing limited resources including power generators shields and probes Real time responses are sometimes required to take advantage of special tactical opportunities Use of color sound and special graphics add to the enjoyment of this program At least 24K of RAM is required On Cassette 19 95 On Diskette 22 95 Aah Ez pare Can G BETE Jra phuc s CUT gt pSt 9b NAME THAT SONG By Jerry White Here is great entertainment for everyone Two players listen while the Atari starts playing a tune As soon as a player thinks he knows the name of the song he presses his assigned key or joystick button There are two ways to play The first way requires you to type
16. a residents add 6 sales tax TRS 80 is a trademark of Tandy Corp PESS CP M is a registered trademark of Digital Research Inc RUT PICKLES amp TROUT P O BOX 1206 GOLETA CA 93116 805 967 9563 Warning Installation requires opening the Model II which may void its warranty We suggest that you wait until the warranty period has expired before installing the CCB II 94 August 1981 BYTE Publications Inc Circle 310 on inquiry card The trouble with most windowing systems is that the windows compete with each other for screen space if you make one window bigger another window gets smaller Kay s idea was to allow the windows to overlap The screen is portrayed as the surface of a desk and the windows as overlapping sheets of paper photo 2 Partly covered sheets peek out from behind sheets that obscure them With the aid of a pointing device that moves a cur sor around the screen you can move the cursor over a partly covered sheet and press a button on the pointing device to uncover that sheet The advantages of the overlapping window paradigm are ethe displays associated with several user tasks can be viewed simultaneously switching between tasks is done with the press of a but ton eno information is lost switching between tasks screen space is used economically Of course windows are in a sense modes in sheep s clothing They are more friendly than modes because you can t slip into a window unknow
17. ace and many system designers have adopted the overlapping sheet model of the screen In summary the term environment is used to refer to everything in a computer that a person can directly access and utilize in a unified and coordinated manner In an in tegrated environment a person can interweave activities without losing accumulated information and without giv ing up capabilities Strengths of Smalltalk Before delving further into the nature of the Smalltalk environment we should first discuss its purpose Many general purpose programming languages are more suitable for certain jobs than others BASIC is easy to learn and is ideal for small dialogue oriented pro grams FORTRAN is well suited to numerical applica tions COBOL is tailored to business data processing Pascal is good for teaching structured programming LINE VOLTAGE TRANSIENT CLIPPING 5000 Hits Second PROTECTS AGAINST eHigh Energy Voltage Transients eOn Off Switching e Lightning Induced Transients elnrush of On Off Power 678F Features Parallel Operation PROTECTS eComputers eMicro Computer Systems eWord Processors eCash Registers ePower Supplies TRANSIENT VOLTAGE SURGE SUPPRESSOR LISTED Dealer Inquiries invited 7133 Rutherford Rd Baltimore Md 21207 301 298 3130 800 638 9098 96 August 1981 BYTE Publications Inc Circle 123 on inquiry card LISP is wonderful for processing symbolic information APL excels at manipula
18. between the initial bar and the gap nearest to the cursor photo 8c When the button is released the selected characters remain highlighted photo 8d This method drawing through a passage is the one to use before you copy move delete or replace text or before you change it to boldface or otherwise alter its appearance Clicking the button twice with the cursor in the same spot within a word selects that whole word and highlights it photo 8e This special mechanism is provided because it is very common to select a word Informal experiments lead us to believe that double clicking is much easier than drawing through a word for beginners and experts alike It is also faster It takes the average user about 2 6 seconds to select a word anywhere on the screen using draw through but it takes only 1 5 seconds using the double click reference 5 There is only one selection in the active pane It is called the active selection 8d Eran L a is text i in the only pal ore paned window z pane can contain both text and qrapt les io pane 4 window A window muay have any number of panes but between one and six are typical A pans can Sag both text and graphics k CANET A Widow is exposed all its pangs redisplay their contents Photo 8 Selecting text using the mouse and the cursor 108 August 1981 BYTE Publications Inc Issuing a Command SO FTWARE When you issue a command in Smalltalk you are sending
19. d fired ob rect gt DOIT o Je 0Compiuer evaluate Cade Pane execute into lA bo PL oh cransfoanruarwn Test1ruy Hripare Usa meg Rectal ries RedlarPol yaar ofi LADCompiler gt evaluate in t CodePane gt gt executesin to CodePane gt gt execute for Code Pane gt gt dott ru tter up plotter go radius plotter tum 180 self CodePane gt gt yellowbug k plotter color ink aele CodePane gt gt eachtime plotter pendan Iau 205 4 345 context value panes They are analogous to the two panes of an inspect window but in this case the variables you can examine are the arguments and local variables of the method selected in the stack pane Click ink in the variable pane to see its value in the value pane The bottom two panes are the instance variable and instance value panes They also are analogous to the panes of an inspect window They let you examine the in stance variables of the receiver of the message selected in the stack pane Click center to see its value appear in the value pane You can type statements into the value panes and execute them using do it photo 17d They will be executed in the context of the method selected in the stack pane that is they may refer to arguments and local variables of the method and to instance variables Debugging You could step through the execution of the method in the editing pane You would select one statement at a
20. e Thus the usual insert append and replace modes are folded into one mode replace mode and one mode is no mode at all Building Blocks for Microcomputer Systems Dedicated Controllers and Test Equipment R 1 0 S 100 ROM RAM amp 1 0 BOARD ECT s R 1 O is an S 100 Bus I O Board with 3 Serial I O Ports UART s 1 Parallel I O Port 4 Status Ports 2K of ROM with the 8080 Apple Monitor Program and 2K of Static RAM 295 00 9 100 RACK MOUNT CARD CAGE ECT s RM 10 is a rack mount 10 slot Card Cage with Power Supply consisting of an ECT 100 rack mount Card Cage 19 W x 12 25 H x 8 D the MB 10 Mother Board with ground plane and termination all 10 connectors and guides and the PS 15A Power Supply 15A 8V 1 5A 16V 295 00 Specializing in Quality Microcomputer Hardware Industrial e Educational e Small Business e Personal b j Card Cages Power Supplies Mainframes CPU s Memory I O OEM Variations ELECTRONIC CONTROL TECHNOLOGY 201 686 8080 763 Ramsey Ave Hillside NJ 07205 104 August 1981 BYTE Publications Inc Circle 129 on inquiry card Circle 388 on inquiry Card L HU UTUI wW is exposed all its par mae the desktop by chan frange the desktop by chy w is exposed all its pa x ange the desktop by cha Photo 6 Inserting text in Smalltalk The shift lock key and analogous commands like bold shift and underline shift cause
21. e ADIT PIERIT 15c Form Half Tone tSp cransformarion TESTING private instanci me pwee poen mene the sum of my side lengths t sides self sideLength Use standard editing facilities to supply the message pattern variable list and body of the method When the definition is ready issue the compile command photo 15b Once compilation succeeds the selector of the new method is automatically added to the alphabetized list in the method pane and the message pattern is automati cally changed to boldface in the editing pane photo 15c A new class definition is added in an analogous manner Start by selecting a class category photo 15d then fill in a template for defining a new class and com pile it photo 15e New categories can be added and old categories can be renamed and reorganized Program Testing Let us purposely add a bug to a method and see how it can be tracked down and fixed Browse to the method cornerAngle in class Regular Polygon cut out the characters 180 photo 16a and recompile it In the RegularPolygon work space win dow select the test program and issue the do it com mand photo 16b Instead of the desired triangle an open three sided figure is drawn because of the bug in troduced into the angle calculation 15d numbers collections Half Tone Halt Toner IrreqularPolygon 1S pLa Point windows R Rectangle panes and me
22. e Report STAN CS 79 746 and Xerox PARC Technical Report SSL 79 3 July 1979 out of print lt Circle 38 on inquiry card Circle 168 on inquiry card JNNOVATIVE PRODUCTS COMPLETE CATALOG OF COMPUTER EQUIPMENT AT DISCOUNT PRICES 65K S 100 DYNAMIC MEMORY BY FAMOUS NAME MANUFACTURER unbelievable price 299 FEATURES Fully Compatible with IEEE 696 Assembled tested and fully populated with 65K of 200 ns brand name memory Bank selectable 4Mhz operation extended addressing invisible refresh 8 16 bit operation per IEEE 696 and many other features One year warranty manual included Hurry limited quantities TELEVIDEO TERMINALS Model 912C Model 920C EPSON PRINTERS Model MxX 70 Model MX 80 Q T COMPUTER SYSTEMS MODEL DESCRIPTION ALL ASSEMBLED amp TESTED MF DD12A 25 A Mainframe 12 Slot S100 Dual 8 Drive 625 00 25 A Tabletop Mainframe 18 Slot S100 25 A Mainframe 12 Slot S100 Dual 5 Drive Single Board Z 80 Computer 2 4 Mhz S 100 Monitor Program for Z 80A amp Tarbell or VF 1 30 00 32K Static RAM Board Low Power S 100 499 00 2 Serial amp 4 Parallel Port O S 100 339 00 Clock Calendar Board S 100 Clock Calendar Board for Apple Clock Calendar Module for TRS 80 VISTA COMPUTER COMPANY MODEL DESCRIPTION ALL ASSEMBLED amp TESTED V300 25 Letter Quality Printer 25 CPS 1895 00 V3007 45 Leter Quatty Printer 45 CPS one cen wee
23. e command you can change your mind and make a dif ferent selection or even choose a different command For a command like send electronic mail that requires several parameters recipient subject content you first fill the parameters into a form using modeless text editing and then issue the command You are not in a mode while filling out the form If you want to copy something into the form from another place you can If you want to do something else instead just do it you may even return to the form later and finish filling it out Typing text always replaces the selected characters e Pressing a text key on the keyboard never issues a com mand It always replaces the current selection by the typed character and automatically selects the gap follow ing that character eTo replace a passage of text first select it photo 5a and then type the replacement The first keystroke deletes the original text photo 5b eTo insert between characters you first select the gap between those characters photo 6a and then type the in sertion photo 6b Essentially you are replacing nothing with something e The destructive backspace function always deletes the character preceding the selection even if that character was there before the selection was made e The undo command photos 6c and 6d can be used to reverse the effects of all your typing and backspacing since you last made a selection with the pointing devic
24. e ntenor aj doit about fo calculate angle riamibe rs collections self notify T Psudes G anic el alu test case When the computer encounters the breakpoint a new window appears in midscreen It is called a notify window photo 16d The title tab of the notify window says about to calculate angle The notify window has one pane the stack pane It shows RegularPolygon gt gt cornerAngle ie the class and method in which the breakpoint was encountered The pop up menu of that pane offers several commands in cluding stack and proceed photo 16e The proceed command closes the notify window and continues execution from the breakpoint If we issue a proceed in our example the same breakpoint will be encountered again immediately because the cornerAngle method is used several times during the execution of the test program What a Notify Window Can Display The stack command expands the contents of the pane to include messages that have been sent but have not yet received replies photo 17a It reveals that the sender of the message cornerAngle was RegularPolygon gt gt plot The pop up menu of the notify window offers the usual repertoire including the close and frame commands photo 17b If close were issued the notify window would disappear from the screen and execution of the Text continued on page 138 RegularPolygon gt gt come
25. eA move is done by cut and paste First you select the source text and issue the cut command photo 11a The cut command deletes the selected text photo 11b but leaves it in a special place where it can be retrieved by paste Then you select the destination and issue the paste command photo 11c to complete the move photo 11d eA copy is done by copy and paste which is completely analogous to cut and paste but does not delete the original text Remember the copy from file example the one where you had to go in and out of many layers of modes In the Smalltalk 76 user interface you can ac complish this with six pushed buttons no mode exits and no typing 1 activate the source window that displays the file you are copying from 2 select the desired text 3 issue the copy command in the menu 4 activate the destination window 5 select the destina tion point and 6 issue the paste command in the menu The job requires little more effort than copying within the same document If the window is not already 11b text is m the right hand of a two panged window PiITLdoW has a umian mer pach pane has a pane menti that lings of text break at spaces pan of a two paned he window has mimian ment and each pane has Pane Menti Note that lines of text break p RT At word spaces Photo 11 Moving text in Smalltalk 114 August 1981 BYTE Publications Inc on t
26. end of the passage This operation is called draw through though it is not necessary to traverse intermediate characters en route to the destination When the cursor reaches the other end of the passage the button is released The selected passage is then shown in inverse video photo 8d The feedback given to the user during selection is as follows When the button is depressed a vertical bar ap pears in the nearest intercharacter gap photo 8b At the 8a 1S Text 15 M the o onge paned window A window may have any number of panes but betwen ong and six are typical 4 pane can contain both text and graphics onge paned window A window may havel any number of panes but betwee one and six are typical A pange can contain both text ar graphics ong paned window may have er of panes but between ong an six are typical window A pare can contain both text and garap PUCES left end of a line of text the bar appears to the left of the first character At the right end of a line the bar appears to the left of the final space character If the button is released without moving the cursor the bar remains indicating that a zero width selection has been made This method clicking once between characters is the one to use before you insert new text If the button is held down while the cursor is moved the system supplies continuous feedback by highlighting in inverse video all characters
27. enter Answer the center coordinate of the polygon tcenter sides Answer the polygon s number of sides t sides display plot Ink Draw an image of the polygon using the specified ink color plotter penup lift the pen to disable drawing plotter goto self center position the pen at the center plotter up face the top of the screen plotter go radius position at a corner plotter turn 180 self cornerAngle 2 turn to face along a side plotter color ink select the ink color plotter pendn lower the pen to enable drawing to sides do for each side of the polygon i plotter go self sideLength plot that side plotter turn 180 self cornerAngle turn to face along the next side transformation scale factor Scale the polygon radius by the specified factor radius radius factor translateBy deltaXy Change the polygon s location by the specified amount a Point center center deltaxY private instance methods cornerAngle Answer the interior angle of any vertex in degrees 1180 360 sides sideLength Answer the length of any one of the equal sides 12 radius self cornerAngle 2 degreesToRadians cos Table 1 Description and class template for class RegularPolygon 118 August 1981 BYTE Publications Inc Circle 397 on inquiry card gt the
28. er initializa at Zea CE arialysis R dis play wmdows Rect anale Testing panes and me ReqularPolygon transforr u z c t j Pe AOE A LR ahah AN eeu OPO PP CO he ated hem numbers collections Half Tone stances while the browser does not This discrepancy stems from differences between the Smalltalk 80 and Smalltalk 76 languages Revising Definitions If you are looking at a method definition or class definition in the editing pane you can revise it using the standard text editing facilities select type cut paste copy If you like you can copy information into the defini tion from other windows including other browse win dows because you are not in any mode while browsing You can even interrupt your editing to run another pro gram list your disk files draw a picture or do whatever you like You can later reactivate the browser and con tinue editing 13b LLL LLL POE BAPE BOLE PM ClassDefinirion al Class Organizati Half Toner initialization lrreqularPolygon analysis Point dis Rectangle eraris pauar Folder PRS RE PO OADE BEDE PE PREE Fomm ass e Half Tone Ss CATON Half Toner IrregularPolygon Potrit Rectangle initialization analysis display ff ansformation testing rivate instance met graphic a objects A regular polygon has sides vertice each at a distance of radius evar center It is drawn on the screen by the pen
29. eter command do it photo 10b to obtain the result photo 10c The do it command provides im mediate execution of any Smalltalk statement or group of statements This method of command issuance uses the previous method you are sending the message doit to the pane with the Smalltalk statement as its parameter It is standard practice to keep a work space window around the screen in which to type your nonmenu com mands When you want to reissue a nonmenu command issued earlier simply select the command in the work space window and do it You may of course edit some of the parameters of the old command before you select it and do it In a sense you are filling out a form when you edit parameters of an immediate statement Unfortunately the common commands move text from here to there and copy text from here to there cannot be issued by a single menu command because they require two parameters the source selection and the destination selection Sometimes they even involve messages to more than one pane the source pane and the destination pane In a modeless system a move or copy command is done in two steps 11a r _ a ti PR CE eA PPE PPO PG s E WAT li X A me of a two paned window v has a Wray n Aof COTp Us urA dow US Text 1S In the ane of a twO pangd window TE he window again And each pay copy Jote that lir vord spaces dans me pane men
30. ew users sth inom wi i EAS Photo 1 The DON T MODE ME IN T shirt 90 August 1981 BYTE Publications Inc at least as often as How do I do this was How do I get out of this mode Other researchers have also con demned the prevalence of modes in interactive systems for novice users reference 1 Novices are not the only victims of modes Experts often type commands used in one mode when they are in another leading to undesired and distressing conse quences In many systems typing the letter D can have meanings as diverse as replace the selected character by D insert a D before the selected character or delete the selected character How many times have you heard or said Oops I was in the wrong mode Preemption Even when you remember what mode you are in you can still fall into a trap If you are running a data plotting program the only commands you can use are the ones provided in that program You can t use any of the useful capabilities of your computer that the author of the pro gram didn t consider such as obtaining a list of the files on the disk On the other hand if you re using a program that lets you list files you probably can t use the text editor to change their names Also if you are using a text editor you probably can t plot a graph from the numbers that appear in the document If you stop any program and start another data displayed by the
31. first program is probably erased from the screen and irretrievably lost from view In general running a program in most systems puts you into a mode where the facilities of other programs are unavailable to you Dan Swinehart calls this the dilemma of preemption reference 2 Many systems feature hierarchies of modes A portion of a typical mode hierarchy is shown in figure 1 If you are in the editor and want to copy text from a file you issue the copy from command and it gives the prompt from what file You then type a file name What if you can t remember the spelling No problem Leave from what file mode leave copy from mode save the edited text exit from the editor to the executive call up file management from the executive issue the list files com mand look for the name you want Hey that went by too fast Sorry you can t scroll backwards in that mode terminate the list command exit from file management to the executive reenter the editor issue the copy from command and when it prompts you with from what file simply type the name you haven t Circle 269 on inquiry card gt forgotten it have you You don t have to be a user sympathizer to join the campaign against modes The most coldhearted program mer is a victim as well Say you have programmed a new video game for your personal computer and have en countered a bug An obscure error message appears on the screen mixed in with s
32. he compile command photo 14a Compilation takes a few seconds or less because it is in cremental that is you can compile one method at a time The compiler reports a syntax error to you by inserting a message at the point where the error was 14a ROTTICN CaSSIS WITS Purr oTt ae rs Fom collections Half Tor tex af Half Toner panal Arapca ects irreqularPolygon dispa text dipu aay Poirt transf wmndow s Re i tana TESTU mars and menus ies AHUT copy CUT paste ADT Me MENOT ana 14c objects IrregularFolygor FUY Point E E again copy Cut l paste ZASI doit compile undo C rg ud menus aar e mefr CEC i Ia detected and automatically selecting that error message photo 14b You can then cut out or overtype the message make the correction and immediately reissue the compile command If you start to revise a definition and change your mind about it you can pop up the pane menu and issue the irregularFalygor Poirt Rectang we of ite nor eh Answer The Irregular Pi Ilygar Fort Pei tangle splay DWS ard menus ANSU er the 180 360 s5idgs Lite rie Photo 14 Options during method compilation parallel 1 0 cards variety of software and languages is available for these systems and all necessary instruction and documentat
33. he screen and you can t remember the file name you can go to another window and scroll through a list of files without having to exit any modes invoke any programs save any edits lose sight of the destination file or lose any time The Smalltalk 76 text editing facilities not only relieve you of the burden of modes they also require very few keystrokes and are easy to learn Software Development Aids One of my summer projects in 1977 was to increase the speed and friendliness of the Smalltalk software development environment by adding inspect windows browse windows and notify windows to the user inter face These and other enhancements made by the Learn ing Research Group are described below In recent months the team has further enhanced the Smalltalk 80 environment Although it conforms to the same prin ciples as before its details are different from what is described in this article Inspecting Data Structures Suppose someone has given you a Smalltalk program to implement a regular polygon class table 1 and you want to learn more about it It would be helpful to see an actual instance of a regular polygon If the variable triangle refers to a regular polygon you type the following statement into your work space window triangle inspect and then issue the do it command in the pane menu photo 12a In a few seconds a two paned inspect win dow appears on the screen Its title tab tells you the c
34. in the name of the song Optionally you can play multiple choice where the computer asks you to select the title from four possibilities The standard version requires 24K of RAM 32K on diskette and has over 150 songs on it You also get a 16K version that has more than 85 songs The instructions explain how you can add songs to the program if you wish Written in BASIC On Cassette 14 95 On Diskette 17 95 ERESI eee gt text ts M the uy pane of a one pated window A window MAH fabs any number ot panes QS FORTH By James Albanese Want to go beyond BASIC The remarkably efficient FORTH programming language may be just for you We have taken the popular fig FORTH model from the FORTH Interest Group and expanded it for use with the Atari Personal Computer Best of all we have written substantial documentation packaged in a three ring binder that includes a tutorial introduction to FORTH and numerous examples QS FORTH is a disk based system that requires at least 24K of RAM and at least one disk drive Five modules that may be loaded separately from disk are the fig FORTH kernel extensions to standard SEINS fig FORTH an on screen editor an 1 0 module that accesses Atari s operating system t S SESE EISES S CTCE rei ac and a FORTH assembler YENNI samsas sonandana Diskette and Manual 79 95 Manual Only 39 95 ti xt tS m t 4 un j pane of a one panied window A window may hape any number of panes FOR OUR
35. ing expressions provide an example of creating and using an instance of RegularPolygon triangle RegularPolygon sides 3 radius 50 triangle translateBy 90 60 ranae Irre quiarPulygan vernices Ord waCollecnan with 2 ta 21 trangle plot black eNA A oo tie EE IE i Eare Regular Polygon Sues 3 Toys ci c emange transiareBy 90 6D inang cB iG 3 gigs eB baer qu translateBy 90 60 triangle translateBy 165 20 grange plot black triangle plot black nange translareBy 165 G 20 triangle scale 0 6 nanai scale O6 tiange translate Bu 165 ig 20 5 an 3 r aad ee A trandade scale 0 6 k t w TROT aay 5 Aai triangle plot gray i where gray denotes an ink color mange plot gray trianae plot aray sides center radius plotter instance variable names class messages and methods initialization sides s radius r Create an instance of RegularPolygon whose center is locat d at the center of the currently active window on the display screen Screen is a global variable that refers to the hardware display screen t self new sides s radius r center Screen activeWindow frame center instance messages and methods initialization sides s radlus r center c Initialize all attributes Class Pen is provided in the system as one way of side effecting the display screen SIGES 5 center C radius r plotter Pen width 2 analysis c
36. ingly when you are not looking at the screen and because you can get in and out of any window at any time you choose by the push of a button Kay saw his paradigm as the basis for what he called an integrated environment When you have an integrated environment the distinction between operating system and application fades Every capability of your personal computer is always available to you to apply to any in formation you want With minimal effort you can move among such diverse activities as debugging programs editing prose drawing pictures playing music and run ning simulations Information generated by one activity can be fed to other activities either by direct user interac tion or under program control When Kay invented the Smalltalk language in 1972 he designed it with the ability to support an integrated en Figure 1 A portion of a typical mode hierarchy File manager vironment The implementations of Smalltalk produced by Dan Ingalls and the other members of the Learning Research Group have achieved ever increasing integra tion The file system process management system graphics capability and compiler are implemented almost entirely in Smalltalk They are accessible from any program as well as by direct user interaction In recent years the idea of an integrated environment has spread outside the Learning Research Group and even to non Smalltalk systems The window per program paradigm is now commonpl
37. ion needs Please contact the factory if you have any special requirements 6809 SYSTEMS 6809SYSTEMS Q 6809SYSTEMS 6809SYSTEMS Featuring the GIMIX mainframe with 30 amp C V ferro resonant power supply fifteen 50 pin and eight 30 pin slot Mother Board 2 Mhz CPU with time of day clock amp battery back up 1K RAM 6840 programmable timer provisions for 9511A or 9512 Arithmetic processors and 4 PROM ROM RAM sockets that can hold up to 32KB of monitor or user software VARIETY you can have 32KB 56KB 128KB and up of static RAM You can use 5 and or 8 disk drives single or double density single or double sided and single or double tracking with GIMIX disk controllers You have a wide choice of serial or EXPANDABILITY You can add memory Os Video or Graphics cards Arithmetic processors additional drive capacity and other hardware now or in the future to this SS50 bus structured system from GIMIX or other SS50 bus compatible manufacturers SOFTWARE VERSATILITY GIMIX systems can use TSC s FLEX or UNIFLEX and MICROWARE S OS 9 operating systems A wide QUALITY All boards are assembled burned in and tested and feature GOLD PLATED BUS CONNECTORS Only top quality com Dale ponents are used and all boards are fully buffered for maximum system expansion All boards come complete with bus connectors GIMIX designs manufactures and tests in house their complete line of products Complete systems are available to fit your
38. is nh he upt tian Ay Ave a cwo paned W n o T iS 1 Lo ith fe aruy pane OF a Oe spate rudow A Weimdow Thay have any number of pares fur tetween or and stx are typical Ty can contain bath text and graphics 4 a 1 Miwa 1S irs panes plau their contents i A ruuna Photo 4 Windows and their behavior 102 August 1981 BYTE Publications Inc Circle 165 on inquiry card tive systems Despite initial skepticism nearly all users of our prototypes grew to appreciate the absence of modes The following techniques were devised by us to eliminate modes from text editing They are analogous to the techniques used to keep Polish notation calculators relatively mode free Similar techniques can be applied to page layout graphics creation and other interactive tasks Selection precedes command e Every command is executed immediately when you issue it You are not asked to confirm it You can issue an undo command to reverse the effects of the last issued command Although the main purpose of undo is to compensate for the lack of command confirmation it can also be used to change your mind after issuing a com mand e For a command like close the active window that re quires no additional parameters you simply issue the command eFor a command like delete text that requires one parameter you first select the parameter using the point ing device and then issue the command Until you issue th
39. it up to all ends of the night playing with the blasted thing Cypress Texas ALF has opened up my head and ears and enabled me to do things musically which would like to be able to do on conventional instruments As much as love the instruments try to play just don t have the talent and technique to play what is in my head By golly the ALF board doesn t know about my limitations though can play hell out of that thing playing notes and tempos which previously have existed only in my head Many thanks from a frustrated musician and satisfied ALF player Demopolis Alabama About documentation don t know much about hardware but have been a programmer for 15 years and have never seen a better piece of software documentation than your user manual It is a joy to study Lancaster California About the competition Recently purchased an ALF 9 voice board and a couple of music al bums all can say is that wish had listened and played with it before purchased the Mtn Hardware board It sounds about the same and is vastly superior in software ease of use and price The Entry program is a joy to use and it s easier than Mtn Hardware s but then guess you guys know that already Oh yes you wouldn t happen to know of anyone that wants to buy a Mtn Hardware system 450 or best offer Kirkland Washington would like to tell you that after having used the system ONLY O
40. lass of the inspected object in this case RegularPolygon The window is divided into two panes The left or variable pane lists the parts of a regular polygon sides center radius and plotter The right or value pane is blank You point to the word sides in the variable pane and click the selection button on the mouse The word sides is highlighted and in the value pane the value of the variable sides appears photo 12b in this case 3 You point to the word center and click In the value pane appears the value of center photo 12c in this case the point 526 302 The value pane is dependent on the variable pane because its contents are determined by what you select in the variable pane The arrow in figure 3 symbolizes this dependency Let s inspect the value of center In the variable pane where center is selected pop up the pane menu and issue Variable Pane Figure 3 Principal dependencies among panes of an inspect window 116 August 1981 BYTE Publications Inc Circle 282 on inquiry card The following template contains a description of a regular polygon with the following attributes sides Number of sides 3 for a triangle 5 for a pentagon etc center If the regular polygon were inscribed in a circle this would be its center point radius If the regular polygon were inscribed in a circle this would be its radius plotter A pen that can draw an image of the polygon on the screen or on paper The follow
41. modes for the in Regular bald iralic underlined terpretation of subsequently typed characters However shifts are familiar to people and are relatively harmless Creamio0 CrTEATTi I2 TimesRomang TimesRoman 10 5 The worst they do is change a d toa D d or d TimesRoman12 FixedPitchia never to a Delete command Helvetica 18 The bit map display can show boldface characters as Hera IO well as italics underlining and a variety of styles and E lt K lt N NTo X A200 b IAP ON aI sizes of printer s type photo 7 Thus as you enter text in 1 CDA0OCOL K OFFH OFMEtyotee b bold shift the screen shows what the text will look like AOX S52 IR 1 UC Ya XKIVETECTD when it is printed A command like bold shift can also be D p BPXCEVEE 2 2 applied to existing text to change it to boldface meron wenn net In 1976 Dan Ingalls devised a user interface for Smalltalk that incorporated most of the mode avoidance Photo 7 Multiple typefaces can be used in any window techniques discussed earlier Consequently it is rare in 106 August 1981 BYTE Publications Inc the present Smalltalk environment to encounter a mode Making a Selection In the Smalltalk 76 user interface text is selected using the pointing device and a single button First the cursor is moved to one end of the passage to be selected photo 8a The selection button is pressed and held down while the cursor is moved to the other
42. nd expandable W Powerful shell command interpreter features 1 0 redirection multiple job stream processing and more In cludes a complete set of utility commands E OS 9 Level Two uses hardware memory management and can address over one megabyte of memory Also includes pipes and filters for inter process data transfers E OS 9 Level One runs on systems without memory management hardware having up to 56K memory JOS 9 Level Two 495 _ Level One 195 BASIC09 PROGRAMMING LANGUAGE SYSTEM xtended BASIC language compiler interpreter with integrated text editor and debug package Runs standard BASIC programs or minimally modified PASCAL programs E Permits multiple named program modules having local variables and identifiers Modules are reentrant position independent and ROMable W Additional control statements for structured programming IF THEN ELSE FOR NEXT REPEAT UNTIL WHILE DO LOOP ENDLOOP EXITIF ENDEXIT E Allows user defined data types and complex data structures Five built in data types byte integer 9 digit floating point string and boolean W Runs under OS 9 Level One or Level Two 1 195 OTHER OS 9 FAMILY SOFTWARE E Stylograph Screen Oriented Word Processor E Interactive Assembler E Macro Text Editor W Interactive Debugger BASIC 9 and OS 9 are trademarks of Microware and Motorola UNIX is a trademark of Bell Laboratories Most software is a
43. ndow must confine its output to the framed area Every window has a window menu photo 4a The window menu includes commands to reframe the win dow in a new size and location to close the window to print the contents of the window on a hard copy device and to retrieve windows hidden under it A window is tiled by one or more panes each with its own pane menu photo 4b The pane menu includes commands appropriate to the contents of that pane In Scroll Scroll Bar Window pop up menu Scroll Bar Figure 2 Anatomy of a window 2 for the 8 100 bus Capture and digitize a video frame in 1 60th of a second Store up to 2 million bits of image data in on board buffer By software select the best resolution for your application from 256 to 1280 pixels per TV line Display your digitized image or your computer processed image with up to 256 gray levels or 65 536 simultaneous colors on standard B W NTSC or RGB color TV nie ES Al t 8 i3 me er ad zx AD aal she gt oe A s A lt A n j 7 ty pt f 3 wee mn r oe eee Feet yea Ree ete Nims T ars Coit Afar Pap 353 re the eas ig lt PALS FETUS te Rese Whe EE Poe ee Y RTA Lae z w gm 3 A e rh Feat 4 zi di aed 240x256 Digitized image 16 levels 480x512 Computer generated 240x256 Digitized image 16 levels ROBOTICS AUTOMATED COUNTING AND MEASURING QUALITY CONTROL MONITORING PATTE
44. nus Re guaTroLugon DIEET SUDC ASS Ni fields inst VarNamel inst arNamez Jee class varNarmel class VarNar sharing category comment graphie Al obyec ts Operall descriptt pay windows anes and menus fields center radius plotter declare shanng category graphical objects comment A circle ts described by its center and radius it is drawn by plotter a pent Photo 15 Adding new definitions in Smalltalk 132 August 1981 BYTE Publications Inc Breakpoints To track down the bug let us set a breakpoint in the method cornerAngle Using standard editing facilities add the statement self notify about to calculate angle before the return statement photo 16c Now rerun the 16a TREME nurmbers a collections ba Txt Erara Hal Tone Half Toner IrregularPolygon Point Ca Op wects Text isp ty windows panes and menus Files dnit joormptle eh Be RE A ren Naana a S SSS z pa trana Re Qu iar Pn ty Qo y A A van gt 3 TUAW peo aes ane ewe OSN er ete pe or trang rar slate By 90 P triangle plot HACR tnangle translateBu rangle scale 0 6 triangle plot gray 165 20 ClassDeftriiriw Class Organiza TULA tor For Half Tore Half Toner irregularFolygor b Poit again windows Rectangle copy pares and menus egui ugar eS cur aA g mn w s ened PANA It paste Answer th
45. pacecraft and alien forms To see the latest version of the program on the screen you have to wipe out the very evidence you need to solve the problem Why Because the system forces you to choose between edit mode and execute mode You can t have both Enter the Integrated Environment Soon after I began battling the mode monster I became associated with Alan Kay who had just founded the Learning Research Group LRG at the Xerox PARC Kay shared my disdain for modes and had devised a user interface paradigm reference 3 that eliminated one kind of mode the kind causing the preemption dilemma The paradigm he advocated was called overlapping win dows Most people who have used computer displays are familiar with windows They are rectangular divisions of the screen each displaying a different information set In some windowing systems you can have several tasks in progress each represented in a different window and can switch freely between tasks by switching between win dows Whatisa CLO CALPEEP Another name for the CCB II which is e aclock hour minute second e a calendar day day of week month year e an audio alarm All on one board for your TRS 80 Model Il It includes a pacemaker battery which will give over 8 years of continuous timekeeping From the folks who brought you the best CP M for the Model Il 175 plus shipping Prepaid COD Mastercharge or Visa orders accepted Californi
46. plotter I PRUE ete Browse Window collections Code Window text Fore window graphical st ae 7 BCE MALY text displa a wan Notify aaow Pa window Project Window Photo 13 Browsing through existing definitions in Smalltalk 124 August 1981 BYTE Publications Inc The following template contains a description of an irregular polygon with the following attributes vertices An OrderedCollection of Points plotter A pen that can draw an image of the polygon on the screen or on paper The following expressions provide an example of creating and using an instance of IrregularPolygon triangle IrregularPolygon vertices OrderedCollection with 2 21 with 25 35 with 52 triangle translateBy 90 60 triangle plot black triangle translateBy 165 20 triangle scale 0 6 class name triangle plot gray where gray denotes an ink color IrregularPolygon instance variable names class messages and methods initialization vertices aCollection vertices plotter Create an instance of IrregularPolygon whose center is located at the center of the currently active window on the display screen Screen is a global variable that refers to the hardware display screen t self new vertices aCollection center Screen activeWindow frame center instance messages and methods initialization vertices aCollection center c Initialize all a
47. preempted You are not required to deal with the notify window when it appears You can 19a RRA vertex ini degrees Reg pio T 180 3607 Su Undefinedi Sbject gt gt DOIT LADCormnpiler gt evaluatesnit Cod ePang gt gt execut Code Par gt executd cr Code Pang gt gt doit ode Pane gt yellow ode Pane gt cachttt rao ygor gt 2Cor iS _OrTrLiexft Photo 19 Compilation of a faulty method can be continued without restarting once the error has been corrected Circle 284 on inquiry card work in other windows and come back to it later cause other notify windows to be created or work a little in the notify window and then do something else There are no modes Error Notifications Error messages are no different from breakpoints ex 2 UNSTANCE ret POMS LOPE PEPPI gt u We Wista4re E Yru AER FERS PPAT POS E SOA AAA POCE Ae seer ae Float Object gt gt doesNotUnderstanc PO ae AA Ae ae Awe vee Photo 20 Displaying an error in a faulty method 142 August 1981 BYTE Publications Inc cept that if they are supposed to be unrecoverable they are programmed as self error error whatever If the user proceeds out of the notify window after an error the process under test is terminated The most frequently encountered Smalltalk error is Message not understood It occurs when a method is sent to an object and neither that object s class nor any of i
48. r Anal Etel umber rs sectors EN 8 fy piia gojests i IT QTUMYStS yt dts splay IrreqularPotygon display nrudousS Port trar isfommarum anes and menus fReocrange Te sting S Regular agn private istatwe me ANSET ME Ute rut ATJE OF ANY Perex m about to calculate arte self norij 36 sues 16e ReqularPolygon gt comer Ange 1ISIISSSIIS S89 sidele i T Tis f T TA uari i wesma Rectaruqls Regular Polygon Photo 16 Creating a faulty method for purposes of illustration 134 August 1981 BYTE Publications Inc Circle 154 on inquiry card Editing Pane Method Method Variable Value Pane Pane Instance Instance Variable Value Pane Pane Figure 5 Principal dependencies among panes of a notify window Text continued from page 134 program under test would be aborted Let us issue the frame command instead The notify window grows larger and acquires a total of six panes photo 17c Their interdependencies are diagrammed in figure 5 The upper left pane is the stack pane retained from before The upper right pane is an editing pane If you select RegularPolygon gt gt plot in the stack pane its method definition appears in the editing pane You can scroll through the definition and even edit it there and recompile as in the browser The middle two panes are the context variable and 17a ReqularPolygan meg FO QULAITPolygon plot H Uru
49. s cee 2195 00 V DRIVE Dual 8 Disk Cabinet Power Supply Rack Mountable 375 00 COMPUTER SYSTEM RESOURCES MODEL DESCRIPTION ALL ASSEMBLED amp TESTED RAM 16 16K Static RAM S 100 RAM 16C Low Power CMOS Version of RAM 16 1 3 Watt 259 00 RAM 65 16K Static RAM I O Port Bank Select S 100 RAM 65C Low Power CMOS Version of RAM 65 1 4 Watt 279 00 RAM 32 32K Low Power 8 16 Bit Static RAM Fully IEEE 696 499 00 RAM 256 256K 8 16 Bit Dynamic RAM Fully IEEE 696 129500 8 Port Serial I O Fully IEEE up to 200K BAUD 395 00 ORDERING INFORMATION Minimum Order is 15 00 Prices quoted do not include shipping and handling Foreign orders require prepayment by MICR or Money Order in U S funds Purchase Orders accepted from U S Government amp firms with published A1 Rating from Dunn amp Bradstreet All other orders require prepayment charge card or COD shipment TOLL FREE PHONE NUM BER Call Toll Free 1 800 555 1212 and ask the operator for our New Toll Free 800 Number In Alaska California and Hawaii call us collect at 213 883 3244 TO RECIEVE OUR FREE CATALOG Call our Toll Free 800 number or circle Reader Service 7131 OWENSMOUTH AVE 21D CANOGA PARK CALIFORNIA 91303 213 883 3244 JNNOVATIVE August 1981 BYTE Publications Inc 147
50. sic Card MC1 is only 195 Here s what our customers have said Excerpts from unsolicited letters Copies of original letters available on request About the A L F system It s a rare enough occurrence when hardware software lives up to one s expectations For something to exceed one s wildest hopes as the ALF synthesizer certainly does is a real treat My congratulations to all concerned Dhahran Saudi Arabia myself have told several people that next to a disk consider the ALF synthesizer to be the most important peripheral they could purchase for their system Very excellent job Keep up the good work Oak Ridge Tennessee recently purchased 2 of your Apple music boards Out of the peripherals have for my Apple enjoy them the most It has to be the most enjoyable thing that has ever been invented hope you continue to develop products as clever and enjoyable as this one The Entry program has to be one of the most sophisticated programs have ever seen It proves that a hardware manufac turer DOES have the ability to also produce quality software It is almost worth the price of the boards just for the Entry program Burbank California About ease of use have had my Music Card MC1 for a little more than a week now and have almost completed entering The Maple Leaf Rag found it to be a lot simpler than thought and so am very very pleased My family isn t because s
51. sks including software development tasks can be accomplished with greater speed and less frustration than is usually encountered in computer systems E References J Sneeringer J User Interface Design for Text Editing A Case Study Software Practice and Experience 8 pages 543 thru 557 1978 2 Swinehart D C thesis Copilot A Multiple Process Approach to Interactive Programming Systems Stanford Artificial Intelligence Laboratory Memo AIM 230 Stanford University July 1974 3 Kay A and A Goldberg Personal Dynamic Media Com puter March 1977 originally published as Xerox PARC Technical Report SSL 76 1 March 1976 out of print 4 English W D Engelbart and M Berman Display Selection Techniques for Text Manipulation EEE Transactions on Human Factors in Electronics volume 8 number 1 pages 21 thru 31 1977 5 Card S T Moran and A Newell The Keystroke Level Model for User Performance Time with Interactive Systems Com munications of the ACM volume 23 number 7 July 1980 6 Goldberg A and D Robson A Metaphor for User Interface Design Proceedings of the Twelfth Hawaii International Con ference on System Sciences volume 6 number 1 pages 148 thru 157 1979 i Borning A ThingLab A Constraint Oriented Simulation Laboratory To appear in ACM Transactions on Programming Languages and Systems originally published as Stanford Computer Scienc
52. snapshot Smalltalk code can be saved to a text file by using filout and restored by using filin 144 August 1981 BYTE Publications Inc e Most compilers can generate more efficient object code if types are declared Existing implementations of Smalltalk cannot take advantage of type declarations We expect that future versions will have that ability At that time type declarations may be added to the language They probably will be supplied by the system rather than the user using a program analysis technique called type inference Project Windows Although overlapping windows enable you to keep the state of several tasks on the screen at the same time you may sometimes be working on several entirely different projects each involving several tasks Smalltalk lets you have a different desk top for each project On each desk top are windows for the tasks involved in that project To help you travel from one desk top to another a desk top can have one or more project windows that show you other available desk tops and let you switch to one of them photo 21 Saving Programs In unintegrated systems you create a program using standard text editing facilities Then using standard utili ty programs you can obtain a program listing on paper back up the program on other media and transmit the program to other people In an integrated system equivalent capabilities must be provided within the system
53. t dA nde Pare gt Ye lo wb ode Pang gt gt ac HET ode Pane iObject i gt startup COTE AYU nis Cortex it de grees again P eo 360 s copy Cut paste aon pi at Unide fine at Ip Ne cro DO gLADCompiler gt epaiuate i Code Pang gt gt execut strit i Code Pang gt execute for Code Pane gt gt doit Code Pare gt gt yellow bug Code Pang gt gt achtime FO ygan eco Is _Ortext Photo 18 Debugging a faulty method 140 August 1981 BYTE Publications Inc triangle is 60 degrees we have found the planted bug Now select RegularPolygon gt gt cornerAngle in the stack pane Its method definition including the breakpoint we set appears in the editing pane photo 18c Use standard editing to remove the breakpoint correct the error and recompile the editing pane photo 18d You can randomly access any level in the stack by clicking it in the stack pane Resumption After recompiling a method you can resume execution from the beginning of any method on the stack using the restart command in the stack pane menu photo 19a This lets the test proceed photo 19b without having to start over from the work space window Resumption of execution after a correction is a handy capability when a program that has been running well encounters a minor bug The entire stack of the process under test was saved in the notify window When a notify window appears the rest of the system is not
54. ting vectors and matrices C is great for systems programming SIMULA shines at discrete simulations FORTH lets people quickly develop efficient modular programs on very small computers All these languages have been used for numerous pur poses in addition to those mentioned You can write almost any program better in a language you know well than in one you know poorly But if languages are com pared from a viewpoint broader than that of a narrow expert each language stands out above the others when used for the purpose for which it was designed Although Smalltalk has been used for many different applications it excels at a certain style of software development on a certain type of machine The machine that best matches Smalltalk s strengths is a personal com puter with a high resolution display a keyboard and a pointing device such as a mouse or graphics tablet photo 3a A cursor on the screen tracks mouse movements on the table so you can point to objects on the screen The mouse reference 4 has one or more buttons on its top side photo 3b One button is used as a selection button If there are more buttons they are normally used as menu buttons If the machine has a high performance disk drive you can use a virtual memory version of Smalltalk and have as little as 80 K bytes of main memory not counting display refresh memory Otherwise you should have at least 256 K bytes of memory This much memory is re quired because
55. ts superclasses defines a method to receive that message Let us edit the method sideLength photo 20a to send the message cosine instead of cos After recompiling that method photo 20b and reexecuting the test program a notify window appears photo 20c to announce that class Real and its superclasses do not define cosine In most programming systems equivalent error condi tions such as undeclared procedure and wrong number of arguments are issued at compile time Smalltalk cannot detect these conditions until run time because variables are not declared as to type At run time the object sent the message cosine could be an in stance of a class that did define a method of that name Type Checking When we program in languages like Pascal we depend on type checking to catch procedure call errors early in the software development process In return we have to take extra time maintaining type declarations and we lose the very powerful ability to define generic or polymorphic procedures with the same name but with parameters of varying types Type checking is important in most systems for four reasons none of which is very important in Smalltalk eWithout type checking a program in most languages can crash in mysterious ways at run time Even with type checking most programming systems can crash due to uninitialized variables dangling references etc Languages with this feature are sometimes called
56. ttributes Class Pen is provided in the system as one way of side effecting the display screen vertices aCollection plotter Pen width 2 self translateBy c self center analysis center sum sum O0 0 vertices do pt sum sum pt lsum self sides sides I vertices size display plot ink plotter penup plotter goto vertices last plotter color ink plotter pendn vertices do pt plotter goto pt transformation scale factor center Scale the polygon by the specified factor center self center vertices vertices collect pt pt center factor center translateBy deltaXY Answer the center coordinate of the polygon Answer the polygon s number of sides Draw an image of the polygon using the specified ink color lift the pen to disable drawing position the pen at one vertex select the ink color lower the pen to enable drawing for each vertex draw a straight line to it the center of expansion generate new vertex list from old list Change the polygon s location by the specified amount a Point vertices vertices collect vertex vertex deltaXY Table 2 Description and class template for class IrregularPolygon 126 August 1981 BYTE Publications Inc Circle 4 on inquiry card When you are done editing pop up the active pane menu and issue t
57. vailable on ROM or diskette in versions for many popular 6809 computers Contact Microware for specific availability For compatible hardware see GIMIX ad page 128 MICROWARE Microware Systems Corp Dept B2 5835 Grand Avenue Des Moines Iowa 50304 515 279 8844 TWX 910 520 2535 112 August 1981 BYTE Publications Inc Circle 242 on inquiry card Smalltalk 76 provides pop up menus for the most com monly used commands like cut which deletes the selected text To issue the cut command you pop up the active pane menu with one of the menu buttons on the mouse photo 9a keep that button down while mov ing the cursor to the command name photo 9b and then release the button photo 9c A command in the pane menu can have only one parameter the active selection A command in the window menu can have no parameters To issue a command that is not available in a menu you select any place you can insert text and type the whole command as a statement in the Smalltalk language photo 10a Then you select that statement and issue the 10a user can arrange the changing the sizes and locations of windows A TAGES again copy ehi e the Gesetop L Cut sizes and locations of IASTE Wr cancel alum A uset can arrange the Ag charging the sizes and loc ations of Windows 4 max SE R Photo 10 Executing text using the doit message Circle 335 on Inquiry Card single param
58. window are said to be awake or active To awaken a different pane of the same window move the cursor over the new pane photo 4c To awaken a dif ferent window move the cursor over the new window and press the selection button on the pointing device photo 4d When a window wakes up its title tab and all 4a eile Sor E RE NS text 1S n the joel gani of a two paned q frarn G allaps d title para grown exit flag window he window has a wethidate m n and each pane has a mane MIETI Note that lings of text break at pat g ward spaces autornariwally fe rriplates eS title parables inde frame clase privat Peres DIALE barnes DECHE MEH us E xT 15 LT T LE SE lf pan of a two pane frame collapsed titlepara growing exitflag window he window has a wridai men and each pane has a maine TET Hore that lines of text break ar panes ward spaci again T raplares copy cite CUT var abl ES Paste pe ADIT corpus unin caret 4c iS text tS in the na pone of a two panged window he window has a miniau menu and each pane has a PARTE MENM Note that lines of text break at word spaces automatically templates title parables its panes are displayed and it is no longer covered up by other windows The scroll bar of the active pane is called the active scroll bar Its menu and the menu of its window are called the active menus In order
59. y In exploratory development it should be fast to create and test prototypes and it should b f f be easy to change them without costly repercussions usiness orms or Smalltalk is helpful because small com puter e The language is more concise than most so less time is systems spent at the keyboard Send today for our NEW full color 32 page catalog with programming guides prices and order forms for continuous checks invoices statements envelopes stock paper and labels e Quality products at low prices e Available in small quantities e Fast Service e Money Back Guarantee e Convenient TOLL FREE ordering 3a Fast Service by mail or PHONE TOLL FREE 1 800 225 9550 Mass residents 1 800 922 8560 _ 8 30 a m to 5 00 p m Eastern Time Monday Friday a a Te e oe eee oes Lime bbe i Please rush a new computer forms catalog to CODE 20460 m Ea aa Ger See Oe lt D aise Gna w A gt w a N 12 E ee Computer make amp model i p Ss SATE a E ta a a a a ee ea eg gt ad ete Fe vag eee PR pics NEBE Pia i SEAM a A E E A n Ago ie Sly l eam Nebs beni a Lei Lett Le r Forms Photo 3 A typical Smalltalk system photo 3a and a close up of 78 Hollis Street Groton Mass 01471 the mouse photo 3b a device that allows you to move an A division of New England Business Service Inc on screen cursor and select certain options 98 August 1981 BYTE Publications
60. you can click the name of Class Category Method Category Method Pane Pane Pane Editing Pane Figure 4 Principal dependencies among panes of a browse window the desired class photo 13f Categorization is used at both the class and method level to help the programmer organize his or her program and to provide fewer choices in each pane If a list is longer than what can fit in a pane it can be scrolled by pressing a mouse button with the cursor in the scroll bar If you just want to browse around reading class and method definitions you can do so by lazily clicking the selection button with the cursor over each name never touching the keyboard That is why the window is called a browser Browsers are further discussed in references 6 and 7 Astute readers may have noticed that the class template see The Smalltalk 80 System by the Learning Research Group on page 36 of this issue presents the methods of a class apart from the methods of its in nsplayrortn For Clas Half Torne Half Toner IrrequilarPalyqan Poirt Fectanale sDe finiric Th Cli ssOraanizatt rirializarion ATU YSIS display transtormatwur testing oripare instance gE po Lon radus U numbe rs C ClassDefinition collections Class Organization te ar mirializaron C7 y p windows le cransformation R nes and menus ee ita yr i TEStt iles em private instance me Tcenter ClassDe fi Classc ITC J Halt Ton

Download Pdf Manuals

image

Related Search

Related Contents

取扱説明書  Manuale Utente - Armadi  ROÇADEIRA HIDRÁULICA TRASEIRA  Guía del Usuario Coronis 5MP  Harbor Freight Tools 93682 User's Manual    eProcure User Manual - Procurement and Supply Services  

Copyright © All rights reserved.
Failed to retrieve file