[comp.binaries.mac] Adventures in Programming -- Logout

johnr@runx.ips.oz.au (John Rotenstein) (02/09/89)

[Adventures in Programming -- Logout]

What do you get when you cross a journalist with a programmer?

The "Adventures in Programming" series describes the development of a
number of public domain programs.  Share the joy, anger and amazement
of writing a program as you learn new techniques which may save an
insurmountable time in the future.  A new form of public domain
journalism.

This adventure describes the development of Logout, a utility which
provides information on the time spent playing with your computer.
Learn techniques of modifying DSATs and installing shutdown routines as
you venture into the dark and forgotten reaches of Macintosh...

Copyright 1988 by John Rotenstein
Printed reproduction requires written permission from the Author

johnr@runx.ips.oz.au (John Rotenstein)

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

:&%a[CfpeG#""C(CPER4eFQ8ZFfPd!&0*9#&6593K!*!%'2F!N!6L[P0*9#%!!3!
!'2Gb6'&e!3#3#!)33@4fC@jdGA*Pd8a[CfpeG"`a#!!+!"aX'J#3!`-!((+1!!-
HU!!F!Qi!"8Z!!"aX'J-D!3S!+`!"!*!$(!+)9d4#6Ne69d3"!*r+L5UIbSR*!*!
',J#3"aKa!!!BV`#3"Z93rQJ!'%L`B-%8dJ`U*0KLS)Q"$3%m"0"L)N5,&"mkJ#L
3!'&(MJ9EI+3Sd!*%*3"-8J36NL8)L)"#aL3BJ##+K!YckYbT-iJa&i)+*$*35LM
4J3++#3%!U+C6RP#M5YdCK)bG-QlSe*&6CJk)0'j!3*(cjSbF-'hDJ$fM!`56XQr
Ud'R3)!NG%(I#H!ec0``)1'(Nd-N$iSfE-L#Qm0e+*JaK0fR1S,Pl"`e@%(l0b%Q
$P3b)1AA1R1P+TiaR[h$)QN@,&dfD-@KBJ+J$ar"R0(,*[,RM4[DG0'cBI(B-!Xe
Z%'`-R`'4*qk*Ub$%P,PFCmjDjR(PJ'J5CS`,%%Q+Kr'FZSbG0((RX#'Xqr$R0'V
C"2kVqQbE1E,"MQ&6Kmae`iK9pKSDb*8eQQGd[!'#Ih1X!3)GPMd)(f*KZ1&CBk8
9CXCRG!5Q&4cIKBI'H(r*jmCK##TS(PCDK4%FBH-K'1%FZ0'K'fm5YN'KKI5p38B
GBqci99CPF$8((GHaNFD4rjNK@i)JP)(('08K"L&L8TBhKh@'bFEG'&A-8BB,$9"
K'9GIlGAMDQf!B%CbI&dA@&`mAVRJ'ff%!4B)BlM)KQQIi9N'K%QQX3CLdK3K(aa
LHNE&K00mCqD5D@+fTRfY$BJAF-)a#)GmK"Ph4i&Z,*I'A50k*YePeVN4*)FHdLD
TDej4kSD#D)@Kah9QP-&AG'Ad@H@$%B*PaKYbj)QNEAf'*9eKBR3)&U#Di8NXBQF
N*iD,)0J4@"TKL2%R#)q1XBCA+#4A+Pl)HTCFRk@GGKF*-GJ34!Ubk38#9eHj#+K
Y5EKK(4Q)I3P@JM6q&FCSi#@44!Xbc"!$Q@BLjTmCCVa@"aYh!5EBN!!,,[QTBpI
C5@0ZZi@&T)lXEUbUP4&fef+R)S0kRFGdI(H&CBGGTCfG"QIe4X+8MS%X9f23XGj
Y+10iRPpf6P%M%Ea"X9Z4I1+C*imS!-D`&5h8J--0q&kE@"j(PY&Q%A+3!+8G%K@
5mDGf4IX*D0F,)qC`#c2B)%-+Qd*SYVIm)8D#$%&N#PZqHlN"ihQHM@JZeRI%aBC
RA,QiC"RjH@@R'h@d)Cef0-M`h4C#%'CRARR)4N4FfHTE&9TH%3aC9eQhmHQJC5a
GB4k%VJZPES%65+KA4ZZAKZe"5LV(aRQid%@C%A)94aeTF+9M9JrL5XCTb%fViB0
5hS8#[liU+Ab%+b2@kUY(aJS(i!FVD(+00iEPRiYP4IF'(L"!!B4qYD3R48JD@BJ
,#2,dQ12-)3bp@TT@j"#@0f!X'G-)'Ir1!,Lme-T#d`%IE1a@UM'"`!M)dSSEq0+
leS&(2+GK3qE)`"i!,4")",+Jf5SR"`FG*NKE#JaKpP5Hmk4RDDNTLhh8XLi8L!N
a4#!#%J`)a6*N$$*)JJi4TK!%+S!!EKDD@hifG+SSq3`%Sk'$9kki*-Z3!#%&hdN
FM9*)Rf"4kPM"fFdFb,3cV+cSCa'D!YT+XlDf)HZ,FCYETIS8R,X&E'!&kdlpD#3
E1lb"2bacQ'a'#)I5D#F'IeZNhFK!43dQCcP3HTDR3!8S5R'&$TYCN@HUe5DrE,'
,qqT+GPjeU%k#6%GY3&Edb"@KrCeb,fJ53`-Ak#Z"JFaN(E*3B$a$"#Bmi3KZ3TD
b3L5`dS`RAjq"JafjGDaN%G!V98S4#!j9"ML%XcY@`Y8#`3+Id''Q6JTLTc[08!G
A,@Z&5KT-J8D&&GJ4D!lf'p&Gl#5'rr'T3KcL&,!@G"BFlDP2BKTIRY4`b+!KM%#
@mC!!Qr6%(kk%L!iRm)V2#'-d0r#c9@H3!)dBj)+CT0A"6i5jhUN3FaLqI!F&82L
6AV!dT@%G,e!kUXb[JU#Mc63V5RM3%TIFi))88-pLi$UPr`$)`)RUm(I[d32R(KU
@PNSV,,6ThS-Uak(0P-SV1L`0(ZJJ'aZqTNYV9G"-kC!!)'I'MDa$fNpr+"61F5U
T8IZ+#j,F!aVBB-Cc%E+KJ"bl5XG!&NZ'e%i5L0#Db`#Y1ri6h4k*L9QhL5H-@+2
85QFM*Ri+Cd9Kq3f%&"ZPc)l@,T9+CcB"LG8'I5B[lM4Q@8STM5[dcQJkbU"`BlU
GlXaKTX[j+a+))!-B-$1)SfQFClbeQI3m&U'#!94$4F[0N5B0R"IV&9HiYpbY,T!
!1+UXQ@1SGFJrXLF0'#X5LfVV0ST&k$#QJHZ'hR)'fKV0CGIL5MN4mk```#'*hA(
M-pQDA[ebMhAiLG+TcK3Ge4A,9IbCk[MNHTG$SSBX3IU459m)Qk("$$%CNm14J#@
XM*D48Vkb$YEqkL+%dMJ-4Q@IF8)cQ4(2+&L'mBb1CKXj%YhU,Q-JbjB!e3E#-0%
cr855F1k`QF@LNPBF%LDCR2#D&NET9N5Q)TS#3k([R3Sp!%fXA+EP&G!m@%Q!NUh
a!SQrP$9hKD24$Ykq&MBFe+#$VR'XRij$PMNIaR0k43aBiYG)cp52QF'8!f%Q5b!
fBdBZH)S6)jFQT@$**Fmm-p[*E14Rj'l0dXJEjDcdZf$CK1I!PaX5TBAMPeAR6mk
,$9#L#B4Vcd6C9aQbNr@`aa8%PDqYFZ*4-#rQB5KbN3Tm62@ail5ZA[FC4id10MM
KX"A%')eJZ86S9Pl9KZVFj9RTR"@PjQdl*$&5V4"0JK15i%8MlG+%Z*dMJTm&*i*
C@QLU(U6DLZ-V115,4qmke-'K0,,QN6C+HZ(-M&QR9R(+SCaY1QU(I%XT+'dl3hl
aplS$Y'&9IlZX2N)-#[B+JLIA(#f!dTHqq9dBl3cK#83S3VVr23G%DmV6"@mP`Zd
88RIqp8Vk'e5%6I1GYicR1TGQHX-"fq!a)2G6E43[BF6dTk59,*!!#Qm6%VBZKKZ
(43TG+B*r81U9)``+2#j98(XELSHkDNHCRaQ8PmdQb,5e53Xf61@,36#%VDch,SK
hMh3@A+#VPqURVh2$#Hj5cM5U98ah+H1fc+9@TCEQM'Ad),!@(!+V"Z(*((C09T*
aFDNe,5cF!66@`NeRc+!TF`KGSEJH8iC4rE@V0Qq`Yi!6VR(YbEkA3JX6Pf1L-pa
d0,1'%CUk)XiaC(9T)j+$1VX$4+p)TmB[*Xb`H-rBhJ8V36+@Gkh84,$c[%UhJ!r
#RH2**jU1hN'fm6QK-cSMGKEZ"$UL8b4lX5@4J5*UaAjG%8GQi%QB%4aU4L&V&Mj
U%5me0i"B%eH@88[,*arLXL-b%NRH*c3*de@J)3IR!4d,jM-KF(((XK9-`fVJTPL
pjbHXYAJ2a$+`j'!GQ)"b)&-dj@PNphjLpaI9)AYIKKK'dReC")8kk"i)5)#'!5A
3e"eV8&j-%"Q6-3IL"#K3S"IhKJ,iK4ee)"l3BA0jF(F&YP$r9AcK)`CRS@P$iNP
Q!%p&pa93"P'UP(Li-3Fkd!!pNQ,PPKK6`aZ2e#("%8#f4`G8i`CMm3CM!!*Y8BP
M!!@`Y!0Z)KpRi"9YF6"P%'JTX!1'#"EUBcJcB!3c-!5b33)`-)Xc%)Y"J!-j8!1
S1#Pl`3BqKPbiXbFMBL'EPQV0BB-H063%-PjL-&UTJdC[J(9,9daP!&f"eQ&ea)$
V3STY3aYp85Gj!!GR"f1AP"br85UPP)`*maZ2D$4Ymhj,Bb3G)KL&1!90!!,@eBU
[L)qc+!-JF)Zj#!)#1C!!",N(2FH2-"!$ZZC0RU&$X`J$rXL1`Z&VIYB($B"0-0!
!4B"QNQ&N2J8#3X#&DQ8R5F3QXeCcccCb$P*b#M*Yq&9Y)(",f(Ca-PNT56Ga,DN
f`V3J@h%Gm5-BXR*#fA-N5e16eN8TZP91X!+8lU3Mf)8l6jGU0HQ2P(+6Ze9cfX3
YEq"aF@)E+'"c1qG&rUJ[qR%dm$Kf(F+"Hr*)bi1#Nj4$BE%h-e!$13"(&jFYEl!
Y`X&Gi&+#-FP&Fd-(9"!Z!93Eh)JCGr%ZA4N@Kb-%pr)AdCJ9N!"Q0LSR"kqb*m!
NCPIe)(S"J"X5)p'''@lf6pa#BZ(M(PTB6&NeA-9$@bjT"RN`MN1hFXmd)fRR*X!
KFkrj'SXjQ5CcQaNc,J+ADcf$0B(S(QRi+c`B"TDd2-eA"Q9613LfE0R6C[l4E@%
"QU6j@PQ"KeR(2XqC,fl@EEQNAPMa+UQ**Gd*)p,Q)bmTQbb#K`G'*(*`NM8*B'3
`Q9Rb9jLTNjTfJC6R&iGKI"!A'0GS0("JCHif85G(G3dJ"$3P+Y%4'C9L*cACRjQ
@"cp`FBC*Rj9LFbQR5l6CS46i9a+*PAGa"QN!(@Pe+R8@,+p82*BbDQTPGh6!LA)
`"@NJ9R&8*a%L*6)69SM4EM2f,'Y`+cLLK5)*8GS*Cp`5Ri54K3QPRQ4`NK5CJij
QETEM,Qp!)KCkEE0TQIc()%D$HQSNT%BSKj4#T1p')9k(*f"()q*P4FLbH!cL)*D
%5EJc)Y#a+QMP"X'8C93((RhKL`T#R8C#,,pL-MMh'F#CQa1e*m1L,bVQNr2i)A(
%-@8a+"cQ&feh&j[4)-08-3T@Tq!%FZ2M-6K(JB#KMFZKHSMUS"9$2V!"'GH$',S
&*FDL65jhHm!Q2L"SEEKN(@+&&rTLFTQ$FMbC&S6"Pq%TShj"1(AJ2MMd@#"!!N'
3!+f*`fPQ-fQ1+"rrp+[)U6)4%TBYNfY2")"b)ArGiL,6HUiRk#a3f%lbN@)bqUA
$ZU-QY!4)HRB&e+Xi'"B3Q$8)KU!`HD&KNCRr+CSRL*)%YClhe,"58NBkP5%MmQ$
!-DS4`MDQ"8Cb3cPEqQN*SLbmq5)K)iDJBMB$#QhVBKYA5P80X!@m@#N396lDBfE
TT6%FFiKG-CNHeb[RCDhK3DC[i$1S"UPFpQEV3i9C'NGp!CN(JjL+3b$KSAUVT4R
ZGKEaFUUaa#0`B"`1b$)3"4ERNCC`TPERB4djmim6Z'0Sp$bL-bimpKiG@E4BBbG
lQ$5+HKG9&ReYSRSfad0VX"DfGS0hNU5fDAJ4+e1p`aR388D(p'5Pp(@RTKdbFe-
QQb#jaM*p@aejNb2ZSarZFkQd-B1ij4qH)EKTqN+TSRQJQMkEdl"j5`Fc1!8@jKr
L1"LZSadlm`Db)5EVKEZRNJFK-$d"0f5jpLcEmdq!-N"bL"JPL5NYC4eTdj!!'d)
(E)8cHk'QGGBKf#H8-UBdl!NHqqC&h'U9pq1V!hYT#XZHj+%AL*9@q1T&a$T@Ib8
Q,58h-(Qjh2+biLTXQU*kKZ%lCZFY(*JCG"JIKi9N&Q*qG)SQ,dXQ3F#p8-Xp9DX
[@XYKZc08UGYbI@Y&jD4'UfY$XaY4M`KS"b+e$#@51Y5h9rBG6d#ZEUQ#9*X%XR%
V0rKVlH9JiK3BYa8@XcZjF&Ujlk%l%V39cQ4"C[!G8k!J%RS(qJ@CKh3q!r)$J+1
10Gb$-UC@`p+hbA%HTE)d$8SHpB%@'cS%)4XHeQ(%l0%94I+mYF3M+MU"KH%'%Q3
F'I8P)&!$S23#398G,c!&3TFb#VLKDfH"@'Qk*e",iM%jFK!#9e@UA*%IP+%[2p5
c3U4@P69fJV*EED*$HqG3QbbES(%UccNN),HB)+!'#eT%k&%GRrGbF35k#p)la#'
Gb6Z[1Y9X(8F@N!#MRJC&be!b3fEMP!r%-*0ATcFiH2NcbfZm1b"!$I[a'Jjb*Q9
3$I#DKr$KR"NL6PXj,T@K)-qm0(R"2EqTZ&U)a"Uba04$+HfPHJKP'p%VI6PA*dL
XG&$5D`cX'Ii,J8m5DC9RF#"6FBJ4V,JC[Te9R,a&[Ma(-+@40'U#a3ecNJ0-'%P
8JRplV!Ue3'em&FN""mZ,("9LICqlU1`c)5(M'6BhM"p,H'LcNHG"&QA&Je$b3-A
)UDP9b4%Y563mdD3Pb@0&NLKQ'SQi*e33,!6L"'q3!#%M%!-aN!!$QX`lb5)q3Zh
'VP,3'f)db@'$8B!pjN)%&@@Xk+4PXAXk96&h6LSF6eB'EG(9e!c@B6!U#K@-DY3
l'e+T5j[$I[De3b8ElHCB5R)SCQ1ZI#dQ9KT0M5&q)1$@Aah@cZUAUh&I+Vh8l0*
$eNS`eX(,PA%CSdbHrYXqIaFBdY21AM'`JJXS2JBC3A,([c+dGL63qI`pCV19iDT
$I)TeGl(*GCaZPjSIf6QDCe[6X[a#%q5!GQ+ZPqBABe"r[9bdE@Nf9D)GHQBf,9C
Qib12)[9Nq-@Erj5T#$@jaQ(GFBA5"*1bUTG%[ebPBR%e2c1P)"!Q43,*XpSqYCb
b5@KfYV%RGV,FjL(@0I9eKb9K6`2G'@A3AcKMZCFh46LerPe1pRTTdS&RB"aGMhM
Irq398)`QHB*Z!M)ZaR%jer&VqkdeIh8S`i4EJZX9&4XJ[F-'rU@P,K8C@k(+ZfT
1i8ST4e+R"fFTPINUh)TMH)!@dk)U-'QZY1'bT!XL&mF9Iq)Yh!1"b)3B9XQqrZQ
q@42MeXI,5ZQrIiAGJM&'ZA5Ve9YHqce84ME$(p8`TI5$6"YXSP4T9pP3JS04%GJ
!-E`d*,`99k)G&rdRE6+ae4Y!RENGfY%%@r'ea'ZA3G#ffV&Uc1aRYR&LCG!#%Ue
*CK2+!)6HEAPCKG&*`AfST1%Khr'-df`Zrb($)!"h2rPZFY&ACL24r`S@"'-DXZ(
Pm6,U0+9XSIiakpZ,[cK+-cLc431RIe)D5p02jFb"j`GN'C@q!@Y+rF0h&6K$pi@
bmp@`RXX`p-fIGc'FNpfQ*cXbEhJDCk!R-$Zc18XP(,0TqZ*pPKNk9d%N4+i`VQS
f-@)N!NDCZ`kU9FKrc[jV%2JG99!EBI'bT@6D)DXpGU[[UrkrEN)@)FGR[TVJJ@E
@LCPMFXJA+G8D"(3AX$8c5i1k)E)[BiY`#-8bkEia5))l@3BF,d5d4LXMVHhIV3T
61b66bj&%L)JQ*(UhlZh2%HZ(rXfr*XXAK16T`J2U`I5iGFd''d*,Q#C-aGX!Cre
QKX%Y)l)PIq)90SIC8CB'dV(M4jAMH)LkGCA9f5%Qq4+U*K6$lT-RMbKl#k8J09r
(XL%UIp3jHd[G@8J@`J%BKm&V$qBV@c`m)Z0Lim2IGR$PX(4*$Naj+MVKe-hF!l[
Ib5%Q40$Ia[bjJiBBB$-$S'qAT2V!Bd8m0XIN8BVUdSV9M1rhNrP!d0&5'C2P[6N
E"-mRPlm@C0,%K@XFiU5'b%(i$RMbR-SV%'mfHjJpR2NR2HSC)V+9L('-CmC4K%&
JLJA$X4(d%KSZY#8Q&R)GBJZC4p)RLTdJEr!$$4!0)+!%Ei!'ElI8@*%fB%%A59"
[f`d[F&D)9'm9,&*ZAK%`BU'-TBAV-!*N3&Z`IR+K!4!"&Y)@BS"ebAa"JJL"J+H
'!h"!!d"M#@Sc5)Dl3!&a!$CLIqi[eF'rEP)'jPm3H%3D-!bPQb*a&FK!!e"Up)%
8BBjf3KCq"(l,6RN%LR@`f8*62)jDB%#f`D!&!EPJ(13!A3#"lkmdN!$!q3F&RJ"
)FLMeSJBS`,MJPd)5BA!#8q!+J)$U)J-XB"#S!P1!#NL")-!%NN!3)"--J!F)J($
3!iJ#%9L$4@!06S8j@""U`N!)!#*J)!`!4+!('m&!)!"Qi!r+JB&J!1!!)B3%!f%
"i)*%L!`'JJ1J!Sl`#`b%"r!+*L%`'!J43!aJ`M'!#GN!*M`&Q,!9B-*K-"!N!"S
SKE+J$`!!9DJ+pm!UI)@UX!l%KEJ!!1V!3#J!J!!"P-)#!!"d)3#3!!!"!!J%!%"
3!9$K3*J!I"!!6)"&F!bl`6%m"`2"!T5!D2J#SL%4L)C)B#"SJ&bJ$AR"32J!S1!
EUS+"!!*f!6Rm"32K"$5$G&J0"J)+B)B!!!9%!RFi$3C##SJ'pM!KY%)!i!TC)6r
mKrf`&VV#KB!,I5%`E!T!S"J#!)4J$lp"(U#$%$%L5X5*5!Gj)4!!!!)!!pK"1`J
!m1!G(!&)34,S`@a`#cNK!$!!a@!J)!"[#!!8J#d%!![J)3)!"X!5(`!"`)5D%!"
%!&-`#N[K+Ib&PI!AcS+"3!'Q)3#S!+)3!&`!8M!3-N!6b!2pj%4)aDN)1Nj%9$`
4*j%J&%0i-!!)!LqmK3&!)6V&JE!"$-"!i!!+X3--JS(J!@i"1I`(!d%%6)#ib!d
'`JK`"`1K",5"G#J!h'%3F)HA-"lL""43$q2K1(#(j-!H*J"l#!,`J'0mM*!!d6&
'Sc(`"5SM!1L+Yj!!)#b!!2!9!8!"%!#qd$-+J+eS&JI#9T3!M0%H,S@&D!AXi5@
`KjM!(U)#HcJ8&q)ab)Gl)$IUaYa)%AZMEp`*Q,%AHN8!m!rJSJ+iL4$J-[k$B3J
!'N"`r!HI%5aH4J$J$C!!`N+i#G0a)H)%MLJ"C%%qE)J!!"*@!3$3'MXL34L,#r%
PD%F!F!8!!"B!!&Q!)26&VRJ6&8"c"!!Ei3%!J15)'LR!88`*5K%!K!!!N!!(Ik1
"2*!!#()L!Rc-!!!:
---