leefi@uunet.UU.NET (Lee Fisher) (05/28/89)
Checksum: 64972338 (Verify with "brik -cv") Posting-number: Volume 03, Issue 007 Submitted-by: microsoft!leefi@uunet.UU.NET (Lee Fisher) Archive-name: swap12/swap12.uue Quoted from the author: "SWAP provides an application independent method for one MS-DOS application to run another, even if both would normally not fit in memory at the same time. It works by copying conventional memory used by the currently running application to expanded memory, extended memory, or to a disk file, thereby freeing conventional memory used by the application. It then runs the desired program before restoring the original environment. SWAP operation and internals are detailed in an article in the April, 1989 issue of Dr. Dobb's Journal written by Nico Mak. The article includes source code. This is version 1.2, which adds support for expanded memory (XMS), swaps to disk automatically if EMS or XMS memory is not available, and allows you to swap to disk recursively." This is a newer version of SWAP than in the 4/89 issue of "Dr. Dobb's Journal" (version 1.0), which was posted to comp.binaries.ibm.pc (archive name: swap/swap.uue, posting number: volume 02, issue 046). Version 1.2 now supports XMS memory as a target swap media, in addition to using EMS and the disk. Source code to version 1.0 was available in the previous posting and in the Dobbs article; this posting unfortunately does not include source code for 1.2, as Mr. Mak has not yet made this code available. I obtained this version of SWAP directly from the author, Mr. Mak, of Mansfield Software. The author can be reached on Compu$erve as 70056,241 or on BIX as Nico_Mak. -- Lee Fisher, leefi@microsof.com.UUCP, leefi@microsof.beaver.washington.EDU {uw-beaver,decvax,decwrl,intelca,sun,tikal,uunet}!microsoft!leefi [ Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 19340 9199 swap12.uue checksum size (bytes) file 44500 6656 swap12.arc -- R.D. ] swap12 part01/01 BEGIN--cut here--cut here begin 644 swap12.arc M&@A35T%0+D-/30`E)24`"0\``&42```['%`4```,Z<0DF$(ER)`E!`TB+'@P M84.&"Q4ZC/A0(L2)&"]JM,BQHD>*2^;0"3-FC4B2)D>6/+E294J4+%^VA.DR MILV:.&GJG,E3IL^;.W_F[`F4Z%"A08LB+0E@RI4@4$`4:3)%JAPY;^2`P(,' MA)DZ;L;02?/&S58\#12D?2K%21(G1W2`<`H5Q)@W==B0`>'F#1T0<LJ(S%H& M1-8T9]*X"<,&1!DW=M)@==/F,9T0:0%`6C!&!Y<Y=\+``4`:@`LZ;49#4O!B MC&94JP20AC%@=FU(".ZZT<R";E0L5*UBU<K5*UBQ9,UR36O/P`L!@.@@<`$J M@VE1&@"@4Z`=A_8^VBT!6-;\>?04NM`,P!6@1[,0H]@,F',`D(GG?]95P!6B MQOM$'I`Q`",&F#&`+CX4P%\)[PWC0B(FI"*`"Z&P`,`H5`SH`18:<J$A&`,X M<,`N&19C02D"X`+`$N5!5T<![ZUS`"0`<.+"/P$.H(\+CEB@R(2+1"C`/CQZ M\*.#+48WP2(>R$>+#^]Y8**`"[[WP3",+!/(,/\,X,@P+4)0APTM(D#'`.D` M`D`N`0#`SR+9H)..`!XXX@&-`OA"VB^D19$+`$#,0TH6'S`RS)8`$/!E$#LX MX(@`?&0S##I&"/`G`+H`RN0H*08@Q'MSG+`.!S0R,44112QAF%F@B>95&FP4 M9D88L)9!1EJZ#$-`+AL`D(XW`;"IW0X"&(JHHL,PZBBD[J!3A@##+&+!HTJH M",0]XHQRR`")6)#(`-(2PJT%BPQPC`&-U`;$N8_4!L"YD;A[[B3N$EC)`+YL M2\L"Z+`0P#`[`N*#'[75(8,+C%B`QP`/FJ`'PSW^R,MS^P#"CP!T-&&Q`70, M87$"=%A@,1!T1+%CCPN[$.3#1/[C@H#HK`'`%08L<K(!=@P`"PFY_/,//_*X MLH(^BSR3Q`%?%)DS.N`Y\$$ZD@``B#[_T"$,.CX`@(@%?!S8M;#HN+;.'C2B ML\+,-7L`AY<&B#&`"<3X0`,`)B@2`M(68VR`#B;T,4`="=BY]`T`.+U.$S2Z MX(\!!"/L0<Y.C^(&MVISZX`<XYY)BQ@VXB@@@&YG20L4G>?HH#$&_#%``"HW M.0`M0)0NH`NHJPY`M!ZX/;KL`X0R.9-K+W(YN!:<*3C#_CA`<#H._(.("9(( MT,P9"I`SS/.&#(`C(`/TT&8=&@SSRP\"H.,"`(I`+\`O2Y1/PIH?8`J#`.O8 M0.,OI@R@R#CH3("^"=G[A2P&@(X$P`]3EQC`.C9`(T50(Q>RB4(L""`-82A" M&"1XP`D(``\*``$1!3A"%L3!CF%$00JZF,8!<L$`S0!@%[*!W7NTD`48`D"& M(6@1QAJ@BR=8*@<OC"$08I0'&NEB$BD"@'M",(<2+)!&0\"+7OCB%\/`X3$@ M:!4<7A4K7`E@A=E91RA&P2D3;LI2@,H4`#Q@@`_0X@=6RD(3UZ$!&A7A*ED! M3!G"0`;%G"&+H=FB&6J%JR"LT#H!^0?N./6D!JF(">^!!0"DQ0@!T(((Z!B' M/\Z4CGKX8QB^`8$5RB"'.20'!#%P@0Q`@((QI``$481#'N2`\)08YP`$. M6H!+'.0`!$Y(PUU`T(0PK`$$87##7HKIACD,L@Q3G,(;S$"'T`0&!$?`2AW@ MD)90WG$X<K'%;1XPE29@X9Q8@`$`AO`$JD"A"$/H@6;^,4_-F($79V!=W.96 MMS($X'E^0X<\T6&``*`#`P9M@D%98=!;&'00Y4L&`5=``'2DH:(?*``@'/"< M\@G"`!$K7SM`:@%$E*\`!T`''%)JB@2D`Q?\V(6://:#!M1A!.O``(V<\`:[ MO*$-;4CF7NC0TS+@H0QCJ`,=RH"K8"@@%Q?P%3DJ]@,0T$$:@/C!"^B@T1^T M0*G&.``L%7&`L(*``2#@05+KPU'HK$,6/(A#'=CZ'!"LXQ0\D,-<-_H<`JR# M$SSX"ET%`(1U1(('9*@#`_@J``C8YSGW6$<@>("'.C2`L0AXK`#>D0XX_&,= M$:!1$B##F#3LY0UP&$M9<+6$!>0"`KX*PSX4X0`U^2,8O@@$`'[A"@'(H!W\ M$!1MU02(8`@`$0Z(#9B<(P`06%87@U@A%()XPR&&8!BT@,%[>#"?%ZR#!#0B MPA.J8@=2FK(L(&A#'40"`C$49@8N@(%AM(*&6I(25Z%P[0A\A0]]#,,$CC"` MA6;P,Q/8HP#_J`,-UI$"*$IQ+WWYRR"5"<MV3N&=\02!8AP#&<F4I3)NH`.N MON%:%/BJ%OKP13X.L(AOY`(!`)B'*>BP@$7L0P;`Z-D_@K:.5R3"!R@BT"F@ M):)=#*$"$YS&.FBAA`8QP@$FI844W@/@(_AC%PU`@!H9<0`3"*]-B?"AEQU0 MFS`30`B#T`<9_&"#=:R`1D\HKU9B``/Y-J$,;<A*'F!9%CI@I3%"8,,;5J)A M5N5!)'C&U1H8D`L5^.H$^C"!P$BCA3J(BE3K?#`5):R8O?CF!',``10NC*M4 M,+I7Z<!'/A@1#&69E,8#>(*B@C&(81@@'6_XQR*N0(!NG>,`L>ZU`])Q`$<$ MHVX6(,W69.1E"X#9`NSHLK3*;`%W',!!PDNVL4T0BF3O(!AUF$XH8/MM.OB@ M103@I!P*P&`:A3+"(.AC8,3"ACWKU2QFP$H;*MR$)@3!"41P`3N;@*L8-"`7 M)D['&%:=#'38@P`Y\&$=".@.`K`ZXA@+0OV@V$Y_`US@[4SO>O^2!J#:*@UA M6&J]00"'>9?!5G-Y2E0V7)D\RR$/N,)Y+FK@*P?D8Q$7Z%8Y4MH)B/N0#O)8 MA`^!+H0=1(,.14#'(HR.L7BL0P8TJH(;C'I%L<"\"4,0`@CN4-]8@4#0;UB# M'[V2QU%'99J`%,T5F:H`76CCX#'P52SPX8@C%,L`/S+!('Q@(0`8;!TG<'<@ MYQ[O-PAFTR!`0QC*BTRS/"8RDP&QB.MN`@?DP@2^@@,^EOL<(-2A"Y<*0B#R MH:8Y3($6-5!$,-[#"&%(D`"U?H"2LS"`:>3`1P*8`SAV8(&AST$;[6[*XE\> M^3"$&@UO2#O,DUGHI5YEFW\IKUBR@JM$>#[A"QB]\'Z4!.^/@\46(/8*HI$+ M[DQ#'0N0QDUS6BK!A)H.DC=+#&R@*J+&G9L``4L,;*`JHL:=FP`*=%ESD.L" M@'3/[@E)9,&1@&'V#+P0@(#.@'5J(`&(.!&"Q72D`.`Z4Z-9B%\*`/B"=R`7 M`@#\YIFRN$Z)1EI`T-6X1Q/(32/H5O"\:$,C#QES+KZX&02=AGN)/&@40#/$ MS2&+/#A$AP"J!494+SZX>6315P'H[-FC@R1=5UP`AC1[P0,0'14<*=+9L`Z" M1B=O0&!I,@4$$3EI[)21TR"@H`>Y'AP4"LA!QW43-%:>B``7!+DOH@(:P,B` MH`'#'!D8=R`OA#HZ\E8<D$X9@%P`8"[*AN[3O:Q3#7QP-,Q7[E^YH^`&,H]4 M%D;;`@T#0("X@P]!=CAPR*?:L%^:!#`"ABZ5O?%`%(%#%\H>;@"Z)@F@Q</D M'!3K.F@<\J8.&S(@N/$&'2",(4<98=!1!@ASW!$&'""8D08;932F2P80Y,+! M08?8,\HH`KP7158@+C>#-!X(AY-)']R7GT9%R"''&W*`<`=B=*3AQAD@T!%8 M@P]&.&&%`6V1X8;I%''>,-)11UP6V6TG`!^TH!.-/<.8Y5`L!$PC#D.'#'", M`8D,D!LM"?SCP6@]!```'3"L4X)&8_3W7X`#@A`&&VR\,4:""Y:!AX)ND%$& M@&V4T0:->5A(2X8D'$1./0P1,@!<0-QC@D.CA,E0F6,N8B8`8S8R:FF/#&"6 MI0Q%(J8!DXPZ9B6C^A(F+0N@HT0]J1F@B`#\Y#+(`<8%@%P`S>5"@4H8`/!+ ML\V9,*8,`"PKK0$T`-"L":79`(!JK.DB24L$`#"-.B8P9&96OPZ@#7%FI7/` M"M,,8($[!Z1K@9F*6+!.OHA8D-NU;N;&2*^_INN!``!DZ<&O485S`"U0F.3( M-BZH^<T!+CCB`2+B+4.Q2;VRYEH=(,A6QPB[Y%9>/5I)!8``QCF;VW(QD?+! M,.A84`\Z1OS\!Z]CA@D`$&.6F=NJ`S`D:JFR&I!J;F.Z2C6LIQI`JZT#X(K. M$O1`))$`KXV@L@FT(&$66.BH0,]'/-!#2Q%KH\7!VQ:DXP(]\<T7A$GK*'"3 M`DRCTT#8@ZQC0"#[-(#`'#FLXX)&32C**`C\N4''C&R`($2?8ZPQ!YX$Z@B" MH'"4,8:"`-)H*&,!I2%!+BT<9$+8C"2##B[_Y/"$`'4,@`XL_S`2S")7"+"# M,G0(L<X-&DE1!!98@$#&&V6,+F#I;21*1AJ`LI$'"'`<.$89AX(PQ15!0`&" MZ8DN*L?X*,20@H6YS.YM.LW,L\@%``'N;3K-S+/(!9M"=D2CLP/=EG\YG@B@ M$V\="D@`JK@I@P=.F3%TRI`!T62($!!WT*1A4P8$FS=OUJ1Q<P:$F3=R0$@I M@@5+`P6Z%$S(=0)`ND7SID3Q<`#=CP`\`-`)L<X"1"E8DCBATN2(%!!NWM`Q M^28,&8TW=2'96<'GEWF*B-&JT2Q$(@\!$#`R,``!+0BP"G#Z!Q?!HF&,A(U* M@""1A04(8A$H\`#`-'0#H&79(G".D'4WGM+$`H+,FS)SL&H%D:9-&XUIPF1D MDP<$'#D7RV@$,>5*$"BDW8`XW09F:Q0R4H35M-.&3W;R!CPAL$/9G<N9`<RL MV?ESZ*Q;2Y\FDWIUZ]>Q9]>^G7MWF=YR?L\0CG-<<9^CY$VY"PO`WKYO"\@U M<`"!!UT``."(-K1$4!\G+O`5%X`"$FB@7@GV]<$6Z?"2CST&O"```5MY4(P% M^A5X8(1Q?>"A!82)"*&""'PPC%!26'&%!X$Q@HPCV)C@B`$L`###/_R88$\! M_]1!`"Q@K+.#+RY4L,@WN1@`P#RFT+'`(OO(`$PN__PCCROK?&/"(@68`$@? M`@!0AP7H+`&`'!$H)@TXAH"##A!O&J``,3P`,<>1`:RS`A1KM87E%HP`L\`Q M=$PPR#$#,%E!+@5,:4H=#-2GR#CK*`#+`)NN<Z0`FSHBS`=?>*'%9,/P$(8< M!O"@QQT"L``"#T;<`0$+,,C!``\)V,'C`3PH((<`^`R3SSK\0"45%3T<LHVT MU$YK+0"00``:"%-705`N1$]#`"4E)26("@``B1(``+9W2!,```P@('&8<B4( M%!!6RLB9D^:-&Q`Q7,AHH`"$18LHQJ0`,>0-G#QRTIQ!0P=B#APX6L0XF0.$ MDS1CWH!H$F8-B#!NR,S$.<=,FC)L=$YY8X;.G3!RRH`X(N=-'3@4`VH(PH8- MB)`CZ<RY6F:.0CMER$2%U(&FG#%H0-1@81)'#HH4"1H$`:>IG31DNMY\&`8. M'#8PP]!I^#!-SC)PRAQV4[)-&3IHWN@T\T8."(=*FTQI0>3)%(I]_P8>[!`$ M'9ERZO!U\P:R0K9EP!8V`T),Z[1WG`8%P5I.FS!5\_!N#<)G2<,4';>I+%RP M:31*YX1Q;#J-8Q<6@YC.`R>PU3I>0:39>MITF39P*B--PT;XG*-P+M<I&88B MG3)X2H9-<]KR')F0.9>'4R",@=-5JH&@'',@H*':&7((%Q-Z["DT!UN`N;&& MA6Q51E%LBH&0EQAUG'&&A2#<P5]D\X'`QAL,N7$&"`/68=E?88RAE&%[@;#? M8#*"X-4<##GD`EP*R'50;G*LL948$GJ4AV$SQN2&;*2Y`9R"YS$(7EBU">=: M@38FQ5A["+KA!I6@^068@5F:)A-^<."4ETX+1@A;?HK=R>5R>EYF67EAB#B> M33ZQ408+]D&7%)3%)54&E04ZA"5A6^8IW)<Z03IF:&\*1AAV("CYG&(4I>8& M>=")V%4:2>E4UQL03E=;&90EQ=4<_5$Z9F4B&;:E8G<UY89CC!VI0%P%'31> MI>B)*H:B*:ZH((PE:<:99W0U56L;<Y"*Q!MW@"@'6V+@6IE22;7'I@*E\<=6 MC4*RN-M]O);:;+60T>B49>0^9*5/9]@H:KP"AQ$>410-_*96_*9%Q112;&7G M9:[Y1Y112)6A++-S>:30P:OI9-A]<FC)AL6ZYD5'&!6:O-I-<@PV!K4\CAE$ M7>PQJL!*;HE'9!U*$04"$7)@1\0;8HAQPE9*_*LRJ52TBI3-.+MQ<QUY;?6? MC3I6FM?'2>X+UD*$0>1"#.)IS0;7>KD6GAMEW%%<&8+9V)4.2+8`0A(EJ5B5 MD/#)Z2.?A^'9983BT5:C?WGP>IZ03Z57\U98:`8""JY%!4(1B/O9Q.+"39'8 M&&GX!"=A*2CKMZG/XLV00H9_&>D;;8``A84.;2E%$5A@L;E72HV)WW1_*97N MBW>TCF1":)<6D0QM;]WUJ7/7?7?>2<W!][(*^)T$;6.VH-/%+>!Q&1Q9LJR4 M$T]0`0*G>YE,FZD&NG%"2>_U97@1FO&91?A3K<'1@7'EL5WFID"J\8FG)/G; M'^'\5YX%/K"`5@G#?'`G*@,%QW/]BT]YR'`HLOGM"M!Y2`B[$Z01'HHM8YJ5 MCH@D'IT8+8;>DH.M`E22$T%LA6'QG%..LQ7#6`],.6M5HB9%!K;\YSD"(E#^ M)BA"F9!P#FOP7%+&8".&@*4]9),*_G#WFYP(*0^,"0,>D%0UI8RQ#674R133 MY2/&*`1,SAE39Z;0+=RQKT.6(>`<E5*GFEW&#(U2RH3B**0#^@H-4;313=PT MFK1Y)2?DD<D>#:>JO=Q&(129U;=(-84R*`\HY"I.90Z'/$6%"TFFVH)'VM<% M:#%R"XNT4PL*.9W'6*B66P"!#XI3(;QT`4E"T.$8-@0QPY`03D5C'Z:LPDO' MH"Q<%K$"</"BKY!)TR'N^QY%6C`$CDB)*R3<XGUL.!\XM*@\8[+2?Q3E.B(< M[5#$I-80=,`%)>'AGWAP`16:X*RMT,\PD@N##6E#)SN!25.>V]P='*44@*KO M63A\PPR+N-!3]?%;4.SA8[P&G\2PDP[."Y\10&"$RLRPFP<ICY6`1#0?R:9Q M/3J90E+#/A"`90S]H<L;3I;)4T54E#K,'0]!X$.2A@9,0R15%<(#F6?-,FT3 M#5%ZB)2&:2VJ-O.)J$/0E#I_U8%FT=%;2#V*U!U"4J0_+"E46T2&-^B%-72( M:&3>8!.=RH&G)?EI?UX9OBB`(`IU^$E)1*;#+#70#;GZ398RU17IG,A]PRG) M%7&4A["X3@H@^%WPVH8R,^1(*7Y+2AP2&ZL4I7!^7IE,4W*WNX7TSBJBQ8+K MA&=!%.#G/HG;B*:$!ELDKNH^"CWDX>J4N#\QAVPBR&5.1$!<G$0)CA=;ZB"% M-@>BG:\D>N36K-!#!V5%EXRZK*8O%T)=M-(%*;V\IJ#6USY5#JI5TB6#>9>( M%^H^JU";7.)\\W*7L)5GHC!)RQ#=61(SS-:6%QLD1=)9!J!Z%DD!^1P>6MD5 M)`5A:-2A%R3!4B^@*$HGY0GP@U54U8<\SD<D#"J/*I.70;VA87ZLT$T^FM0& MD@^_Z#4CO7KSF^`4UW`*\TH;O&I6.80RA[8:#X8OTH0@3*$)^51,+W>`)-<\ M))Y!1C%J$O3B))_'JY9A<5I,E:X)=1A\%X'I3*R,Y25JR3%<!A\5QOP04Y4G MA/+1K!`4II2+O2BY+S:M'8!U'QCSIS+SDJ)NQ*(`Q:#,HV08='CR.V6+2*$* M3I!S"U:ZA"(0(0GRLW,O/<P&E&GI/NV)]%EC4H?=Y%&);Z@*N2B5H>+)Y,5# M>((3C)"$([B`"$+(LC@K<A$JF!K5(.@!3%T0;"R/&@2E/C457`"\(B#I8MT5 M@U=6:VDT69IV8Z*,KE44I$Q;N0@0-F-Y?K3C)2X[SDUXPJF-D`6./*$)57:" M/57M&#;R6<X\*E1N>;Q#F0!ZB+KCG<I""SPLL,5VY9,"1:YJ)(NTU#+'0X^B M?!91$)S`5"T`[;4S3>@3(,D)K2G>6^6</[Q2D>*CA7A9%WZ4K?PF+[O"BZ7# M"`D0M``2!T!21SZ"%9*\@`DP48Q77G`%I.B0,7E8=M6>55<N(HL^\FY56W,G M8"51^]^;$\&8_E.4HR1%!!OI&(Z9+A*2@,E35IM/9))FD396BNY9N<P=Z&89 MBD+J35+7"[U.\SV,MXKM'$O*#A14DT+[W+I__\E6;BAV*.?N8EVOP]=)!IJM MT$M%<T##Y,^0!A)W%RV9CYM,K(N9R8-^/(XD4:/7OC&W%SHG$]:HZ"U-,I^F MH5!`J?`!'0(3+O&$:A0E+FL*!$DYG,B^>Q$.Y\L`&MN`A6SC*M?99.W>.9PN M==Y!TZS0T%7^@,G!N*,^4E@O(T!RA=R\>E==7TV8"V$?\Z^7%C'1'5W!%I$A M?K3S<V5@>V8$?[ES1;DW'X_$?0H`>;Y7/R^P2J$W>G&B9K:D$*BS);-"!G4` M5%NA9A#',QZB`(GA&^-1)&Y`-C#W=]KW8]'1>QU#><)!1Q`8$KH'59;!>C<5 M!D<A'"CX3NPW!\'G=9;&@"B6A)D5=0H"'B5A<W24%,L!%OK%1M'W+-/G=E=' M!S68?2"P!L[$%MD%9(!'$H)'>-)''(`1!EY%$;DB(M,1!I>E7)AGACE!*D*P M*3$R(U6U%0YF2D*"@TE!?G@H*7+2*.-!=$:'=$B"6%W1/FRQ2);F?^!6(I=5 M7SE8+FS@9J22!5)T(#.5(XU1-&Y`$1V!'G502G)`8LYQ`S```S5@`RP@`S3` M-JM4&D*0!,*C,"X!$V_P!32Q!J1"%:XF&$"1!^27/Q1Q!R&Q>S)!'<X!!2[P M!-@A!&^@/C4P`S+`%E/0'PO!%D,@/S!@`S)@`SB@+!H`&@#___]`0$!`0$!` I0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!` ` end END--cut here--cut here