• MacTech Network:
  • Tech Support
  • |
  • MacForge.net
  • |
  • Apple News
  • |
  • Register Domains
  • |
  • SSL Certificates
  • |
  • iPod Deals
  • |
  • Mac Deals
  • |
  • Mac Book Shelf

MAC TECH

  • Home
  • Magazine
    • About MacTech in Print
    • Issue Table of Contents
    • Subscribe
    • Risk Free Sample
    • Back Issues
    • MacTech DVD
  • Archives
    • MacTech Print Archives
    • MacMod
    • MacTutor
    • FrameWorks
    • develop
  • Forums
  • News
    • MacTech News
    • MacTech Blog
    • MacTech Reviews and KoolTools
    • Whitepapers, Screencasts, Videos and Books
    • News Scanner
    • Rumors Scanner
    • Documentation Scanner
    • Submit News or PR
    • MacTech News List
  • Store
  • Apple Expo
    • by Category
    • by Company
    • by Product
  • Job Board
  • Editorial
    • Submit News or PR
    • Writer's Kit
    • Editorial Staff
    • Editorial Calendar
  • Advertising
    • Benefits of MacTech
    • Mechanicals and Submission
    • Dates and Deadlines
    • Submit Apple Expo Entry
  • User
    • Register for Ongoing Raffles
    • Register new user
    • Edit User Settings
    • Logout
  • Contact
    • Customer Service
    • Webmaster Feedback
    • Submit News or PR
    • Suggest an article
  • Connect Tools
    • MacTech Live Podcast
    • RSS Feeds
    • Twitter

ADVERTISEMENT
Volume Number:5
Issue Number:1
Column Tag:Letters

Letters

By David E. Smith, Editor & Publisher, MacTutor

Overriding ROM Resources

Ronny Zulaikha

Sydney, Australia

When Apple upgraded to the 128K ROM, some of the extra space was filled with ROM resources that were previously only held in the system file. This saves time in that these resources aren’t loaded from the system file when needed, and saves space in that RAM isn’t taken up by them.

If one is designing a resource that is to replace one in the ROM, merely placing the new resource in the system file is not sufficient. As described in IM IV-20, one needs an ‘ROvr’ resource ID 0, which my system file (4.3) already had. This resource startup scans the system file for ‘ROv#’ resources of any ID, which indicates what resources to override. The first word of a ‘ROv#’ resource is the version number of ROM to override, and is $75 for the 128K ROM. For the SE and Mac II, it would be reasonable to assume that the version numbers listed in IM V-xvii would apply, $76 and $78 respectively. In fact, the routine in the ‘ROvr’ resource checks against the version word at location 8 higher than the start of the ROM. The high order byte is 0 for the 128K ROM, 1 for the Mac II and 2 for the SE, while the low order byte is the ROM version number. Putting this together, we get $276 for SE and $178 for the Mac II

Optimized String Comparisons

John S. Stokes III

San Diego, CA

My routine to compare two Pascal strings uses substantially less code than the “optimized” routine published in Donald Koscheka’s HyperChat column in November, 1988 issue of MacTutor. In my routine, the Pascal string length fields are compared as just another character in the comparison loop instead of separately.

;1

A0 -->  Pascal string 1
A1 -->  Pascal string 2
D0 <--   0 if false, 1 if true
D1 <--  work

CompareString  Moveq #0,D0; initialize flase return code
 Move.B (A0),D1  ; length of the first string
 Ext.W  D1; dbra uses word
@10Cmp.B(A0)+,(A1)+; match?
 Bne.S  @900; no
 Dbra D1,@10; yes, continue
 Moveq  #1,D0  ; set return code to true
@900  Rts ; return

NOTE: See Mar 89 Letters for bug fix and comments about this code.

Power Supply Board

David B. Lamkins

Canton, MA

Thanks to MacTutor, my Mac is alive and well at minimal expense following a sudden failure of the power supply board. Over a period of a couple weeks, under light use, my screen went from an occasional “blink” (accompanied by a snapping sound) to a thin vertical line. I recalled that there was a discussion of these symptoms in Mactutor, and found a detailed description of the problem and its cure in the June and July 1987 issues.

I’d like to shed some additional light on the subject, since I suspect that many owners of older Macs will face the same problem eventually. The Macintosh power supply board (which also provides the circuitry to operate the display) contains a wide range of parts, from integrated circuits to high-power components. It is tricky to solder the full range of these components on a wave solder machine --too little heat and the leads of the large components don’t get properly soldered, too much heat and the delicate components get fried.

I found a crack around J1 pin 4, just as indicated in the earlier articles, and signs of developing cracks around the other pins of J1. I removed the old solder with a solder bulb and carefully resoldered all four pins. What surprised me was that I found that NO solder had flowed between the pins and the(I’m assuming --too late to check) plated through holes in the PC board. Thus, the contact area was limited to a very thin film of solder bridging the connector pin to the foil on the PC board. It’s no wonder there was local heating leading to a joint failure!

I also found a bad solder joint on one of the leads of a coil in the same horizontal sweep circuit, and resoldered that as well. In this case, it looked like the original connection suffered from either improper cleaning of the coil lead, or too little flux and heat during soldering. A quick check of the solder joints on the remaining showed a potential problem on the end pins of the ten-pin power connector. Note that none of these problems were plainly visible to the naked eye --a magnifying glass was required

I found that the hardest part of the repair was locating the appropriate tools to open the Mac’s case. The readily available MacSnap Toolkit is not worth the expense --a long piece of allen wrench stock, which fits only some of the screws, is supplied in lieu of a Torx screwdriver. I returned this immediately for a refund. Local hardware, auto supply, appliance service, and specialty tool stores (I tried at least fifteen altogether) failed to produce a long-shafted Torx T-15 screwdriver. Least helpful was the service department of the local Apple dealer --”Sorry, they’re made exclusively for Apple. You can’t buy one unless you’re an authorized Apple repair center.” Finally, I turned to the MacTutor advertisers and called Computer Quick. For $20, these folks sold me a toolkit (separate screwdriver and case spreader) as good as any seen in an Apple service department.

My Mac started life three and a half years ago as a 512K. A year later, it was upgraded to a 512 enhanced, and stuffed with 4 megs of RAM and a piezo fan a year after the first upgrade. I have never had even a hint of a power supply problem during all this time. The time from onset of the first “glitch” to total failure was only a couple of weeks of light use --perhaps twenty hours of power-on time. From what I’ve seen, I strongly recommend that owners of earlier Macs take very seriously any signs of trouble with their display.

Whatever you do, don’t “fix” a jittery display by banging on the side of the case, as I’ve heard some people will do --this will only prolong the symptoms and probably will cause more extensive damage due to internal heating of bad solder joints. If you see the onset of this problem, you probably shouldn’t leave your Mac unattended while powered on. I suspect that the failure of the yoke connection for the horizontal sweep could unduly stress related components, leading to more serious failures than can be recovered with touch-up soldering.

Finally, if you do experience the “thin vertical line” death of your Macintosh, check the solder joints as mentioned here. If you don’t know how to solder, or have never worked on a television or video monitor circuit, enlist the help and advice of a friend who has. Failing that, you may want to consider a board exchange via some outfit like Computer Quick on the west coast, or Pre-owned Electronics in the Boston area. You’ll save money and time compared to the service provided by many Apple dealers.

Linear Equations

C. H. Friend

Watford, Herts, England

The article by Dave Kelly in the September MacTutor takes a long way around to do the following, which is the way it would appear in most math textbooks about solving linear systems of equations:

REM Solve equation system using inversion by MAT routines
REM mod CHF: 2/10/88 for TrueBasic 2.0 on Mac II
OPTION BASE 1
DIM A(3,3), V(3,3), B(3,1), X(3,1)
REM MacTutor Sep’88 example:
REM coefficient matrix [A]:
DATA 1, -4, 4, -1, 6, -3, 1, 0, -1 ! equation coefficients
REM right-hand side vector (b):
DATA 7, 0, 7! equation data
REM System is [A]x(X) = (b)
MAT READ A
MAT READ B
PRINT “Coefficients:”
MAT PRINT A
REM inverse of coeff. matrix, [A]^-1
MAT V=INV(A)
PRINT “Inverse:”
MAT PRINT V
PRINT “right-hand sides:”
MAT PRINT B
REM Solution vector, (X) = [A]^-1 x (b)
MAT X = V * B
PRINT “Solution:”
MAT PRINT X
END

Results obtained are shown below:

Ok. run
Coefficients:
1-44
-1 6  -3
10 -1

Inverse:
.428571 .285714  .857143
.285714 .357143  7.14286e-2
.428571 .285714  -.142857

right-hand sides:
7
0
7

Solution:
9
2.5
2

Ok. Bye

You also refer to Hewlett-Packard Basic, on HP9000 Series machines. The Matrix ROM on HP’s smaller Series 80 machines has had an extensive set of matrix commands and functions for some time. Series 200 HP-Basic has only just acquired some of these, such as the sub-matrix copy commands. Other useful HP-Basic functions are the row and column sums. These make powerful programs very short, e.g. the following example from “Probability and Statistics for Engineers and Scientists” by Walpole and Myers (MacMillan)

REM Multiple Linear Regression (W&M), HP86
REM mod 25/6/88 for TrueBasic on Mac II
OPTION BASE 1
DIM D(5,15), E(15,5), F(1,5), V(15,4), X(15,5), T(5,15)
DIM A(5,5), C(5,5), Y(15,1), Z(1,15), G(1,15), H(5,1)
DIM B(5,1), P(5,1), Y2(15)
DATA 4, 13
DATA 25.5, 31.2, 25.9, 38.4, 18.4, 26.7, 26.4,
DATA 25.9, 32, 25.2, 39.7, 35.7, 26.5
DATA 1.74, 6.32, 6.22, 10.52, 1.19, 1.22, 4.1
DATA 6.32, 4.08, 4.15, 10.15, 1.72, 1.7
DATA 5.3, 5.42, 8.41, 4.63, 11.6, 5.85, 6.62, 8.72
DATA 4.42, 7.6, 4.83, 3.12, 5.3
DATA 10.8, 9.4, 7.2, 8.5, 9.4, 9.9, 8, 9.1
DATA 8.7, 9.2, 9.4, 7.6, 8.2
REM
PRINT “Multiple Linear Regression:”
READ K,N
MAT REDIM D(K,N), E(N,K), F(1,K) V(N,K-1)
MAT REDIM X(N,K), T(K,N) A(K,K), Y(N,1)
MAT REDIM Z(1,N), G(1,K), H(K,1), P(K,1)
MAT READ D
REM
MAT E = Trn(D)
PRINT “Data:”
MAT PRINT USING “#####.##”: E
REM MAT F=CSUM (E) ! HP-BASIC
FOR J = 1 TO K ! TRUEBASIC
 LET F(1,J) = 0.0
 FOR I = 1 TO N
 LET F(1,J) = F(1,J) + E(I,J)
 NEXT I
NEXT J
PRINT “Sums:”
MAT PRINT USING “#####.##”: F
MAT X=Con
REM MAT V=E(,2:K) ! HP-BASIC
FOR I = 1 TO N ! TRUE BASIC
 FOR J = 1 TO K-1
 LET V(I,J) = E(I,J+1)
 NEXT J
NEXT I
REM MAT X(,2:K)=V! HP-BASIC
FOR I = 1 TO N ! TRUE BASIC
 FOR J = 1  TO  K-1
LET X(I,J+1) = V(I,J)
 NEXT J
NEXT I
REM PRINT “Ind.  variables:”
MAT T = Trn(X)
MAT A = T * X
PRINT “Equations:”
MAT PRINT USING “#####.###”: A
REM MAT Y=E(,1)
FOR I = 1 TO N
 LET Y(I,1)   = E(I,1)
NEXT I
MAT Z = Trn(Y)
MAT G = Z  *  X
MAT PRINT USING “#####.###”: G
MAT H = Trn(G)
REM MAT B=SYS (A,H)! HP-BASIC, solves linear system
MAT C = Inv(A)   ! TRUE BASIC
MAT B = C *  H
PRINT “Coefficients:”
MAT PRINT  USING “----,######”:  B “
PRINT “residuals:”
REM MAT Y2=Y.Y ! HP-BASIC allows dot product of vectors
FOR I = 1 TO N
 LET Y2(I)  = Y(I,1)
NEXT I
REM SY2=SUM (Y2) ! HP-BASIC  matrix function
LET SY2 = O.O
FOR I = 1 TO N
 LET SY2 = SY2 + Y2(I)
NEXT I
LET SY2N = G(1,1)^2/N
LET SST = SY2 - SY2N
MAT P = Trn(G)
REM MAT P=B.P
FOR J = 1 TO K
 LET P(J,1) = B(J,1)*P(J,1)
NEXT J
REM SBG=SUM (P)
LET SBG = 0.0
FOR J = 1 TO K
 LET SBG = SBG + P(J,1)
NEXT J
LET SSA = SBG - SY2N
LET NDF = N - K
LET ES2 = (SST - SSA)/NDF
PRINT USING “SST = ####.###”:  SST;
PRINT USING “, SSR = ####.###”: SSR;
PRINT USING “;  s^2 = ##,#####”: ES2
END

Results are:

Ok. run
Multiple Linear Regression:
Data:
 25.50  1.745.30 10.00
 31.20  6.325.42 9.40
 25.90  6.228.41 7.20
 38.40  10.52  4.638.50
 18.40  1.1911.609.40
 26.70  1.225.85 9.90
 26.40  4.106.62 8.00
 25.90  6.328.72 9.10
 32.00  4.084.42 8.70
 25.20  4.157.60 9.20
 39.70  10.15  4.839.40
 35.70  1.723.12 7.60
 26.50  1.705.30 8.20

Sums:
 377.50 59.43  81.82 115.40

Equations:
 13.000 59.430 81.820115.400
 59.430 394.726  360.662  522.078
 81.820 360.662  576.726  728.310
 115.400522.078  728.310  1035.960

 377.5001877.567 2246.661 3337.780

Coefficients:
 39.157350
 1.016100
 -1.861649
 -.343260

residuals:
SST = 438.131, SSR = 399.454; s^2 = 4.29738
Ok. Bye

Matrix statements were in the original DEC PDP Basic, developed by Kemeny and Kurtz. They were omitted from early microcomputer Basics, presumably for memory reasons. Another less useful feature of DEC Basic is this “####” print image stuff, HP-Basic uses the much neater “nD.mD” style (numbers of digits before and after the decimal point, plus other options for mantissa and exponent style, etc. [Thank you for an excellent treatment of an interesting subject. I am very interested in covering more such areas in scientific and engineering computing. After all, computers were origonally designed to solve problems, were they not? --Ed]

VIREX by HJC Software

Kirk Chase

Anaheim, CA

Last week I got a call at MacTutor from a Mr. Robert Capon about viruses. Actually, I’ve been getting a number of calls in the last few weeks about viruses. I thought that the virus war was over a few months ago, but just when you thought it was safe to power up your Mac Anyway, this call was about Virex, an anti-virus application due to hit the market by the time this issue hits the doorsteps.

Virex supposedly combats all three current computer viruses out there, namely the Scores Virus, the nVIR family, and the Peace virus, with more updates as more viruses are put out by #@*!! computer vandals. Virex reports to have the ability to not only detect but remove and repair damaged files.

Developed by known computer virus authority, Robert Woodhead, this little gem of software might be just what the doctor ordered for the sysop who phoned me a couple weeks ago whose network over the college campus seemed constantly at risk to these self-replicating monsters. I don’t know if it will be a complete help (probably not --sigh), but at a price of under a hundred dollars, software houses can certainly afford a little more protection.

 
MacTech Only Search:
Community Search:

 
 
 

 
 
 
 
 
  • SPREAD THE WORD:
  • Slashdot
  • Digg
  • Del.icio.us
  • Reddit
  • Newsvine
  • Generate a short URL for this page:



MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797
MacTech is a registered trademark of Xplain Corporation. Xplain, "The journal of Apple technology", Apple Expo, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, Apple Expo, MacTech Central, MacTech Domains, MacNews, MacForge, and the MacTutorMan are trademarks or service marks of Xplain Corporation. Sprocket is a registered trademark of eSprocket Corporation. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.
All contents are Copyright 1984-2010 by Xplain Corporation. All rights reserved. Theme designed by Icreon.
 
Nov. 20: Take Control of Syncing Data in Sow Leopard' released
Nov. 19: Cocktail 4.5 (Leopard Edition) released
Nov. 19: macProVideo offers new Cubase tutorials
Nov. 18: S Stardom anounces Safe Capsule, a companion piece for Apple's
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live