Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator) (03/04/90)
Submitted-by: kyrimis@Princeton.EDU (Kriton Kyrimis) Posting-number: Volume 90, Issue 093 Archive-name: audio/n2a [ uuencoded executable enclosed. ...tad ] Here's a little hack I wrote to enable me to play NeXT sounds on my amiga. #!/bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 1)." # Contents: Makefile README n2a.c n2a.uu # Wrapped by tadguy@xanth on Sat Mar 3 20:10:59 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Makefile'\" else echo shar: Extracting \"'Makefile'\" \(91 characters\) sed "s/^X//" >'Makefile' <<'END_OF_FILE' Xn2a: n2a.o X blink FROM LIB:c.o n2a.o TO n2a NODEBUG LIB LIB:lc.lib X Xn2a.o: n2a.c X lc n2a.c END_OF_FILE if test 91 -ne `wc -c <'Makefile'`; then echo shar: \"'Makefile'\" unpacked with wrong size! fi # end of 'Makefile' fi if test -f 'README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README'\" else echo shar: Extracting \"'README'\" \(1006 characters\) sed "s/^X//" >'README' <<'END_OF_FILE' Xn2a converts NeXT sound files into 8SVX IFF files. NeXT sound Xfiles come in many different flavors; n2a groks only the XLINEAR_16 format, which is the one that most PD sound files seem Xto be using. NeXT recording applications use the MULAW_8 format. XYou can convert from this format to LINEAR_16 with the sndconvert Xapplication on the NeXT. You can tell whether a sound file can Xbe processed by n2a using the command: X od -b file | head -1 XIf the last number is 003, then the file is in LINEAR_16 format. X XThe program compiles both on the NeXT and the Amiga. I have pro- Xvided an Amiga executable, but I would recommend running the pro- Xgram on the NeXT, because the resulting 8SVX file is half the Xsize of the NeXT file. X XThis program is released to the public domain. X X Kriton (UUCP: rutgers!princeton!kyrimis) X (ARPA: kyrimis@princeton.edu) X----- X"Everybody keep calm. It's all under control, there's nothing to X see. It is merely a major scientific breakthrough." X----- END_OF_FILE if test 1006 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi if test -f 'n2a.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'n2a.c'\" else echo shar: Extracting \"'n2a.c'\" \(3080 characters\) sed "s/^X//" >'n2a.c' <<'END_OF_FILE' X#include <stdio.h> X#include <math.h> X#ifdef AMIGA X#include <exec/types.h> X#else Xtypedef long LONG; Xtypedef unsigned long ULONG; Xtypedef unsigned char UBYTE; Xtypedef unsigned short UWORD; X#endif X X#define MAGIC 0x2e736e64 X#define LINEAR_16 3 X X#define Unity 0x10000L X Xtypedef LONG Fixed; Xtypedef struct { X ULONG oneShotHiSamples, X repeatHiSamples, X samplesPerHiCycle; X UWORD samplesPerSec; X UBYTE ctOctave, X sCompression; X Fixed volume; X} Voice8Header; X Xmain(int argc, char *argv[]) X{ X Voice8Header v; X long i, nsamples, voffset, lengthoffset, nsamplesoffset; X int magic, offset, size, format, rate, nchannels; X unsigned short s16; X FILE *in, *out; X unsigned char s8; X X if (argc != 3) { X fprintf(stderr, "Usage: %s sndfile 8svxfile\n", argv[0]); X exit(1); X } X in = fopen(argv[1], "r"); X if (!in) { X fprintf(stderr, "Can't open %s!\n", argv[1]); X exit(1); X } X fread((void *)&magic, sizeof(magic), 1, in); X fread((void *)&offset, sizeof(offset), 1, in); X fread((void *)&size, sizeof(size), 1, in); X fread((void *)&format, sizeof(format), 1, in); X fread((void *)&rate, sizeof(rate), 1, in); X fread((void *)&nchannels, sizeof(nchannels), 1, in); X X if (magic != MAGIC) { X fprintf(stderr, "%s Is not a NeXT sound file!\n", argv[1]); X fclose(in); X exit(1); X } X if (format != LINEAR_16 || nchannels != 1) { X fprintf(stderr, "I can only handle linear 16 format with 1 channel!\n"); X if (format != LINEAR_16 && nchannels == 1) { X fprintf(stderr, "Use sndconvert on the NeXT to convert to this format\n"); X } X fclose(in); X exit(1); X } X out = fopen(argv[2], "w"); X if (!out) { X fprintf(stderr, "Can't open %s!\n", argv[2]); X fclose(in); X exit(1); X } X fwrite((void *)"FORM", sizeof(char), 4, out); X lengthoffset = ftell(out); X i = 0; /* update this later */ X fwrite((void *)&i, sizeof(i), 1, out); X fwrite((void *)"8SVX", sizeof(char), 4, out); X fwrite((void *)"VHDR", sizeof(char), 4, out); X i = 20; X fwrite((void *)&i, sizeof(i), 1, out); X voffset = ftell(out); X v.oneShotHiSamples = 0; /* Update this later */ X v.repeatHiSamples = 0; X v.samplesPerHiCycle = 0; X v.samplesPerSec = rate; X v.ctOctave = 1; X v.sCompression = 0; X v.volume = Unity; X fwrite((void *)&v, sizeof(v), 1, out); X fwrite((void *)"BODY", sizeof(char), 4, out); X nsamplesoffset = ftell(out); X i = 0; /* update this later */ X fwrite((void *)&i, sizeof(i), 1, out); X X fseek(in, (long)offset, 0); X nsamples = 0; X while (fread((void *)&s16, sizeof(s16), 1, in)) { X s8 = s16 >> 8; X fwrite((void *)&s8, sizeof(s8), 1, out); X nsamples++; X } X fclose(in); X if (nsamples % 2) { X s8 = 0; X fwrite((void *)&s8, sizeof(s8), 1, out); /* pad to even length */ X } X fseek(out, voffset, 0); X v.oneShotHiSamples = nsamples; X fwrite((void *)&v, sizeof(v), 1, out); X fseek(out, lengthoffset, 0); X i = 40 + nsamples; X fwrite((void *)&i, sizeof(i), 1, out); X fseek(out, nsamplesoffset, 0); X fwrite((void *)&nsamples, sizeof(nsamples), 1, out); X fclose(out); X exit(0); X} END_OF_FILE if test 3080 -ne `wc -c <'n2a.c'`; then echo shar: \"'n2a.c'\" unpacked with wrong size! fi # end of 'n2a.c' fi if test -f 'n2a.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'n2a.uu'\" else echo shar: Extracting \"'n2a.uu'\" \(13686 characters\) sed "s/^X//" >'n2a.uu' <<'END_OF_FILE' Xbegin 644 n2a XM```#\P`````````#``````````(```>6````^0```5L```/I```'EDCG?OXD% XM2"0`2?D`````+'@`!$?Y```#`'(`(#P```";8`(FP5'(__PI3P-`*4X#.$*LZ XM`SQP`"(\```P`$ZN_LY#^@%:<`!.KOW8*4`$F&8&<&1@``#\)FX!%"EK`)@#7 XM-$JK`*QG:"`/D*\`!`:`````@"E``P0@:P"LT<C1R")H`!#3R=/)(`)R`!(9& XM*4D#2-"!4H!"9U*``D#__I_`58!"=P@`(`)3@-2!'[(``"``4X)1R/_V'[P`( XM("``4X(?L2``(`!1RO_X(D\O"6!R*6L`.@,$<']2@-&L`P1!ZP!<3J[^@$'KZ XM`%Q.KOZ,*4`#/"\`)$`@*@`D9Q(L;`28($`B*```*4$#-$ZN_X(B*@`@9QHD1 XM/````^U.KO_B*4`#1&<*Y8@@0"=H``@`I"!L`SPO"$AL`P`@:``D*6@`!`-(W XM3KH`9DZZ%99P`&`$("\`!"\`("P#+&<$($!.D$ZZ$&XL>``$(FP$F$ZN_F).= XMN@`\2JP#/&<:(BP#1&<$3J[_W"QX``1.KO]\(FP#/$ZN_H8@'RYL`T!,WW]^S XM3G5D;W,N;&EB<F%R>0!.=4YU3E7_[$CG+Q`N+P`T)F\`."@'<#'`JP`89P9P\ XM_V```G`(*P`'`!I6P$0`2(!(P"P`2JL`%&8``(0(*P`"`!MF>G``)T``#'+_R XMOH%G``)"+PM.NA<.6$]*@&<,".L`!0`;</]@``(J".L``0`;2@9G#B`K`!0B8 XM`$2!)T$`#&`(("L`%"=```Q3JP`,;18@:P`$0^@``2=)``0@!Q"`<@`2`&`2< XM(`=R`!(`+PLO`6$`_U)03R(`(`%@``'6""L``@`;9UAP_[Z`9@9P`&```<(@[ XM!QM`__]*!F<B<@J^@68<<@(O`4AZ`;(O*P`<*T'_\$ZZ#]!/[P`,*@!@&G(!H XM+P%(;?__+RL`'"M!__!.N@^T3^\`#"H`?O]@``#@".L``0`;2@9G4G#_OH!G< XM3%2K``QR"KZ!9B8@:P`$0^@``2=)``00O``-(BL`#$J!:PHO"R\`80#^KE!/4 XM4JL`#"!K``1#Z``!)TD`!"`'$(`B*P`,2H%K``$<?O\@*P`$D*L`$"M`__!GS XM<@@K``8`&F=22'@``D*G+RL`'$ZZ!=!/[P`,*T#_[$H&9SA3K?_L;3)"IR\M: XM_^PO*P`<3KH%L$AX``%(;?_]+RL`'$ZZ%SA/[P`82JP#&&8*$"W__7(:L`%G1 XMR"\M__`O*P`0+RL`'$ZZ#M1/[P`,*@!@`GH`</^Z@&8(".L`!0`;8`RZK?_P9 XM9P8(ZP`$`!M*!F<.(BL`%"0!1((G0@`,8!@(*P`"`!MG"'(`)T$`#&`((BL`7 XM%"=!``P@:P`0)T@`!+Z`9RY3JP`,;18@:P`$0^@``2=)``0@!Q"`<@`2`&`22 XM(`=R`!(`+PLO`6$`_9!03R(`<##`JP`89P1P_V`,</^X@&8$<`!@`B`$3-\(G XM]$Y=3G4-"@````````````!P84CG!Q`F;P`4""L`!P`:5L!$`$B`2,`N`'`P% XMP*L`&&<*0JL`"'#_8``!6`@K``<`&V<4""L`!@`;9PPO"TAX__].NOT:4$]*H XMJP`49C9"JP`(""L``@`;9Q)P`2=``!1!ZP`@)T@`$&```(0O"TZZ%$Y83TJ`) XM9W8(ZP`%`!MP_V```0!*!V=F5*L`""`K``A*@&Y:(&L`!$/H``$G20`$?``<1 XM$"`&#(`````:9RX,@`````UF,E.K``AM%"!K``1#Z``!)TD`!'``$!!@``"T\ XM+PMA`/\N6$]@``"H".L`!``;</]@``"<(`9@``"6""L``0`;9DX(ZP```!LO0 XM*P`4+RL`$"\K`!Q.NA543^\`#"H`2H5J!@CK``4`&TJ%9@8(ZP`$`!M*A6\:[ XM2@=G"B`%1(`G0``(8`0G10`((&L`$"=(``1P,L"K`!AG%DH'9PAP_R=```A@@ XM!G``)T``"'#_8"!3JP`(;1(@:P`$0^@``2=)``1P`!`08`@O"V$`_H183TS?O XM".!.=0``+FP#0$ZZ%?I(>0```!1.N@@0``````````!P84CG(#`F;P`0)$M*" XM$F<D<``0$D'L`6T(,``!"`!G"G(`$@!T()*"8`1R`!(`%(%2BF#8(`M,WPP$? XM3G4``````````'!A3E7_^$CG`S`F;P`@)&\`)"XO`"@@2DH89OQ3B)'*+`@@Y XM2TH89OQ3B)'+(`@B2]/`*TG_^+R'8P(L!R`&($I@`A+84X!D^B!M__A",&@`? XM(`M,WPS`3EU.=2`O``@@;P`$3E7_]")/<@I.N@I8!D$`,!+!2H!F\"`)$.&_J XMR6;Z0A"0CTY=3G4``"`O``@@;P`$3E7_]")/(@`"00`'!D$`,!+!YHAF\"`)< XM$.&_R6;Z0A"0CTY=3G4``#`Q,C,T-38W.#EA8F-D968@+P`((&\`!$/O``0RL XM``)!``\2^Q#<Z(AF\B`)(@]8@1#ALHEF^D(0D(%.=2!O``0B2'(`<``O`@P0D XM`"MG!@P0`"UF`E)($!@$```P;1(,```);@PD`>6!TH+2@=*`8.8,$0`M9@)$- XM@20?(`A3@"!O``@@@9")3G5.5?_F2.</,"9O`#HN+P`^0BW__T*L`Q@K;`248 XM__)Z`[JL`.!L$B`%YX!![`-,2K`(`&<$4H5@Z"`L`."PA68,<!@I0`24</]@Q XM``$J(`7G@$'L`TS1P"1(2JT`$&<(""T``@`39PHK?````^S_[F`(*WP```/ND XM_^X@/```@`#`K`#XL8<(!P`#9PP@!P)`__PN``!'``(@!W(#P($,@`````)G7 XM#`R``````6<$2H!F!BP'4H9@#'`6*4`$E'#_8```M"`'`H````,`9P``B`@'E XM``IG%AM\``'__R\M_^XO"TZZ!V)03R@`8#P(!P`)9A9(>`/M+PM.N@<$4$\H, XM`$J$:@0(QP`)"`<`"6<:&WP``?__*6W_\@24+RW_[B\+3KH'B%!/*`!*+?__X XM9S8@!W)XTH'`@4J`9RI*A&LF+P1.N@?02'@#[2\+3KH&LD_O``PH`&`.2'@#; XM[2\+3KH&H%!/*`!*K`,89P1P_V`()(8E1``$(`5,WPSP3EU.=0``````````` XM`````````````````````````````'!A2.</$"XO`!@L+P`<*B\`("\'3KH(* XM9%A/)D`@"V8$</]@'B\%+P8O*P`$3KH%;$_O``PH`$JL`QAG!'#_8`(@!$S?! XM"/!.=0``2.<#,"XO`!1*AVX&<`!@``"D<`B^@&0"+@`@!U:`+@`"1__\1>P`Q XM\"92(`MG0"`K``2PAVTRL(=F#"!3)(B?K`#T(`M@;B`K``20AW((L(%E%B!+6 XMT<<DB"1()),E0``$GZP`]"`+8$PD2R938+P@!R(L`6C0@5.`3KH&\B(L`6A.Q XMN@;*+`!0AB`&5H`L``)&__PO!DZZ"`I83R9`(`MG$B\&+PM.N@^Z+H=A`/]4@ XM4$]@`G``3-\,P$YU``````````````````!.5?_T2.</,"9O`"PN+P`T)&\`4 XM.'P`O(=L2BHM``Q*A6\^>``8&U.J``QM%B!J``1#Z``!)4D`!"`$$(!R`!(`G XM8!(@!'(`$@`O"B\!3KKW.E!/(@!2@68$(`9@"E.%8+Y2AF"R(`9,WPSP3EU.P XM=0``2.<!$"9O``P(*P`!`!MG%DJK`!1F!'``8%PO"TAX__].NO;V4$](>``!- XM0J<O*P`<3KK^3D_O``PN`'#_OH!G!DJK`!1F!"`'8"P(*P`!`!MG#"`K``20, XMJP`0T(=@&`@K``<`&F<*(`<B*P`(T(%@!B`'D*L`"$S?"(!.=4CG`Q`F;P`0) XM+B\`%"PO`!@(*P`!`!MG#B\+2'C__TZZ]GQ03V`:<`&\@&84""L`!P`:9P@@] XM*P`(WH!@!)ZK``@G:P`0``1P`"=```PG0``(""L`!P`;9P9P_,&K`!@O!B\'; XM+RL`'$ZZ_9Q/[P`,4H!F!'#_8`APS\&K`!AP`$S?",!.=4Y5__1(YP\P)F\`V XM+"XO`#0D;P`X2JT`#&8$<`!@2'P`O(=L0"HM``Q*A6\T4ZH`"&T2(&H`!$/H* XM``$E20`$<``0$&`(+PI.NOAT6$\H`'#_N(!F!"`&8`X@!!;`4X5@R%*&8+P@: XM!DS?#/!.74YU``!(YP$@+B\`#%*L!)`@;`2,4Z@`#&T6(F@`!$7I``$A2@`$X XM(`<2@'(`$@!@$B`'<@`2`"\(+P%.NO5P4$\B`$S?!(!.=4Y5``!(YP`P)F\`X XM$"1O`!1"K`20*4L$C$AM`!`O"DAZ_YQ.N@H6+HM(>/__3KKU-B`L!)!,[0P`/ XM__A.74YU``!.5?_P2.</,"9O`#0D;P`X2JH`&&<(+PI.N@[66$\J+`%D?@%PJ XM`!`S>``,0`!B9PH,0`!A9@QZ`&`&*CP``(``4H=R*[(S>`!7P$0`2(!(P"@`E XM<``0$PQ``'=G``"(#$``<F="#$``868``+Y(>``,+SP``($"+RT`"$ZZ^G1/@ XM[P`,+`!P_[R`9@9P`&```-!*A&<&<$#0@&`"<`(N``!'0`!@``"(2H1G!'`"U XM8`)P``!`@`!(>``,+P`O+0`(3KKZ,$_O``PL`'#_O(!F!G``8```C$J$9P9PW XM0-"`8`)P`2X`8$A*A&<$<`)@`G`!`$"```!``0``0`(`2'@`#"\`+RT`"$ZZA XM^>I/[P`,+`!P_[R`9@1P`&!&2H1G!G!`T(!@`G`"+@!@!'``8#*1R"5(`!!PM XM`"5``!0E1@`<)6H`$``$)4``#"5```A*A68&(#P``(``(@>"@"5!`!@@"DS?6 XM#/!.74YU``````````!P84CG`Q`N+P`01^P`_"`+9S0(*P`"`!MF*`@K``$`Q XM&V<@("L`!)"K`!`L`$J&9Q(O!B\K`!`O*P`<3KH$.D_O``PF4V#(+P=.N@LHH XM6$],WPC`3G4``````````'!A2.<W$"XO`!PF;P`@+"\`)$JL`S!G!$ZZ#Z1"B XMK`,8(@<D"R8&+&P$F$ZN_]`J`'#_NH!F#DZN_WPI0`,8<`4I0`24(`5,WPCL& XM3G4``````````````````$CG/P`N+P`<+"\`("HO`"1*K`,P9P1.N@],0JP#* XM&"`%4X`B!R0&)@`L;`283J[_OB@`</^X@&8.3J[_?"E``QAP%BE`!)0@!0R`L XM`````F<6#(`````!9PA*@&88(`9@%"`$T(9@#B('=`!V`"QL!)A.KO^^3-\`P XM_$YU``!(YS<0+B\`'"9O`"`L+P`D2JP#,&<$3KH.T$*L`Q@B!R0+)@8L;`28= XM3J[_UBH`</^Z@&8.3J[_?"E``QAP!2E`!)0@!4S?".Q.=0``2.<C$"9O`!0N) XM+P`82JP#,&<$3KH.B$*L`Q@B"R0'+&P$F$ZN_^(L`$J&9A).KO]\*4`#&'`", XM*4`$E'#_8`(@!DS?",1.=0``3E7__$CG(1`F;P`82JP#,&<$3KH.0$*L`Q@BR XM"W3^+&P$F$ZN_ZPN`$J'9PHB!TZN_Z9P_V`F(@LD/````^Y.KO_B+@!*AV829 XM3J[_?"E``QAP`BE`!)1P_V`"(`=,WPB$3EU.=4Y5__Q(YR$0)F\`&$JL`S!G& XM!$ZZ#=Q"K`,8(@MT_BQL!)A.KO^L+@!*AV<,(@=.KO^F(@M.KO^X(@LD/```A XM`^Y.KO_B+@!*AV823J[_?"E``QAP`BE`!)1P_V`"(`=,WPB$3EU.=0``+P<NT XM+P`(2JP#,&<$3KH->B('+&P$F$ZN_]QP`"X?3G5(YS``)``F`4A"2$/$P<;`8 XMP,'40TA"0D+0@DS?``Q.=4J`:@``'D2`2H%J```,1(%A```@1(%.=6$``!A$4 XM@$2!3G5*@6H```Q$@6$```9$@$YU+P)(030!9@``(DA`2$%(0C0`9P``!H3!T XM,`)(0#0`A,$P`DA",@(D'TYU+P-V$`Q!`(!D```&X9E10PQ!"`!D```&Z9E9` XM0PQ!(`!D```&Y9E50TI!:P``!N.94T,T`.:H2$)"0N:J2$.`P38`,`(T`TA!2 XMQ,&0@F0```A30]"!9/YR`#(#2$/GN$A`P4$F'R0?3G4O!RXO``AP`"E``QA*+ XMAVLBOJP`X&P<(`?G@$'L`TQ*L`@`9PX@!^>`0>P#3-'`(`A@"'`)*4`$E'``\ XM+A].=0``2.<`,B9L!)P@"V<4)%,B2R`K``@L>``$3J[_+B9*8.B1R"E(!*`I@ XM2`2<3-],`$YU2.<!,BXO`!1P#-Z`(`=R`"QX``1.KO\Z)D`@"V8$<`!@.B='X XM``A%[`2<(&H`!"=(``21R":(2I)F`B2+2JH`!&<&(FH`!"*+)4L`!$JL`.1FJ XM!"E+`.1!ZP`,(`A,WTR`3G4``````````````````$CG!S`N+P`8)F\`'"PO= XM`"`O!TZZ_PQ83R1`(`IF!'#_8#8(*@`#``-G$$AX``)"IR\'3KKV=$_O``PO( XM!B\++RH`!$ZZ^Z1/[P`,*@!*K`,89P1P_V`"(`5,WPS@3G4``$Y5_\1(YR<PP XM)F\`7"1O`&!^`'P`>@!P`!M\`"#_^W(`*T'_]G3_*T+_\D'M_]`;0/_Q&T#__ XM_"M!_^0K0?_H*TC_S$H39RQP`!`3!$``(&<45T!G%%%`9PA50&86?@%@#GP!+ XM8`IZ`6`&&WP``?_\4HM@T!`3<C"P`68&4HL;0?_[<"JP$V8,(%)8DBM0__92M XMBV`.2&W_]B\+3KKSQE!/U\`0$W(NL`%F(E*+<"JP$V8,(%)8DBM0__)2BV`./ XM2&W_\B\+3KKSG%!/U\`0$W)LL`%F"AM\``'_\5*+8`AR:+`!9@)2BQ`;<@`2; XM`!M`__`$00!89P`!?@1!``MG``(*4T%G)`1!``MG``$24T%G``%05T%G``&Z_ XM54%G``#D5T%G``%28``!^$HM__%G""!26)(@$&`&(%)8DB`0*T#_[&P*<@%$C XMK?_L*T'_Z$JM_^AG!'`M8`I*!F<$<"M@`G`@&T#_T'``$`8B+?_H@H!P`!`%P XM@H!G"%*M_\Q2K?_D+RW_["\M_\Q.NO(^4$\K0/_(("W_\DJ`:@9R`2M!__(@\ XM+?_((BW_\I*`2.T``O_$;S0@;?_,(DC3P2\`+PDO"$ZZ!FI/[P`,<``0+?_[` XM(BW_Q"!M_\Q@`A#`4X%D^B`M__(K0/_(T:W_Y$'M_]`K2/_,2@=G``$P&WP`: XM(/_[8``!)DHM__%G""!26)(@$&`&(%)8DB`0*T#_[&``_V1*+?_Q9P@@4EB2` XM(!!@!B!26)(@$"M`_^Q*+?_\9Q(@;?_,$/P`,'(!*T'_Y"M(_\PO`"\M_\Q.; XMNO&B4$\K0/_(8`#_,AM\`##_^R`M__)*@&H&<`@K0/_R2BW_\6<((%)8DB`0> XM8`8@4EB2(!`K0/_L2BW__&<6(&W_S!#\`#`0_`!X<@(K0?_D*TC_S"\`+RW_: XMS$ZZ\8903RM`_\AP6+`M__!F`/[02&W_T$ZZ\&)83V``_L(@4EB2(E`K2?_,6 XM9@A!^@#8*TC_S"!M_\Q*&&;\4XB1[?_,*TC_Y"`M__)*@&LFL<!O(BM`_^1@> XM''`!*T#_Y"!26)(@$!M`_]!"+?_18`9P`&```(P@+?_D(BW_]K*`;`AT`"M"- XM__9@!)&M__9*!V<V4ZW_Y&T8<``@;?_,$!@O`"M(_\P@;0`03I!83V#B4ZW_B XM]FU(<``0+?_[+P`@;0`03I!83V#H4ZW_]FT2<``0+?_[+P`@;0`03I!83V#H? XM4ZW_Y&T8<``@;?_,$!@O`"M(_\P@;0`03I!83V#B(`M,WPSD3EU.=0``3E7__ XM]$CG`3`F;P`@)&\`)"MM`!#_]AX:2@=G-'`EO@!F(K`29@12BF`:+PM(;?_V" XM+PIA`/P63^\`#"M`__IG!"1`8-)P`!`'+P!.DUA/8,9,WPR`3EU.=0``3E7_& XM\$CG(3(F;P`L#*P````@!.)L``"&$!-R(+`!9PQR";`!9P9R"K`!9@12BV#H1 XM2A-G:"`L!.+E@%*L!.)![`3JT<`D2'`BL!-F)E*+)(M*$V<*<"*P$V<$4HM@W XM\DH39@Q(>``!3KH")%A/8)Y"&V":)(M*$V<8$!-R(+`!9Q!R";`!9PIR"K`!> XM9P12BV#D2A-F`F`&0AM@`/]R2JP$XF8&(&P#/&`$0>P$ZBE(!.9*K`3B9GQ#3 XM^@$D3>P$J"S9+-DLV2S9/)$B;`,\(&D`)$AX`"@O*``$2&P$J$ZZ[GY/[P`,` XM+&P$F$'L!*@B""0\```#[DZN_^(I0`-0*4`#6'(0*4$#5"E``V`I00-<Y8`K- XM0/_P+'@`!)/)3J[^VB!M__`B0"-H``@`I'X`*T#_]&`J+&P$F$ZN_\HI0`-0W XM3J[_Q"E``UA!^@"F(@@D/````^U.KO_B*4`#8'X0(`<`0(`!@:P#3"`'`$"`@ XM`H&L`U0`K```@`,#7$JL`61G!'``8`8@/```@``N`$*L`1@@!P!```$I0`$4G XM<`$I0`$Z(`<`0``"*4`!-G`"*4`!7"`'`$``@"E``5A!^@/Z*4@#,"\L!.8O/ XM+`3B3KH`)D*73KKU3$SM3(3_W$Y=3G5C;VXZ,3`O,3`O,S(P+S@P+P`J`$[Y: XM`````````````$CG,#(L;P`X(&\`&")O`!PD;P`@)F\`)"`O`"@B+P`L)"\`K XM,"8O`#1.KOZD3-],#$YU```O"R9O``A*JP`49PP(*P`#`!MF!'``8#8O+`)P^ XM3KKP,EA/)T``!"=``!!*@&8*<`PI0`24</]@%B=L`G``%'#SP:L`&'``)T``F XM#"=```@F7TYU``````````!P84CG!P`N+P`0("P`X%.`+`!*1FLP(`9(P.>`B XM0>P#3"HP"`!*!6<:"`4`!&84(`9(P.>`0>P#3"\P"`1.NO;D6$]31F#,+P=.' XMNN><6$],WP#@3G4``$Y5_^A(YP$R+B\`-$J';@9P_V```-)P"+Z`9`(N`"`'& XM5H`N``)'__PD;0`(("T`"-"'WZP`]$'L`/`F4"M`__`K2/_T(`MG``"0($L@, XM*P`$T<`K2/_L(FW_\+?)8Q`DBR5'``0L;?_T+(IP`&!XM\EF&BQ3)(X@*P`$X XM(@#2AR5!``0L;?_T+(IP`&!:M<AD")^L`/1P_V!.M<AF+$J39PX@4[/(8PB?O XMK`#T</]@.-^K``1*DV<.L]-F"B`I``31JP`$)I%P`&`>*TO_]"MM_^S_Z"93[ XM8`#_;B!M__0@BD*2)4<`!'``3-],@$Y=3G4``$CG!S`N+P`8)F\`'"PO`"`O& XM!TZZ]LQ83R1`(`IF!'#_8!XO!B\++RH`!$ZZ]%!/[P`,*@!*K`,89P1P_V`"V XM(`5,WPS@3G4``"!O``0B;P`(("\`#&\6L\AE#-'`T\`3(%.`9OI.=1+84X!FG XM^DYU``!.5?_X2.<`,$?L`/P@"V<,2JL`&&<&)$LF4V#P(`MF(DAX`").NNX:: XM6$\F0$J`9@1P`&`<)(MP(7(`($L0P5'(__PO"R\M``PO+0`(3KKQ'DSM#`#_0 XM\$Y=3G4``$CG`Q`F;P`0""L``0`;9Q`O"TAX__].NN8<4$\N`&`"?@!P#,"KA XM`!AF%$JK`!1G#B\K`!0O*P`03KK^"E!/0JL`&"\K`!Q.N@((6$\L`'#_OH!G+ XM!DJ&9@)P`$S?",!.=4Y5_ZA(YP$"+'@`!$/Z`(YP`$ZN_=@K0/^H9@I(>``4J XM3KK];EA/?@`@;`-('BC__R`'0^W_L&`"$MA3@&3Z0C5XL$'M_[`I2`*`+RW_` XMJ$AX`"A(>`#Z<``O`"\`2&P"G'(`+P%(;`*(+P%.NOR42'@`%$ZZ_1Q,[4"`` XM_Z!.74YU*BH@4W1A8VL@3W9E<F9L;W<@*BH``$58250``&EN='5I=&EO;BYL6 XM:6)R87)Y````````````<&%.5?^82.<S`GX`(&P#2!XH__]P3[Z`;P(N`"`'4 XM0^W_KV`"$MA3@&3Z0C5XKRQX``23R4ZN_MHK0/^F($!*J`"L9U(B*`"LY8$B6 XM02PI`#A([0`"_YY*AF8$+"@`H$J&9S0L;`28(@9!^@"R)`AV"TZN_]`@1U*'\ XM(`@;O``*"*\L;`28(@8F!T'M_Z\D"$ZN_]!P_V!2+'@`!$/Z`(QP`$ZN_=@K: XM0/^:9@1P_V`Z0>W_KRE(`M`O+?^:2'@`/$AX`/IP`"\`+P!(;`+L2&P"V$AL( XM`L1"ITZZ^W)/[P`D4X!G!'#_8`)P`$S?0,Q.74YU*BH@57-E<B!!8F]R="!2' XM97%U97-T960@*BH``$-/3E1)3E5%``!!0D]25``J*BH@0G)E86LZ(`!I;G1U. XM:71I;VXN;&EB<F%R>0!(YP$0+B\`#"\'3KKSN%A/)D`@"V8$</]@*`@K``0`H XM`V<&<``F@&`:+RL`!$ZZ\I)83W``)H!*K`,89P1P_V`"<`!,WPB`3G4O!W``` XM(CP``#``+'@`!$ZN_LXN``*'```P`$J'9R!*K`,P9QH@;`,P3I!*@&8"8`Y"F XMK`,P2'@`%$ZZ^QY83RX?3G5AO$YU``````/L`````0````$``!C.`````@``$ XM``(````4````"@````````/R```#Z0```/E.5?^TO^P#!&4``YY(YP<0+BT`I XM""9M``QP`[Z`9QHO$TAL``!(;`%`3KH#D$AX``%.N@.@3^\`$$AL`!PO*P`$' XM3KH#<E!/*T#_NF8<+RL`!$AL`!Y(;`%`3KH#8$AX``%.N@-P3^\`$"\M_[I(Y XM>``!2'@`!$AM_]1.N@-D+JW_NDAX``%(>``$2&W_T$ZZ`U`NK?^Z2'@``4AX! XM``1(;?_,3KH#/"ZM_[I(>``!2'@`!$AM_\A.N@,H+JW_NDAX``%(>``$2&W_@ XMQ$ZZ`Q0NK?^Z2'@``4AX``1(;?_`3KH#`$_O`$P,K2YS;F3_U&<D+RL`!$ALA XM`"Y(;`%`3KH"OBZM_[I.N@+(2'@``4ZZ`L9/[P`0<`.PK?_(9@AP`;"M_\!GI XM/DAL`$Q(;`%`3KH"CE!/<`.PK?_(9Q9P`;"M_\!F#DAL`(!(;`%`3KH"<%!/! XM+RW_NDZZ`GA(>``!3KH"=E!/2&P`MB\K``A.N@)*4$\K0/^V9B0O*P`(2&P`V XMN$AL`4!.N@(X+JW_NDZZ`D)(>``!3KH"0$_O`!`O+?^V2'@`!$AX``%(;`#(Z XM3KH"'"ZM_[9.N@(F*@!"K?_H+JW_MDAX``%(>``$2&W_Z$ZZ`?HNK?^V2'@`J XM!$AX``%(;`#.3KH!YBZM_[9(>``$2'@``4AL`-1.N@'2<!0K0/_H+JW_MDAX4 XM``%(>``$2&W_Z$ZZ`;@NK?^V3KH!PBP`<``K0/_L*T#_\"M`__0@+?_$.T#_Q XM^!M\``'_^D(M__LK?``!``#__"ZM_[9(>``!2'@`%$AM_^Q.N@%R3^\`3"\M[ XM_[9(>``$2'@``4AL`-I.N@%:+JW_MDZZ`61"K?_H+JW_MDAX``%(>``$2&W_' XMZ"M`_]A.N@$V0I<O+?_0+RW_NDZZ`2)/[P`D0JW_Y"\M_[I(>``!2'@``DAMN XM_[Y.N@$D3^\`$$J`9RAP`#`M_[[@@!M`_[4O+?^V<`$O`"\`2&W_M4ZZ`.9/0 XM[P`04JW_Y&"\+RW_NDZZ`-I83R`M_^1R`DZZ`+!*@6<:0BW_M2\M_[9P`2\`7 XM+P!(;?^U3KH`KD_O`!!"IR\&+RW_MDZZ`)@K;?_D_^PNK?^V2'@``4AX`!1(^ XM;?_L3KH`A$*7+P4O+?^V3KH`<G`HT*W_Y"M`_^@NK?^V2'@``4AX``1(;?_HW XM3KH`6D*7+RW_V"\M_[9.N@!&+JW_MDAX``%(>``$2&W_Y$ZZ`#@NK?^V3KH`2 XM-D*73KH`-DSM".#_I$Y=3G5.^0``!=A.^0``$,A.^0``&QQ.^0``#$A.^0``B XM"Q!.^0``"B1.^0``&WA.^0``#?A.^0``"I1.^0``"Y0```/L````"@``````Z XM``.P```#P@```]H```/(```#S@```^````.V```#U````[P```.J````````0 XM`_(```/J````P%5S86=E.B`E<R!S;F1F:6QE(#AS=GAF:6QE"@!R`$-A;B=T0 XM(&]P96X@)7,A"@`E<R!)<R!N;W0@82!.95A4('-O=6YD(&9I;&4A"@!)(&-A[ XM;B!O;FQY(&AA;F1L92!L:6YE87(@,38@9F]R;6%T('=I=&@@,2!C:&%N;F5L- XM(0H`57-E('-N9&-O;G9E<G0@;VX@=&AE($YE6%0@=&\@8V]N=F5R="!T;R!T6 XM:&ES(&9O<FUA=`H`=P!#86XG="!O<&5N("5S(0H`1D]230``.%-66```5DA$? XM4@``0D]$60``````*`````````````````````````````"``````1X`````' XM``````````````````````````````````````%`````````````````````! XM````````````````````````````````````````````````````````````` XM``````````"`````!```("`@("`@("`@*"@H*"@@("`@("`@("`@("`@("`@L XM("!($!`0$!`0$!`0$!`0$!`0A(2$A(2$A(2$A!`0$!`0$!"!@8&!@8$!`0$!: XM`0$!`0$!`0$!`0$!`0$!`1`0$!`0$(*"@H*"@@("`@("`@("`@("`@("`@("> XM`@("$!`0$"`@("`@("`@("`H*"@H*"`@("`@("`@("`@("`@("`@($@0$!`06 XM$!`0$!`0$!`0$!"$A(2$A(2$A(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!9 XM`0$!`0$!`0$!$!`0$!`0@H*"@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0= XM(````````@#__P````X`#@```````````````/__````!``$````````'%@`V XM``)T__\````$``0````````<;@````#__P````X`#@```````!U^`````/__Y XM````!``$``````````````*P__\````$``0````````=F@````#__P````0`Y XM!````````!VD`````````^P````%`````````O@```+D```"O````J@```*47 X@````!`````(```+4```"F````1X```#\`````````_+DJ X`` Xend Xsize 9752 END_OF_FILE if test 13686 -ne `wc -c <'n2a.uu'`; then echo shar: \"'n2a.uu'\" unpacked with wrong size! fi # end of 'n2a.uu' fi echo shar: End of archive 1 \(of 1\). cp /dev/null ark1isdone MISSING="" for I in 1 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have the archive. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 -- Mail submissions (sources or binaries) to <amiga@cs.odu.edu>. Mail comments to the moderator at <amiga-request@cs.odu.edu>. Post requests for sources, and general discussion to comp.sys.amiga.