TweetFollow Us on Twitter

MacNosy
Volume Number:2
Issue Number:3
Column Tag:Programmer's Forum

MacNosy Gets a Facelift

By Steve Jasik, Jasik Designs, Menlo Park, CA

MacWorkStation News

Apple announced the availability of MacworkStation in the January developer newsletter in a small article. I think that this is what Scully has been talking about in some of his recent speeches when he mentions the Mac as a workstation. The only problem with the MacworkStation [a software program] is that instead of making it a public domain standard, Apple is licensing the source code for $1500 to "interested" parties. My present feeling is that it would do more for Mac sales to sell the source code for a nominal fee then to license it.

MacworkStation is a host based applications environment that enables host computer software to control the Macintosh user interface on a Macintosh. The idea behind the MacworkStation is that it's a way of writing applications on a host so it can utilize the graphic interface of the Macintosh. Just think, soon we will be able to log on to MAUG or Delphi and instead of emulating a teletype or a VT 100, we will have menus and windows, etc.

MacworkStation consists of two parts, a protocol definition and a first implementation of that protocol. The protocol defines commands which are sent to the Macintosh, telling it what to do (put up a dialog box, etc). Events are defined to pass back to the host what is happening on the Macintosh. Note that much of what happens on the Mac need not be sent back to the host. The other part is a Macintosh Application that implements the protocol definition on a Macintosh. It is a generalized Macintosh application that is capable of being driven by an external process (the host). Unlike terminal emulation, the MacworkStation allows the host full access to the windows, pull down menus, dialogs, and other features of the Macintosh user interface.

I hope this gives you enough information to whet your appetite. Just think of putting the Mac user interface on your favorite mainframe application. You will have to modifiy the mainframe end of it to send the appropiate commands to the Mac. But it might just make life pleasant for us grunts out there in hackerdom.

For More information contact Apple Software licensing at (408) 973-4667 or write a letter to Scully requesting that MacworkStation be made a public standard.

New MacNosy Version 2

Over the past year MacNosy has helped many programmers learn about the Macintosh OS, and the workings of other Mac programs. Meeting some of my users at trade shows has been fun for me. Many of their suggestions have been incorporated in Version 2 [denoted as V2] of MacNosy.

The reasons for V2 of Nosy are the introduction of the 128K ROM's, and the addition of features such as the context sensative symbol substitution discussed below. This was what I started with. By the time I was finsihed coding, the mini editor has been substantially extended to include displays of procedures by double clicking on a procedure name, and the ability to interactively create seperate, mergable comment files had been added.

Nosy Does Windows!

The introduction of the Mac user interface makes Nosy much easier to use. The illustration in figure 1 shows the procedure "browser" window partially obscured by the display of a procedure. The Display menu allows one to bring up windows containing the listing of a procedure, the references to any symbol, the complete reference list of system symbols referenced, the complete reference list of trapnames referenced, the listing of all the strings in the program, the list of code blocks in the program, etc.

Fig. 1 Windows supported

Note that Nosy now lists the formal parameter list with the listing of a trap call, and for I/O calls, it knows that the register A0 holds the address of the parameter block, so in between the defination of A0 and the trap call it substitutes names of the structure variables. For a procedure that creates a stack frame with a "LINK A6" instruction, references of the form -d(A6) are to local variables, and are named "vxx_n", and those of the form d(A6) are the parameters "param1", "param2",... , and if it is a function, the function result is called "funRslt".

Other additions to the Window mode of Nosy are displays of information in its internal tables. They include a list of the structure names known to Nosy, lists of trapnames and their parameter lists, the names and values of the system global symbols, and a file listing most of constant definations for field values (event mask values and such).

Fig. 2 Symbols Displayed

New ROM Secrets

I have had a set of the new ROM's for a few weeks, and in addition to getting Nosy to disassemble them, I have made a few observations about the code in it. About 30K is devoted to resources, and to find out what they are use the "Rsrc map" list in window mode (Chicago font, WDEF0, etc). Other facts of interest are the methods used to speedup BlockMove and the QuickDraw routines. The code in Blockmove is unrolled, that is the loop body has been replicated a number of times to cut down on the number of increment and test instructions. The reason for this is that the 68000 used in the Mac is "bus limited", and anything one can do to cut down the number of instructions executed in a loop will speed it up.

Consider the loop:

    for i := 1 to 20 do a[i] := b[i]; 

by rewriting it as:

   for i := 1 to 20 by 2 do begin
      a[i] := b[i];     a[i+1] := b[i+1]
  end;

We eliminate the execution time associated with 10 increment and test instructions at the cost of extra space by duplicating the assignment statement.

Another interesting tidbit about the new ROM's are that they contain some 68020 instructions. Yes, Nosy knows about the 68020 instructions, and the FPU (68881) co-processor instructions. The new ROM's have been setup to run on a variety of machines as evidenced by some of the new EQU's.

Last November I made a "ROM comments" version of Nosy available along with a comments file that Nosy read in and merged with the disassembly listings it produces. In V2 I have extended this capability so any file can be commented, and provided a way that one can interactively create the comment files in window mode. Another little goodie that was added in conjunction with the comment mode was to "annotate" MOVEQ xx,D0 instructions with a comment of the form "; err = name" if Nosy's symbol dictionary contained an error number for the value.

Copy De-protection Techniques

Another use of Nosy is the location of copy protection code. To prefix this discussion, note that during manufacture (disk duplication), the duplicator writes the disk in a non-standard way by including non-standard data or address markers, or some other devious device so as to make the disk difficult to copy. During the execution of the program it checks the disk for the existance of this "mark", and if it finds it procedes normally. This checking code is usually refered to as copy protection code.

Fortunately for us the program itself cannot be "marked", for if it were, the segment loader could not read it, so Nosy can read the file in, and if the copy protection code can be found, and eliminated, the program is still usable. A number of the facilities in Nosy are useful in the location of copy protection code. The reference maps, lists of the resources ("please insert master disk"), the "Strings" display, the Search Mark command, and the conVert address command. The Search Mark command searchs for references of the form "$D5 ....." which are used to setup the Sony drivers for non-standard reads. If the procedure that references that data area contains references to any of the disk driver variables, then Nosy displays the message "ahoy matey, x marks the spot (base of the copy protection code)", and lists the chain of procedures that call it. One can then inspect the chain of procedures to find a suitable place to patch the code.

Trying to keep up with the changing copy protection methods is a never ending game, as evidenced by the frequent updates to Copy-To-Mac. I have sharpened some of the checks in Nosy so that it doesn't blow up or follow incorrect paths during the treewalk. This was done after I checked out some games, and found that they were putting garbage in the "CODE 0" segment.

More coming...

Other additions to V2 are the support of Desk accessories in Window mode, and the support of Switcher in all modes. Nosy is a continually evolving program to which I have been and will be adding bug fixs and new features. The current version of Nosy may be downloaded from my SIG on Delphi by those who have purchased it. At this time I am not sure what future directions Nosy will take, but some of the things under consideration are:

- to add features to the window mode so as to make it easier to use

- to make it into a debugger

- to add a symbolic simulation of the register contents along with some more flow analysis so it handles languages with register based calling sequences better, and produces a more informative reference map (knows the difference between Loads and Stores).

[MacNosy version 2 is available through the MacTutor store for $85. -Ed]

Fig. 3 "TREF Wind"

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

GIMP 2.8.14p2 - Powerful, free image edi...
GIMP is a multi-platform photo manipulation tool. GIMP is an acronym for GNU Image Manipulation Program. The GIMP is suitable for a variety of image manipulation tasks, including photo retouching,... Read more
Sandvox 2.10.2 - Easily build eye-catchi...
Sandvox is for Mac users who want to create a professional looking website quickly and easily. With Sandvox, you don't need to be a Web genius to build a stylish, feature-rich, standards-compliant... Read more
LibreOffice 5.0.1.2 - Free, open-source...
LibreOffice is an office suite (word processor, spreadsheet, presentations, drawing tool) compatible with other major office suites. The Document Foundation is coordinating development and... Read more
f.lux 36.1 - Adjusts the color of your d...
f.lux makes the color of your computer's display adapt to the time of day, warm at night and like sunlight during the day. Ever notice how people texting at night have that eerie blue glow? Or wake... Read more
VirtualBox 5.0.2 - x86 virtualization so...
VirtualBox is a family of powerful x86 virtualization products for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers... Read more
File Juicer 4.43 - Extract images, video...
File Juicer is a drag-and-drop can opener and data archaeologist. Its specialty is to find and extract images, video, audio, or text from files which are hard to open in other ways. In computer... Read more
Apple MainStage 3.2 - Live performance t...
MainStage 3 makes it easy to bring to the stage all the same instruments and effects that you love in your recording. Everything from the Sound Library and Smart Controls you're familiar with from... Read more
formZ 8.5 - Solid and surface modeler. (...
formZ pro is a powerful 3D design application featuring a variety of modeling personalities and tools with an easy to use interface to express and communicate your imagination. It is based on... Read more
PopChar 7.2 - Floating window shows avai...
We're also selling a 5-license family pack for only $25.99! PopChar helps you get the most out of your font collection. With its crystal-clear interface, PopChar provides a frustration-free way to... Read more
FileMaker Pro 14.0.2 - Powerful, easy-to...
FileMaker Pro is powerful, easy-to-use software used to create custom solutions for your business that run on iPad, iPhone, Windows, Mac and the web. Use FileMaker Pro to manage and share information... Read more

ReBoard: Revolutionary Keyboard (Utilit...
ReBoard: Revolutionary Keyboard 1.0 Device: iOS Universal Category: Utilities Price: $1.99, Version: 1.0 (iTunes) Description: Do everything within the keyboard without switching apps! If you are in WhatsApp, how do you schedule a... | Read more »
Tiny Empire (Games)
Tiny Empire 1.1.3 Device: iOS Universal Category: Games Price: $2.99, Version: 1.1.3 (iTunes) Description: Launch cannonballs and blow tiny orcs into thousands of pieces in this intuitive fantasy-themed puzzle shooter! Embark on an... | Read more »
Astropad Mini (Productivity)
Astropad Mini 1.0 Device: iOS iPhone Category: Productivity Price: $4.99, Version: 1.0 (iTunes) Description: *** 50% off introductory price! ​*** Get the high-end experience of a Wacom tablet at a fraction of the price with Astropad... | Read more »
Emo Chorus (Music)
Emo Chorus 1.0.0 Device: iOS Universal Category: Music Price: $1.99, Version: 1.0.0 (iTunes) Description: Realistic Choir simulator ranging from simple Chorus emulation to full ensemble Choir with 128 members. ### introductory offer... | Read more »
Forest Spirit (Games)
Forest Spirit 1.0.5 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0.5 (iTunes) Description: | Read more »
Ski Safari 2 (Games)
Ski Safari 2 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: The world's most fantastical, fun, family-friendly skiing game is back and better than ever! Play as Sven's sister Evana, share... | Read more »
Lara Croft GO (Games)
Lara Croft GO 1.0.47768 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.47768 (iTunes) Description: Lara Croft GO is a turn based puzzle-adventure set in a long-forgotten world. Explore the ruins of an ancient... | Read more »
Whispering Willows (Games)
Whispering Willows 1.23 Device: iOS Universal Category: Games Price: $4.99, Version: 1.23 (iTunes) Description: **LAUNCH SALE 50% OFF** - Whispering Willows is on sale for 50% off ($4.99) until September 9th. | Read more »
Calvino Noir (Games)
Calvino Noir 1.1 Device: iOS iPhone Category: Games Price: $3.99, Version: 1.1 (iTunes) Description: The film noir stealth game. Calvino Noir is the exploratory, sneaking adventure through the 1930s European criminal underworld.... | Read more »
Angel Sword (Games)
Angel Sword 1.0 Device: iOS Universal Category: Games Price: $6.99, Version: 1.0 (iTunes) Description: Prepare to adventure in the most epic full scale multiplayer 3D RPG for mobile! Experience amazing detailed graphics in full HD.... | Read more »

Price Scanner via MacPrices.net

Tablet Screen Sizes Expanding as iPad Pro App...
Larger screen sizes are gaining favor as the tablet transforms into a productivity device, with shipments growing 185 percent year-over-year in 2015. According to a new Strategy Analytics’ Tablet... Read more
Today Only: Save US$50 on Adobe Elements 13;...
Keep the memories. lose the distractions. Summer’s winding down and it’s time to turn almost perfect shots into picture perfect memories with Elements 13. And get the power to edit both photos and... Read more
1.4GHz Mac mini on sale for $449, save $50
Best Buy has the 1.4GHz Mac mini on sale for $50 off MSRP on their online store. Choose free shipping or free local store pickup (if available). Price for online orders only, in-store price may vary... Read more
12-inch 1.1GHz Gold MacBook on sale for $1149...
B&H Photo has the 12″ 1.1GHz Gold Retina MacBook on sale for $1149.99 including free shipping plus NY sales tax only. Their price is $150 off MSRP, and it’s the lowest price available for this... Read more
27-inch 3.3GHz 5K iMac on sale for $1849, sav...
Best Buy has the 27″ 3.3GHz 5K iMac on sale for $1849.99. Their price is $150 off MSRP, and it’s the lowest price available for this model. Choose free shipping or free local store pickup (if... Read more
Worldwide Tablet Shipments Expected to Declin...
Does Apple badly need a touchscreen convertible/hybrid laptop MacBook? Yes, judging from a new market forecast from the International Data Corporation (IDC) Worldwide Quarterly Tablet Tracker, which... Read more
Continued PC Shipment Shrinkage Expected Thro...
Worldwide PC shipments are expected to fall by -8.7 percent in 2015 and not stabilize until 2017, according to the latest International Data Corporation (IDC) Worldwide Quarterly PC Tracker data. The... Read more
Imminent iPhone 6s Announcement Leads To 103%...
NextWorth Solutions, with its online and in-store electronics trade-in programs including http://NextWorth.com, reports that it has experienced a 103 percent surge in quoted trade-in values over the... Read more
Weekend Deal: 13-inch Retina MacBook Pros for...
Save up to $100 on the purchase of a new 2015 13″ Retina MacBook Pro at the following resellers this weekend. Shipping is free with each model: 2.7GHz/128GB MSRP $1299 2.7GHz/... Read more
13-inch 2.5GHz MacBook Pro on sale for $999,...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $999.99 including free shipping plus NY sales tax only. Their price is $100 off MSRP. Read more

Jobs Board

*Apple* Solutions Consultant - Retail Sales...
**Job Summary** As an Apple Solutions Consultant (ASC) you are the link between our customers and our products. Your role is to drive the Apple business in a retail Read more
Product Design Engineer - *Apple* Watch - A...
**Job Summary** Product Design Engineer Job Description As a member of Apple 's Watch product design team, you will help to create the next generation of the world's Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
Software QA Engineer, *Apple* Pay Security...
Changing the world is all in a day039s work at Apple . If you love innovation, here039s your chance to make a career of it. You039ll work hard. But the job comes with Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.