[comp.binaries.mac] Safe Shutdown/Restart XCMDs for HyperCard

earleh@eleazar.dartmouth.edu (Earle R. Horton) (12/04/89)

[Safe Shutdown/Restart XCMDs for HyperCard]

Previous XCMDs written for the purpose of shutting down or restarting
the Mac had the unpleasant side effect of corrupting stacks.  This is
because HyperCard updates stacks you are working on at idle time, and
the XCMD would shut down the machine when the disk and working (RAM)
copies of the stack information were inconsistent.

This stack contains two XCMDs which get around that problem by telling
HyperCard that we want to "Quit HyperCard," before shutting down or
restarting.

Now the only problem that remains is to tell other applications what
we are doing...  For this reason, these XCMDs may cause problems with
some application sets under MultiFinder.  However, if you are running
HyperCard under UniFinder, and you simply must have a Shutdown button,
then this might be just what you want.

Source and Makefile are included for MPW Assembler.  Look at the demo
button scripts to see how to use the XCMDs.

Earle R. Horton

---
(This file must be converted with BinHex 4.0)

:$R0SGA4NEhGZAh0dB@0V!&0838YA58a%!3#3!b8!N!-"dp8A!!!)!&0838[rN!6
Q`3-R!*!$#!!!*3#3!`J!N!`"!!!+"!#3!`3!!![i!!!2`!#3%38!!"!!N"-")S!
!!5+!!!%LJ!!")S!!N2q3rj"GJ!#3!`J!N!1)!#)!L!!L!)L))L+)L#)LL+SLUSL
U)UV-UM1Uc+ScUZkUZkVZUVZUlVZllZklZqlrZrrZrl[rl[qlrj!$ZrrrJ"!#)!%
)3!6rN!L))SJLL#+))K%L4)J4)N5)a)!-D%-#-#Da-!-Ef-!-MDS!UJ#U!+S!L#*
9)SJL95+)95*9L&8L9AIGGpehhAIGJ!#3"kT9UP@U9DT9!i4)-!`#!3'#4$P%JJ'
3!iJ8)N')35)8J)""2JJ)&1-L")ad)KHB%,k!L!MV#)L!*FJbL@3N6*+LR%'q+XN
8kd#J!!!%#J!!J%!J!!)%#!#U!)!!L!#!!2q!N!F)(#,"J!%#"2q!N!2r#*!$q(3
L4imA)R'r!,qrX*!%rhqqAD*"J!$kpIVeS&#J8!#3rj$rN2q3rj!+!J"03908rj!
%!*!HP!3!!*ci!!$0DJ!"&U-!!,S,!!"3`!!!9%d!N2q3`B"-5908!!!2`!#3!`%
!!!J!N!3%!%!!!J!2!!1J!!)0!*!$"!#3#K"0!!3!N%`)!&""4d8!!""0!!!2`-d
!!Hd!N!B,q1!U4L'YRj*b#D6fY0i8KiAp#kACZ!&P4-'T3+-",XkEa6FcLI@9ABP
JU$SG-i9)4&jNZ,([3aVMIMBc`!!!$JZJ%!)K)B35%!!!"J!!#J3"I4&)!4DP3J!
!!3!!#!#"L33)3!""PJ!"!!3#J!!#!!L1-%%!+!+!%!)8N!!3!!!-DU!lBbrp[Ih
EdH-l-(CpjlrrjHhElRrEqXZ[qkFBVTq[KreiqTNe(LR9r,Sm!pmeIr`kk0praPT
lAhR"!*!$$D1J)#!"#3348!6!!LKQ!)3!3!!J5!!+i!&")3#3!`J!JB"!N!!3%JM
%!%!JJ#!$$!%Cd#L!!48!`3))!!%!N2q3rj$rN2q3rj$rN2F"!%*,4d3!!!S%!*!
,"!!!#J3!!!S%!!%!!J#3!lB!N!Hf!!)"!!&!!-d"9J%aJ!-!N!8"!*!$$!#3!a"
0B@PZ)%0KFQ3!!'pZ)'e[GA0P9A!0D@BJG'KP)'jeE@*PFL"[CL"dD'Pc)'0KFQ3
JDA-J-5"dD'9Z$@*PCA!0B@jcGf9b)#*8D'Pc)'Pc)(4SC5"0B@PZ)%0KFQ3K)L"
hDA4S)#*6Eh*bH5)0C@jN)'PQ$@G[)(4[)'0KFQ3J)NeKD@iJ3f&bC#)0C@jN)'e
[GA0P9A!0!*!I!m"$39*%!!!,q!#3%K"0!!!+"!!%!!B!!!%H!!%!!!*3!#)!!`)
"!#F!N!2b!J#3#!%!N!--!*!$%!#3"9)!"!%!!5%"U3&@!H1!!*!$!q`!!3#3!``
!N!-38fpeFQ0P!!"[EL"YEh9cC99`$@G[)(4[)'0KFQ3J)P0[GA*MC5)0C@jN)'e
[GA0P9A!0!!"@!!8"!!%K!98"9J'AJ!#3!`2X!!%!N!--!*!$%%eKDf9QD@aP!!"
[EL"YEh9cC99`$@G[)(4[)'0KFQ3J)NeKDf9QD@aP)JePEQ3JE@peFf99F!d!!&3
!"J%!!5%!8!&@!)f!!*!$DE!!!3#3!``!N!-34'9YEb"$BA*N!!"[EL"YEh9cC99
`$@G[)(4[)'0KFQ3J)N4PE@mL$@9ZC#"YEh9cC99`$3!!rrd09f9XBfpYC5"dEb"
dD'8JEfjP)'&ZC#"[EQaj)(0KCQ8J8fKeG'4[Gfi[8Q9cG'&bG#"B3de%)(0dB@0
V,L!J9'KTFb"cG'&MDb"MEfjdB@PZFb"dGfmJ@%004(-JCQpb)(0SGA4dD@jR)'4
[GfiJEh)JFQ9cG'&bG'PZCb"dD'8J6@&MD@jdEh0S)'CbEfdJGfPdD'PZ)%KjF'9
b3f&bC#iJ)&"bCACTEh9c)&K$684c)(GbDA4dC@iJCQpb)(4SDA-JF(9bF'pcC5"
SB@3JG'KP)(9ZF'aPBA0KER3JFfPNC5"PCQCPBh3JEfBJBfpbFR9`G'PZCb"dD'8
JFh4KBfXJG'KKG#"MEfjdB@PZC@3JG'KPE5i0$94SC5"dGfmJ@%004(-JD@iJG'K
TFb"cG'&MDb"KFQ8J8%954N9$9%aC)&0"4N8JG'mJGA0P,#"SEhGPGQ9b,L!J4fm
JB@KPB@3X)(4bH5"dD'9Y)5!J9A0P)'pQ)(4SCA0P)&K$684c)(GTE'`JEQpd)'0
[FR*eF(3JB@jj)%KjF'9b3f&bC#"NDA0V)'CTE'9c,Jd09'KPFQ8JDA-JEfjP)("
[G'9ZG'PKE#"`FQpLE'9Y)(9ZC'9b)%eeE(4T4QPZC'9b,#"SEhGPGQ9b,L!J9f8
JC'pZeA3JD'&fC5"KERNJGf&j)'pQ)(4PE'aTEQFJEh4SCA)JEh"PEL"KF("XD@0
KG'P[ER-JGfKKG#"hC5"KFQ8JF'aKEQjTEQFJG'mJC'mZ$99cC5"hDA4S)'0KFQA
*!%eKD@iJ3f&bC!#3'3*J3d&54!!!$JX!N")363!!#J3!"!!%!!!"JJ!#!*!$N!!
!RJ!"!3!""3![!4X!Ni!$!*!&!3#3!``!N!-38fKeG'4[Gfi!!'pZ)'e[GA0P9A!
04%p65&984%pA6L!Y,5"8D'Pc)("KG'0SCA-J4AKTG&4[8fKPE'`0C'pYC@je)#*
aG@Pd)'KjF'9bBf&bC#)J,5dJ9'KTFb"ZEhFJFfKeG(-JC'phEL"dD'8J6@&M$@9
ZC#"YEh9cC99`$3!!S!!#!3!""3&X!4X"d)!$!*!&!3#3!``!N!-38Q9cG'&bG!!
!EfiJE@peFf99F!e%6e*&8e4"8P3J,5dJ9'KTFb"`BA4MD'9c)(4SC5"&H'Pd9'p
6D'9XE#"dFQ&`$@4[E@9ZG5!LFA9TG#"SHA"PFQ0KFQ3L)#dY)&4SDA-JC'pPFb"
dD'8JFQ9cG'&bG!ePEQ3JE@peFf99F!d!N!-L!!-#!3!e!*!$cJ)!)!#3"J%!N!-
B!*!$)!#3"5)!"!)"!0m!63%#!EJ!N!F"!!-!$!#3!a!!N!6rr9G"8Nj*6NFK$3e
8D'Pc)'Pc)'%JE'PfC5"NC@e[,L!J3QpdD#"LGA4dEfjc)(GTE'`JC'mJGfKKG#"
dD'9j)(0KH5"TCL"eFf9N,J$rr&"XC@&cC5"eFf8JG'KP)'*eG(4[EL"cBh*TF(4
c)("bEhCTC'9N)(GTG'JJG'KPFf8Z)#"8D'&ZDb"jEh8Z$3"%C@e[!*!D#5"$39*
%!!!-DJ#3%K"0!!!+"!!"!!%!N!-L!!%!!!L[!#)!!3)!N!8"03)!!!F!N!F%!!N
!N!--!*!%rrml)&0KCQ8JFfKeG'4[GfiJB@jN)(*PFh4KFR3J@%004(-JCQpb)%K
jF'9b3f&bC#i01b"&BA*XC5"5,L")Eh*dEfiJ8h9ZC'&j,#"2Bh4[BQ9b)$JX)$%
j1$N01`dl)%Pd)'Pc)(9ZFf&QC5"dEb"cD(9dC'phEL"[FL"bCA0dBA*d)(4SC5"
YB@0SD@jP)'CbEfdJGfPdD'PZ)'&Z)&K$68301b"LC@0KGA0P)%KjF'9b3f&bC#"
YBANJD'&fC5"XC@Cd)'%JFh4KBfXJD@iJB@iJD@jMEfjcDA0dC@jd)(0dBA4P,Jd
l)#K)HA"PFN0KFQ3JGA"NBA4PFb"dD'8JC'PcDb"TE@&RC5"[CL"K)(0dB@0V)'&
d)'PNE'8JG'PYC5iT$6XJ9'KPFf8J@%004(-JGfpbDb"LH5"`BA4MD'PZCb"I4AK
TG&4[8fKPE'`Z)#"8D'8JD@4PB5"TFb"dEb"MB@aX$6XJG'KP)&K$683JCR*[E5"
hDA4SD@iJB5"cBh*TF(3X)(4SC@iJG'mJFA9TG#")HA"PFN0KFQ3JFQPRD(301b"
KCR4PFRGKFQ4c,L!J5(P`CA*$BA*N)'CXGA0SCA-JCACPFRPdD'PZCb"dEb"NDA0
V,#"dD'9Z$6XJBf&XE(-JG'KP)(4bBA!Z)#"AC5"hB@Pd)'C[FL"dD'8JG(*KF#"
MB@aX,#"dD'9Z)(0SGA4NEhGZ)'pb$6XJFQ9cG'&bG#"dD'8JE@&MD'PZC5i01`d
l)%&c)'CKFL"KFb")HA"PFN0KFQ3JB@jN)'PdFb"cG'&MDh-JBA*P)'0[EQ0PFQj
PC#`JCACPFRPdD'PZCb"TF`dl)'KeEQYj,@4[FRNJEQph,L!J9'KTFb"TFb"ZEh3
JB5"`CA*QC@0d)(0[E(9dD@pZ)(4[)(4SC5"`FQpLE'9Y,!dl)(0TEQ0P)'PQ)%e
eE(4T4QPZC'9b)'Pc)'&MG'PfC5`JEh4SCA)JF(*[Bf9cFf9c)'GPG#"dD'8JFR9
R)("eE'aPC!dl)'peG#"QFQpY)(9ZC'9b)(4SC@dZ$6X01b"8D'Pc)'Pc)(4SC5"
cEh9bBf8JG'mJ8fKeG'4[Gfj5CA0dBA*d,Q%Z$6X0)*!%D@jME(9NC5!R8fKeG%4
[Gfj&FA8ZB5F0)*!%D@jME(9NC5!R9(*KF(-ZB5F049K*9&4539"198dJCA&e)#3
`-8Bd$3dl$6XJ9'KTFb"`FQpMC@4eFQ8JF'&dBfKPFb"I4AKTG&4[8fKPE'`JG'm
JFfKeG#"NEhGZ)(4SC5"0B@-JD@jcG'9KC#i01`e6D(9d4'phEPK$683JN!4`FQp
M)*!%CAK`Eh*d$5#3"'PYF'pbG#!JC'p6D(9dC'phELaNEe0SGA4NEhGZ4@jN$5#
3"'e[GQ9Y,Q`JB6-YB63X,5KcF#N0)*!%E'PZDb#3"'%f,#-`$5#3"'aPB5"NEe0
SGA4NEhGZ4@jN,@4[8fKeG'4[GfiXB630)*!%E@pfC5jX)#"K0#aN-!dJN!4LCA%
JN!9NEfjP$5#3"&p1CAG3G()0)*!%E@pfC5jX)#"K-#aK-`dJN!4YEhCP,Q`J)'%
`,'%a$5#3"'e[GQ8ZE#!JB63XC$!0)*!%E'9K)*!&C'p6D(9dC'phELaK-!dJN!4
I3Qa[BfY0EhCP$5#3"'e[GQ8ZGb!J)d9B59488N&36P90,'3`$5#3"'e[GQ8ZE#!
JB6-XB6!0)*!%Ae0PG&4bBA""C'4bCA0c$@4[EQ80)*!%G@jXDb#3"'%f$5#3"'e
[GQ9Y,Q`J+(0`+5XXB6-YB630)*!%E@pfC5jX)#!SFh!T+baK-!dJN!4KC'4K,Q`
J)#-d,(0`$5#3"'TYF##3"5KK-#N01`dl)&"KG'0S)(4[)&p&H'Pd9'p6D'9XE#i
J)&0SGA3JC'phEL"dD'8JE@&MD'PZC5i01`eNEe0SGA4NEhGZ)#"`FQpM)*!%CAK
`Eh*d$5#3"'9iF'pbG#!JC'p6D(9dC'phEN9ZC!dJN!4I8d43EhGPFNpQCJdJN!4
bG(-0C'p6D(9dC'phEN9ZC!dJN!4PEQ4`$6X01b"8D'Pc)'Pc)(4SC5"cB@eP)'&
c)(4SC5"cD(9dC'phEL"B3de%)'0[C'8X)'9iBf9`G#"TG#"bCA0dBA*dFb"dD'8
JE@&MD'PZC5i08Q9cG'&bG&K$683JF(*[Bb#3"'9iF'pbG!dJN!4TEA"[FR3J)'4
[8Q9cG'&bG#aNEe*PFh4KFR4&EQ30)*!%E@pfC@dZE#"K-beK0#`Y+(0`+3dJN!4
XD@jV)*!%B6BX)c!0)*!%E'9K)'4[8Q9cG'&bG%9ZC#eNEe*PFh4KFR3XB630)*!
%E@pfC5jX)#"K0#aN-!dJN!4LCA%JN!9NEfjP$5#3"&p1CAG3G()0)*!%E@pfC5j
X)#"K-#aK-`dJN!4YEhCP,Q`J)'%`,'%a$5#3"'e[GQ8ZE#!JB63XC$!0)*!%E'9
K)*!&C'p5CA0dBA*d,'%`$5#3"&p#E'pMDde[GQ80)*!%E@pfC5jh)#!M49K*9&4
539"198dXC$!0)*!%E@pfC5jX)#"K-baK-!dJN!4I8f9d9(*KF%&NC(*PFh-0C'p
ZC3dJN!4eEQaV)*!%B6B0)*!%E@pfC@dZE#!SFh!T+baK-beK0!dJN!4YEhCP,Q`
J)#KcF#NV,'%`$5#3"'&NC'%ZE#!J)c3XFh!0)*!%DQe`)*!&+'%`+3eNEe*PFh4
KFR3JN!0`FQpM)*!%CAK`Eh*d$5#3"'9iF'pbG#!JC'p5CA0dBA*d4@jN$5#3"&p
64&*PFh4KFR30)*!%FR4c$@4[8Q9cG'&bG%9ZC!dJN!4PEQ4`$5#3"'9ZC!d!8fp
eFQ0P!*!C!L"$39*%!!!0S`#3%K"0!!!+"!!"!!%!N!-L!!%!!!'k!#)!!3)!N!8
"03)!!!F!N!F%!!N!N!--!*!%rrp6D(9dC'phEP*PFh4KFR3ZB5j[)-3J8fKeG'4
[Gfj5CA0dBA*d,Q%0)*!&3A0Y)#"6D(9dC'phEP*PFh4KFR3ZB3d06d*+48088b!
p)&0SGA4NEhGZ8Q9cG'&bG#jK,Qm0$A0SGA4NEhGZ)-3J)(Y23NT&3e46I3dJN!4
-D@jV)#eh)#ed)(*cFQ-J,@-J8P0&4#!YFR3J@%004$da-MJJ,@dJ8dK99%429dj
B3de%)#ecCb"%6e0)994%6eG1),B0)*!)Hdp#5N9$9&0p)#e[)(0SGA4NEhGZ$3e
5490839*8)-3JN!0l6d*+48088hd0)*!%6'PZDb!YGb!YG#"bFh*M)#eM)&*6483
J,A*d)&K$683p-6)j)#eY)&*&8e4"8P4B3de%)#ecCb"%6e*&8e4"8P3JYJdJN!K
l6d*+48088hdJ,@mJ8N969%&59!d0FfKeG'4[GfjIFh4KBfXJ)-3JN!0cD(9dC'p
hEL"bCA0dBA*d$5#3"(*PHL!YEb"cD(9dC'phEPpcG'&MDb!YBA"`C@jN)(0SGA4
NEhGZAh0dB@0V,R)0!%eKDf9QD@aP!*!0)&4"58crN!369'KKG#Gc)'&XE#"QEfa
VFbk3!e"+!!!"!*!$!B!!N!1!!*!$8`#3"8-!+!"A!'3%!Np,!*!&#!"(!$J"$iJ
J9'J1FfKeG'4[GfjIFh4KBfYI!J#3!e0838YA58a%!*!$8!!!8e4"5eG*6%3!N!0
3!*!8S94Z*J!!*3#3!`(6!%F!1!%2L#T%Eb"jEh8JFQ9KE'aj)(GKER3JG'mJC'9
XCA4P)(4SC5"H-5!RAM!R)$m!N!1+!!)!N!9K!#J!G3"N"!*25`#3"@%!Y`"e!2-
%"N0KEQ0PE!#3"3J!4`"@!3q)994SC5"QD@aP)#GH-#FJD'&c)'j[)(*PF`#3!ca
)j`!B6PB!!%Ri!!JJ$'F!!"LK(LC))NJJ$%(k!"LJ,M!m!I3J5k"(6Pj-haJ!)&p
BMdl32c`!!DL96R8!N!-m51F!'%j@!!"*q!!))!aR!!!BS4iQ5#*))!a"qJ!BS#i
`2!(d)%ZJ4djH60mB!#"I@)p1d$mm!!+SP8je!!!"!*!$!B!!N!1!!*!$8`!hUAJ
&iJ#3!a`!2J!!@%004!!"!!S!J!!!)!#3"$K*l!#"!!XJ!!"!!$K*3!T%6e0)994
%6eG1#8428N969%&590)$:
---