[ont.micro.mac] SUMACC bug fixes

info-mac@utcsrgv.UUCP (info-mac) (06/29/84)

Date: Wed, 27 Jun 84 16:37:45 pdt
From: Bill Croft <uw-beaver!croft@safe>
To: info-mac@sumex
Subject: SUMACC bug fixes
Cc: croft@SUMEX-AIM.ARPA, sumacc@sumex

Here are some SUMACC bug fixes.

This is an APPLE typo in the workshop;  to agree with the manual,
the name is "HUnlock" not "HUnLock".

+ diff lib/libos.c- lib/libos.c 
65c65
< void	HUnLock(h) Handle h; { _macc1(RN,_hunlock,N,L) }
---
> void	HUnlock(h) Handle h; { _macc1(RN,_hunlock,N,L) }

Another APPLE workshop typo.

+ diff h/toolintf.h- h/toolintf.h 
458c458
< 	short	scrapFiller;
---
> 	short	scrapCount;

My typo.

+ diff h/quickdraw.h- h/quickdraw.h 
226c226
< 	Handle	rgnSafe;
---
> 	Handle	rgnSave;

Wrong trap code in hex.  Also, "Polyhandle *p" should read "Polyhandle p".

+ diff lib/libqd.c- lib/libqd.c 
62c62
< void	PenNormal() { _mact1(RN,0xa89d,N,N) }
---
> void	PenNormal() { _mact1(RN,0xa89e,N,N) }
144,151c144,151
< void	KillPoly(p) PolyHandle *p; { _mact1(RN,0xa8cd,N,L) }
< void	OffsetPoly(p,dh,dv) PolyHandle *p; { _mact3(RN,0xa8ce,N,L,S,S) }
< void	MapPoly(p,f,t) PolyHandle *p; Rect *f,*t; { _mact3(RN,0xa8fc,N,L,L,L) }
< void	FramePoly(p) PolyHandle *p; { _mact1(RN,0xa8c6,N,L) }
< void	PaintPoly(p) PolyHandle *p; { _mact1(RN,0xa8c7,N,L) }
< void	ErasePoly(p) PolyHandle *p; { _mact1(RN,0xa8c8,N,L) }
< void	InvertPoly(p) PolyHandle *p; { _mact1(RN,0xa8c9,N,L) }
< void	FillPoly(p,pat) PolyHandle *p; Pattern *pat; { _mact2(RN,0xa8ca,N,L,L) }
---
> void	KillPoly(p) PolyHandle p; { _mact1(RN,0xa8cd,N,L) }
> void	OffsetPoly(p,dh,dv) PolyHandle p; { _mact3(RN,0xa8ce,N,L,S,S) }
> void	MapPoly(p,f,t) PolyHandle p; Rect *f,*t; { _mact3(RN,0xa8fc,N,L,L,L) }
> void	FramePoly(p) PolyHandle p; { _mact1(RN,0xa8c6,N,L) }
> void	PaintPoly(p) PolyHandle p; { _mact1(RN,0xa8c7,N,L) }
> void	ErasePoly(p) PolyHandle p; { _mact1(RN,0xa8c8,N,L) }
> void	InvertPoly(p) PolyHandle p; { _mact1(RN,0xa8c9,N,L) }
> void	FillPoly(p,pat) PolyHandle p; Pattern *pat; { _mact2(RN,0xa8ca,N,L,L) }

The array of ostype strings "t" should be a char *, instead of an int.

+ diff lib/libpack.c- lib/libpack.c 
31c31
< void	SFGetFile(p,pr,fil,nt,t,dlg,rep) Point *p; char *pr; ProcPtr fil,dlg; SFReply *rep; { _macc7(RN,_sfgetfil,N,SS,PS,L,S,L,L,L) }
---
> void	SFGetFile(p,pr,fil,nt,t,dlg,rep) Point *p; char *pr,*t; ProcPtr fil,dlg; SFReply *rep; { _macc7(RN,_sfgetfil,N,SS,PS,L,S,L,L,L) }
33c33
< void	SFPGetFile(p,pr,ff,nt,t,dlg,rep,dlgid,fp) Point *p; char *pr; ProcPtr ff,dlg,fp; SFReply *rep; { _macc9(RN,_sfpgetfi,N,SS,PS,L,S,L,L,L,S,L) }
---
> void	SFPGetFile(p,pr,ff,nt,t,dlg,rep,dlgid,fp) Point *p; char *pr,*t; ProcPtr ff,dlg,fp; SFReply *rep; { _macc9(RN,_sfpgetfi,N,SS,PS,L,S,L,L,L,S,L) }

Since handle master pointers can be "negative", use another bit to indicate
"isapstr".

+ diff lib/mactrap.s- lib/mactrap.s 
81,82c88,89
< 	bgts	.L3		| if C string
< 	negl	d1		| if Pascal string, just negate pointer
---
> 	bclr	#24,d1		| test and clear
> 	beqs	.L3		| if C string
+ diff lib/strconv.s- lib/strconv.s 
80c80
< | If Mactrap is passed a negative string pointer, it assumes the
---
> | If Mactrap is passed a pointer with bit 24 set, it assumes the
87c87
< 	negl	d0
---
> 	bset	#24,d0


Thanks to Mike Schuster at CALTECH and Dan Winkler at Harvard!