[comp.sys.mac.programmer] MaxAppleZoom in 1-bit mode

jmunkki@hila.hut.fi (Juri Munkki) (12/06/90)

Some of you might be using MaxAppleZoom even today. For those of you who
do not know, I'll tell that it's a cdev that slightly increases the resolution
of some Apple video cards. There's a small problem at the right edge of the
screen, if you have the video card in a 1 bit deep mode. Every 8 lines the
last 32 pixels have the pattern that they had at startup time.

I discovered that for some reason the video card skips just a bit in these
locations and thus even this place on the screen can be written. I'm too
envolved in other projects to have time to write anything decent to fix
this behavior, but maybe someone relay this note to the author of MaxAppleZoom.

I wrote a quick program that can be run in the background with multifinder.
It fixes the problem, but it doesn't know about other video modes and so
it makes a mess of these. I'm providing this just to document the problem.

void	main()
{
	register	long		skiprows;
	register	int		i,j,rmin,rmax;
			char		*baddr;
	register	char		*saddr,*daddr;
			EventRecord	foo;

	InitGraf(&thePort);
	InitCursor();
	InitFonts();
	InitWindows();
	
	rmin=thePort->portBits.bounds.right/8;
	rmax=thePort->portBits.rowBytes;
	baddr=thePort->portBits.baseAddr;
	skiprows=8L*rmax;
	
	do
	{	GetNextEvent(-1,&foo);

		saddr=baddr+rmin-4+skiprows-rmax;
		daddr=baddr+rmin+8+skiprows-rmax;

		for(j=0;j<512;j+=8)
		{	*(long *)daddr=*(long *)saddr;
			daddr+=skiprows;
			saddr+=skiprows;
		}
	}	while(foo.what!=keyDown);
}

As you can see from the source, you can quit by pressing any key while switched
to this application.

I assume that MaxAppleZoom must patch the video card drivers, so it would
be logical to make these routines activate a VBL task to do the copying
when the card is switched to a 1 bit deep mode.

   ____________________________________________________________________________
  / Juri Munkki	    /  Helsinki University of Technology   /  Wind  / Project /
 / jmunkki@hut.fi  /  Computing Center Macintosh Support  /  Surf  /  STORM  /
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Here's a binhex of the above application. (Compiled with Think C 4.02)

(This file must be converted with BinHex 4.0)

:#e0dFQP`C8CTH'9b!%&38%`rN!3K!*!("4UAA`#3"!%!N!-%J!!!!i!!N!1D!*!
'#0*J#J!!8%&$5`!'!)4"qJ!X3P!JAc!I,`J(4'pRCfpZC3)!N!0"8&"-2j!%)3#
3"-!!N!3HE3!!39"36$q3"#%!N!6!!*!5Sh)SZ3#3"J8Drp43d%je8-%'3#F3B!K
+!@F%"N!!C%M!51G!J%(ZrpC#CkRZ60m"!N2ZrpC+!@F'%"P63"+!B4*1G8S!C`T
b!")38K!4J"!"6R9d!"3C%"PKk&0#C[K1G5",G!4Jm'%'F!"J!!+f)#i!$N(Zrq5
TaQ!B)JaQ"'%!!U)[,J!15'lriJ#3!`)!N!8#!-`!N!I!!&!!!8j@rjK)EIrmU'k
S8+MqU4)JEIrm-'J!$L!)JI`!#$e!rrSJEIrm2@J!"[ri)'hrr#eS!!,rm$"ZrrJ
J#1H!,8$rp%*R2ccrrdKZrjLTF"!I-'lrqY(Zrr$4l[rdN!$ZrrKCL#e)rq``E[r
kdHlrm0(Zrr53!1lrq&#),8Mrk%*ZrraJ(L"Zrq`LE[rS)T!!)#lrp0'ZrqJJ,[r
ddDlrl&"Zrr`-EJ)!rraYfJaZ!!2rQ'D56Pj1G8e"58iJN!3!!!)Z!*!$#J#3!h*
#H!T+RFj1ZJ!N3QG)H3!!rrp)E`!%5&Fr2!!")MVrhNke%!!JE3"X6T!!UI4CMbm
m@N956d*RUD!N9eQ2,ca%394"3QHTS#"A)&!LH!N)*&*J$M,BCJSb'Q!#3KP4bIr
mZmPQlUQMUD0CMbmm4&*&6%*RUD!J9k!P)&$L3#30B!Bb'0@e%!"4b2riUD01G5"
I-KJd',"B9mRrqNT#Crj1m#$m)&mb'$3BX*KAbIrk5N*RrNl`)2SJAc)B0"L`3Qi
+N!""E3E33%(`!!)`%'Iq6[!!!#![!!3[33!%)Lm!##pI!!4)jc`!*!!Q!8K#a--
S!#S"5%A)aG4%5%+3!m$"d)*-h`!m)Kp1G5![!!3[33!%)Lm!##pI!!4)jc%!6VS
!R%cI!)`L(dje)#m!"#p"!!3L,`!),em!"%MR-3"1ZJ"m)!&-h`#-)Kp1G5![!!3
[33!%)Lm!##pI!!4)jc%!6VS!,%cI!)`L(dje)#m!"#p"!!3L,`!),em!"%MR-3"
1ZJ!-)!&-h`#-)Kp1G8U!DKa+J@S-4)"%J8kk!#"%J8je4)"1ZJ!@4)"%J8je5S&
U#N5"6VS!"N5!6R8Z2!!!rrqbJ'-')J"`!%jeX)GL$)$"5%!b!%*!5%"1GE+(BKS
Z!%*!5%#!`8K!5%Fq!%K(MX%`"dK(-JG1G53!*J(LL1+*XSGLq)$"`)Fb!m,!,J0
)4ml!5%I5Kf8)NS*L"%5"6R963'$N6R8!N!0S!*!$H!#3!mi!N!0B!*!$)!!%2c`
!!DR`!*)r2!!"UI!!TMmm!!'Tm!#k2c`!!DR`!0Br2!!"UI!"$$mm!!'Tm!%X2c`
!!DR`!8ir2!!"UI!"EMmm!!'Tm!)S2c`!!DR`!!!r2!!#UI!!N!-+%!#3!i`!N!1
-!*!$!3#3!`5!!!!$J!#3!jS!-2c3#(3!N!-F!*S!"%4"9%%!N!-U@N956`#3!cC
%8N9-!*!$3N024%8!!J"18dPD43#3!h)!!2rr+!#3#Irr#!!!"J#3"[rr+!!!$!#
3"3,rrcJ!!"!!N!8"rrmF!!$8!*!'rrmS!!-'!*!%rj!%!!!$FJ#3"!'Q:
   ____________________________________________________________________________
  / Juri Munkki	    /  Helsinki University of Technology   /  Wind  / Project /
 / jmunkki@hut.fi  /  Computing Center Macintosh Support  /  Surf  /  STORM  /
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~