[net.sources.mac] Mac Demo Program.

roland@ttds.UUCP (Roland Karlsson) (09/02/85)

This is a demo program written in sumacc c. As many other distributed
programs it shows Mac's ability to make animated plottings. Download
it and enjoy the sight.

If you like it please don't send $ just keep both $ and program.
The source code will also be distributed at the same time.
No copy rights claimed.

==============================================================================
		Have a nice day wishes:
		Roland Karlsson  (roland@ttds)
		Dpt. of Telecomm. & Computer Systems
		Royal Institute of Technology
		S-100 44 Stockholm
		SWEDEN
==============================================================================



------ Cut here ------------------------------ and here ---------------------
(This file must be converted with BinHex 4.0)

:"'0eBQ8!39"36%0eBN8J!*!('kiQB3#3"!%!N!-E!*!$'J#3"+i!N2-S*P0`D@j
ZD@jR)%0eBQ8JBRNJ8QpXB@jN)%YKFQacFfpZ)$%j1$8Z!*!%(!!S!#J!dJ$5!!!
"!*!(#9G[FQXJBA*PB3#3!c3!+!$F!8!"kJ!!!3#3"b"6F'PZEQPZCb"$G@*P)'*
j)&*[E'&ZC#",BA*XFh0[EJ#3""J!N!-S!!!#!*!%#!#3!b!!!$mm!!'Tm!!!&l`
!N!-"B#`!N!1!!*!S3rVrdL)*9B%N@GA"(K)#K`#3!rp#%Y15$)F!N!2rC`!!'%U
(CJ!!#L4CeF&J!2rHijr9af!!rpC#CkPd5KpR!!!32c`!!DR)F!&+J'B!rr`Mc3-
!!#T1Z3-!!*3UH3`!!#UYp!!!6PEr-%MZ!!$r-%(Zrc)Mb!-!&l!J13F!&l!'J!#
3!mS[!%kj"!!01&L26VN*!!ii,c`!N!3[22q3"%kj"!!1@&#26VN'!!jS,ccrN!3
[2!B!&QJ[2!#3!i&1Z3B!$RMIr!#3!``M`!B!&PJ[2!#3"#mm"J!A%#mm!*!$J%k
j"J!1H0rm!*!$$#2!$`!@A#mm!*!$m#mm!*!$dLmm!*!$4Lmm!*!$+#mm!`!@2%k
j"J!0k0rm!*!$&%kj"J!1L#mm!*!%6VN%!!kB@)p1Z3-!$@K1Z3-!$AJ[13-!&PK
1Z3S!$8KBMbmm!*!$$bmm!*!$#Nkj"!!0U&#2,c`$!"@d6VN+!!hB@)m[2!#3!ai
[2!#3!bK1Z33!$DK3Mbmm!`!9f8kj#J!0f&L2,c`!N!-Y,c`!N!-S6VN%!!fS8)m
[2!-!&IG1Z3S!$GKBMbmm!*!$2#mm!*!$8%kj"!!0U&#2,c`$!"B56VN+!!hB@)m
[2!!!!33[2!#3!bK1Z33!$DK3Mbmm!`!@(Nkj"!!0f&L2,cN$!"CF6VN%!!e)@)m
J13F!&l!'J!#3!lS[!%kj"!!0@&L2)$N(!"H`"S!!N!2#,`"1Z33!$CKBMd+j!`!
A"#2j!J!A"!8!&P3-Z3#3!ai&!"'`E!!+TNkj"J!15%U!CJ!!$%Uj#`!4X'F!!#B
[2!#3!`S[2!#3"#mm!`!@2%kj"J!0q0rm!*!$$&+j!`!4X#!j"`!@9&k!!S!!N!2
r)m!$!"C8)$N(!"F%8S!#J!#3!rmM`!-!&`3J133!&`6PJ!D!"!!4Y#"!)p!+!"C
),c`!N!1!,c`!N!0EF%#3!,N(!"F%!S!!N!2rjB!'J!8!%E3J3#m36VN&!"#S8)m
[!%kj"!!3q&#2)m!$!"C3)$N%!"C8jB!'J!J!%E3J3#!3"S!!N!09)m!(!"CN,c`
!N!0!F%#3!,N(!"C8!S!!N!2rjB!'J!8!%E3J3#m3,cN$!"C)6VN&!"#S8)m[!%k
j"`!3q&#2"S!!N!09)m!$!"F-)$N+!"C8"S!!N!0!!S!!N!2rjB!'J!J!%E3J3#!
3"S!!N!09)m!'!"F),c`!N!0!)$N)!"C84)!#J!#3!rrPJ!D!"3!4Y#"!,a![13-
!&NK1Z38!%+K3Mbm!6VN(!"$i8)m'J!#3!e8M`!-!&Q!J13S!&P3'J!#3!i!#J!#
3!rrPJ!D!#!!4Y#"!)"!'J!#3!e8M`!F!&k`[2!#3!d"``*!!Z3F!&P3#J!#3!rr
PJ!D!"3!4Y#"!,a![13-!&NK1Z38!%+K3Mbm!6VN(!"$i8)m'J!#3!e8M`!-!&N`
J13S!&P3'J!#3!m!#J!#3!rrPJ!D!#!!4Y#"!)"!'J!#3!e8M`!F!&MJ[2!#3!d"
`J*!!Z3F!&P3#J!#3!rrPJ!D!"3!4Y#"!,a![13-!&NK1Z38!%+K3Mbm!6VN(!"$
i8)m'J!#3!e8M`!-!&l3J13F!&P`'J!#3!a![!%kj"!!1#&L2)$N1!"F%")!!N!2
!!S!!N!2r$)!!N!0!E!!!(L!j$J!@9!5!!*!$)!+!!*!$r`b!!*!$J'd!!()J13i
!&`3%J!#3!i!#J!#3!rm-J!#3!d"X!!!H)$N1!"C8")!!N!1J!S!!N!2r$)!!N!1
!E3!!1Lmj!`!@C#!j!`!A$*!!Z33!&P![!%kj"!!0U&#2,cN$!"F))$N$!"CJN!#
j"!!@8#m!6VN%!!fi8)mJ13i!&`3%J!#3!m!#J!#3!rm-J!#3!d"X!!!H)$N1!"C
8")!!N!2J!S!!N!2r$)!!N!1!E3!!FL!j$J!A"!5!!*!$J!+!!*!$r`b!!*!$3'`
!!"iJ13i!&P3%J!#3!f!#J!#3!rm-J!#3!i"Y!!!k,cN$!"F))$N$!"CJN!#j"!!
@8#m!6VN%!!fS8)m[13-!&k`J13-!&Nb3!,N%!"C3,`"1Z33!$EK3Mb!j$J!A"!5
!!*!$`!+!!*!$r`b!!*!$3'`!!"iJ13i!&P3%J!#3!k!#J!#3!rm-J!#3!i"Y!!"
b)$N1!"F%")!!N!1!!S!!N!2r$)!!N!0!E!!!(L!j$J!@9!5!!*!$)!+!!*!$r`b
!!*!$J'd!!$S[13-!&k`J13-!&Nb3!,N%!"C3,`"1Z33!$DK3Mbmj!`!@1#!j!`!
AY*!!Z33!&P![!%kj"!!0Z&#2)$N1!"F%")!!N!2!!S!!N!2r$)!!N!0!E!!!(L!
j$J!@9!5!!*!$B!+!!*!$r`b!!*!$J'd!!()J13i!&`3%J!#3!i!#J!#3!rm-J!#
3!d"X!!!H)$N1!"C8")!!N!2J!S!!N!2r$)!!N!1!E3!!1Lmj!`!@1#!j!`!AY*!
!Z33!&P![!%kj"!!0U&#2,cN$!"CN)$N$!"F-N!#j"!!@8#m!6VN%!!fi8)mJ13X
!&`3#J!#3!rm-J!#3!d"X!!!H)$N1!"C8")!!N!-J!S!!N!2r$)!!N!1!E3!!FL!
j$J!A"!5!!*!$3!+!!*!$r`b!!*!$3'`!!"iJ13i!&P3%J!#3!k!#J!#3!rm-J!#
3!i"Y!!!k,cN$!"CN)$N$!"F-d,N%!"C3,`"1Z33!$DK3Mbmj!`!A##!j!`!@B0#
j"!!@8#m!6VN%!!fi8)mJ13X!&`3#J!#3!rm-J!#3!d"X!!!H)$N1!"C8")!!N!2
J!S!!N!2r$)!!N!1!E3!!FL!j$J!A"!5!!*!$3!+!!*!$r`b!!*!$3'`!!"iJ13i
!&P3%J!#3!f!#J!#3!rm-J!#3!i"Y!!!k,cN$!"F))$N$!"CJd,N%!"C3,`"1Z33
!$DK3Mbmj!`!AV#!j!`!@60#j"!!@8#m!6VN%!!fi8)mJ13X!&`3#J!#3!rm-J!#
3!d"X!!!H)$N1!"C8")!!N!1J!S!!N!2r$)!!N!1!E3!!FL!j$J!A"!5!!*!$3!+
!!*!$r`b!!*!$3'`!!"iJ13i!&P3%J!#3!b!#J!#3!rm-J!#3!i"Y!!!k,cN$!"H
X)$N$!"C-d,N%!"C3,`"1Z33!$DK3Mbmj!`!@1#!j!`!AY0#j"!!@8#m!6VN%!!f
i8)mJ13X!&`3#J!#3!rm-J!#3!d"X!!!H)$N1!"C8")!!N!0J!S!!N!2r$)!!N!1
!E3!!FL!j$J!A"!5!!*!$3!+!!*!$r`b!!*!$3'`!!"iJ13i!&P3%J!#3!q!#J!#
3!rm-J!#3!i"Y!!!k,cN$!"Bi)$N$!"Hdd,N%!"C3,`"1Z33!$DK3Mbmj!`!@C#!
j!`!A$0#j"!!@8#m!6VN%!!fi8)mJ13i!&`3%J!#3!d!#J!#3!rm-J!#3!i"X!!!
H)$N1!"C8")!!N!2J!S!!N!2r$)!!N!0!E3!!HL!j$J!A"!5!!*!$`!+!!*!$r`b
!!*!$J'`!!"iJ13i!&P3%J!#3!f!#J!#3!rm-J!#3!d"Y!!"#,cN$!"CN)$N$!"F
-d,N%!"C3,`"1Z3S!$DK3Mbmm!*!%,ccrN!2q,cN$!"C36VN&!"#S8)m[!%kj"!!
0b&#2)$N1!"F%")!!N!0!!S!!N!2r$)!!N!1!E!!!(L!j$J!@9!5!!*!$S!+!!*!
$r`b!!*!$3'd!!(SJ13i!&`3%J!#3!m!#J!#3!rm-J!#3!i"X!!!H)$N1!"C8")!
!N!-J!S!!N!2r$)!!N!0!E3!!3Lmj!`!A##!j!`!@B0#j"!!@8#m!6VN+!!fS8)m
[2!#3"#mmrj!$rLmj!`!@8%kj"3!3U&#2,`"1Z33!$FK3Mb!j$J!A"!5!!*!$3!+
!!*!$r`b!!*!$J'`!!"iJ13i!&P3%J!#3!f!#J!#3!rm-J!#3!d"Y!!"k)$N1!"F
%")!!N!2!!S!!N!2r$)!!N!1!E!!!(L!j$J!@9!5!!*!$i!+!!*!$r`b!!*!$3'd
!!%)[13-!&k`J13-!&Nc3Z33!&P![!%kj#J!0U&#2,c`!N!3[22q3!ri[13-!&P"
1Z38!%+K3Mbm!6VN%!!h)8)mJ13i!&`3%J!#3!d!#J!#3!rm-J!#3!i"X!!!H)$N
1!"C8")!!N!-J!S!!N!2r$)!!N!0!E3!!HL!j$J!A"!5!!*!$`!+!!*!$r`b!!*!
$J'`!!"iJ13i!&P3%J!#3!k!#J!#3!rm-J!#3!d"Y!!"#,cN$!"Bi)$N$!"Hdd,N
%!"C3,`"1Z3S!$DK3Mbmm!*!%,ccrN!2q,cN$!"C36VN&!"#S8)m[!%kj#J!0b&#
2,c`!N!3[2!#3!`3[2!-!&M`J13F!&P`'J!#3!a![!#!j"3!@@&5!,`!J138!&Pa
8J#m!6VN)!!iBhr`!N!-BB!$e8%kj!`!0L%kj"`!1+'!!!!*1ANje6VN)!!kS!*!
$%+KZ6R%!!%kj#!!1U!#3!a#SFdja!!"1Z3J!$UJ!N!-3U(a1F3!!6VN)!!kS!*!
%U&"1F3!!6VN)!!kS!*!%U&*1F3!!6VN)!!kS!*!%U&01F3!!6VN)!!kS!*!$%+L
G6R%!!%kj#!!1U!#3!dLSNdja!!"1Z3J!$UJ!N!0)U*&1F3!!6VN)!!kS!*!$5+L
56R%!!%kj#!!1U!#3!aLSK%ja!!"1Z3J!$UJ!!**3U+G1F3!!6VN)!!kS!!!#8+L
S6R%!!%kj#!!1U!#3!a#SSdja!!"1Z3J!$UJ!#+53!+MX6R%!!%kj#!!1U!#3"+R
d6R%!!%kj#!!1U!#3"+Mq6R%!!%kj#!!1U!#3!`@TG%ja!!"1Z33!$UJ!N!0)"!!
2q!!!6VN)!!kS!*!%U4*1F3!!6VN)!!kS!!!%LUQp6R%!!%kj#!!1U!#3"+R-6R%
!!%kj%J!1U!#3!a#THdja!!"19[m!51iJ"2ri3Llr!$em6[Rr#Lem93!2F2m-5ql
r%%(Z!!`LEJ!%)"NpI%jar`3Y8Im'E3BpI%kjr`3L!1D)!N%!"ce"r`*CMc)!jSJ
#33!(dN%b1a!'6[X3!J"L!"!!'J!i!"i!-J!@!"BL'$m"B0K5,[m!,aKJd#*B%KR
KL4)CiBN5'H'*%KN[!@#m)KJI!@#f)KJ)J3!BC`3[!@#U)N&#JL)08SdDf@F+8S)
-3J$QEI44M5*"%S)[!@#-+RNE!!!U6Zlr"%SZr`"R!!!k5qi!$#*Z!!3N'HD+@Be
BM6)#jSS#33!(Cai-!3!'EHjR$#m96VRL!""S@)pJi#*9-"&)`#+!B0Bb,[m#dN%
b1a!'6[X3!J!H!"!!&J!H!"i!'J!H!"i`(dM!B!JJ(f!%3S!3(dcZ)!6rq%jH@)p
1G5*I)"m`Abm*S#mr3!!%6R8LAb!I,`QJ-Nje)Pmch`!!!841d5*I)&m`(bm*S$"
+3'F'3Lm!"'!'(h`!!3!%6R8LAb"I-"m[#D!a5N"R"N)[!!4J"Kpm!!%!"%je)'m
!"$*m!!!3'%S!C`S5%"$!%!&5L@$b)!NJE`!%%)!J#%je)'m!"#*)3S!3'&1!E3S
5f'B#8iP4b2ri3K%J,`!%6R8JE`!%3S!3%0(!8SK#%#![!!45J%je)#m!"!M!!"K
1G8j@!!")jcJ!+$`!N!-"*#i!#'`!!!C%JN5%*Li!$'`!!!C%Jd5%3S!`!X$$-J*
)3X6$5%2#`p+#5%&#3G#"5S4X!!!%4)"-h`!F6Pj1G3!!6PB!!%MR2!!U2!#3!`%
J,J!)E!4%J%5&*J!L,J!-E!4%J85&+!%-J3!"!!"X&%*!5%#!`63!-!1!`8K!-!*
)3'!fiS$LJ3+!Irq3!`+!Irq3!`b"!!%!!'cSJ-%#J!!!rrmN!#m!,`41ZIm!%B"
3MlD!E!*6JL!#5S9X!N5!60m!2%jH6R8!!%j@!!")jc!!*#i!##BZ!!a#J$!#`--
b!NK#a-0)3m,$dS*)38*"d)&-h`!-6Pj1G3#3#`)!N!-$!*!$"3#3!`B!N!-)!*!
$#3#3!`X!N!--!*!$$J#3!a!!N!-4!*!$%`#3!a3!N!-@!*!$&`#3!aJ!N!-D!*!
$'`#3!ad!N!-H!*!$)!#3!b%!N!-L!*!$*!#3!b8!N!-Q!*!$*`#3!bN!N!-U!*!
$+`#3!b`!N!-Y!*!$,J#3!bm!N!-`!*!$-3#3!c)!N!-c!*!$0!#3!c8!N!-f!*!
$0`#3!cJ!N!-i!*!$13#3!cS!N!-l!*!$1`#3!c`!N!-m!*!$23#3!cd!N!-q!*!
$2J#3!ci!N!-r!*!$2`#3!cm!N!0!!*!$3!#3!d!!N!0!!*!$3!#3!d!!N!0!!*!
$3!#3!d!!N!0!!*!$3!#3!cm!N!-r!*!$2`#3!ci!N!-q!*!$2J#3!cd!N!-p!*!
$2!#3!c`!N!-l!*!$1`#3!cS!N!-j!*!$1!#3!cJ!N!-h!*!$0J#3!c8!N!-d!*!
$-`#3!c)!N!-a!*!$-!#3!bm!N!-Z!*!$,3#3!b`!N!-V!*!$+J#3!bN!N!-R!*!
$*J#3!b8!N!-N!*!$)J#3!b%!N!-J!*!$(J#3!ad!N!-E!*!$'J#3!aJ!N!-A!*!
$&J#3!a3!N!-6!*!$%3#3!a!!N!-1!*!$$!#3!`X!N!-*!*!$#!#3!`B!N!-&!*!
$!`#3!`)!N!6rN!2qrj!$rIq3!r[rN!2krj!$q2q3!rIrN!2erj!$p2q3!r,rN!2
`rj!$lrq3!qhrN!2Xrj!$k[q3!qRrN!2Srj!$j[q3!qArN!2Mrj!$i[q3!q$rN!2
Irj!$h[q3!pcrN!2Erj!$f[q3!pRrN!2Arj!$e[q3!pArN!28rj!$drq3!p,rN!2
4rj!$d2q3!mrrN!21rj!$cIq3!mcrN!2,rj!$b[q3!mRrN!2)rj!$b2q3!mIrN!2
'rj!$aIq3!mArN!2%rj!$a2q3!m2rN!2$rj!$`[q3!m,rN!2#rj!$`Iq3!m(rN!2
"rj!$`2q3!m$rN!2!rj!$`2q3!m$rN!2!rj!$`2q3!m$rN!2!rj!$`2q3!m$rN!2
"rj!$`Iq3!m(rN!2#rj!$`[q3!m,rN!2$rj!$`rq3!m6rN!2%rj!$aIq3!mArN!2
'rj!$arq3!mMrN!2)rj!$bIq3!mVrN!2,rj!$c2q3!mhrN!21rj!$crq3!p$rN!2
4rj!$d[q3!p2rN!28rj!$eIq3!pErN!2Arj!$fIq3!pVrN!2Erj!$h2q3!plrN!2
Irj!$i2q3!q,rN!2Mrj!$jIq3!qErN!2Srj!$kIq3!qVrN!2Xrj!$lIq3!qrrN!2
`rj!$m[q3!r6rN!2erj!$prq3!rMrN!2krj!$qrq3!rhrN!2q4("d,L"[CL"8C@a
PBfpYE5iJ*L"$Efe`GA4PFL"6HA0dC@ec!&*[H@&X)%PZFh4TG(9dC5"[CL"8C@0
SEQpXEfGj!&-Y-6!`)$3d)&0dEf0VD'pXE5`J8eG&4%91!(*[E'&ZC%"dG'4c!&"
eFfJJE@peFf8JBR9dG'pZ)(4[)'9iDA3!N2m!N)8)39"36!#3!rm!N!-F3h9L43#
3!`&*3diM!*!&J%C548B!N!@!!!!"!*!T!Ir`!!)!-!!%!&!!#!#3!!!Ira!!%!%
3!"!"%!!3!4!!%!%3!"!"%!!3!4!!%!%3!"!"%!!3!5!!%!&!!"!"J!!Ir`#32J(
rm!!$rr!!"rr`!!rrm!!Irr!!(rr`!"rrm!!Irr!!(rr`!"rrm!!Irr!!(rr`!"r
rm!!Irq!!(rr!!"rrJ!!Ir`#3Ra`!VJ!&3h9L43#3!c*A58j%!!%!2N024%8!!3"
@4P*&4J#3!fj#6N4-!*!$HNP$6L-!N!1'!!$rr`#3#B$rr`#3!b`!N!@"rrm!N!0
-!*!'rrmJ!!#%!*!&!Irr0!!!S!#3"B$rr`!!''!!N!@!rrm!!"KX!*!&J2rr!!!
BM!#3"'Df!:

roland@ttds.UUCP (Roland Karlsson) (09/02/85)

This is a demo program written in sumacc c. As many other distributed
programs it shows Mac's ability to make animated plottings. Download
it and enjoy the sight.

If you like it please don't send $ just keep both $ and program.
The hex code will also be distributed at the same time.
No copy rights claimed.

==============================================================================
		Have a nice day wishes:
		Roland Karlsson  (roland@ttds)
		Dpt. of Telecomm. & Computer Systems
		Royal Institute of Technology
		S-100 44 Stockholm
		SWEDEN
==============================================================================



------ Cut here ------------------------------ and here ---------------------
: This is a shar archive.  Extract with sh, not csh.
: This archive ends with exit, so do not worry about trailing junk.
echo 'Extracting ../mac/cube.rc'
sed 's/^X//' > ../mac/cube.rc << '+ END-OF-FILE ../mac/cube.rc'
Xcube.rsrc
X*
XType CubE = STR
X  ,0
XSpinning Cube by Roland Karlsson 1985.
X
XType WIND
X  ,128
X  Work area
X  40 40 210 210
X  Visible noGoAway
X  0
X  0
X
XType WIND
X  ,129
X  Spinning Cube by Roland Karlsson
X  40 220 320 490
X  Visible noGoAway
X  0
X  0
X
XType CODE
X  b.out,0
X
XType FREF = HEXA
X  ,128(0)
X* APPL 0
X4150504c 000000ff 
X
XType BNDL = HEXA
X  ,128(0)
X* CubE 0
X*   ICN#
X*     0 128
X*   FREF
X*     0 128
X43756245 00000001 49434e23 00000000 00804652 45460000 00000080
X
XType ICN# = HEXA
X  ,128(0)
X00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
X00000000 00000000 01fff000 02003000 04005000 08009000 1fff1000 10011000
X10011000 10011000 10011000 10011000 10011000 10011000 10011000 10012000
X10014000 10018000 1fff0000 00000000 00000000 00000000 00000000 00000000
X*
X00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
X00000000 00000000 01fff000 03fff000 07fff000 0ffff000 1ffff000 1ffff000
X1ffff000 1ffff000 1ffff000 1ffff000 1ffff000 1ffff000 1ffff000 1fffe000
X1fffc000 1fff8000 1fff0000 00000000 00000000 00000000 00000000 00000000
X
X
X
+ END-OF-FILE ../mac/cube.rc
chmod 'u=r,g=r,o=r' '../mac/cube.rc'
echo '	-r--r--r--  1 roland       1070 Aug 30 14:50 ../mac/cube.rc        (as sent)'
echo -n '	'
/bin/ls -l ../mac/cube.rc
echo 'Extracting ../mac/cube.h'
sed 's/^X//' > ../mac/cube.h << '+ END-OF-FILE ../mac/cube.h'
X#define WINDOW1 128
X#define WINDOW2 129
X#define m2PI &255
X
XRect show_r;
XWindowPtr work_w, show_w;
XWindowRecord w_record1, w_record2;
Xint done_flag = 0;
X
X/* PI/2 =  64 PI = 128 3PI/2 = 196 2PI = 256
X   PI/4 = 32 3PI/4 = 96 5PI/4 = 160 7PI/4 = 224
X*/
X
X/* 64 *  sin(i * 2pi / 256) */
Xint sinus[256] = {
X       0,    2,    3,    5,    6,    8,    9,   11,   12,   14, 
X      16,   17,   19,   20,   22,   23,   24,   26,   27,   29, 
X      30,   32,   33,   34,   36,   37,   38,   39,   41,   42, 
X      43,   44,   45,   46,   47,   48,   49,   50,   51,   52, 
X      53,   54,   55,   56,   56,   57,   58,   59,   59,   60, 
X      60,   61,   61,   62,   62,   62,   63,   63,   63,   64, 
X      64,   64,   64,   64,   64,   64,   64,   64,   64,   64, 
X      63,   63,   63,   62,   62,   62,   61,   61,   60,   60, 
X      59,   59,   58,   57,   56,   56,   55,   54,   53,   52, 
X      51,   50,   49,   48,   47,   46,   45,   44,   43,   42, 
X      41,   39,   38,   37,   36,   34,   33,   32,   30,   29, 
X      27,   26,   24,   23,   22,   20,   19,   17,   16,   14, 
X      12,   11,    9,    8,    6,    5,    3,    2,    0,   -2, 
X      -3,   -5,   -6,   -8,   -9,  -11,  -12,  -14,  -16,  -17, 
X     -19,  -20,  -22,  -23,  -24,  -26,  -27,  -29,  -30,  -32, 
X     -33,  -34,  -36,  -37,  -38,  -39,  -41,  -42,  -43,  -44, 
X     -45,  -46,  -47,  -48,  -49,  -50,  -51,  -52,  -53,  -54, 
X     -55,  -56,  -56,  -57,  -58,  -59,  -59,  -60,  -60,  -61, 
X     -61,  -62,  -62,  -62,  -63,  -63,  -63,  -64,  -64,  -64, 
X     -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -63,  -63, 
X     -63,  -62,  -62,  -62,  -61,  -61,  -60,  -60,  -59,  -59, 
X     -58,  -57,  -56,  -56,  -55,  -54,  -53,  -52,  -51,  -50, 
X     -49,  -48,  -47,  -46,  -45,  -44,  -43,  -42,  -41,  -39, 
X     -38,  -37,  -36,  -34,  -33,  -32,  -30,  -29,  -27,  -26, 
X     -24,  -23,  -22,  -20,  -19,  -17,  -16,  -14,  -12,  -11, 
X      -9,   -8,   -6,   -5,   -3,   -2
X};
X
Xint a, b, c, fi1, fi2;
Xint p0h, p0v, p1h, p1v, p2h, p2v, p3h, p3v;
+ END-OF-FILE ../mac/cube.h
chmod 'u=r,g=r,o=r' '../mac/cube.h'
echo '	-r--r--r--  1 roland       2035 Jan 17  1985 ../mac/cube.h        (as sent)'
echo -n '	'
/bin/ls -l ../mac/cube.h
echo 'Extracting ../mac/cube.c'
sed 's/^X//' > ../mac/cube.c << '+ END-OF-FILE ../mac/cube.c'
X#include <mac/quickdraw.h>
X#include <mac/toolintf.h>
X#include <mac/osintf.h>
X#include "cube.h"
X
Xmain() {
X    struct QDVar QDVar;
X
X    QD = &QDVar;
X
X    InitGraf(&thePort);
X    InitFonts();
X    FlushEvents(everyEvent, 0);
X
X    InitWindows();
X    show_w = GetNewWindow(WINDOW2, &w_record2, (WindowPtr) - 1); /* Front */
X    work_w = GetNewWindow(WINDOW1, &w_record1, (WindowPtr) 0);   /* Back */
X    SetRect(&show_r, 40, 70, 210, 240);
X    TEInit();
X    InitDialogs((ProcPtr) 0 );
X    InitCursor();
X    HideCursor();
X
X    SetPort(show_w);
X    MoveTo(10, 15);  DrawString("Dpt. of Telecomm. & Computer Systems");
X    MoveTo(40, 30);  DrawString("Royal Institute of Technology");
X    MoveTo(40, 45);  DrawString("S-100 44 Stockholm, SWEDEN");
X    MoveTo(80, 60);  DrawString("roland@ttds");
X    MoveTo(40, 260); DrawString("Push mouse button to exit");
X
X    SetPort(work_w);
X    BackPat(&QD->black);
X    PenPat(&QD->white);
X
X    fi1 = fi2 = 0;
X
X    while(done_flag < 30){
X	if(Button() || done_flag){
X	    OffsetRect(&show_r, 0, 10);
X	    done_flag++;
X	}
X
X	fi1 = (fi1 + 7) m2PI;
X	fi2 = (fi2 + 1) m2PI;
X
X	b = sinus[fi2];
X	c = (sinus[( 64 - fi2) m2PI] * 91) / 128; /* 91/128 = sqrt(2) */
X
X	p0v = 85 +  sinus[fi1];
X	p0h = 85 +  (b * sinus[( 64 - fi1) m2PI]) / 64;
X
X	p1v = 85 +  sinus[(64 + fi1) m2PI];
X	p1h = 85 +  (b * sinus[( - fi1) m2PI]) / 64;
X
X	p2v = 85 +  sinus[(128 + fi1) m2PI];
X	p2h = 85 +  (b * sinus[(- 64 - fi1) m2PI]) / 64;
X
X	p3v = 85 +  sinus[(192 + fi1) m2PI];
X	p3h = 85 +  (b * sinus[(- 128 - fi1) m2PI]) / 64;
X
X	EraseRect(&work_w->portRect);
X
X	if( ! ( ((((fi2 - 192)m2PI) < 64) && (((fi1 -  32)m2PI) < 128)) ||
X		((((fi2 - 128)m2PI) < 64) && (((fi1 - 160)m2PI) < 128)) ) ){
X	    MoveTo(p0h - c, p0v); LineTo(p1h - c, p1v);
X	}
X	if( ! ( ((((fi2 - 192)m2PI) < 64) && (((fi1 - 224)m2PI) < 128)) ||
X		((((fi2 - 128)m2PI) < 64) && (((fi1 -  96)m2PI) < 128)) ) ){
X	    MoveTo(p1h - c, p1v); LineTo(p2h - c, p2v);
X	}
X	if( ! ( ((((fi2 - 192)m2PI) < 64) && (((fi1 - 160)m2PI) < 128)) ||
X		((((fi2 - 128)m2PI) < 64) && (((fi1 -  32)m2PI) < 128)) ) ){
X	    MoveTo(p2h - c, p2v); LineTo(p3h - c, p3v);
X	}
X	if( ! ( ((((fi2 - 192)m2PI) < 64) && (((fi1 -  96)m2PI) < 128)) ||
X		((((fi2 - 128)m2PI) < 64) && (((fi1 - 224)m2PI) < 128)) ) ){
X	    MoveTo(p3h - c, p3v); LineTo(p0h - c, p0v);
X	}
X
X	if( ! ( ((((fi2      )m2PI) < 64) && (((fi1 -  32)m2PI) < 128)) ||
X		((((fi2 -  64)m2PI) < 64) && (((fi1 - 160)m2PI) < 128)) ) ){
X	    MoveTo(p0h + c, p0v); LineTo(p1h + c, p1v);
X	}
X	if( ! ( ((((fi2      )m2PI) < 64) && (((fi1 - 224)m2PI) < 128)) ||
X		((((fi2 -  64)m2PI) < 64) && (((fi1 -  96)m2PI) < 128)) ) ){
X	    MoveTo(p1h + c, p1v); LineTo(p2h + c, p2v);
X	}
X	if( ! ( ((((fi2      )m2PI) < 64) && (((fi1 - 160)m2PI) < 128)) ||
X		((((fi2 -  64)m2PI) < 64) && (((fi1 -  32)m2PI) < 128)) ) ){
X	    MoveTo(p2h + c, p2v); LineTo(p3h + c, p3v);
X	}
X	if( ! ( ((((fi2      )m2PI) < 64) && (((fi1 -  96)m2PI) < 128)) ||
X		((((fi2 -  64)m2PI) < 64) && (((fi1 - 224)m2PI) < 128)) ) ){
X	    MoveTo(p3h + c, p3v); LineTo(p0h + c, p0v);
X	}
X
X	if( ! ( ((((fi2 -  64)m2PI) < 128) && (((fi1 - 224)m2PI) < 64)) ||
X		((((fi2 - 192)m2PI) < 128) && (((fi1 -  96)m2PI) < 64)) ) ){
X	    MoveTo(p0h + c, p0v); Line(-2 * c, 0);
X	}
X	if( ! ( ((((fi2 -  64)m2PI) < 128) && (((fi1 - 160)m2PI) < 64)) ||
X		((((fi2 - 192)m2PI) < 128) && (((fi1 -  32)m2PI) < 64)) ) ){
X	    MoveTo(p1h + c, p1v); Line(-2 * c, 0);
X	}
X	if( ! ( ((((fi2 -  64)m2PI) < 128) && (((fi1 -  96)m2PI) < 64)) ||
X		((((fi2 - 192)m2PI) < 128) && (((fi1 - 224)m2PI) < 64)) ) ){
X	    MoveTo(p2h + c, p2v); Line(-2 * c, 0);
X	}
X	if( ! ( ((((fi2 -  64)m2PI) < 128) && (((fi1 -  32)m2PI) < 64)) ||
X		((((fi2 - 192)m2PI) < 128) && (((fi1 - 160)m2PI) < 64)) ) ){
X	    MoveTo(p3h + c, p3v); Line(-2 * c, 0);
X	}
X
X	CopyBits(&work_w->portBits, &show_w->portBits,
X		 &work_w->portRect, &show_r,
X		 notSrcCopy, (RgnHandle) 0);
X    }
X    ShowCursor();
X    ExitToShell();
X}
+ END-OF-FILE ../mac/cube.c
chmod 'u=r,g=r,o=r' '../mac/cube.c'
echo '	-r--r--r--  1 roland       3886 Aug 29 14:12 ../mac/cube.c        (as sent)'
echo -n '	'
/bin/ls -l ../mac/cube.c
exit 0