The SAS System® on the Apple ™: What should the Display Manager look like?

AIM. Best Biostatistics Department & Clinical Research Center for Periodontal Diseases Virginia Commonwealth University, Richmond, VA 23298 '

At last year's SUGI it was announced that the SAS likely candidates would be Aztec and Consulair C. System® would be available under IBM PC® DOS. So, I know of no technical reasons to reject the That the SAS System should be available on personal Macintosh Plus as a host for the system. computers is obvious. In addition, the choice of the Principals - There are two principals that must be IBM as the first PC for version 6 was also clear. As followed for a successful implementation of the SAS anyone who has used the system knows, one of the System on the Mac: I) The Macintosh "look and things that makes this new software so useful is the feel" should be fully supported through the use of the Display Manager (DM) as an environment Macintosh interface. 2) SAS statements should be for one's session. As such, the DM is presumably identical across systems with few exceptions. designed to be the only thing that might change from The Macin~osh "look and feel" - Why not just port system to system. That is, the code for all the PC versIOn over to the Mac? The experience of procedures and DATA step code would essentially Apple II and PC programmers is that you cannot just remain the same whether one was running on a reco~pll~ a program on the Mac and let it go at that. mainframe, mini or micro. What would change It wIll SImply not sell. Anyone operating any would be how information was passed down to the software on the Mac expects it to be "Mac like" and guts of the SAS system and how the output generated reviewers have consistently panned software would be presented to the user. As a result, for any vendors that have tried to take this short-cut. More system to run the SAS System, one important importantly, it is clear that the Display Manager and question is, "what is the look and feel of the Display the Macintosh were made for each other. Manager?" What follows is thus a modest proposal Windowing is a prominent feature of Version 6 on from a long-time SAS user of what the interface the PC. However, a more unified structure would should be like. incorporate real windows, Menus and Dialog boxes Disclaimer - Please notice that I am not speaking for to replace the awkward LCD display system (lowest SAS Institute. Except for the fact that I teach some common denominator) used on the PC with its of the Institute's courses and have been active in command key structure. In my sample session SUGI, I am not officially associated with the below, it can be seen that the Macintosh interface is Institute in any way. As a result, what follows is an attractive alternative for anyone adverse to simply hopeful speculation which is tempered by an learning a large number of command keys. in-depth understanding of both what the SAS and the Identical SAS Statements across systems - Second Apple Macintosh Systems are all about. only to the first principal above, code generated on Minimum requirements - For the SAS System to run the mainframe, mini or micro should run identically on any machine three conditions must be met: I) at on any other system. That it is secondary should not least SI2K of memory, 2) a hard disk of at least be surprising. The most commonly known 10MB, and 3) a good C compiler comparable to the differences between Base SAS running in different compiler the Institute uses. All of these environments has to do with the operating system, conditions are met in the Macintosh Plus. Its particulary how files are referred to. Aside from unmodified system includes 1MB of memory the differences between JCL, CMS, VMS, AOS and (upgradable to 4MB) and 128K of ROM where DOS, there are comparable differences in much of the system routines lie that would otherwise FILENAME, LIB NAME, FILE, INFILE and other take up RAM. In addition the new version of the statements in SAS code. I am sure that anyone system has a sophisticated Hierarchial File System working in the different host groups at the Institute (HFS) with directories and subdirectories similar to could generate a much longer list of operating those on the DEC under VMS, DG under AOS or environment exceptions. What is important is that PC under DOS. It also includes an enlarged keypad these be kept to a minimum. In addition, newer WIth a numenc or PF keypad and arrow keys. One versions of the SAS System should be may add 20 MB of disk storage by adding the Apple improvements. Version 6 on the PC has the Hard D,sk 20 (HD 20). With the SCSI interface on WINDOW statement analogous to the INPUT the Mac Plus, many other external, hard disks will statement. Every operating environment will dictate also be available. One of the more attractive internal certain improvements. The Macintosh is no ones will be the internal Hyperdrive now available exception. The goal is this: anyone with a for the SI2K Mac. There are many development knowledge of MacWrite and the SAS Introductory systems and C compilers to choose from. The most Guide should be able to run the SAS System on the Macintosh without difficulty.

606 Organization of the paper· After a large section on Note that in addition to the Close box in the top a sample session, the Windows, Menus, keys and left-hand corner of the Title bar on a window, there other features will be discussed. The sample session is also a new feature of Mac windows. This is called will demonstrate many of the features documented a "Zoom Box". Those of you who have used the PC in the remaining sessions. One will see how version of the SAS System now know how easy it Windows operate and what they would look like. will be to implement the ZOOM command available Menus demonstrate an important feature of the in Version 6. But that is getting ahead of the story. Macintosh interface. There are essentially no The arrow is positioned above the familiar diamond "Syntax Errors" on the Macintosh. The commands shaped icon of an application (program) on the Mac one can select from the Menus are the only ones and double-clicked. The program runs and up available· you can not try to do something that can comes its windows and menus. not be done. Commands often require additional

information. This information is collected in Dialog COP\lright (c) 19815 SAS Instilut.. Ino" C~, N.C.275!1 Boxes that are windows which request information NOTE; IJ'ERSION $.21 of SAS ot AI Best's M""'intosh. through two kinds of displays: edit fields and buttons. Edit fields are text entry fields where the user may fill in, for instance, a libname (first level name) for storing a permanent SAS dataset. There are 3 kinds of buttons: Radio buttons (which indicate which option of a set of options is to be selected), Check boxes (yes/no selection of an option), and Push buttons (which most commonly indicate that one has completed entries in the Dialog box or that some action is to be taken immediately). All of these ,,::-, :;.: ";,; :'".1:,':";' features are mentioned here for those not familiar The Editor window is the active with the Mac. window. One may make the Log the active window by clicking anywhere on it. Making a window Sample Session larger or smaller is as simple as dragging on the Size-box in the lower. right-hand corner. ~ ~I~ .~ After turning on your Macintosh Plus with Copo,ri9ht (c) 19815 3f1S lnsUt..,\e Inc., C,...I,I, N.C.27511 . fr HD-20, the familiar will "n'n~",r' I'!OTE: VERSION o.2? of SAS at At Best',.- l1acintosh.

Notice that the Mac will always give you immediate visual feedback. The dotted-lines show where the r

open with as easy as the Double-Clicking or arrow anywhere in the Title bar of a window and i selecting Open from the File Menu with "SAS dragging it. But let's click on the editor window and \ Folder" selected will show the contents of this zoom it full screen to ~ sub-directory . r: o utllittg

~ 0 SASS~~"'® .... ~ SAS God. 0 SAS .... lp 0 0 S~Sfil •• SAS pro«

607 We will be reading in an external file so let's create We key in our first title line and press the Enter key the link to the external file with the Filename or press the Save button to build the Title statement in the Editor. st.atement. ~~~~~~~ii~~;;;;~~iiiiCommands Then we key in a DATA step familiar to anyone who ...... Log XL ...... Edltor X E has ever taken a SAS Basics course or read the List Output X 0 Graphics OutllutX G Introductory Guide. Notice that there are no ---.-----.--~-- statement numbers. In version 6 of PC-SAS it is

Llbname ... assummed that an SPF or XEDIT like editor would flies ••• be most familiar to users of that system. That may ("triables •.• ne clicks on the Window Menu to display the be true, but MacWrite is the word processor most selections and, while holding the mouse button familiar to Mac users and editing features used in down, moves down until the Filename ... window is MacWrite are used here. So, we then unzoom the selected. When the mouse is released, the Dialog Editor. Editor box for Filename appears FILEREF homple 'HD 20: SAS Folder: Example I'; - TITLE 'Fir.t exemple oftl\e SAS S~si.m '; OATAClASS; .. INFILE EXAMPLE; Drny ~HD 20 INPIT NAME $1-8 SEX $ 11 AGE 13-14 ClSAS flies folder ~EIG~T 11>- 19 WEIGHT 2:1-2:5; DSRS prots folder RUN; DSflS hltl!L I and Choose Submit from the Commands menu. The fileret name (gJ NO 20 Commands menu will be different for each window. I (HampleI I ~

~ ~ ~ Co.",.,.ight (c) 19B~ SAS NOTE: VERSlotl 5.21 <>f SFlS We key in the name of the flleref we are defining in the edit field and then select the document labeled Obviously doing a Submit does not make any sense "Example 1". Notice how the pull-down menu-like in the Log window. The code is compiled and we see directory entry tells you exactly where in the the Log scroll and are left with an error message. directory this file is located (HD 20 (disk), SAS Folder (directory), Example I (filename)). A slightly different Filename Dialog box would have appeared had there been any other external files WEIG~T21-2S; presently referenced. One could then view their full path name (or change it) as well as create a new 5 Y.ri.ble~. Fileref, as in this example. When the Save button at the bottom is pressed, the correct SAS statement is The trouble is that we can not see exactly where the generated and we return to the editor. problem is so

tlLEREF fxample 'HO 20, SAS Folder, Example ",

I> AGE 13-14 1 ~EIGI1T 11>-19 WEIGt1T21-2S; Like all good SAS programmers, we will need some B RUN; titles. We could type them in directly or call up the ERROR 23: KEYWORD UNKNOWN NOTE: ~. nt WORK.CLASS hu 0 oNerYllt1on~ Ind S YIIriebln. NOTE: The (MTA stetolll!1I1 u~ed 13.0 ~eCQnob. Titles WindIiO~w~-=§~~~~~;;;;~~iil :1 ' " ii I~~~~~I~:~ FlLEREF I XEXL we make the log active and use the scroll arrows on I List Output X 0 Graphics Output. G the right to scroll up.

Filename •.. Llbname •.. FUes ••• Ullrlables ••• Commend SEU 11

AGE 13-14 HEICHT 16- 19 WEIGHT 21-25; Title First eHample of the SRS system RUN; TltleZ Tltlel Title4 TitleS Where we see that an I was punched instead of a U in 1111.& the INPUT statement. Now, we could retype the Title7 TitleS statements in again but Version 6 allows us to bring Title9 TltlelO back statements previously submitted. But, we forgot how to do this and need some help. Concel J Selle ~ )

608 here would be able to scroll up into the previously submitted code area of the Editor window. There are real advantages to this method as it allows you to SEX ~ 11 copy code out of previously submitted code without 13-14 H.-19 WEIGHT 21-25; recalling it. One can then paste it into the to-be-submitted part of the Editor window. It would ,.:1 ,:;;i' , i'i' also allow you to view previously submitted code is of course an on-line help facility. It is without recalling it. In any event, the recall chosen under the Apple menu (this is where a command is issued and the statements return to the Macintosh user expects it). It could also be chosen Editor window. :0 Editor by the command key sequence of simultaneously FILE REF Exemple 'Hb 20, SAS Folder, Example I·; TITLE ·Fir.t ex.mple .fthe SAS Sy.tem·; holding down the command and H keys. DATA CLASS; INflLE EXAMPLE: i" We could fix it by moving the I beam after the I in esl SRS help DI\plilll mi'lnager- INPIT, backspacing to delete it, and typing U but we [) Introduction to DRTR step D license Information will do a command instead. D Menus o Procedure descriptions D SRS Formllts & Informllts D SAS Functions 1 tl SAS statements used anyw INPIT NAME D Wlnclows -,,- AGE 13-14 [ Cancel I it from the Command Menu and up comes the The SAS help dialog box appears with its selections change dialog box. for different kinds of help. We select Display Ch!lnge Manager and press the Help buttom (or enter key). Note that one may use up and down arrow keys on [FindNl!lItl [[IHl[l!][o."FIH~nl'indJ [thlUl!]l'1 @~ the Mac plus to select other entries (as well as using ® Whole Word 0 Pllrthd Word the mouse). Notice that this Dialog (and that resulting from the Dispilly manager --w It Context Sensitive Help - to obttlin help on Bny item, b, similar Find ... command) has a Title bar. can press $? to Ch8nge the cursor to 8 questwn mtlrk.? 1~1 therefore be moved anywhere you want if it is Cllek the cursor on tiny Item to obt8m help lnformetlon ..~ r.!i on thet item. ,~:" hiding something you need to see. We kev in the E{jiting progrBm code - Use the Editor windOW to edit SAS ,m:! "from" and "to" strings and press the Change All code. All st8ndtlrd M~cintosh MBcWrlte ~ctions are I!! supported. li" button to make the change. The editor finds the SlIbmittlng code - A program in the Editor may be !j;:: submitted to rlln by selecting SlIbmit in the CommBnds ;It:'1 string searched for, highlights it Menu. ~~i ill Editor £!Iii Recalling code - prel'lously submitted code ml!lY be V flLEREF Example 'HD 20: SAS folder: Ex.mpl~ 1·; {) TITLE Tlr.1 ex.mplo oflh. SAS System '; I More Help ) I DOlle DATA CLIISS; INflLE EXAMPLE; : !:~ ImIiIW.ME$l-S SEX$11 The beginning of the Display Manager help appears. and changes it. I'll add a Proc Print and Resubmit One reads it and sees that what we want is just below B the code. We see that all seems well in the Log , the bottom so one scrolls down SAS Log NOTE: The iRflle EXAMPLE 10 me ·HO 20: SAS FOlder: Ex.mple \., Menu. NOTE: 14 record. were re.d from the infile Eumple. Recalling code - prevIously submitted code m~y be NOTE: D8t•• et WORK.CLASS h•• I 4 ob.ervattcn. and 5 vorlobl ••. recalled by selecting RecHll from the CommHnds Menu NOH: The OATA .totement u.ed 1 5.0 ••cond. 16 PROCPRINTNOOBS; ': in the Editor or by Clicking em the BIHek bHrtlbol'e the ): 17 RUN; vertlc81 scroll button r.'I

Windows - The log, Editor, List Hnd GrHphlcs Output and up comes the List Output window with our windows tire movl!lble, resi-zeHble, 8nd m~y be hidden output. (closed). The other wIndows (Filentlme, Titles, etc.) tire dltllag ba~es. See the Window Help far more D List Dutput ~ inform6tlon. first ex.mp1e .fthe SAS SlJ!Jlem 0 Commtlncls - E~ch window hHs tI specific command menu HAME SEX AGE HEIGHT WE IGHT 99,5 l,m1 ! More Help I [ Done ... I JOHH 12 59.0 ,;~. JflMES " 12 57,3 83.0 14 69.0 112.5 :Iij ALFREO ::) .. to read how to do a recall. Note that in addition to WILLIAM IS 65,5 112,0 j ~ i i; the Recall command, there is a special control on the THOMAS 11 57.5 85.0 ";1, PHILIP 16 72.0 150.0 vertical scroll-bar of the editor window. As 6~, 8 128,0 R08ERT 12 i~~ documented here, this does an automatic recall. JAHET IS 62,S 112,5 1M; JO~CE 11 51.5 50.5 1''' There are many ways this function could have been JUDY 14 6'1.3 90.0 LOU I SE 12 55,3 71. 0 illl implemented. One reasonable way would have been 8RR8ARA IJ 55.3 98.0 MARY IS 66,S 112,0 ;,i'." to have a command key. Another way that would ;<. 56.5 81.0 also have its advantages would be to implement the flL ICE IJ I' ;,., \l: i:!'i')'h\i:,!]~i ;.,;:,{.,:,,!, 'li',:~ ~i':1:. ;. i;'" ~~' "'·"i:,.': ~:!1.: '·:r;;~~ , ':,im~ii~1 i; '.".Q black line control as a split screen contro!' The idea

609 These data should be familiar to many of you. You Up comes a dialog box to ask us which procedure we may uotice that the font style for the title line is wish to run different from that used for the rest of the output. CHART The system has defaults for these and thus they may CORR FORMS ;'; WllEilf' be changed. To see how to do this we can select ; FREQ ' Preferences ... from the File Menu. :i~ PLOT ! ~ ( Clmcel I PRINT clltegories of SAS procedures: I:'8JBuic DUtllltles AGE HEIGHT WEIGl-IT DStatistlcal DRemot., unk 12 59,0 99.5 DGrOphits 12 57.3 63.0 14 69.0 112.S IS 66.S 112.0 One can display any of the 5 categories of 11 57.5 65.0 n" 1':;n n procedures but we are only displaying Basic Notice that it makes no "sense to Open or create a new procedures at the moment. Selecting the Means List Output window, so these commands are dimmed procedure yields its AF screen. and not eligible for selection. Selecting MEANS Proceoure

Preferences ... brings up the preferences dialog box PROC MEANS DATA'" I--LAST 1 MRNDEC'" []] FW~ [IT) for the Output (active) window. ORDER" ® INTERNRL ODRTA 0 FA[Q OFORMRmD PreferenceS for list Output window URROEF-® OF ON o WEIGHT OWDF Options: DNoPRINTDMISSIN6 ONUIIW OIDMIN DUI:scfNOING Useroll ~ ® Pug!! OHIlIf Bother 1811'01 ONMISS 181 MERN I8lSTD I8IMIN 181 MRN Ifscroll ® f'lJge OHoif other ~ ORRNGE OSUM 0 URR Duss DCSS top left bottom riqht DCll DSTOERR D T DPRT DSUMWGT: Screen Coordinates &1U 1490.3001 oITdJ ®Title OHelider o Byline OTlmt DroDtnote VA" ~NUMERIL ~~I:. Characterl.iles ofTltla line. . FREa.~~"" I: WEIGHT 1 I; Font ~tSlze Style Chicago [gJ Plain Courier f ~g DBoid ;'" II"'" : -i~ o IItllie Hell/elito _m 14 I:: Dl!..o..!le.r!In All of the defaults and options are layed out before MOnfu:o ~ o mmll~l!m~ you. We can change any of these we wish to. Notice The V scroll and Hscroll selectIOns allow the user to also that options not available are dimmed (NWA Y specify how far the window will scroll when and DESCENDING are unavailable without a clicking in the grey area of the scroll box. One can CLASS variables and IDMIN is not reasonable specify the screen coordinates of the window or can without ID variables). In any event, I wish to enter simply choose the Selection Rectangle Tool to specific variables in the VAR statement. Assume for simply draw how you want it to look. In the bottom the moment that I can not remember the Variable of the window one sees that there are 5 areas of an names, How can I find this information? In Version output screen. The characteristics of the Title lines 6 there is a Libname ... window are displayed in an example text. The font COIHIHllml!: (presently Geneva, the default application font) and .,ILog XL ure font size (presently 10 point) and style (the default, .,IEditor x [ .,lUst Output x 0 MAHDEC- []] FW" D plain, setting) may all be changed and their effects PRoe MEANS D Graphics Output X G ORoER- ® INT ,-,.--.,----,-,-,-----,----,.-,-- Il orORMRITEIJ viewed. But lets leave things alone and press the URRoEF .. ®OF Filename ••• 161fT OWOF

Cancel button. Optiorls: ONO Files ••• HV DIOMIN OOl:St!:NllING Now let move the List Output window out of I'2JN UHriHhles ••. 1'01 IEISTD I2IMIN 181 MAN the way by dragging on its Title bar. Which will list the Librefs active

To do SASI AF we select the Procedures ... (gl HO 20 Uhref , .' command from the Windows Menu SRSheip CJmy SRS code ~ SRSuser CJSRS files folder • FIle [cll~COmm8nd$ CJSRS procs folder ~ ------vLog :Ie L ;0 List Outp DSRS help NOTE,Th. infile EX ..... Editor X E I'inlex.mple .f1he ~ NOTE, 14 rocord. '" ..... Ust output :Ill 0 HAME SEX AO New lihref: ( Submit I NOTE: D.t •••tWOR Grophics OutpulX G d I I NOTE: The DATA .101 ______• ____ ,•. ,_,.".,' __ ".,_, __ _ JOHN n JAMES n ~~ :~~~PRltlTN Filename .. . f1LFREO n and allow us to select the FlIes ... m Work by UbfHlme .. . WILLIAM selecting the right items. This brings us to the Files ••• THOMAS lJllrillbles ••• PHILI P Files ... dialog (analagous to the DIR window in the Commllnd keys ••• ROBERT 1itl"5 ••• JANET PC) Lihref: Work Footnotes ... JOYCE Type: ® All OSRS dtlta set OCatalog OFolTnat catalog JUDY LOU I SE ( Uhref... ) dHt!l set type: BARBARA IIIlDmmJ SRS data set

610 ,~

The Files dialog box tells us that there is only one and its Graphic Output window SAS file in Work, our Class dataset. We can select it Graphic Output and press the Variables button to bring up an fir$1 example oflo. So'IS S~"tem abreviated Proc Contents like screen Libref: Work Data Set: Class ~ order:@RlphlllbetitOPOSltion ~

Name Tupe L~bel ~ ""rn '" ""rn ~ Char Char ""rn 12 13 Ago 14 " " Sax:l"lrL!iH " It may-- seem like a long way to get to thiS screen but These graphics can, of course be saved to be with a default Libref of Work and a default File of modified in MacPaint (as bitmaps) or in MacDraw LAST ,this screen would be shown if one simply (as QuickDraw objects). Note that the controls .ar.e a selected-the Variables ... item in the Window Menu. little different. The intent is to only allow resIZIng One can shift-click on the variables one wants, and the window (should it clip the image, hide parts of it Copy (either from the Edit menu or Command C). or redraw the image to the new size?) lihd scrolling This puts them on the clipboard where they can be one page (image) at a time. Continu?us scrolling pasted into the appropriate entry in the Means could get complicated with half of one Image on the Screen. top and half on the bottom. Anyway, we are done so I "nn :11 let us Quit. This data transfer between windows is a feature that -llmi Edit Windows Commands can be easily implemented on the Mac. Pressing the ;;;=; New to ~ Open ... hic Output Edit button would return us to the editor and allow Saue X S mple oflh. SASSysiem Saue liS ••• changing the statements before they are submitted. Close The Submit button will also save the statements so Print ... XP PlIge Setup ... that they can be recalled later but submits them preferences, •.. , directly. The Log scrolls with the new statements I and notes and the List Output's new screen appears. Unlike version 6 on the PC, the Mac prompts you to _ FIle Ellit Wilillows Commallds have a second chance at printing or saving your SRS Log liD List Oulp fjr~t example oflne work before it returns you to the operating system ~~ R~~~ ~Ir.. NOTE: The Procedure Print o,.d 6.0 •• conds. NOb. You left the following willdows open! 18 ProeMeens; Do you wllnt to SaLOe or Print them? 19 Var Height Weight; HeigM 14 62..31 OK,OK 2.0 Run; " WeiQht 14 87.2.5 SOLOe Print ! " o ~ Log Editor 181 0 Editor Calltel o 181 list Output o 181 Graphics Output This is the end of the sample session. Details as to IiCHIlIlT Protellure the Menus, Windows and keypad follows. PIlOC GCHflRT DIlTIl" 1 LAST I;

BY _1&lm •. i.l., Details

Horizonhl Bur I ! Windows - There are two kinds of windows Blotk in this proposal for SAS on the Macintosh. The Log, Pie Editor, List Output, and Graphics Output windows Shr are "modeless" in Macintosh terms. They can be moved about at will, resized, scrolled and closed at the users whim. They are called mode less since VerticlIl Bllr Chart they, do not put the user in a mode of responding to /®OISCRETE SUMURR" that particular window. The user can ignore the TYP[:@FREQOCFREQOPERCENTOCPERCENTOSUMOMERN GROUP" Dlil 00 ORSCEND1NGODESCENOINii window and make another window the active, SUBGROUP= Se)!; _ DNOSPflCE front-most window. All of these windows have an FREQ~ SYMBOL~'I I' ONOSYMBOL MIDPOINTS OMISSING associated Preference dialog window in which all flHIS- lEUHS" REF" appropriate display options may be viewed and changed. These preferences should be immediately evident and all changes should generate Display

611 Manager statements or SAS statements so that saving the local SAS support person, and a dialog box the recalled contents of the Editor window and which would generate Proc Options code to change reexecuting it will have identical results. system options. Additional entries in the Apple The remaining windows are, in contrast, Menu are user choosable desk accessories (mini­ "modal" since they put the user in a response mode. applications that can run on top of applications These windows (Filename, Libname, Files, currently executing or, as more and more do, run Variables, Command Keys, Titles, Footnotes, and concurrently). Procedures (AF» are implemented as dialog boxes. The File Menu - also has traditional entries. The computer is in some measure directing the The New entry will clear all windows (after an dialog from the user. This is an unusual feature for appropriate dialog that allows Saving) and the Mac and one which should be avoided because it essentially begin again. The Open ... entry is only to some degree is not in the spirit of the Macintosh useful in the Editor window where it can act as interface. The user should be in control, not the Include, to add SAS statements to the bottom of the computer; the computer should respond to the user's editor. Close will clear and close any of the primary actions (whatever they may be), not be directed by windows (after a dialog). Save or Save as will save the computer as to what to do (i.e. A> ). the contents of any window into text files (where The only remaining window not style and fonts will be lost) or perhaps to Microsoft demonstrated in the above sample session is the Word and/or MacWrite compatible documents. Command Keys window. This is a Key Caps-like Graphics output should be saved as either Bitmaps accessory, perhaps somewhat akin the MouseTracks (MacPaint compatible), or QuickDraw items desk accessory, which would allow the display and (MacDraw compatible). They could be saved to be editing of all keys (except X, C, and V, to maintain GREPLA Yed, I suppose? Perhaps the Preferences compatibility with desk accessories). The command menu item should appear on the Bottom of the keys displayed in the menus could be changed and Window Menu (here is where the analog to the are only my minimal set - one suggested by a user COLOR command in version 6 could be best more comfortable with menus than "PF keys". For implemented). The Print item should print any those not familiar with the Mac Plus keyboard, it window (ImageWriter and LaserWriter support) looks much like the VT -100 keyboard. It has a PF and Quit would terminate the SAS System and return keypad on the right with 15 keys and an Enter key. to the Finder (an identical result would obtain from There are arrow keys and Command (Control) and use of the BYE or ENDSAS statements). Option (Alt) keys. The Edit Menu - is the only one virtually In Version 6 there are a number of Window required by the Macintosh interface. Many desk Position, Display Manager global commands. They accessories use Cut, Copy, and Paste. These can be are made obsolete by the Macintosh windowing extensively used in the Editor window. Copy should interface (except for an analog to WDEF which be enabled for the other three primary menus also. would allow Autoexec resizing of windows and Clear should clear out the contents of the entire WSA VE to save a particular setting). The Save window (after a dialog). If the > and < commands entry in the File Menu should be enabled when the now in Version 6 are useful (moving whole blocks preferences dialog is visible to save window settings. of text right and left, respectively), they can be The Version 6 Display Manager Global Scrolling implemented as edit commands available only for Commands could be implemented for Autoexec the Editor window if at least one line of text is purposes. selected. They could be implemented as two-key User defined Windows should appear as command keys. That is, by holding down the additional entries in the Windows Menu. In a command key and pressing > and then 5 the user tum-key system using the SAS System, one might could move over the selected text 5 spaces. There want to only display programmer defined windows could be a default set (perhaps 3 spaces) so the user (and Menus?) could simply press "command >". The Mac could wait a short while and then, hearing no numeric Menus - All of the most common commands keys, implement the default. Actually, I would not should be in menus with additional information recommend this. The Tab and Shift-Tab for moving requested, if necessary, in dialogs or by additional text right and left would be more Mac-like. keystrokes. Absolutely all other editing commands as The Apple menu traditionally has an About... implemented in Version 6 on the PC should not be entry and most applications have a Help included. I implemented on the Mac (commands such as A, B, have proposed that Help be included in its own entry, C, D, I, M, 0 and their block commands). Line as some other applications do. The About. .. dialog numbers are not used so Locate is not required (use w.ould i?c1ude information on memory usage, Find instead). This will thus not allow %Include LIcense mformation, a phone number and name of n:m syntax.

612 The Windows Menu - has been extensively Apple®, MacWrite™ are registered trademarks or trademarks of Apple Computer, Inc. dealt with in the sample session and in the above Macintosh™ and Macintosh™ Plus are trademarks of section. McIntosh Laboratory, Inc. and is being used with the The Command Menu - is different for each of expressed permission of its owner. the primary windows and should also be user SAS®, SAS/Graph®, SAS/AFTM are registered trademarks or trademarks of SAS Institute, Inc. definable (use SELECT and CASE statements in the IBM® and IBM-PC® are a registered trademarks of DATA step?) for user defined windows. The Find International Business Machines Corporation. and Change items should generate standard dialogs to change (in the Editor only) and find (in Log, Editor, and List Output) text as needed. In the Editor window, Submit, Submit one, and Recall have functions identical to that in Version 6. I am unable to come up with Graphics Commands at the present. Perhaps Greplay could interact with the Commands Menu best.

Final Thoughts

The Mac as a Graphics device - There is no doubt that the Macintosh is a graphics machine powerful enough to warrant the attention of SAS/Graph device driver authors.· Apple has recently announced a development system that allows remote host-based applications to control the Mac's user interface. MacWorkStation software would be invaluable for writiug mainframe and mini device drivers capable of getting the most out of the Mac. Its software is available for Unix V and VMS. Buttons and User Defined Windows - The Window statement as implemented in version 6 in Base SAS is an extremely powerful analog to the Input statement. Implementing it on the Mac should be a high priority. Edit fields and static text will be easy to implement but buttons pose a bit of a problem. My suggestion is that buttons be supported as Informats. "Radio." or "CheckBox." could put up a radio button and display the Label or Variable name next to the button. It could have missing=disabl~d, O=off, 1 =on attributes. "PushButt" could be similarly drawn with the Label text inside. Since there is no "command line" or "message line" in Mac windows, these could be best implemented as items in the Commands menu and dialogs, respectively. User programming of good, interactive windows in version 6 will not be trivial on either the PC or the Mac. What to do now- The Institute is not full of people just waiting for things to do. Like any business, they respond to the market andlor try to precede it. If users want to see the Institute put resources toward developing the Macintosh as a host for Base SAS andlor other products they should contact anyone they know at the Institute and "agitate" for what they want. At the very least, users should write to Marketing at SAS Institute, Inc., Box 8000, Cary, N.C. 27511-8000.

©1986 AIM. Best All Rights Reserved

613