TweetFollow Us on Twitter

May 97 Tips

Volume Number: 13 (1997)
Issue Number: 5
Column Tag: Tips & Tidbits

Tips & Tidbits

By Steve Sisak

File Manager Tip

If you've got a program, such as a compiler, which creates a temporary file, writes and reads from it, and then no longer needs the data, don't just close it and delete it; doing so usually causes the temporary data to be written to disk. Before closing it, call SetEOF(fRefNum, 0); This tells the disk cache that none of the data associated with the file need ever be written.

Jorg Brown
brown@connectix.com

Running m68k Codes "Compiled-in" (embedded) in a PowerPC Program

Here is a tip I bumped into recently. I wanted to run a sequence of m68k instructions (actually, to perform a system trap) on a PowerMac. Usually, this is a trivial task: compile the code in the 68k universe (for example, with in-line assembly supported by many m68k C/C++ compilers). From within a PowerPC application, one can call PowerPC glue code to the trap, which is probably present in the ‘InterfaceLib'.

Unfortunately, neither of these easy options would apply in my case: I only have a PowerPC compiler (I don't have disk space to install both 68k and PowerPC parts of the CodeWarrior). The trap I wanted to call (_ReadXPRam), is not an "official" one, thus there is no glue code for it in PowerPC libraries. Nevertheless, I found an easy way to run a sequence of 68k codes "compiled in" a PowerPC executable, and pass data in and out. By the way, this is working code that prints the contents of the xPRAM (more on xPRAM can be found at http://pobox.com/~oleg/ftp/xPRAM.html).

// Printing out the contents of the xPRAM
// The trick is that _ReadXPRam/_WriteXPRam traps are available only
// from within 68K universe. So, if this code runs in the PowerPC mode,
// we've got to switch universes before running M68K code sequences...

#include <stdio.h>
#include <MixedMode.h>

    // This is
    //    CLR.L   D0             address would be 0
    //    MOVE.W    $4(A7),D0    size -> lo word of d0
    //    SWAP  D0      size -> hi word of d0
    //    MOVEA.L  6(A7),A0where -> A0
    //    _ReadXPRam
    //    MOVEA.L (A7)+,A0 standard PASCAL epilogue
    //    ADDQ.W  #$6,A7
    //    JMP    (A0)
    //    RTS
    // This is a sequence of M68K instructions; unfortunately,
    // a PowerMac compiler doesn't understand them. So we've
    // got to assemble by hand <sigh>
    //
    // BTW, to write into xPRAM, replace 0xA051 in the sequence
    // below with 0xA052
    //pascal void read_extended_PRAM(char * where, const short size) =

static short read_extended_PRAM []=
{ 0x4280, 0x302F, 0x0004, 0x206F, 0x006, 0x4840, 0xA051, 0x205F, 0x5C4F, 
0x4ED0  };

#define COMP_NORET_2(name, a1, a2) \
 name##_procinfo = kPascalStackBased \
 | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(a1)))     \
 | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(a2)))

#define RD_ALLOC(routine) static RoutineDescriptor       \
 routine##_RD = BUILD_ROUTINE_DESCRIPTOR                 \
 (routine##_procinfo, routine)

enum {
  COMP_NORET_2(read_extended_PRAM,char *,const short)
};

void main(void)
{
  unsigned char whole_xPRAM_buffer[256];
  UniversalProcPtr u_read_extended_PRAM = 
   NewRoutineDescriptor((long (*)())read_extended_PRAM,
        read_extended_PRAM_procinfo,
        kM68kISA);
  CallUniversalProc(u_read_extended_PRAM,
  read_extended_PRAM_procinfo,
    whole_xPRAM_buffer,
  sizeof(whole_xPRAM_buffer));
  DisposeRoutineDescriptor(u_read_extended_PRAM);
 
  printf("\ncontents of the xPRAM\n");
  for(register int i=0; i<sizeof(whole_xPRAM_buffer); i+=16)
  {
    printf("\n%04x  ",i);
    for(register int j=0; j<16; j++)
   printf("%s%02x", j%4 == 0 ? " " : "", 
 whole_xPRAM_buffer[i+j]);
  }
}

Oleg Kiselyov
oleg@pobox.com

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Unite 3 3.1 - Turn websites into full-fe...
Unite 3 lets you turn websites into apps on your Mac and change the way you use your computer forever Creating your app It all starts with the new Unite creation tool. Simply enter a name for your... Read more
App Tamer 2.5.2 - Efficiently manage you...
App Tamer tames your processor-monopolizing apps and keeps them from chewing up excessive CPU time and battery life. Powered by a unique AutoStop feature, App Tamer stops each application when you... Read more
Sid Meier's Civilization IV 1.74 -...
Note: Sid Meier's Civilization IV is no longer under development and the developer provides no support for it. With Civilization IV, history as you know it, is history. Rule throughout time and... Read more
Day One 4.15.3 - Maintain a daily journa...
Day One is an easy, great-looking way to use a journal / diary / text-logging application. Day One is well designed and extremely focused to encourage you to write more through quick Menu Bar entry,... Read more
Backblaze 7.0.1.450 - Online backup serv...
Backblaze is an online backup service designed from the ground-up for the Mac. With unlimited storage available for $6 per month, as well as a free 15-day trial, peace of mind is within reach with... Read more
Visual Studio Code 1.47.0 - Cross-platfo...
Visual Studio Code provides developers with a new choice of developer tool that combines the simplicity and streamlined experience of a code editor with the best of what developers need for their... Read more
Apple Pages 10.1 - Apple's word pro...
Apple Pages is a powerful word processor that gives you everything you need to create documents that look beautiful. And read beautifully. It lets you work seamlessly between Mac and iOS devices, and... Read more
Shimo 5.0.2 - VPN client for everyone.
Shimo is the most versatile VPN client for OS X and it enables really everybody to master secure network. It supports more protocols than any other VPN application out there! CiscoVPN, AnyConnect,... Read more
Yasu 6.0.1 - System maintenance app.
Note: Yasu is not being sold anymore and is listed only for people who had purchased it in the past. Yasu was created with system administrators who service large groups of workstations in mind, Yasu... Read more
Keynote 10.1 - Apple's presentation...
Easily create gorgeous presentations with the all-new Keynote, featuring powerful yet easy-to-use tools and dazzling effects that will make you a very hard act to follow. The Theme Chooser lets you... Read more

Latest Forum Discussions

See All

Puzzle & Dragons welcomes the cast o...
Puzzle & Dragons has a history of wild crossovers, and its latest is no exception. The gates of hell are now open, and the cast of Devil May Cry have made their grand entrance into the world Puzzle & Dragons. The collaboration is set to... | Read more »
Meteorfall: Krumit's Tale is launch...
Meteorfall: Krumit's Tale is getting an iOS & Android beta test this Thursday, and you can sign up now to get involved. [Read more] | Read more »
Marvel Duel, NetEase's promising ca...
Marvel Duel, NetEase's collectable card battler, has now opened for pre-registration in Thailand, Indonesia, Malaysia, and the Philippines. [Read more] | Read more »
PUBG Mobile teams up with Yamaha for a l...
PUBG Mobile has had various collaborations with various companies since it first burst onto the scene. The latest sees the popular battle royale title teaming up with vehicle and marine products company Yamaha, meaning players can take one of... | Read more »
Marvel Super War launches its third seas...
Marvel Super War, NetEase's popular MOBA, has kicked off its third season today, introducing its Zone Invasion beta and an all-new playable superhero. [Read more] | Read more »
Brave Dungeon, Unlock Games' idle-R...
Brave Dungeon, Unlock Games' idle-RPG and auto chess title, has been downloaded over 1 million times since it launched last week. To commemorate reaching this milestone the developers have decided to host a series of in-game events. [Read more] | Read more »
Clash Royale: The Road to Legendary Aren...
Supercell recently celebrated its 10th anniversary and their best title, Clash Royale, is as good as it's ever been. Even for lapsed players, returning to the game is as easy as can be. If you want to join us in picking the game back up, we've put... | Read more »
Steam Link Spotlight - Disco Elysium
Steam Link Spotlight is a feature where we look at PC games that play exceptionally well using the Steam Link app. Our last entry was Signs of the Sojourner Read about how it plays using Steam Link over here. | Read more »
Distract Yourself With These Great Mobil...
There’s a lot going on right now, and I don’t really feel like trying to write some kind of pithy intro for it. All I’ll say is lots of people have been coming together and helping each other in small ways, and I’m choosing to focus on that as I... | Read more »
Pokemon Go's July Community Day wil...
Pokemon Go developers have announced the details concerning the upcoming Gastly Community Day. This particular event was selected by the players of the game after the Gas Pokemon came in second place after a poll that decided which Pokemon would... | Read more »

Price Scanner via MacPrices.net

New Verizon offer: $150 off on Apple Watch 5...
Verizon is offering a $150 discount on Apple Watch Series 5 models for a limited time. Use code SMARTWATCH150 at checkout to take advantage of this offer. The fine print: “New line of service and... Read more
Xfinity Mobile offers $200 off any new Apple...
New and existing customers can take $200 off the purchase of any new Apple iPhone model at Xfinity Mobile through 8/17/20. Service plan required: The fine print: “New customers and new line... Read more
Clearance 2019 13″ 1.4GHz/256GB MacBook Pro a...
Other World Computing has clearance, refurbished, 2019 13″ 1.4GHz/256GB MacBook Pros available for $1099 in both Space Gray and Silver colors. Their price is $400 off Apple’s original MSRP for these... Read more
Apple has 2020 13″ 4-Core MacBook Airs availa...
Apple has a full line of Certified Refurbished 2020 13″ 4-Core MacBook Airs available for $200 off the cost of new models. Each MacBook features a new outer case, comes with a standard Apple one-year... Read more
Apple restocks clearance 2019 13″ MacBook Pro...
Apple has restocked Certified Refurbished 2019 13″ 1.4GHz 4-Core Touch Bar MacBook Pros starting at $979 and up to $440 off original MSRP. Apple’s one-year warranty is included, shipping is free, and... Read more
US Cellular offers $300 off any new Cellular...
US Cellular is offering a $300 discount on any new Cellular Apple iPad, iPad Air, iPad Pro, or iPad mini with a new line of service. According to US Cellular, “Promotional pricing requires purchase... Read more
Sale! 16″ MacBook Pros for $400 off Apple’s M...
Amazon has 16″ MacBook Pros on sale for $400 off Apple’s MSRP today with prices starting at $1999. Shipping is free: – 2019 16″ 2.6GHz 6-Core MacBook Pro Space Gray: $1999.99 $400 off MSRP – 2019 16... Read more
Lowest price ever: Apple AirPods Pro for $214...
Amazon-owned Woot has new Apple AirPods Pro on sale for today only (Monday, July 13th) for $214.99 including free shipping for Prime members. Their price is $35 off Apple’s MSRP, and it’s the lowest... Read more
Woot is selling refurbished Apple iPhones tod...
Amazon-owned Woot is selling refurbished unlocked Apple iPhones today for as low as $99. Shipping is free for prime members. The following models are available, and note that many will sell out... Read more
Take $50 off the 64GB Apple iPhone SE at Simp...
Use coupon code SUMMER2020 at Simple Mobile through July 31, 2020, and take 20% off the 64GB Apple iPhone SE + service plan. This is in addition to their standard $50 discount on the iPhone SE.... Read more

Jobs Board

Perioperative RN - ( *Apple* Hill Surgical C...
Perioperative RN - ( Apple Hill Surgical Center) Tracking Code 62018 Job Description Monday - Friday - Full Time Days Possible Saturdays General Summary: Under the Read more
Surgical Coord/Scheduler-MG - *Apple* Hill...
Surgical Coord/Scheduler-MG - Apple Hill Medical Center - (full-time) - Days Tracking Code 62537 Job Description General Summary: Under general supervision, provides Read more
Office Assistant - *Apple* Hill Medical Cent...
Office Assistant - Apple Hill Medical Center- (part-time) - Days Tracking Code 62649 Job Description General Summary: Under general supervision, performs diversified Read more
Blue *Apple* Cafe Student Worker - Fall - P...
…to enhance your work experience. Student positions are available at the Blue Apple Cafe. Employee meal discount during working hours is provided. Duties include food Read more
Geek Squad Advanced Repair *Apple* Professi...
**769390BR** **Job Title:** Geek Squad Advanced Repair Apple Professional **Job Category:** Store Associates **Store Number or Department:** 000580-Reading-Store Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.