www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1993/03/17/08:34:08

Date: Wed, 17 Mar 93 08:30:49 EST
From: DJ Delorie <dj AT ctron DOT com>
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: DPMI & Windows

I have a new DPMI information program!  This one is written in
assembler and actually goes into protected mode, so it's a good
example of how to *use* DPMI.  Also, some information about the DPMI
host is only available from protected mode.  Source and binary
included, as well as info from Borland and Windows.

After re-reading my DPMI spec, I've decided that it's possible to use
djgpp to develop programs that will run under Windows (or any 32-bit
DPMI 0.9 host), with the following caveats:

* Stack size will have to be FIXED.  Probably an extra go32 variable
will be needed, or maybe use the Borland method of having a "__stklen"
variable that crt0.o uses to set up the stack.  Heap will follow the
stack so sbrk can resize the segment we're in.

* graphics, 0-1M map, and emu387 are OUT.  Emu387 could be made into a
regular .o and linked in, though.  Basically, anything that requires a
linear 4G address space and paging will NOT work with DPMI 0.9.

* A special link flag will be required.

* Changes to go32 are too much for 1.10 - it will have to wait for
2.0.

* Other stuff I don't know about.

DJ

----

Microsoft Windows 3.1:

DPMI Information Program, written by DJ Delorie
DPMI v0.90, 32 bit apps, 80386 CPU
virtual memory supported
Largest available = 18,317,312 bytes
Max unlocked      = 18,317,312 bytes
Max locked        = 4,423,680 bytes
Linear space size = 20,168,704 bytes
Total unlocked    = 4,452,352 bytes
Total free        = 3,559,424 bytes
Total physical    = 5,894,144 bytes
Free linear       = 18,325,504 bytes
Paging file       = 10,055,680 bytes

Borland DPMIRES:

DPMI Information Program, written by DJ Delorie
DPMI v0.90, 16 bit apps, 80386 CPU
no virtual memory supported
Largest available = 5,126,576 bytes
Max unlocked      = N/A bytes
Max locked        = N/A bytes
Linear space size = N/A bytes
Total unlocked    = N/A bytes
Total free        = N/A bytes
Total physical    = N/A bytes
Free linear       = N/A bytes
Paging file       = N/A bytes


begin 777 dpmii.zip
M4$L#! H !@ & (RY<!JU10\C'@<  .P7   )    1%!-24DN05--80I[!P8;
M!KL,2P,)!PL)"PD'%@<(!@4&!P8%-@<6%PL*!@@*"P4&%00&%P4*" 4&%08*
M)08(!Q@*!PH("P<+!"4$)00*!@0%% 4)- <&%PD:*_S\_/O[^PP++ LL"SP+
M+"NL# $B(Q05-C=HB9K;/ 4&$B,4Y?:6]W&7:SGON/52^;J*BN/F9:?':!05
M%Q4WUKL:U^"7[V.)VPRWW+\T-\^K\6,W]OH=^\_K/8D!]I]UG<MWW,8:3>S-
MKSM<;X?KZG!#_7VKQIWDYE:*BM?EV99H<4.H7(I;?JY#^PU&:6D"1Q% W^9S
M'/<6-VZ]&3?V,"EY\ =';=_*SW+MQT_:]NKVE/-__'8MRWW\9K AT _#+$_O,]]
MN^[8^7^2;?!S\W]N4?&Q1[3I2MZ]_6,^E7U=?OU>[L9RU[V.N.]Z1,3>ZTG/
ME?C_6O]VAVR^MKO^E_TW]F.YCMGYB @1RVO5:R1",*[G!>-Z_ AT _&]=^\EO^4
M2FO^3\\-QG70/TI*Q#NBK'<:X=J6^3E_^2[O6[B_SJ72OC$->H^(=C5[C_VS
M'8 AT Z7_JT_VS5&Z)_(CS7^33/^Z?]8#S\6-F5[2Q?8SW)3_ AT _'^?>2%#HO\"+
M]9.P#HKJ.-9![%_'_6Q_+3V-^Z]72&^L AT VSM"_*&&(YU8&O;?3,,:*R[5 FW
M7 AT V(CW404DS?$VZ6/;!)3_4ZJK]VG0X3K(-V^$KEYEP#^?6XDYQ?GTN%N04P
M[Q:QL:K\>*97-39BZ=F>QCX3^Z,<W_9EC<=[<VU\= +=;S2O7=XCQ!59\QLK
MR^OQ/)7\K*>"<6V&S]]KM?5>_OFL2T3P->Q))LY?*QO.FT7Q+[N=,ZD GM?+
M[$+@F>5SU&?<TB;U:\ZGX?,G,=(S*H*7FL3;$'&'^9;=$")Q;-'?JX"SR/<]
M3,93X,-=W=SA+[/OV6SXD$_@&YE/%H>YQN];_9>6[2L4R:_K'&38.=#.ILMS
MU.,VZ+;C4IK7BL:G'DYT1>LG1&M(%>9)C/TXPSF=9N>036'N:):7Q_)\YM=/
ME4.XGU7.]2M_+:DUS-F-6<,>['PMY3.MI;UD-VM427>VU_K<<:^5U:ES08D[
M E$@ZMW16*\$A0"OA#0N:&WRXB=E.E(HDG2W9/ELW!!J.#\1]?_>8+K>:[Y$
MU_1J7Z*;ZK0X%C$\ ;FXA_]4X  *'?'<+'8C8$LV58#0L)@I:99)<X0R8D%C
M776>:/#-Y8C* 3HW$_\6206\"KF*,APX0&-;BG=0[(="+URP 8!JT8AE"COO
MMNW;%WDHM5'LN0PC&4BU4W*?[<:BQ\$BB!A)[(^M\=?2J- _#O+^-I4_1;OI
M#T[T8G]@Q2+):O AT EI7;4Q$(?$$LBKG$IM>^3VPW+4[\DS,2-&XR^A5.1OXJ<
MVCG!N#1+&"=7]: Y'A[CI(YQO(%QW,Z-A%&,MW8^U17\N5>4\RURUT5.ZZO9
M<8SC>M>K)/(BE&)%CEC9]P2?IV%YVN [CN<$X[PJ-5[3*2)HE,B"FRWY$C:[
M'*^['%S#Y18[Y(5 AT 0C%4\OF[U#[)SIW0Z5R!=D/Q-L)3G#$B]2YJX&';O3@/
M4^H >Q0K"M.O,40T(A AT 1?']O7F4KOO^ZB/^JREM7>;W%9P]N5ZJGJ!AILN"+
M=8N86S5V,,;Q)[J4[JWAJ%GF;<J<-$VN\28G\2;7T^3D-+F65(^;7.LF)_J7
MH<D)RCD)Y;C>944Y84X;)U8_\R.M5ZA.E49<\1!#(Z>;X>..BW?- 2SQN' ;
M?.9C]*J*;:[9F@;-L3207M^YQ.HB,5!,$A*D,+2+1(S,-8MD ADY4C-\J.*R
M^":C+>'S;5ZU89E4JOH8PO1A+\3GS&A(ISE(5\@;+*E&JNN(3UND AT 24\;>)=
MF'^D.DH'_14.YW %H3J?B@?#9+'B(3SE-+4\:9[YS8KM(<CD,CWL!WR)_7(_
M[F?S+L>;6ZL)W!7ZQOQCULII]$QR_*YV;[[(IST]18<,.R=4R*$$2(T$/1K@
MW DOT J8 AT M309TA!.4SF4[AFL()E&;8T#1MT/0>QI8G82AB)SF-]4K<^"'('#7>,
MWA;@A"0[L?*8;]# 'HU89_,0>$%ZL<4")G2HF$('=BQTI$F!KUNXK%14E!ON
M1=I<F+3 %;W AT EXL/:^SELC9?[([1'4+I<*0#93  MSTP0@>6_@"E>N!Y#@:C
MB'>*V -V"-D"K[$@1,$MA& @3$]$93.("9F/F!C:8=&(50INL( -$NF<0V#@
M*J8)C#:=F(*A$[)+-O40+F<[B:$M2/%3I.&7__FND_I4PNXM*_0%WF'WR5UG
MH/.9_YRN#8[6)U<VY1 T)UG,!2%W*FZ(0#77T0"K>:I04,W3FL:@"S YIZEC
M.1MYJ-I$Y22:'%-. XH*:/&8N*X8;W0$)4W:4;F?@W6:07K,O' "D]$*!CD%
M(G(T/ 3?!PTO##^N.#)%Q5!+ P0*    !@".N7 :XY7BY[P#  !"!0  "0  
M $1034E)+D-/30\ $@,D%38G.#EJ>TR=;A\)!@$3-.7VEO?31Q1(%&K3I""3
MNC7[5F[;L'33OG4+$JK<MV?EAFW+$N1=N6GITBT#O=B\((DJ$;XL&_'3EFVH
M$*#3MR#H.=JW<^F")%M&_#'"D[EVG#!GXK0),NU<D'++QJV;AGBR(.FD/R;J
MJMYMG7NAYW9+DG4A'-<-=W5>#S(L7+ASF,O/.7T?"K6*N=O1GV[=L&Q!MBW;
M!N[T?FX=\8X+FW;S=-V R32LW+-EI/*P=L.F91M6+-NR('N8/1&_S/LYWC<-
MBQ=D73=#?NP:K!Q$L'0[E&Z8;9AN2"9!O AT S7L3W<L&.H?FY:O66ZH:F^I0.5
M;0W3#;(9)UTF:^"Z:;AH\U3]&&3K!F^D7MGP3>V###7L&>W/:'U:-EICW3"3
M!P#+V"'#@;25[HYJ,/AZ AT LU#^AX8$'W9@+@/6VS^LL?V=!="ANR[1O13 Z9_
M#C"Q38<#$_N$.)"Q08D#!X=_&!4W1("#QP>D6T!\W" !0E4L3'CC4!?S]]W&
M?9(!!Q,WF'5P_H%S_K4)]!/^?\2^C_^B'D+TBST AT 3QO)VLN5LKQCX+C,_K^'
MJI=KYF@'$-0Q?;_J?SP!J]4WI?SLH[[@;^X"KKUY@&-'[Q?@^J*0B\JAG<04
M$!."$;91R3R/*I+_1CX0?2GQ18B3<^_0[F/1A/.W9,S$?Z\#GQ#X =AV)D)E
M)@"U+(%C.E2;'CV3X.@:PO<DT*0C#&^S(D'< 0?>!IAK^U_.G?5P]"4!+A->
M.$&Q )43O N0.D&V .\3A NP/$&R &L6) J094&H "\6G NP>T'%%(T"U@^P
M[@ T/^SXDG01'$_+S(=<C^[:=Z<E:.M-_VC3VW=>I'L ^\'#":Z'1[S _R=E
MER#GPQ=W''R,24<-N#Y7,I^J^#MZH@&WH@<"/6JSBPN:'8S_/]T$]YL-#IZA
MV<0%%W<!YR/ _6. ]Y;UPK)5H?P)IK_['Z"9H94 _?OH[T"OXQFNKPB)FE[/
M /E==Q:SF;C6O8"6RG925,7^HI@'*3X]S/_&#5HL&-",D5:N><>0!XC^B]4M
M'[Y^@3 AT 8\H M8XJ^#K(#%?H N2B-/LBR AT S8< 'DPR [QQ->COX+LZ <@NQ/A
M1RP[&;H=O1!DTVQ%GQ. U]+L 9IU12(/W#]@'V^;G6C9+()*2K3BBT.H*+WG
MZ3W[4Q-O;U;77^+DAYN]'Z]X[8JAX?.Z#L1+=SK&EC4'+!R&NPZ?"LRP1D?V
M6P&/?PAX.$S ^W/:6=J2/ZAXFC<'4$L#! H    & ,BY<!KY&,>"IP$  ((#
M   )    1%!-24DN1$%4#0(!$B,4%38W:(F:VSP%!A(31,7VEO>;IATK]^W<
MMV;I AT KR:UBW9MW?G AT ISI,J;.A AT J"-U&H39."3.K6[%NY;</23?O6+4 AT HZ/NL
MW+!M68*\*S<M7;IEH+?8O"")*A'>9=F([[1EX$N[,%WFA"&^9\KH7N0;9%BX
M<.<P;YPP9^*T"7(HU"KCVVY:N73KAF4+LFW9-O3+?\^M [Z.U[(FD[V9AI5[
MMNP<^;<;-BW;L&+9E AT 79$V1,G"QGQKPQ?,V>IWS/*=]-P^(%6=<-O!Z[9GZ#
M!!$\RH,Q'E,^:;*D*7,F2QM+%WG.Y*TN,Z^$;KAAQZSKN6GUP$L9>G<,\<WR
M)DP:Y3G5MW3<GCR,,J\IXUW7>$>1UV;EEBWSCEC7-6OFF+=D\'#1YEG78Y"/
MO-=DB3-'LXY)@SQM9%BRR5I]A961OFM034(->T9\GX'7:=G 8^6G=\.(5V!A
M AT K>0+962J AT H-(HLIM>@4*Z !N%Q6 -?M6Q!9  2TJXUM0ZJ^:0,+(';Z,D AT 4
M0.0=MP0(WG%$@. =FA\1O$/#(X)WG!PA>,>M$8)W7&HV4$L! @L "@ &  8 
MC+EP&K5%#R,>!P  [!<   D          0 @         $1034E)+D%335!+
M 0(+  H    & (ZY<!KCE>+GO ,  $(%   )            (    $4'  !$
M4$U)22Y#3TU02P$""P *    !@#(N7 :^1C'@J<!  "" P  "0         !
H "     H"P  1%!-24DN1$%44$L%!@     #  , I0   /8,        
 
end

- Raw text -


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