TweetFollow Us on Twitter

Aug 89 Mousehole
Volume Number:5
Issue Number:8
Column Tag:Mousehole Report

Mousehole Report

By Rusty Hodge & Larry Nedry, Mousehole BBS

From: Caro

Subject: mac logic board

I have a problem with my Mac+ logic board (I already KNOW it’s not RAM or any peripheral)

--on power-up it puts up a black screen and sad Mac

--doesn’t even get as far as the RAM test

--and posts an error code of 030020.

Apple doesn’t support chip level repair, and I really don’t want to pay 350 plus trade in for what is probably a 2.00 chip. Any Mac hardware hackers out there? I’m a programmer and my boss is equally expert with hardware and software. Anyone know what this error message means? Other handy hints? Where to get a complete schematic?

From: Smugwimp

Subject: mac logic board

The chances are it is one of your ROM chips. You should have snap in chips as far as the ROM goes. Call “Pre-Owned Electronics” (sorry I don’t have #). They have ads in the “Computer Shopper” and sell them for around $125 a set. If you do change them yourself

a) Be certain you are out of warranty

b) is Applecare not an answer ?

c) if you DO IT, be SURE to observe anti-Static procedures so as not to blow the rest of your Mac replacing one section. --> SmugWimp

From: Ctli

Subject: Extended Keyboard

I’m writing an application that will use the extended keyboard. How can I tell if F1 - F4 is pressed in the event loop? Values returned by GetNextEvent are 27A10, 27810, 26310, 27610 respectively. In a dialog hook routine, when F1 - F4 are pressed, Item contains the value $1010.

From: Shunt

Subject: Xcmds and code greater than 32K

HELP!!

I’m in the process of writing a series of XCMDs for HyperCard; having got right through to the 49th - now I’ve have run into problems.

The code for this particular command is too large for a standard 32767 byte segment and, on linking, I have a stream of error 48 messages whereby the PC-relative edit offset is out of range (jump table calls greater than 32k away). I have tried reorganizing the procedures, functions and include files- unfortunately I cannot strip out any more of the code. I can set the segment size to accommodate the code OK, and have tried -srt option on linking and -b option on compiling: All to no avail.

Any suggestions please! These Xcmds will also be duplicated as 4D Externals so any Help on this front would also be greatly appreciated.

Many thanks Doug Hunter.

From: Craigk

Subject: Xcmds and code greater than 32K

I had a similar problem programming the Manhattan ZIP Code Locator. In trying to handle over 800 streets and thousands of addresses, I just resorted to 3 XCMDS. If what I wanted didn’t get done in the first one, I just called the next one. I realize that this is not a direct answer to your question, but that is how I worked around the 32K limit.

From: Spud

Subject: XCMDs with CODE?

I was about to write an XCMD that calls an external CODE resource, when someone informed me that HyperCard can’t do that!!! Is it true?!?

From: Rguerra

Subject: KeyCode Question

I need to translate a keyCode (obtained from the EventRecord message field using the KeyCodemask and BitAnd) BACK into an ASCII character. I can’t just get it from the Event message because modifier keys will give you strange characters and I just want exactly what’s on the key that was pressed. I tried using KeyTrans but I can’t seem to make it work. Can anyone help me with this!?!? I’m up against a deadline and I need to get this problem solved. Thanks!

Rich

From: Rguerra

Subject: KEYTRANS AGAIN

As it turns out, the solution to my keyCode back to ASCII conversion question is simple: The trick is to save the value of the “State” variable after calling KeyTrans the first time.

KeyTrans(transData, keycode, state);

This call returns a LONGINT that contains (among other things) the ASCII code of the key you’ve just pressed. No more problems!

Rich

From: Wenbrown

Subject: List Manager Follies

Does anyone out there use List Manager?? I have been struggling to write a simple two-dimensional list for data display and entry. I have succeeded in using Lnew to create a list and attach it to a window. I have used Lsize to adjust the size of the list when the window is resized, and several other standard tricks. Here’s the problem: When the mouse is clicked inside the content region, my program crashes with an “Address error.” The offending statement is:

TempBoolean:= Lclick (NewPoint, event.modifiers, ListHand)

Amazingly, this statement works fine when the mouse is clicked inside the scroll bar! The list scrolls beautifully. But when it’s clicked inside the displayed list itself, the Address Error occurs. I have checked the values of NewPoint.v, NewPoint.h, event.modifiers and ListHand (the handle to my list), and all values are reasonable! My program is translated from a Lightspeed C program which appeared in MacTutor in March 1989: “How to Write a Spreadsheet in LS C.”

From: Skaros

Subject: VBL inits

I’ve been trying to install a VBL at init time but have not been successful so far. My strategy has been to compile a simple VBL(something that posts an APP1 event) as a ‘CODE’ resource. Then my installer sets up a test window and installs the VBL in the following way: 1)get the resource,2)lock the handle, 3)get its size, 4)allocate a block of memory with a ‘newptr’ call, 5)do a ‘blockmove’ of the dereferenced locked handle of the ‘CODE’ resource into the newly allocated block of memory. Of course, newptr gives me a block in the application heap, but this is just a pilot program. I could easily define a ‘newsysptr’ call with inline code to get me a block in the system heap. Anyway, my VBLinstalls, interrupts once and then nothing. When I quit my installer, I get a ‘qerr’ this means my VBL isn’t in the queue.My guess as to what is happening is that my vbl counter that is supposed to be initialized during every cycle of the VBL task with the statement--vbl_rec.vblCount :=10; really isn’t working. After all , how can a VBL task that is moved into a heap with ‘blockmove’ ever know where its VBL record is. Therefore,it doesn’t reset its counter and therefore it expires after one interrupt. How do I pass the address of the VBL record used in the installer program to the VBL task so that after the VBL is installed, it resets its counter?Or, is there another way to set up a VBL task as an init?

Stefan Karos

From: Rdclark

Subject: Window Mgt, THINK Pascal 2.01?

There are several common problems you can have when resizing a window. The First, the 4 lines you’ll need should look like this:

{1}

SetRect(sizeLimits, 32, 32, screenBits.bound.right,
screenBits.bounds.bottom);
result := GrowWindow(whichWindow, theEvent.where, sizeLimits);
if (result <> 0) then
 SizeWindow(whichWindow, LoWord(result), HiWord(result), TRUE);

Now, for the problem areas: 1) your “sizeLimits” rect is undefined, or has a minimum size (the first 2 numbers) of (0,0). 2) TheEvent.where is given to you in GLOBAL coordinates, which GrowWindow also expects. Are you calling “GlobalToLocal”, perchance? (If so -- don’t!) 3) LoWord() and HiWord() could be reversed. 4) You’re not checking to see if the result is non-zero (0 = “no change!) before calling SizeWindow. 5) The window’s defProc is set to be a NoGrowDocProc (which sounds like something you’d order at a Chinese restaurant) instead of the more common “DocumentProc”.

Enough of a hint?

...Richard Clark

Apple Developer University

From: Wenbrown

Subject: List Manager Scrolling

I am looking for a “hook” that will enable my program to respond to scrolling of a two-dimensional List, so I can rewrite some column and row headings on the screen *as the list is scrolling*. List Manager’s LCLICK function has a hook, stored in the LClikLoop field of the list, that the programmer can point to a custom routine. Inside Macintosh IV says that the routine will be called while the mouse is clicked or held down in the list rectangle or the scroll bars, but it does NOT work properly in the scroll bars. The programmer’s custom routine only gets called when the mouse is clicked in the list’s visible rectangle, not the scroll bars.

This problem is discussed in the article “How to Write a Spreadsheet” in the March 1989 issue of Mac Tutor. The author says this problem can be fixed by installing a pointer (to your custom routine) in the system global variable DragHook ($9F6). Well, I finally succeeded in installing the pointer, but it only works in the wrong situations: My routine is called while the scroll bar’s “thumb” is being clicked or dragged, but it is *not* called while the mouse is held down in the scroll bar’s “arrows.” Thus, I have the same old problem: I can’t update my row and column headings until the mouse is released. This looks tacky and confusing to the user. Is there some other approach to solve this problem, or do I have to give up on List Manager and display all my data using QuickDraw?

From: Jimm

Subject: List Manager Scrolling

It seems to me that I read a tech note somewhere that says “the list manager ain’t a spreadsheet interface so don’t use it as one!”. Not that it’s much consolation but you may be trying to stretch the manager farther than it wants to go which means it will probably crash with the next system update.

From: Rdclark

Subject: Extended Keyboard

You’ll need to look at the “key code” byte of TheEvent.message (which is the second byte from the right -- you’re presently looking at the rightmost byte, which holds an ASCII code.) Look at IM V-190 for the mappings. To do this, in Pascal you’d say “BitAnd(theEvent.message, $FF00) div $100” (I think there’s a symbolic constant for the byte, instead of $FF00, but I can’t remember its name), or in C, it’s “(theEvent.message & 0xFF00) >> 8”

...Richard Clark

Apple Developer University

From: Ivano

Subject: Help Compiler using Pascal

I am trying to use Robert Monsen Us Help Compiler in a MPW Pascal program. The calling procedure written in TCU is as follows:

ShowHelp()
{
Handle rsrcH;
ProcPtr pp;
if (rsrcH = GetResource(CODE, 2000))
 {
   HLock(rsrcH);
   pp = (ProcPtr) *rsrcH;
   (*pp)();
   ReleaseResource(rsrcH);
 }
}

In rewriting this to pascal, I am having trouble with the (*pp)(). If my limited C experience is correct, what I need to do is go to the address of CODE 2000 pointed to by pp. Pascal isn’t to friendly with ProcPtr’s, any suggestions would be appreciated.

Ivan L. Ossander

From: Gurglekat

Subject: Help Compiler using Pascal

Here’s what I use to jump to the external transfer protocol code resources in my terminal program:

{2}

procedure LaunchProto (transType: resType);
 var
 protoName: Str255;
 theProto: Handle;
 theProtoID: integer;
 
 procedure CallProto (serialInput, serialOutput: integer;
                                            itsID: integer;
                                            macBinary: boolean;
                                            p: Ptr);
 inline
  $205F, $4E90;
 
 begin
 GetItem(GetMHandle(theMenu), theItem, protoName);
 theProto := GetNamedResource(transType, protoName);
 if theProto = nil then
 Message(noProtocol, cautionIcon)
 else begin
 GetResInfo(theProto, theProtoID, transType, protoName);
 HLock(theProto);
 CallProto(serialInput, serialOutput, theProtoID, true, theProto^);
 HUnlock(theProto);
 HPurge(theProto);
 end;
 end;

I’d show you the original note from THINK I got on CompuServe, but CIS might take offense.

From: Macdts

Subject: List Manager Scrolling

Yes, it’s Tech Note 203 “don’t abuse the Managers”. It would be better to write your own LDEF, or avoid the List Manager all together.

From: Bryce

Subject: Setting current folder

I am using a filter from SFPPutFile to allow the user to create a new folder. Does anyone know how to enter the created folder from within the filter? The code I’m using is:

function MyPutFileDlg (item: INTEGER; theDialog:
DialogPtr) : INTEGER;
{ This filter is used to allow the user to create a new folder from within 
SFPPutFile }
const
    CurDirStore = $398;
var
    topLeft : Point;
    curDirPtr : ^Longint;
dirParmBlk : HParmBlkPtr;
begin
    case item of
        -IntOne,getOpen : begin
                firstCall := true;
                MyPutFileDlg := item;
            end;
        newFoldButton : begin { RNew FolderS button pressed }
                topLeft.h := 90; { top left horiz coord for Put File 
dialog }
                topLeft.v := 75; { top left vert    “    “   “    “  
 << hit any key >>”    }
                firstCall := true;
                SFPPutFile(topLeft,’Enter New Folder name:’,’Empty Folder’, 
NIL,Reply,NewFoldID,@MyFilter);
                firstCall := true;
                if Reply.good then begin { Create the designated folder 
}
                    curDirPtr := Pointer(CurDirStore);
                    putFileVRefNum := Reply.vRefNum;
                    with dirParmBlk^ do begin
                        ioCompletion := NIL;
                        ioNamePtr := @Reply.fName;
                        ioVRefNum := putFileVRefNum;
                        ioDirID := curDirPtr^;
                    end;
                    theErr := PBDirCreate(dirParmBlk,false);
                    MyPutFileDlg := 101; { Tell SFPPutFile to update 
file list }
                end;
            end;
        otherwise
            MyPutFileDlg := item; { Pass control back to SFPPutFile }
    end; { case }

I’ve seen this done in Raymond Lau’s SFVol init. Bryce

From: Peter

Subject: Serial.LSP

In the comments for this code, you said to put the SERD resource into the system folder. Unfortunately, I don’t have that. Can it be sent up the line to me? Second, if I want to send a 3 char string out the modem port, does char[0] change to char[2] as a packed array? Thanks for the help.

Peter

P.S. I am using TurboPascal.

From: Nicks

Subject: WMgrPort ?’s

How do DA’s such as BackDrop update the whole screen? I wanted to try the Disk icon INIT from the May MacTutor in real time, changing the icon, then informing the Mac that the screen was invalid. I tried getting the WMgrPort (yeah, I know this is a no-no, but I’m just spelunking for fun, not publishing), setting the port to what was returned, getting the portRect, then calling InvalRect with it. Boom! Same thing happens when I get the GrayRgn and call InvalRgn.

Sample:

     GrafPtr oldport, wport;
     Rect   r;
     GetPort(&oldport);
     GetWMgrPort(&wport);
     SetPort(wport);
     r = wport->portRect;
     InvalRect(&r);
     SetPort(oldport);

The code appears to blow up in the InvalRect call in the ROM in EqualRgn with a odd address. Am I missing something stupid, or is there another approach to doing this? Thanks in advance.

From: Batista

Subject: My Cdev is a little confused.

The Control panel may not be using globals, but, if it is, then it is using them of A4. That of course is of no help and you should not even try to use anything that belongs to the control panel. If they happen to have some globals addressed of A4 you don’t even know what they are. The problem you had with the pattern would apply to anything that is one of the “QuickDraw Globals” in an application such as color and patterns. The easiest way to get around this things is to make your own variables when you need them. The AppleTalk project of LSC makes a socket listener to get requests, and it is inside the code, so don’t try doing things with AppleTalk in resource that may get moved like cdev’s.

Ricardo Batista

From: Macww

Subject: My Cdev is a little confused.

Make sure you take a look at both Tech Notes 180 and 208 if you hope to do SetupA5() and RestoreA5() in a MultiFinder environment. I think they both used to be on Mousehole Download. I am just now trying to get used to this new BBS host software, so I haven’t check the files section to see if those tech notes are posted. If not, leave a note requesting them.

From: Pkram

Subject: file busy

I have adapted the text editor in “Using the Macintosh Toolbox with C” for Aztec C 3.6b. However whenever I save a document created by this editor, other applications such as Word 3.01 or Edit, cannot open the document without getting an alert stating that the file is busy and can only be opened with read only permission. I then used MacTools and checked the busy flag. The file according to the busy flag, was NOT busy. Where in IM can I find the answer to this problem?

From: Fischer

Subject: Editing in a scroll back buffer

I am currently developing a DA with X/Y Modem file transfer, Hayes compatible modem control, and Scroll Back Buffer, in MPW C. I have reached the point where I have to implement a text selection (Copy, Cut, Paste ...) in my Scroll Back Buffer. I haven’t found any concrete idea on how to do this in MacTutor. I feel frustrated because I have to ‘reinventer la roue’ for this. Is there anybody here who could help me ? Thank you. Pierre.

From: Mike

Subject: C-ing is not believing!

I have recompiled some XFCN’s written in LightSpeed C 2.0 using LSC 3.0. They don’t work! Although they compile OK, the call backs to Hypercard don’t seem to work all the time. For example,

paramPtr->returnValue = (Handle) CopyStrToHand(“A string”);

always gives an empty hypercard XFCN result. Anyone have any ideas about what on earth I am doing wrong?

From: Siegel

Subject: C-ing is not believing!

In TLSC 3.0 and later, strings are treated as global variables, rather than being placed pc-relative. Therefore, you need to do a RememberA0() and a SetupA4() at the beginning of your main, and a RestoreA4() at the end. The same applies for floating-point constants.

From: Apage

Subject: Smalltalk/V Primitives

I am about to embark on some development with MPW assembler to generate a new set of floating point primitives for Smalltalk/V Mac. By using TMON to set a trap intercept for _FP68K I found that Smalltalk is still trapping through SANE to get to the 881 processor. I am interested in seeing if I can generate faster primitives in Assembly that will address the coprocessor directly. I am doing this both to see if there is benefit to be gained and to get the feel of the interface in Smalltalk and its primitives. Would anyone be interested in my results and experiences?

From: Chiefauto

Subject: LASERWRITER

HAVING JUST PURCHASED A LASERWRITER IINT, I AM NOW FACED WITH A PAGE COMING OUT EVERY TIME I TURN THE MACHINE ON. I REMEMBER A UTIL THAT ENABLED A PERSON TO DO AWAY WITH THAT ANNOYANCE. CAN SOMEONE U-L IT?, IF NOT, WHERE COULD I PURCHASE IT? ALSO IS THERE A UTIL THAT RESETS THE COUNTER?

From: Macdts

Subject: LASERWRITER

Simply leave the paper tray out, or just slightly out, when turning the printer on. I don’t recommend resetting the page counter. It has a meaning, just like the odometer of your car. Setting it to a wrong number does not do any good.

Jim Reekes E.O.,

Macintosh Developer Technical Support

From: Rdclark

Subject: LASERWRITER

There’s another way to do it, and that’s with the “Widgets” application which comes with CE Software’s Disktop. Or, if you have a PostScript downloader program, try this:

  serverdict begin
  0 exitserver
  statusdict begin
  false setdostartpage

...Richard Clark

Apple Developer University

From: Noisy

Subject: SysEnvirons help?

OK: so not all of us rush out and buy MPW 3.0 as soon as it’s released. Can anyone help out a (starving) LSC coder by revealing the SysEnvirons codes for the MacSE/30 & MacIIcx? Pretty please?

From: Batista

Subject: My DA drawing don’t work! (sob)

Check the messages on C, there was a similar case. The work around is to declare your own gray pattern.

Ricardo Batista

From: Shell

Subject: Scrolling

Anyone out there have some good generic scrolling code? I want something that will do windows like the Finder’s and works by shifting the ORIGIN of the port, not merely blitting and Subject-locating things. I need it this way so that I can get object-oriented forms and nested forms to work properly. Any help would be greatly appreciated.

Mail to me here, or as acb@eastek.oz if you are on the Net.

Thanks in advance,

Shell

From: Sped

Subject: Dialog Redrawing

In every serious application I’ve ever written, I’ve run into this problem. Inevitable, I write a “FlushUpdates” procedure that goes thru each of my windows and redraws those that have non-empty updateRgn’s. For dialogs (modal and otherwise), a call to DrawDialog does the trick. Clears up all kinds of ugliness, such as when one modal dialog appears in front of another.

From: Skarosx

Subject: lhe

This is a neat board. A lot of programming info in one place is a time saver. I downloaded some of the code snippets and have been trying to install a VBL task as init. Well, I ran into a small problem. To get a VBL to live in the system heap, it seems I have to get a pointer to a block in the Sysheap. Then I can blockmove the VBL code to that pointer. After speaking with the helpful folks at Symantec, the call one needs to make in pascal has to be defined in assembly or with inline code. No problem, it is:

{3}

Function newPtrSys (N: longint): ptr;
Inline
$201F, $A51E, $2E88;

Mucking around with the system heap got me nowhere, so, I tried to get the technique to work with the application heap. First, an innocuous VBL task (something that just posts an APP1 event) is compiled separately as a code resource with a specific ID. Second, an application is written to install this VBL code in the application heap, and then the application checks for APP1 events in its event loop. The commands to set up the VBL are:

{4}

resH := GetResource(‘CODE’, 600);{This TcodeT resource}
{with ID = 600 contains the compiled VBL task }
  Hlock(resH);{Lock the handle}
resSize:= GetHandleSize(resH);
 Aptr := newptr(resSize);{Get a pointer on the appHeap to
a block big enough to accomodate theTcodeUresource}
  Blockmove(resH^, Aptr, resSize);{Move the TcodeU tothere}

The rest of the application finishes setting up a simple menu and window and the VBL is set up with:

{5}

VBL_ptr := @vbl_rec;
With vbl_rec Do
  Begin
    qType := ord(vType);
vblAddr := resH^;{the VBL task is a code resource
{moved into the address at sysptr}
vblCount := 60;
vblPhase := 1;
  End;
os_result := Vinstall(VBL_ptr);

With this program , all I get is one interrupt. Quitting the app gives me ‘qerr’ ,i.e., the task is not installed! Help! Stegfan Karos

From: Nicks

Subject: VBL

Sounds like you’re not setting the vblCount back to a non-zero value inside your VBL task. A quote from IM: “VBLCount specifies the number of ticks between calls to the task. This value is decremented each [tick]” until it is zero, then the VBL task will be called “The task must reset VBLCount, or its entry will be removed from the queue after it has been executed.”

From: Skaros

Subject: VBL

Right! My guess as to what is happening is that my vbl counter that is supposed to be initialized during every cycle of the VBL task with the statement--vbl_rec.vblCount := 10; really isn’t working. After all , how can a VBL task that is moved into a heap with ‘blockmove’ ever know where its VBL record is. Therefore, it doesn’t reset its counter and therefore it expires after one interrupt. How do I pass the address of the VBL record used in the installer program to the VBL task so that after the VBL is installed, it resets its counter? Or, is there another way to set up a VBL task as an init?

Stefan Karos

From: Rdclark

Subject: SysEnvirons help?

Look at Tech Note 129. The codes are:

  { in the MachineType field }
  envMacIIX = 5;
  envMacIIcx = 6;
  envSE30 = 7;

and the new CPU type:

  env68030 = 4; { in the “processor” field }

...Richard Clark

Apple Developer University

From: Rdclark

Subject: Scrolling

Using SetOrigin() is probably the _worst_ possible way to do scrolling, as it causes your sroll-bars to flicker and generally behaves in strange ways. If you are using object-oriented programming, as you imply, it should be easy to base your display objects on a “display device” type which contains the (virtual) top-left of the GrafPort and redraw all objects in relationship to that. Still, if you still want to use the SetOrigin method, drop me a line at rdclark@applelink.apple.com (or here as “rdclark”), and I’ll dig up some code.

...Richard

From: Gurglekat

Subject: Souping up TE

Don Brown managed to soup up TextEdit for his terminal DA MockTerminal. I’ve put trap breaks on all the relevant TE traps, and he seems to be using TEInsert for everything but backspaces and TEKey for backspaces. I don’t know why he made the distinction, because there doesn’t seem to be any speed benefits. Maybe there are on the 8 MHz Macs. But in any case, when I use the same strategy in my code, the screen i/o can barely keep up with 300 baud, if that. What’s DB’s secret? I sure don’t want to write a TE clone.

From: Frankh

Subject: Souping up TE

If you want to use TextEdit to display data any faster than 300 baud, you’ll have to buffer the incoming data, giving time for TE to digest it. The easiest way to do this is to increase the serial port input buffer size to something reasonable - the default 64 byte buffer just isn’t enough. Use SerSetBuf to increase this buffer to 512 or 1K bytes. Don Brown is probably using TEKey to backspace over text that already has been displayed and is no longer in his buffer. It’s the easiest way.

From: Gurglekat

Subject: Souping up TE

Hmmm. Well, what I meant about the distinction was that I wondered why he used anything but TEKey. Whatever. Now, what’s this about buffering data? I’ve got a 10K serial buffer. Should I only get characters from it when it’s full to a certain level and then get a lot of them? At the moment I’m getting a character each time through the main event loop. And emptying the buffer entirely each time through the main event loops doesn’t seem to help either.

From: Frankh

Subject: Souping up TE

If you use the SerSetBuf function to increase the serial port buf, then all you have to do is do a SerGetBuf (which returns the # of bytes in the input buffer) once through the main event loop. If the input buffer (the one increased with SerSetBuf) has data in it, just read off however many bytes were received (usually into another buffer) and process them at your leisure. Since you may end up with more than one character, its easier to display this data by using TEInsert. Usually, you’ll handle backspace and other control characters before you sent the buffer out to TEInsert, but if you only have a BS in the buffer, then you have to use TEKey to make TextEdit backspace for you. TEInsert ignores BS.

- Frank

From: Gurglekat

Subject: Souping up TE

Not only does it WORK, but it works in a neat way. As soon as I added the scrollbar for the scrollback buffer, I had to update the scrollbar control bar max and the value to match every time a new line came in. So now, instead of the output jerking along like some sad approximation of multitasking, most of the buffering goes on during the new line sequence, so lines appear all at once but partial lines are also taken care of! Thanks again.

From: Inbox

Subject: Scrolling

I’m also very much interested in getting some good scrolling code. I’m writing a spreadsheet-type of thing, and I can’t redraw the whole screen every time - takes too long. So, please e-mail any scrolling code at all. Thanks in advance,

_inBox_

From: Mrteague

Subject: high speed modems

It really depends on how much money you have to spend - if money is not the biggest object, then go for the Telebit Trailblazer line of modems - which range from a 9600/PEP model to dual 19200/PEP/V.32 model with prices to match. It has a 68000 in it, to give you an idea of it’s power. They have Sysop programs on a regular basis, with retail prices about the $1000-$1500 mark, and Sysop prices about 40% off. These modems will pay for themselves in no time, if you are heavily into communications. Slightly cheaper I would recommend the USR 9600 Courier HST - USR make very good modems, and have an excellent service record and agressive Sysop program. Again they make a range of products, such of which are supposedly compatible with Telebit. Retail around the $800-$1400 mark, with same sort of Sysop pricing as Telebit. They run a support BBS (I can’t remember the number offhand). Telebit can be reached at 1-800-TELEBIT (voice), I’m sure someone can give you the number for USR, or I will next time. I have both these modems, and I have extensive experience with them and others, so if you have any questions, feel free to ask.

From: Gurglekat

Subject: LocalTalk Zones

I’m looking for an inexpensive way to create LocalTalk zones. Apparently, I need to buy some hardware, but if all I want to do is divide up some zones to manage traffic between work groups better, it doesn’t seem like I ought to have to buy a Hayes InterBridge. We have a patch board where all the networks converge physically, so this doesn’t have to be a long-distance thing, either.

From: Daveplatt

Subject: JumpStart 1.0

I’d recommend being very cautious with JumpStart these days. If you use the option that moves the resource map to the beginning of the resource fork, then any further modification to the resource fork can (I’m told) cause the entire fork to become corrupted. JumpStart should probably _not_ be used to accelerate any application that stores any sort of configuration information in its own resource fork, or any application for which the MultiFinder configuration information will need to be modified (since this is stored as a resource, too). As Greg said, it can be useful... but use it CAREFULLY!

From: Mrteague

Subject: Font utility

Apple’s LaserWriter Font Utility will do exactly this for you - only problem is it only works with LaserWriter II models, and it is suggested for speed that you use an NTX and preferably put the fonts you want listed, on a hard disk connected to the NTX.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Tunnelblick 3.8.2a - GUI for OpenVPN.
Tunnelblick is a free, open source graphic user interface for OpenVPN on OS X. It provides easy control of OpenVPN client and/or server connections. It comes as a ready-to-use application with all... Read more
calibre 4.17.0 - Complete e-book library...
Calibre is a complete e-book library manager. Organize your collection, convert your books to multiple formats, and sync with all of your devices. Let Calibre be your multi-tasking digital librarian... Read more
MacPilot 11.1.4 - $15.96
MacPilot gives you the power of UNIX and the simplicity of Macintosh, which means a phenomenal amount of untapped power in your hands! Use MacPilot to unlock over 1,200 features, and access them all... Read more
Transmission 3.00 - Popular BitTorrent c...
Transmission is a fast, easy, and free multi-platform BitTorrent client. Transmission sets initial preferences so things "just work", while advanced features like watch directories, bad peer blocking... Read more
Doom 3 1.3.1 - First-person shooter acti...
A massive demonic invasion has overwhelmed the Union Aerospace Corporation's (UAC) Mars Research Facility, leaving only chaos and horror in its wake. As one of only a few survivors, you must fight... Read more
Box Sync 4.0.8004 - Online synchronizati...
Box Sync gives you a hard-drive in the Cloud for online storage. Note: You must first sign up to use Box. What if the files you need are on your laptop -- but you're on the road with your iPhone? No... Read more
LibreOffice 6.4.4.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
Day One 4.14 - Maintain a daily journal.
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
MenuMeters 2.0.7 - CPU, memory, disk, an...
MenuMeters is a set of CPU, memory, disk, and network monitoring tools for Mac OS X. Although there are numerous other programs which do the same thing, none had quite the feature set I was looking... Read more
War Thunder 1.97.2.19 - Multiplayer war...
In War Thunder, aircraft, attack helicopters, ground forces and naval ships collaborate in realistic competitive battles. You can choose from over 1,500 vehicles and an extensive variety of combat... Read more

Latest Forum Discussions

See All

SINoALICE, Yoko Taro and Pokelabo's...
Yoko Taro and developer Pokelabo's SINoALICE has now opened for pre-registration over on the App Store. It's already amassed 1.5 million Android pre-registrations, and it's currently slated to launch on July 1st. [Read more] | Read more »
Masketeers: Idle Has Fallen's lates...
Masketeers: Idle Has Fallen is the latest endeavour from Appxplore, the folks behind Crab War, Thor: War of Tapnarok and Light A Way. It's an idle RPG that's currently available for Android in Early Access and will head to iOS at a later date. [... | Read more »
Evil Hunter Tycoon celebrates 2 million...
Evil Hunter Tycoon has proved to be quite the hit since launching back in March, with its most recent milestone being 2 million downloads. To celebrate the achievement, developer Super Planet has released a new updated called Darkness' Front Yard... | Read more »
Peak's Edge is an intriguing roguel...
Peak's Edge is an upcoming roguelike puzzle game from developer Kenny Sun that's heading for both iOS and Android on June 4th as a free-to-play title. It will see players rolling a pyramid shape through a variety of different levels. [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 »
The Magic Gladiator class arrives in MU...
The Magic Gladiator class is now available in MU Origin 2 following the most recent patch. It also marks the start of Abyss Season 11 and the introduction of Couple Skills and Couple Dungeons. [Read more] | Read more »
The 5 Best Racing Games
With KartRider Rush+ making a splash this past week, we figured it was high time we updated our list of the best mobile racing games out there. From realistic racing sims to futuristic arcade racers (and even racing management games!), check out... | Read more »
KartRider Rush+ Guide - Tips for new rac...
KartRider Rush+ continues to be a surprisingly refreshing and fun kart racer that's entirely free-to-play. The main reason for this is just how high its skill ceiling is. Check out the video above if you're curious to know what top level play looks... | Read more »
KartRider Rush+ might be good, actually?
It's hard to find good racing games on mobile. Most of them are free-to-play, and free-to-play racers generally suck. Even Nintendo couldn't put together a competent Mario Kart game, opting instead for a weird score chaser that resembles--but feels... | Read more »
LifeAfter, NetEase's popular surviv...
A new map will be making its way into NetEase's popular survival game LifeAfter. The map is set to arrive on May 28th and will introduce a volcano that's teetering on the verge of eruption, bringing a host of added challenges to the game. [Read... | Read more »

Price Scanner via MacPrices.net

Apple restocks 2019 MacBook Airs starting at...
Apple has clearance, Certified Refurbished, 2019 13″ MacBook Airs available again starting at $779. Each MacBook features a new outer case, comes with a standard Apple one-year warranty, and is... Read more
Apple restocks clearance Mac minis for only $...
Apple has restocked Certified Refurbished 2018 4-Core Mac minis for only $599. Each mini comes with a new outer case plus a standard Apple one-year warranty. Shipping is free: – 3.6GHz Quad-Core... Read more
Apple’s new 2020 13″ MacBook Airs on sale for...
B&H Photo has Apple’s new 2020 13″ 4-Core and 6-Core MacBook Airs on sale today for $50-$100 off Apple’s MSRP, starting at $949. Expedited shipping is free to many addresses in the US. The... Read more
B&H continues to offer clearance 2019 13″...
B&H Photo has clearance 2019 13″ 4-Core MacBook Pros available for up to $300 off Apple’s original MSRP, with prices starting at $1149. Expedited shipping is free to many addresses in the US. B... Read more
Memorial Day Weekend Sale: Take $300 off thes...
Apple resellers are offering $300 discounts on select 16″ MacBook Pros as part of their Memorial Day Weekend 2020 sales. Prices start at $2099: – 16″ 2.6GHz 6-Core Space Gray MacBook Pro: $2099 at... Read more
Best Memorial Day Weekend 2020 Apple AirPods...
Apple resellers are offering discounts ranging up to $50 off MSRP on AirPods as part of their Memorial Day Weekend 2020 sales. These are the best deals today on various AirPods models. See our... Read more
Memorial Day Weekend Sale: 10″ Apple iPads fo...
Amazon is offering new 10.2″ iPads for $80-$100 off Apple’s MSRP as part of their Memorial Day Weekend 2020 sale, with prices starting at only $249. These are the same iPads sold by Apple in their... Read more
Memorial Day Weekend Sale: 2020 Apple iPhone...
Sprint is offering Apple’s new 2020 64GB iPhone SE for $0 per month for 18 months as part of their Memorial Day Weekend 2020 sale. New line of service and trade-in required. Offer is valid from 5/22/... Read more
Amazon’s popular $100 Apple Watch Series 5 di...
Amazon has Apple Watch Series 5 GPS + Cellular models on sale for up to $100 off Apple’s MSRP today. Shipping is free. These are the same Apple Watch models sold by Apple in their retail and online... Read more
2020 13″ 4-Core MacBook Air on sale for $949,...
Apple reseller Adorama has the new 2020 13″ 1.1GHz 4-Core Space Gray MacBook Air on sale today for $949 shipped. Their price is $50 off Apple’s MSRP, and it’s the lowest price currently available for... Read more

Jobs Board

Essbase Developer - *Apple* - Theorem, LLC...
Job Summary Apple is seeking an experienced, detail-minded Essbase developer to join our worldwide business development and strategy team. If you are someone who Read more
Senior Software Engineer @ *Apple* - Theore...
Job Summary Apple is looking for a seasoned senior software engineer to join our worldwide business development and strategy team. This is an opportunity to lead a Read more
Cub Foods - *Apple* Valley - Now Hiring Par...
Cub Foods - Apple Valley - Now Hiring Part Time! United States of America, Minnesota, Apple Valley Retail Operations Post Date May 18, 2020 Requisition # 119230 Read more
Senior Practice Manager - *Apple* Hill Eye...
Senior Practice Manager - Apple Hill Eye Center Tracking Code 61713 Job Description Schedule & Location: Full Time Days Apple Hill Medical Center General Read more
Retail Sales Consultant - *Apple* Valley -...
Retail Sales Consultant - Apple Valley - $500 Hiring Bonus Apply Now...12-30-2019 Address : 7875 150th St W Location : Apple Valley, MN US Req # : 272753BR Job Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.