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

Adobe InCopy CC 2018 13.0.0.123 - Create...
InCopy CC 2018 is available as part of Adobe Creative Cloud for as little as $19.99/month (or $9.99/month if you're a previous InCopy customer). Adobe InCopy CC 2018, ideal for large team projects... Read more
OnyX 3.3.8 - Maintenance and optimizatio...
OnyX is a multifunction utility that you can use to verify the startup disk and the structure of its system files, to run miscellaneous maintenance and cleaning tasks, to configure parameters in the... Read more
Merlin Project 4.3.1 - $289.00
Merlin Project is the leading professional project management software for OS X. If you plan complex projects on your Mac, you won’t get far with a simple list of tasks. Good planning raises... Read more
DiskCatalogMaker 7.2.5 - Catalog your di...
DiskCatalogMaker is a simple disk management tool which catalogs disks. Simple, light-weight, and fast Finder-like intuitive look and feel Super-fast search algorithm Can compress catalog data for... Read more
WhatsApp 0.2.6426 - Desktop client for W...
WhatsApp is the desktop client for WhatsApp Messenger, a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS. WhatsApp Messenger is available for... Read more
Ableton Live 9.7.5 - Record music using...
Ableton Live lets you create and record music on your Mac. Use digital instruments, pre-recorded sounds, and sampled loops to arrange, produce, and perform your music like never before. Ableton Live... Read more
Maintenance 2.3.5 - System maintenance u...
Maintenance is a system maintenance and cleaning utility. It allows you to run miscellaneous tasks of system maintenance: Check the status of the hard disk Repair permissions Run periodic scripts... Read more
OnyX 3.3.8 - Maintenance and optimizatio...
OnyX is a multifunction utility that you can use to verify the startup disk and the structure of its system files, to run miscellaneous maintenance and cleaning tasks, to configure parameters in the... Read more
Merlin Project 4.3.1 - $289.00
Merlin Project is the leading professional project management software for OS X. If you plan complex projects on your Mac, you won’t get far with a simple list of tasks. Good planning raises... Read more
WhatsApp 0.2.6426 - Desktop client for W...
WhatsApp is the desktop client for WhatsApp Messenger, a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS. WhatsApp Messenger is available for... Read more

Guns Royale guide - beginner tips and tr...
If you've been itching to find a mobile battle royale game like Player Unknown's Battlegrounds, you're finally in luck. Guns Royale is a new survival shooter that takes all of the things you love about good ol' PUBG and puts it in a tidy mobile... | Read more »
What we know about Animal Crossing on mo...
At last, we'll be receiving some news about the mobile version of Animal Crossing in a special Nintendo Director at11 PM on October 24. There's been little word on the game since it was first announced, having been met with a series of delays.... | Read more »
Darts of Fury guide - how to rise in the...
Darts of Fury is a new, immensely absorbing darts game from indie studio Yakuto. It's darts in its purest form, but collectible darts and other upgrades give this game an addictive edge that's hard to shake. As your progress out of the beginner... | Read more »
ICEY (Games)
ICEY 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: ICEY is a 2D side-scrolling action game. As you follow the narrator's omnipresent voice, you will see through ICEY's eyes and learn the... | Read more »
The best new games we played this week -...
We've made it, folks. Another weekend is upon us. It's time to sit back and relax with the best new releases of the week. Puzzles, strategy RPGs, and arcade games abound this week. There's a lot of quality stuff to unpack this week, so let's hop... | Read more »
Wheels of Aurelia (Games)
Wheels of Aurelia 1.0.1 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0.1 (iTunes) Description: | Read more »
Halcyon 6: Starbase Commander guide - ti...
Halcyon 6 is a well-loved indie RPG with stellar tactical combat and some pretty good writing, too. It's now landed on the App Store, so mobile fans, if you're itching for a good intergalactic adventure, here's your game. Being a strategy RPG, the... | Read more »
Game of Thrones: Conquest guide - how to...
Fans of base building games might be excited to know that yet another entry in the genre has materialized - Game of Thrones: Conquest. Yes, you can now join the many kingdoms of the famed book series, or create your own, as you try to conquer... | Read more »
Halcyon 6: Starbase Commander (Games)
Halcyon 6: Starbase Commander 1.4.2.0 Device: iOS Universal Category: Games Price: $6.99, Version: 1.4.2.0 (iTunes) Description: An epic space strategy RPG with base building, deep tactical combat, crew management, alien diplomacy,... | Read more »
Legacy of Discord celebrates its 1 year...
It’s been a thrilling first year for fans of Legacy of Discord, the stunning PvP dungeon-crawling ARPG from YOOZOO Games, and now it’s time to celebrate the game’s first anniversary. The developers are amping up the festivities with some exciting... | Read more »

Price Scanner via MacPrices.net

27″ 3.4GHz iMac on sale for $1699, save $100
Amazon has the 27″ 3.4GHz iMac (MNE92LL/A) on sale today for $1699 including free shipping. Their price is $100 off MSRP, and it’s the lowest price available for this model (except for Apple’s $1529... Read more
Clearance 2016 15″ MacBook Pros available for...
B&H Photo has leftover 2016 15″ MacBook Pros available for up to $700 off original MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: – 15″ 2.7GHz Touch Bar MacBook Pro Space... Read more
Save $100 on 13″ MacBook Airs, prices start a...
Adorama has 2017 13″ MacBook Airs on sale today for $100 off MSRP including free shipping. Adorama charges NY & NJ sales tax only: – 13″ 1.8GHz/128GB MacBook Air (MQD32LL/A): $899, $100 off MSRP... Read more
1.4GHz Mac mini available for $399, $100 off...
TigerDirect has the 1.4GHz Mac mini on sale today for $399 including free shipping. Their price is $100 off MSRP, and it’s the lowest price available for this model. Although currently out of stock,... Read more
21″ 2.3GHz iMac on sale for $999, save $100
MacMall has the 21″ 2.3GHz iMac (MMQA2LL/A) on sale today for $999 including free shipping. Their price is $100 off MSRP, and it’s the lowest price available for this model. Read more
12″ iPad Pros on sale for $50 off MSRP, no ta...
Adorama has 12″ iPad Pros on sale today for $50 off MSRP. Shipping is free, and Adorama charges sales tax in NY & NJ only: – 12″ 64GB iPad Pro: $749, save $50 – 12″ 256GB iPad Pro: $899, save $50... Read more
9″ iPads on sale for $30 off, starting at $29...
MacMall has 9″ iPads on sale for $30 off including free shipping: – 9″ 32GB iPad: $299 – 9″ 128GB iPad: $399 Read more
Apple restocks full line of refurbished 13″ M...
Apple has restocked a full line of Apple Certified Refurbished 2017 13″ MacBook Pros for $200-$300 off MSRP. A standard Apple one-year warranty is included with each MacBook, and shipping is free.... Read more
13″ 3.1GHz/256GB MacBook Pro on sale for $167...
Amazon has the 2017 13″ 3.1GHz/256GB Space Gray MacBook Pro on sale today for $121 off MSRP including free shipping: – 13″ 3.1GHz/256GB Space Gray MacBook Pro (MPXV2LL/A): $1678 $121 off MSRP Keep an... Read more
13″ MacBook Pros on sale for up to $120 off M...
B&H Photo has 2017 13″ MacBook Pros in stock today and on sale for up to $120 off MSRP, each including free shipping plus NY & NJ sales tax only: – 13-inch 2.3GHz/128GB Space Gray MacBook... Read more

Jobs Board

*Apple* Professional Learning Specialist - A...
Job Summary The Apple Professional Learning Specialist is a full-time position for one year with Apple in the Kanawha, WV area. This position requires a high Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Project Engineer, *Apple* Education Profess...
Project Engineer, Apple Education Professional Services Job Number: 113143353New York City, New York, United StatesPosted: Oct. 17, 2017Weekly Hours: 40.00 Job Read more
Commerce Software Engineer, *Apple* Media P...
Commerce Software Engineer, Apple Media Products Job Number: 113092072New York City, New York, United StatesPosted: Oct. 19, 2017Weekly Hours: 40.00 Job Summary With Read more
Engineering Manager, *Apple* Retail Enginee...
# Engineering Manager, Apple Retail Engineering Job Number: 58139948 Santa Clara Valley, California, United States Posted: 20-Oct-2017 Weekly Hours: 40.00 **Job Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.