www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/01/15/12:24:07

Date: Wed, 15 Jan 1997 09:12:52 -0800 (PST)
From: Tyler MacDonald <uf186 AT freenet DOT victoria DOT bc DOT ca>
Subject: Audio CD Drivers for DJGPP
To: djgpp AT delorie DOT com
Message-ID: <Pine.3.89.9701150954.A19374-0100000@vifa1>
MIME-Version: 1.0

 
        DJGPP CDROM Drivers
 
        I would like to thank Barry Egerter for writing his original
Borland C++ 3.1 CDROM Audio Routines. My changes have been minimal;
I've just gutted the interrupt calls and made them handle the annoying
protected/real mode clash more nicely.
 
        AFAIK, this code is Public Domain (in Barry's words, "Freeware;
distribute and modify at will").
 
        For a sample of how the code works, check out SCD.C... It's
a simple command-line CD player that uses some of the functions.
 
        Any questions/comments, email me at uf186 AT freenet DOT victoria DOT bc DOT ca
 
                - Tyler "Crackerjack" MacDonald
                  01/15/97

 
MIME-Version: 1.0
Content-Type: message/partial;
                id="UUDV-853347845.7176.djcdrom.zip";
                number=1; total=1
 
Content-Type: Application/octet-stream;
                name="djcdrom.zip"
Content-Transfer-Encoding: x-uue
 
begin 644 djcdrom.zip
M4$L#!!0``@`(`%U'+R+/B91G-00``$,-```%````4T-$+D.=5FU/XT80_H[$
M?QA2)=B0N';N193$M"F AT BK8'%>3ZY4#6UEXG*QS;VEWG+KKCOW=?8F>=.$8"
MI!!V=F:?>>;9G?F)I&%21!C&C$<D<^87AP?56B>,:+9PYIW#`[$:X9BD&/Z]
MOG^XN;L-/MW<WMV#UV"8_"D,[J[A]^OI!([1L8RVS$@$+(P"1-(XL^S#@^^'
M!P`DY8`IS6 AT 0<CJ2*U$&R@(@-L\P#U`A<`;2"RQ[I$V5R^GI>B7""5I90U?O
M>(&O<Y)@L"R541`ACASE!+X/[K<SSQW:T.N!546",7QP7?O'#],ER;[J\WW?
MM67HEUHNM53TCTR(T^<^</7)\I",-M9PCB AT L2"H,..Q#3-$"&^:<"O?8ZEQ>
MP8T(31>(DRP]?TP[MK'+8-%8E>?Y!O0YF<TU]D%30H8GB2WI?.']8BN\_ID+
M/X-:$W]+2M=G2[O\&'AN0X AT S=QW"-(I$K"UP&QC",&Z&+4VGIS88Y%8T1@&G
M*'P.$IS.^-Q25/<4KSU%;$\Q:P(W7!GFVAVD8],F$H.I`GT67^58JN=J,IT$
MT_O)Y5_VKF=5PJX[+.!$[CV!3A_V'(03AE\+TG7?%>?JFX[3KP34#%U58BS*
M5H51^MEWEJR.8DO43/T=*\VJKXI^R`L>6L=P+,[D459P$>ME$^AE5[Z/Z33C
M*-D@%\`-.B/"RLH%,I4=4'OV;F6,OQ%NN?5+N4`DM1"=A7T0GTM1('D?Y8+8
MIB[?B5S_\C2J75HVSRB7TBCR<%2_RZ74E*+EKZD1&=CWAXT:92Q$:6RIX[RG
M/G2Z1-#0*^/MJ=T1XS1<Y%9GP#HZ!^%LVQL8`^\U1[+'<=CL6&WP75LQ53VI
MZ^KNIGS1G'%9_L\,S?`Y=!E\49&?'M,2DOO4E'?IN/Y7.`Y8:7O AT 6<[@\LIY
M0Q!2VOX AT 2RR#@'PU7XVDA#6TVUBHD?9]0[(WVMU[I.5,4L91DN#(LEO9NY8-
MZ1QN,X%W<'_W"2I'9ZL/U/!Z>_&6@:>K!--C!@^"AV[A=(MN"$7LG7W\+:88
MIY@[2Q+RC!+D_!<Z(9(T[1Y6:_K]^G#0KW5^N[&QJ90B*@H"A*V_=$,'ZD]$
M3"CC@;*>?OQ AT C^J<&O0/O'T- AT O$LUXW$:I.+U%?^"K=NBQ9,+$/;F`JV,4L=
M!%&6XB"7DXIM]WKK]\-K%\0DH1A%*Y!N))V]$6GST*"?/%]/6N);`^PROXO&
M)JWG);UCW-3 AT VW.[29<H(1$H_];,WN_-S.SH5M/SJHK4T,Q]WVCE;2BKBV@(
M5X8":TI7@"`B<8PI5I.?"/ZKW9;(NS8Q;6OD;=K6L[#GNFV<)9F AT Z^\[D?IH
MBTO\O,M7GC$B9U%SLS[F??T8$4%BU^A@?Z#:=<=IE,6RU6_+;_/2'OG>9J#Y
M1U\%B$4$S3ETB7[7FP0@)Y]MWU)LNYQ\OMUF96O2^!]02P,$%``"``@`1$@O
M(OZTM=EW$0``)%,```<```!#1%)/32Y#[3QI<]O(E9^I*OV'MTY%0\JD!)"B
MSM`5BJ0]3GRM)&\R-9EB AT 4"#[!A$<]&`CFSYOV^_/H`&",J2LW;-[(A5LHE^
M1[_7_:X^P/U=./>2Y`XF<Y*D)/F!PSE+(B\.8/3\.?3V7!B-+]Z_A6$64`87
M+$MI3#@TG>-]]WC_Y*"UO04`'Y@@#B!E,/[+JP\?H+OGP.P.KNXBDL"S4>+Y
MGTCR3_'O,WCK^6,6>U$`CKOO]O=/CK:W)(_7L>@_)BE,EAZ-3D%^)(=3R$+W
M^/#/84*(0-B[IG[*$NKMS?P]WY/$M1^IV2G,\+\]HA3\,V=ABDQ\MMS>VMW'
MSO]`8S_*`@)_"AC?6[RP6RBK-"S)LM(2^G$:5=J"U9)6FN:LUY5-HC$@(8V)
M'EKGMNL6;9._3$97TZN+X4_@%*T7D\O)%70MTC?O+R<*K5^TOIV,7P^GHQ^'
M[UY-X*1H/_]X^1-`W[48"-+17Z=OAY=_A:YSC%*E=RLB@,#3)/-36$7>'8U#
M!O^#(YS%G,YC$H"_\!+P69PF+#I;AWA!4M.:H AT 74M-,X(+<U[4L:U[1RXM>T
MAHFW)#7M_R()JQ.PGK=7S]PSW#^?X1"M#=(UB[(E*89I31$6*-G6-5]EJ5,+
M4CR=S63N/63N9K+N/63=S62]>\AZULCH$2E;"U^P)(4 AT H=>$UPPOA#3AZ53"
MSVH(_2Q)2)Q.:^PG8O$<E&%-5XS3E+*Z>=48.&UUT(C=3#T,;77`!9TO-D,#
MRC]-(Q+/T\6TWJ9**/7V54*1ML;7U6P`B0,6(FH=BVSE_WSTRR;F-/CY\)>Z
MH>.IEV:\;M1)DK#D3,70_5VX)`0"POV$KG"0848B=@,8.C^#'R1L.0V\U)-6
M(+!E3)N.AU?#O<G%Q?L+&!>D*M*?TQ3<?AZE.S#!_F!&TQQZT'$=`[T AT G"37
M)#!`.+%(SS-^EP..+<"8Q20'''6<2F<^"P AT T9TH2%K=0L@+"P4L(I`L"(8N$
MLC2>GRK9!9^_)30EG57"4H(!@++(4[H!N``?XT\QNXDABY4Z78`Q6C?$+(6$
M>($4MU<@^FRY]&*IW0'`Z&*DAA^?^YC"`N4]@O:_,\)3'7 AT R(9^R&D0\!)RD
M3P7E4<%_20(J<^0Q(F'BE**$+%.=G@!\2"CF7F!9"BR$E;<BDLM0*PNAET5J
M<@`NA`Y%PPC@%8E)XD6BC49"+&P=0VG6)N7'EYCKK[V(!M)`T5;C.3')6!H1
MP%O1`5U%Y%;5!4FV2B'1U8?.^,]F3.A[0X)G$"9L"1=>%,*Y:(E_X/#V<OS^
MTJ)]0WD*UP=[+O;P^MT5=%WHP&C<P0P<D&OJ$S70B6A^_7YT]09>O_OP\6I[
MJS'\.PS AT X,#I+L3#.3Z$-"(@I`XBG)>0)"3V:3R77N?Y.)2:8\B2O`_)7'`8
M(8<X6\YPQ$.8W:6$8^6$QB'`X\O3\=^A\\+D6)A%S/\$34X(_,'I'_9:VUL7
M),V2^!1&+\&/"`;J$'CF^X3S,(L$$QR>85T_0KK,BZ([TYO AT P$D*+#:V4Y`2
MRU$<=]%V^N+O4/R-%RTCSM&1`UX*PQ\'_9.%$.P=2\EI`QT'0X+H!.4D`01D
M1>*`8S_2JS#J2XE0,FPI*7N&35*4A"P]K!&26CR@'*<B$AW,[B38#/(E(<.(
MLU.AR>#@P.DMGJE9>-:64_]R7[0[QW)&M[>:5]XL(N#T#[M"A?_RHHSPTLRA
M*C."$ZR=D`2GVUO@.(M&V7(6Q$-9O2!("$<S=5R!(MT702"$-K%"]-U("J<0
M(C;4@&-8ICREOJ0_6#1D`I).$I,(L-1`0%^0>S<Z-JBY;6:Q].-50K`8QQI>
MB=?A*^+3D/I8K#N'N=0J`V#;T:+!56S@]%_HPL[QHJ%2?-YRLFC(6*+]U:(>
M&B&E.QL)STVKS,!Y\\@T_V=G5-%I;$`\FW6J"D\6C8\?1M(><=)>LF3IR7"E
M9ZED&:?;6^_#D).T<2FD;U AT IJ%',=J^E)_'\IZM)HVZ6"Z]#R^AT.F$6^S('
M"C+QJ&=X_+?W%^-[34$Q\B+.I*]T%U5VKL5.BJ,)49RE5+G1$'W"CY>OY%=W
M`1="OG/&/FEC4D+H AT BFW-!P@*=$/7(J$Q!&;4]^+0,^X#A$T1N9Y9[(6V1<H
M+`[VES3.4K*?Q1D7G0I,TW>.WD1:S7``"A]VX:#O./`<%!OQ?-073Y(U=,#M
M.]5AZ!7#`/`.<"1X(XO5DB4`CZ,^?1AF<S@^!F/6VJ=*G`ZJ`RIKV=R-FDZG
MUY).SK+4!CAZ."6-]H!-:+W'L7:U0W^!M:O=^S&LN]JQO\"ZJWW],:Q[.AI\
M AT 75/!7]^VB@#.#@R$KFRI(I(F,K'A,X7:1NZ\J%7P%8)%?QE/83A'[%4VQEX
M>LV!)H"N0-$80H$G`S^1)0DFLQ1]AJH(3CQ_`65%4P8ST0/7%:]X-,F&>TO2
M4=X@`!7]O!3"+(J@^?+EHJ4EJ9A<OVIRU>2K<BZ:%[C=8VW=LRP,!1)*:P7S
M"NO#3=%FY:$SI23A1:PZJ'K5454P%*045GS&/I'`1);$N]%>(+NR,@/Z?IU\
MQVOR6<D#B12/*ME)5;#:!*-$#%C\0PI8TQHQ%;)@)M&E]"]?FN:%QV%&2`PY
MM-3SL-ISQ&ZPNK8SEIH^.Q[@@G`S5L_H+@1/TCSTLQ`BX AT 4=K*X523,/GZ',
M8G*^"MG.J[+9'>$T8^D$OA=%)&F5HK_L&,U_Q6 AT LD^/&#HMPH5!,^E3IMM&8
MT92#VV^[!VVW>ZKYX"H:FC%+J4].0:+@6@)IZ3QC&?^/%M(V',>!](9!J73A
M;8$,JX1TR'*U\#CE&M>MP84;FBYJD%U'E6-2'MGDBKY"EB4/ZLP5G=4@;^B-
MI0N20%&ER5$!MW<*`9W3U(N$YJL[6)%D2=-TS<9&U7D<O7]W=?'^C8QYP_&%
M*H";'@8&GU#1A5K'R##0LNVNQM)DNYYFO8]FIQ>5 AT 1O_L'.)RL(->`%)%L=H
M)BD&6]2=QF9$"[N0:;JQ;Z<,W%*ST\&SX=O7[YZA`,\^R&_X^8<N%C7&Y62D
M,>0W^:E(P&)9.>I24M.]O!B^G6A*_7V_,L#CM:B3.X"J,?+JJ\[^^X9(:![S
ML%RWGQA@$<-U""N6:FJQX[,5)1Q.#G601\Q*^8H68HHC&F,"DC&_HLWD(>:B
MTP<<Z>SQ\<-H?S)\IY=I;@_.1V-EG;P=L9L.2[`*C>]F6/-B)/+,PHMR<%KV
M5)G)K4X!5MOG-`TIB8+RNJB:@DXE8I.W-A3<\K#`:00,RX<5P660JYZR&*MV
MN1+J-GBV6K$DY9B'Y%#+A![C],A=/IP!D["@U[A):(H]B(>#AN_%<N-:.?C^
M-0V(#M0XK?V"MUPI1<2[%LP%Y-!>C!T5:"M<WJ?^PJP)D,MQ`2ZOS70,%2 AT G
M!4IN>E9%7U%&%O7 AT  DOT GKU0[G>>Y^;/1&Y)O1Q3TD07$Q>70H."9GS-E8I^.4L
MQ]&[L)<2BY=A&"P"<JVW&T5[>4?0GV6A!P/`G6=$Q6=>BR7W^JX9-0O,J=F<
M:LK&7;D&:X-Z6%YCQ&[+WI?76!"TMK?D+O%TBL<D4Q02\F]R0Y*&387ZPFE!
MP/B2+%=9VC2L%*RM)=X%][`ER7(F>[=[WNW`N77[KK,&\6\'Q;;E7G4'VL:<
MW0ZFTW0&.^#<.N$:F/!!4\)?O("#EL0*Q4?AY4+KP2@&O AT W-,A>E`3RO]*UT
MTH-$X[3IW';#-NSD6*U-8S4G:;,8FV*\U/BU+`$1\V'2E#602B&CS[DI)"28
MSM#0FV6#N<8-E79E:WIW2>.U-D[\M389R(W!J"<8*)YJ6N1'#SIR$-!F&1R&
MCM/".3I62*+K*A*B:"3WT&A5M?P%G]?J9J1;.\)J@]3('"$A3C%(>EAV)-Z.
M1-Q1RDHIE72#2H<ME%TMJRVLYP)-[MRW4']<99>!UH+[3`F!VW(*ODE9/YCB
M?D%^M*)<VZAJG_54%<^CRSJ(9S/<%Z^%^6SIUQR6J1,)ZZP"%'H6"Q02_'S\
M2RTWN0BH0J1B DOT  AT S7]R-3^`819/ZN98G+01K4RJ&V3'X^4%)^QE1T9Z*E-HG[
MQG+C\:$7)-,ZX)J*G^6V3W%"`R41]M1DP<!R;O&`T8*%T+11E5F6B/5TZI11
M`>KY%,#>.E"MT085=F;[J-0JQ[:^"U5P#>!0 AT G(]]Y:J7^?6<2L0,VP*6L/2
M5(QKCJ?3'JQEO!V;O AT T[>6=M/8S-O*75>D2'._:\@770MJ?VB:N#5WB(=F];
M:V,/VM5EO/:#Z9RD4[U0;ZX?:.^*[T\._P6'KW7I7Y.+.=_:^TY4LF%1YT7A
M6@??P+5$%[E/K5GKHWSK6E]=>;!35?R&/_E-G=_49CP_J#B';2D]/0T/=)8"
ML54EK#J*!2K<Q.U6864OL0!EZ[8`7V'&!?7#C/@AO=UCPO:H5`Q8WZJ1D3];
M^4]%W=?'^*\MV^J=IKC"L_$:V\:K:2B AT 8%#4"K^K]..J&L\,@%7\D3+`"Y!]
M]UO4?*:/W+--P^,JOM(D/J+@HR$TRVH.U-Z>^"S)$@\,FCGS/?&E#4X;CI1L
M`L%?W<DHE7>(YNC\8BF6MV AT B76*Z]26EW,::RESXVPTP-7%E/9S41!&U+V#%
M#LK\-*+_3M109U.U('TB]8!EH+H'::T#E5Q?B`\*26\T*8)J3-#-U6B AT F\MQ
MP+`PSEYJ+3N[;C1N;@4LK4;N6OK9\GS/YO`5[JTHV[!3<,]=VQ*@M:$;Y<VE
M`2_Y<W[I5/FTD=^:9 AT NYN(1:QK9GOMA5LA"T0$(+BUOETNIFH-J0V@!4%U5;
M:W'*W%(5DLK-LG5I6IMBF[&,>RIN?9:I?$X^Q-GRJ7CY;L5+<0G[@1JLO2I0
M$X5^5[7*T>:0-:N"E+4/<D/_%G7+0\+;`VN7S='N2]6+A5J^S?^(*%)Z3Z`Z
M:&L=R&L,I6!J;C_L6*_%;-H9GYM09"QT0T0J4\F3Z3:$-*9\4?NJ AT _%-/Y5K
MN'K=S/K0BH=YOV?*L_'NR6#SJ.85HZ&#/]6G&UE`Z AT A1W^-SMZ5=7JGUQ6X_
MXS\DXJ26P'[)85U-7_H\MFO:SD`I:Q>D^?!6TL=]\_5_<S15<RYD]COT2<ZZ
MW91G+C^N,<<TE=.N/Y;/=83ZN\4*4+7M#PR./@DSE(=.A=*\C9+3:0Q].%8Y
M&LJSL/3:IUV#[Y=X3>PP*LO]M-]K^NP7@:&2/0^_17;T*^<X_M><XOCU9SC:
MDP:Y+O4)\9&[TF3M\-W<`W_H&?5OP)_U6&_T%G.=ZS[?Y?5^1LBG%3..AG=P
M*MYK-WW!VVQ493`EXJJWE8#6AG7/70=;`U!/GU]HJX6:>VP;@'((!-!83KVK
MV$1M>/?QS9LV=-R-J[MR'QOL5R*IE6[%BF=D7LK)LI'$07WRQ;EX0+C]31AS
M4>%4(3A:E AT J_%GOM?H6]FII53O,ZN-`4WTJ+@TZ!]UWLDJ=L9>SR5UWY?`8I
M:K7B*)J^8`,VJEE-6,15&R@!;1OHU<^-C?^`N2GWO6%N$L*S)7F:G4?,SN'W
MFQU_&5BA/"]RGP['[[D.5M$G,->\=.&KHVB>,+[[`L#M/FH%D!_3?:,*'0?"
MKM"E?3VV0L]'\VM+[SE)L6IJ5G\Z95>>ZC^ME)_N4#WD!B,:2^>%V8NL=[5_
MVVFPD^H-%&.OCW(<)/@JIS&74)"*Q@(JW^`O)6\:JOOK AT X'3DK?\!_I9WX87
M)+@\(=.`\>F2+%ERUSS`@("O++1:N\ZMBQ>Z]:C*.^R+/6\A-PO<?J4YLF^#
MZF:\\5X<1<;I\2&8Z_?FU8L=_>Y%*]]1U0V:N#B#UYN336<MFZH?QA$=V:15
M).L-A1*FKS#W=^O.W5MG\A=:BL[=5LTUH(#%1*Z[RL.?;_4U2\?]S>;:5._(
MGY9J*6UK.I!NXB^>M AT R_\UE=H<'O>L>PNW''\.2WMF/XP%O?N:;:`"J%BOHM
MF;*MX!MX3V7YMWA+XU?DA5]9MN<79FWW<<N-FHLQH_]?CO5Y>^M_`5!+`P04
M``(`"`!4/"\B AT E5\7CH"```%"```!P```$-$4D]-+DB554V/VC`0/1>)_V"I
MERWJ`=AV>^!$(:K4HD4">JA6*\NUA\0BL2/;H;NM^M\;.YND(1.J7A!Y\^;K
MS2.\%G"4"@C]N-UMEO=KNM[NZ2[ZM!^/QJ,Z&'V.5@=ZV"V_D6F+[J)]="#S
M%EAMMONHHKUOT?7RL/3 AT Z@NY>]?"FVT)S-KGK_<!F?J^[CF'$B;6F8([DJ?L
M6:JC)K_&(T(*966L0!">,$.X5L[H=-&/,&$0U!G&3P AT NE8`G!,^D0E`+'$&/
MAF6`X#_!:&Q`O#;#B[.Z^N\%(M%9IT4&K4B]-;2H)NOOG1=NBH:JFM/AM-F5
MM-EPVOQ*VGPX[?9*VFVCRW@$3PZ,JH7I6L8FVC AT BC#R#130F1VFLHR&^0!)Y
M80PH1Q$3I5K%I'(7S;653FKLN"\,?STLFNH?E!5"8G8AB8R3X:B0]D134+%+
M*&ZL#@4W68<2#&?[:[XBH(0^>BI6HLCYPX?'H>)2/-P]8M)9QUQA,=7!&.U_
MRK\)%T9G5##'NK?NEN*")L!$<P9R<]92O%DT=/_H63$X6OF'W/1_1Y/R.Y)D
M_R?IQ3:A5:G+U4G"96FH,D3SO8.!RM:A<GA0189P*Z-5I[RDO[VXS"23JH=9
MX#TL6`(;+!SORMQ0CMR]4JHY\]=!Z/Y]7\EQF?0=XLZD`02%]G0ZKXL,C&7`
MEG?[!XEGXJ\IFI<I?L1<V\85S;_6Q'\BIO!>EJJ4+DW+RI?]&^L(K2!(,DS)
M0$C&D\$=2JU/ETL(K4V]R!]02P,$%``"``@`:T AT O(G=*Q069````#`$```@`
M``!-04M%1DE,17-V\W%T#[;532M(3,[6+2XI*DTNX>4*<'3V=G1WM2U.3M%+
M5DA.*<K/A=,9"KF)V:EIF3FI4(&4_&1>+A!,S,FQ4@!I2:U(!?%3,HM+(`)5
MF04@`2C32D%%`VJ#)B\79T$V4$Q!-[5"(24+;"**-$07T$2(2?E02_.!&E4T
MG)TU%73S01+HDA!M^1!-<*>#Q*%*K-"]Q<L%`%!+`P04``(`"`!`2"\BZP8\
M/*\!``"O`@``"0```$-$4D]-+D1/0V51VX[3,!!]K]1_..I+0;OK4B%NXH5N
M0U%!%=7"#TR=23-;QRZ^;)6_9Q(6L2LL.;8RGG.;Z02/J_KZ9;_'NKK[OD,5
MY8%CFD[^E;>XA.)J.#DQ<D!NR9]P2S'V^'SDF#FB"1&7*%G\$:TDA"A'\>2F
MD]L0'?D:ZZLKO#;+1YI5J27@+A3MX&2PZV$5]L@)+3TP#LP>G7CIR'V<3K9S
M_7=?4L:QY,RU:F"(5^98SAF6G$L86#JJ>2AV"N-K-]ZUX$.ORJ:3<PR9K0(L
M(I-#%_2U=91:O4:&%\NN-T_-KS:K[;=KA5%3=GBNY[X<G%A4H2/Q>*%[#&.>
M-*A8IVO,-I'Y0I%5>BTI1SF4S'\$AEJ:'I1Q$>=F+Y^1;31%0J+NK,I#@S9<
M1@,CL6*?%-NV;$_0X/!C79FU,0;;/->!::.,C39TG5+=.(U6X\;94:\CTK%E
ME*0)I]"-\`-T4[S-$GQZ[MKW^%4XC97%`,@^*SFK8XV-!_VE6;Y_^ZE1IYZS
M>1";=>AD#M98>HKU=]W AT 9^]4QVP=R9XXWNMWAAW9*GAR]?\-P*OE8OEF\>'=
M`/<;4$L!`A0`%``"``@`74<O(L^)E&<U!```0PT```4``````````0`@````
M`````%-#1"Y#4$L!`A0`%``"``@`1$@O(OZTM=EW$0``)%,```<`````````
M`0`@````6`0``$-$4D]-+D-02P$"%``4``(`"`!4/"\B AT E5\7CH"```%"```
M!P`````````!`"````#T%0``0T123TTN2%!+`0(4`!0``@`(`&M(+R)W2L4%
MF0````P!```(``````````$`(````%,8``!-04M%1DE,15!+`0(4`!0``@`(
M`$!(+R+K!CP\KP$``*\"```)``````````$`(````!(9``!#1%)/32Y$3T-0
52P4&``````4`!0`*`0``Z!H`````
`
end
 


... Tyler "Crackerjack" MacDonald
... uf186 AT freenet DOT victoria DOT bc DOT ca
... http://www.islandnet.com/~acidhead/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019