From b30d2866a785430f88c6290ba54b988e9461817f Mon Sep 17 00:00:00 2001 From: sparky4 Date: Fri, 22 May 2015 15:05:10 -0500 Subject: [PATCH] EMS closing in~ modified: src/lib/exmm/EMM.EXE modified: src/lib/exmm/FAR.EXE deleted: src/lib/exmm/MEMORY.ASM deleted: src/lib/exmm/MEMORY.OB deleted: src/lib/exmm/W modified: src/lib/exmm/emm.c deleted: src/lib/exmm/f.bat modified: src/lib/exmm/far.c modified: src/lib/exmm/memory.c deleted: src/lib/exmm/memory.ero modified: src/lib/exmm/memory.h modified: src/lib/exmm/x.bat --- src/lib/exmm/EMM.EXE | Bin 19142 -> 20016 bytes src/lib/exmm/FAR.EXE | Bin 15392 -> 18658 bytes src/lib/exmm/MEMORY.ASM | 702 ---------------------------------------- src/lib/exmm/MEMORY.OB | Bin 2334 -> 0 bytes src/lib/exmm/W | 49 --- src/lib/exmm/emm.c | 71 ++-- src/lib/exmm/f.bat | 3 - src/lib/exmm/far.c | 34 +- src/lib/exmm/memory.c | 32 +- src/lib/exmm/memory.ero | 6 - src/lib/exmm/memory.h | 3 +- src/lib/exmm/x.bat | 1 + 12 files changed, 98 insertions(+), 803 deletions(-) delete mode 100644 src/lib/exmm/MEMORY.ASM delete mode 100644 src/lib/exmm/MEMORY.OB delete mode 100644 src/lib/exmm/W delete mode 100644 src/lib/exmm/f.bat delete mode 100644 src/lib/exmm/memory.ero diff --git a/src/lib/exmm/EMM.EXE b/src/lib/exmm/EMM.EXE index 6cb3fa418b35462332f738dfb7969a6f2e6aba0f..1c55c91674b8211bd5a3c08c8bd7067d728ecf1a 100644 GIT binary patch delta 8047 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 diff --git a/src/lib/exmm/FAR.EXE b/src/lib/exmm/FAR.EXE index fe57024bae7d8babac6051de2e73446a692d93a9..00353a861adabe11eb8310c649cf5b84e8714a70 100644 GIT binary patch delta 9778 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 diff --git a/src/lib/exmm/MEMORY.ASM b/src/lib/exmm/MEMORY.ASM deleted file mode 100644 index 50b665c3..00000000 --- a/src/lib/exmm/MEMORY.ASM +++ /dev/null @@ -1,702 +0,0 @@ -.387 - PUBLIC _OpenEMM - PUBLIC _CloseEMM - PUBLIC _EMMInstalled - PUBLIC _EMMCoreLeft - PUBLIC _EMMalloc - PUBLIC _EMMRealloc - PUBLIC _EMMFree - PUBLIC _MapEMM - PUBLIC _UnmapEMM - PUBLIC _UseEMM - PUBLIC _SaveEMM - EXTRN `F_LXLSH@`:BYTE - EXTRN `F_SCOPY@`:BYTE -MEMORY_TEXT SEGMENT BYTE PUBLIC USE16 'CODE' - ASSUME CS:MEMORY_TEXT, DS:DGROUP, SS:DGROUP -_OpenEMM: - push bp - mov bp,sp - push ds - mov ax,MEMORY_DATA - mov ds,ax - call far ptr L$65 - or ax,ax - je L$1 - call far ptr L$72 - or ax,ax - jne L$3 -L$1: - xor ax,ax -L$2: - jmp L$5 -L$3: - call far ptr L$76 - mov word ptr L$99,ax - or ax,ax - jne L$4 - jmp L$1 -L$4: - mov ax,1 - jmp L$2 -L$5: - pop ds - pop bp - retf -_CloseEMM: - push bp - mov bp,sp - push si - push ds - mov ax,MEMORY_DATA - mov ds,ax - cmp word ptr L$99,0 - jne L$6 - jmp L$10 -L$6: - xor si,si - jmp L$9 -L$7: - mov bx,si - shl bx,1 - cmp word ptr L$100[bx],0 - je L$8 - mov bx,si - shl bx,1 - push word ptr L$100[bx] - call far ptr L$87 - pop cx - mov bx,si - shl bx,1 - mov word ptr L$100[bx],0 -L$8: - inc si -L$9: - cmp si,40H - jl L$7 - mov word ptr L$99,0 -L$10: - pop ds - pop si - pop bp - retf -_EMMInstalled: - push bp - mov bp,sp - push ds - mov ax,MEMORY_DATA - mov ds,ax - cmp word ptr L$99,0 - je L$11 - mov ax,1 - jmp L$12 -L$11: - xor ax,ax -L$12: - jmp L$13 -L$13: - pop ds - pop bp - retf -_EMMCoreLeft: - push bp - mov bp,sp - sub sp,6 - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov word ptr -4[bp],0 - mov word ptr -6[bp],0 - mov ah,42H - int 67H - or ah,ah - js L$14 - mov word ptr -2[bp],bx - mov ax,word ptr -2[bp] - xor dx,dx - mov cl,0eH - call far ptr `F_LXLSH@` - mov word ptr -4[bp],dx - mov word ptr -6[bp],ax -L$14: - mov dx,word ptr -4[bp] - mov ax,word ptr -6[bp] - jmp L$15 -L$15: - pop ds - mov sp,bp - pop bp - retf -_EMMalloc: - push bp - mov bp,sp - sub sp,4 - push si - push di - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov di,word ptr 0aH[bp] - mov word ptr -2[bp],0 - mov word ptr -4[bp],0 - cmp word ptr L$99,0 - jne L$18 - les bx,dword ptr 6[bp] - mov word ptr es:[bx],0 -L$16: - xor dx,dx - xor ax,ax -L$17: - jmp L$26 -L$18: - cmp di,1 - jl L$19 - cmp di,3fcH - jle L$20 -L$19: - les bx,dword ptr 6[bp] - mov word ptr es:[bx],0f440H - jmp L$16 -L$20: - xor si,si - jmp L$22 -L$21: - inc si -L$22: - cmp si,40H - jge L$23 - mov bx,si - shl bx,1 - cmp word ptr L$100[bx],0 - jne L$21 -L$23: - cmp si,40H - jne L$24 - les bx,dword ptr 6[bp] - mov word ptr es:[bx],0f443H - jmp L$16 -L$24: - push di - call far ptr L$80 - pop cx - mov bx,si - shl bx,1 - mov word ptr L$100[bx],ax - or ax,ax - jle L$25 - mov ax,word ptr L$99 - mov word ptr -2[bp],ax - mov word ptr -4[bp],0 -L$25: - mov bx,si - shl bx,1 - mov ax,word ptr L$100[bx] - les bx,dword ptr 6[bp] - mov word ptr es:[bx],ax - mov dx,word ptr -2[bp] - mov ax,word ptr -4[bp] - jmp L$17 -L$26: - pop ds - pop di - pop si - mov sp,bp - pop bp - retf -_EMMRealloc: - push bp - mov bp,sp - push ds - mov ax,MEMORY_DATA - mov ds,ax - xor cx,cx - cmp word ptr L$99,0 - je L$27 - cmp word ptr 8[bp],0 - jl L$27 - cmp word ptr 8[bp],3fcH - jle L$29 -L$27: - xor ax,ax -L$28: - jmp L$31 -L$29: - mov ah,51H - mov bx,word ptr 8[bp] - mov dx,word ptr 6[bp] - int 67H - or ah,ah - js L$30 - mov cx,1 -L$30: - mov ax,cx - jmp L$28 -L$31: - pop ds - pop bp - retf -_EMMFree: - push bp - mov bp,sp - push si - push di - push ds - mov ax,MEMORY_DATA - mov ds,ax - cmp word ptr L$99,0 - jne L$32 - jmp L$40 -L$32: - xor si,si - jmp L$34 -L$33: - inc si -L$34: - cmp si,40H - jge L$35 - mov bx,si - shl bx,1 - mov ax,word ptr L$100[bx] - cmp ax,word ptr 6[bp] - jne L$33 -L$35: - cmp si,40H - jl L$36 - jmp L$40 -L$36: - mov di,10H - jmp L$38 -L$37: - mov bx,si - shl bx,1 - push word ptr L$100[bx] - call far ptr L$87 - pop cx - or ax,ax - je L$38 - jmp L$39 -L$38: - mov ax,di - dec di - or ax,ax - jne L$37 -L$39: - mov bx,si - shl bx,1 - mov word ptr L$100[bx],0 -L$40: - pop ds - pop di - pop si - pop bp - retf -_MapEMM: - push bp - mov bp,sp - push si - push di - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov di,word ptr 0aH[bp] - cmp word ptr L$99,0 - jne L$43 -L$41: - xor ax,ax -L$42: - jmp L$53 -L$43: - xor si,si - jmp L$45 -L$44: - inc si -L$45: - cmp si,40H - jge L$46 - mov bx,si - shl bx,1 - mov ax,word ptr L$100[bx] - cmp ax,word ptr 6[bp] - jne L$44 -L$46: - cmp si,40H - jne L$47 - jmp L$41 -L$47: - push word ptr 6[bp] - call far ptr L$91 - pop cx - cmp ax,di - jl L$48 - cmp di,1 - jl L$48 - cmp di,4 - jle L$49 -L$48: - mov ax,0f440H - jmp L$42 -L$49: - mov si,word ptr 8[bp] - jmp L$52 -L$50: - mov ax,si - sub ax,word ptr 8[bp] - push ax - push si - push word ptr 6[bp] - call far ptr L$84 - add sp,6 - or ax,ax - jne L$51 - jmp L$41 -L$51: - inc si -L$52: - mov ax,word ptr 8[bp] - add ax,di - cmp ax,si - jg L$50 - mov ax,1 - jmp L$42 -L$53: - pop ds - pop di - pop si - pop bp - retf -_UnmapEMM: - push bp - mov bp,sp - sub sp,2 - push si - push di - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov di,word ptr 6[bp] - cmp word ptr L$99,0 - jne L$54 - jmp L$63 -L$54: - xor si,si - jmp L$56 -L$55: - inc si -L$56: - cmp si,40H - jge L$57 - mov bx,si - shl bx,1 - cmp word ptr L$100[bx],di - jne L$55 -L$57: - cmp si,40H - jne L$58 - jmp L$63 -L$58: - mov ax,word ptr 8[bp] - add ax,word ptr 0aH[bp] - mov word ptr -2[bp],ax - cmp word ptr 0aH[bp],1 - jl L$59 - cmp word ptr -2[bp],4 - jle L$60 -L$59: - jmp L$63 -L$60: - mov si,word ptr 8[bp] - jmp L$62 -L$61: - push si - mov ax,0ffffH - push ax - push di - call far ptr L$84 - add sp,6 - inc si -L$62: - cmp si,word ptr -2[bp] - jl L$61 -L$63: - pop ds - pop di - pop si - mov sp,bp - pop bp - retf -_UseEMM: - push bp - mov bp,sp - push si - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov si,word ptr 6[bp] - push si - call far ptr L$94 - pop cx - push word ptr 0aH[bp] - push word ptr 8[bp] - push si - push cs - call near ptr _MapEMM - add sp,6 - jmp L$64 -L$64: - pop ds - pop si - pop bp - retf -_SaveEMM: - push bp - mov bp,sp - push si - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov si,word ptr 6[bp] - push word ptr 0aH[bp] - push word ptr 8[bp] - push si - push cs - call near ptr _UnmapEMM - add sp,6 - push si - call far ptr L$97 - pop cx - pop ds - pop si - pop bp - retf -L$65: - push bp - mov bp,sp - sub sp,14H - push ds - mov ax,MEMORY_DATA - mov ds,ax - lea ax,-0cH[bp] - push ss - push ax - mov ax,offset L$98 - push ds - push ax - mov cx,9 - call far ptr `F_SCOPY@` - push es - mov ax,3567H - int 21H - mov ax,es - mov word ptr -2[bp],ax - pop es - mov ax,word ptr -2[bp] - mov word ptr -12H[bp],ax - mov word ptr -14H[bp],0aH - lea ax,-0cH[bp] - mov word ptr -0eH[bp],ss - mov word ptr -10H[bp],ax - xor dx,dx - jmp L$67 -L$66: - inc dx -L$67: - cmp dx,8 - jge L$68 - les bx,dword ptr -10H[bp] - inc word ptr -10H[bp] - mov al,byte ptr es:[bx] - les bx,dword ptr -14H[bp] - inc word ptr -14H[bp] - cmp al,byte ptr es:[bx] - je L$66 -L$68: - cmp dx,8 - jne L$70 - mov ax,1 -L$69: - jmp L$71 -L$70: - xor ax,ax - jmp L$69 -L$71: - pop ds - mov sp,bp - pop bp - retf -L$72: - push bp - mov bp,sp - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov ah,40H - int 67H - or ah,ah - jns L$74 - xor ax,ax -L$73: - jmp L$75 -L$74: - mov ax,1 - jmp L$73 -L$75: - pop ds - pop bp - retf -L$76: - push bp - mov bp,sp - sub sp,2 - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov ah,41H - int 67H - or ah,ah - js L$78 - mov word ptr -2[bp],bx - mov ax,word ptr -2[bp] -L$77: - jmp L$79 -L$78: - xor ax,ax - jmp L$77 -L$79: - pop ds - mov sp,bp - pop bp - retf -L$80: - push bp - mov bp,sp - sub sp,2 - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov ah,43H - mov bx,word ptr 6[bp] - int 67H - or ah,ah - js L$82 - mov word ptr -2[bp],dx - mov ax,word ptr -2[bp] -L$81: - jmp L$83 -L$82: - xor ax,ax - jmp L$81 -L$83: - pop ds - mov sp,bp - pop bp - retf -L$84: - push bp - mov bp,sp - push ds - mov ax,MEMORY_DATA - mov ds,ax - xor cx,cx - mov ax,word ptr 0aH[bp] - mov ah,44H - mov bx,word ptr 8[bp] - mov dx,word ptr 6[bp] - int 67H - or ah,ah - js L$85 - mov cx,1 -L$85: - mov ax,cx - jmp L$86 -L$86: - pop ds - pop bp - retf -L$87: - push bp - mov bp,sp - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov ah,45H - mov dx,word ptr 6[bp] - int 67H - or ah,ah - js L$89 - mov ax,1 -L$88: - jmp L$90 -L$89: - xor ax,ax - jmp L$88 -L$90: - pop ds - pop bp - retf -L$91: - push bp - mov bp,sp - sub sp,2 - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov word ptr -2[bp],0 - mov ah,4cH - mov dx,word ptr 6[bp] - int 67H - or ah,ah - js L$92 - mov word ptr -2[bp],bx -L$92: - mov ax,word ptr -2[bp] - jmp L$93 -L$93: - pop ds - mov sp,bp - pop bp - retf -L$94: - push bp - mov bp,sp - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov bx,0f442H - mov ah,47H - mov dx,word ptr 6[bp] - int 67H - or ah,ah - js L$95 - mov bx,1 -L$95: - mov ax,bx - jmp L$96 -L$96: - pop ds - pop bp - retf -L$97: - push bp - mov bp,sp - push ds - mov ax,MEMORY_DATA - mov ds,ax - mov ah,48H - mov dx,word ptr 6[bp] - int 67H - pop ds - pop bp - retf -MEMORY_TEXT ENDS -MEMORY_DATA SEGMENT WORD PUBLIC USE16 'FAR_DATA' -L$98: - DB 45H, 4dH, 4dH, 58H, 58H, 58H, 58H, 30H - DB 0 -L$99: - DB 0, 0 -L$100: - DB 0FH DUP(0,0,0,0,0,0,0,0) - DB 0, 0, 0, 0, 0, 0, 0, 0 - -MEMORY_DATA ENDS - END diff --git a/src/lib/exmm/MEMORY.OB b/src/lib/exmm/MEMORY.OB deleted file mode 100644 index 91bfd0403f0cdf04ee0f0163f4c25d034d2cbea3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2334 zcmc&$eQZ-z6hH5^YhPP8zJ}o=!u((%E@_Yk6_%K7?XDwkY;13jjf|FM>nO2n=hhaG z(Lo;3mN#YmV@M@&glP0163r5a{K3$&c8+0OV$>KHjm&_r;4q6wv$UT3-fIUD!k;#| zx%Zy)yXXAQ$Gv?=&A@fLyZya~tR0TXDgY?v?JvJrQswXUw);9u>}6#oHtP%NNCCh- z9UO=(1-SW3QwPbPdLyy{MQeJ_lc((4+IF{9)i>5w?r_-Kw(qdlHan`@`U0K%{Z`Lg zkHfh--CccF&&QEc&EC3)+jIH4_Iuq{&$h=J^aZ_MtLJ3oSv0sB39fy(!A?KA^(ZJB z#v@ReC9B7$#DA*ed_I29-o=!-ySsbc0juY5WSN#F6N>uwzlm&35hFkv^NTsup>~jF z^be-+@Ov8pEOpg&^^L7AzPg3i+v^?GIf0{+ujEK&ql+%CpEknA@ARyW*^R3j3G@Zb z@xhhA5m%GFzM-{(u4-Fqn`$b+JG26TdBRm)S7-P4x@+BCf%gGAhL)g|b2YVx+^DhX zpn0eWB}P|s9~D@1@aqs(m@&DUeckOnDEfefkcO#K1Z!EusAf=2dfo0X82EW;Ii9jm zca83Luh-u(z`(R-3WbX3CxFdE#fU4Uxb42a0E*q60|0k4q}}URcx(Zlv+0m@a_+>R?MSiEMSTyl|@i*8BQ?TBtSh~+p zpn!T{(J`oA#FRl*C&&Uof?&l*s;2gF*AK3YIx`Z<*rq=%ilHrt3JXz^mV^a~r17*g ztJoG(dSRDpK?<7_Btwm$C6#tj+-WFHU?bV4(Pg)oW%>=rvJ1MfSyfcb%d;34LrEX8 ztp7EL-U zKYwW{$i-B#SQ#uhD;uRmJr;PDs?;(eJGIJ-$y0q$MqQ8gf}Jpv4H;qwX+Fvm{brie z0x_!(7mQ*y<5Gx|S4-n%gliBeZZqPfECPhsm-Li|5>v%0?j17!WCPx^bqyCx zptP%Dbl;Y#rw7N7q!HUVN^U1e$_xk`6#j~mIoq_%REcTsNO9abmnCzhCya4tDoawO z+l+zVQ4v(G3N1%E*X*jVkqX)!I9wEiOV<-;(Q!u4~`ZbI}t|^w~1%t|L|;bmS?ZV1vYsO_a|_V*!Te)$mQx@ zo{8_lbt8^S)Rp7B0p%q;b9Ds{GtVRocy?g;M_@qzKtix{w3zLZQ@uZ2l-|FL`~Xe` z*(M}n9&!BlvT1LTW~w@O74Iv6_SR_LlxJq7Hiy$`na)2-s-cTj^CPe3F&FV#f0cXn zG*2~(7Rz`1%xXwtE|VYOIEn-Fk$edU=375}5?BCy(_8Sji9Ut@^KUQxyS~BXzi8;^ KP0tDB82A@DIZ7@7 diff --git a/src/lib/exmm/W b/src/lib/exmm/W deleted file mode 100644 index 20380e65..00000000 --- a/src/lib/exmm/W +++ /dev/null @@ -1,49 +0,0 @@ -bcc -mh -c -lh memory.c -Borland C++ Version 3.1 Copyright (c) 1992 Borland International -memory.c: - - Available memory 4145480 -bcc -mh emm.c memory.obj -Borland C++ Version 3.1 Copyright (c) 1992 Borland International -emm.c: -Turbo Link Version 5.1 Copyright (c) 1992 Borland International - - Available memory 4165892 -move emm.exe em0.exe -c:\z\16\src\lib\exmm\emm.exe -> c:\z\16\src\lib\exmm\em0.exe - 1 file moved -move memory.obj memory.ob -c:\z\16\src\lib\exmm\memory.obj -> c:\z\16\src\lib\exmm\memory.ob - 1 file moved -wdis -a memory.ob > memory.asm -wasm -c -mh -0 memory.asm -Open Watcom Assembler Version 1.9 -Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved. -Source code is available under the Sybase Open Watcom Public License. -See http://www.openwatcom.org/ for details. -memory.asm: 702 lines, 0 warnings, 0 errors -wcl -0 -k32768 /l=dos -ecc -mh emm.c memory.obj -Open Watcom C/C++16 Compile and Link Utility Version 1.9 -Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved. -Source code is available under the Sybase Open Watcom Public License. -See http://www.openwatcom.org/ for details. - wcc EMM.C -0 -ecc -mh -Open Watcom C16 Optimizing Compiler Version 1.9 -Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved. -Source code is available under the Sybase Open Watcom Public License. -See http://www.openwatcom.org/ for details. -EMM.C: 78 lines, included 1998, 0 warnings, 0 errors -Code size: 469 - wlink @__wcl__.lnk -Open Watcom Linker Version 1.9 -Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Source code is available under the Sybase Open Watcom Public License. -See http://www.openwatcom.org/ for details. -loading object files -searching libraries -Error! E2028: F_LXLSH@ is an undefined reference -Error! E2028: F_SCOPY@ is an undefined reference -creating a DOS executable -file MEMORY.OBJ(C:\Z\16\SRC\LIB\EXMM\memory.asm): undefined symbol F_LXLSH@ -file MEMORY.OBJ(C:\Z\16\SRC\LIB\EXMM\memory.asm): undefined symbol F_SCOPY@ -Error: Linker returned a bad status diff --git a/src/lib/exmm/emm.c b/src/lib/exmm/emm.c index fb9c6eca..a2080991 100644 --- a/src/lib/exmm/emm.c +++ b/src/lib/exmm/emm.c @@ -14,22 +14,22 @@ */ - #include #include #include +#include #include "memory.h" void TransformData(char *pEmmData, unsigned int len) { - while ( len ) - { - (*pEmmData)++; - pEmmData++; + while(len) + { + (*pEmmData)++; + pEmmData++; - len--; - } + len--; + } } int main(int argc, char *argv[]) @@ -37,18 +37,20 @@ int main(int argc, char *argv[]) byte *pEmmData; int hEData; unsigned long advi; + unsigned long i=0; + char huge *p =(char huge *)(GetEMMSeg0()*0x10000); if(OpenEMM() != SUCCESS) - { // make sure we got EMM + { // make sure we got EMM printf("EMM unavailable.\n"); exit(1); } else - { - printf("Emm %x available\n", EMVer()); - printf("EMS pages available are %lu\n", EMMCoreLeft()); - //printf("EMM Hardware Information %lu\n", EMInfo()); - } + { + printf("Emm %x available\n", EMVer()); + printf("EMS pages available are %lu\n", EMMCoreLeft()); + //printf("EMM Hardware Information %lu\n", EMInfo()); + } printf("b4 EMS pEmmData=%p\n", pEmmData); //printf("b4 EMS *pEmmData=%s\n", *pEmmData); @@ -66,14 +68,25 @@ int main(int argc, char *argv[]) printf("EMS pages available are %lu\n", EMMCoreLeft()); + + printf("Map 1st 4 pages\n"); - //MapEMM(hEData, 0, 4); // load 1st 4 pages into page frame: 0-3 MapEMM(hEData, 0, 4); // load 1st 4 pages into page frame: 0-3 //memset(pEmmData, 0x0e, 64000u); - printf("(advi*EMMPAGESIZE)=%lu\n", advi); - memset(pEmmData, atoi(argv[1]), 65536u);//sizeof(atoi(argv[1])));//((EMMCoreLeft())*EMMPAGESIZE)); +//0000 printf("(advi*EMMPAGESIZE)=%lu\n", advi); + memset(pEmmData, atoi(argv[1]), 0xffff);//sizeof(atoi(argv[1])));//((EMMCoreLeft())*EMMPAGESIZE)); //---- UnmapEMM(hEData, 0, 4); // not absolutely necessary +// printf("*pEmmData=%c\n", *pEmmData); + printf("%p= %c %c %c %c %c %c %c %c\n", pEmmData, +*pEmmData, *(pEmmData+1), *(pEmmData+2), *(pEmmData+3), *(pEmmData+4), *(pEmmData+5), *(pEmmData+6), *(pEmmData+7)); + /*memset(pEmmData, atoi(argv[1]), 0x40001U);//sizeof(atoi(argv[1])));//((EMMCoreLeft())*EMMPAGESIZE)); + printf("*pEmmData=%c\n", *pEmmData); + memset(pEmmData, atoi(argv[1]), 0x40001L);//sizeof(atoi(argv[1])));//((EMMCoreLeft())*EMMPAGESIZE)); printf("*pEmmData=%c\n", *pEmmData); + memset(pEmmData, atoi(argv[1]), 0x40001UL);//sizeof(atoi(argv[1])));//((EMMCoreLeft())*EMMPAGESIZE)); + printf("*pEmmData=%c\n", *pEmmData); + memset(pEmmData, atoi(argv[1]), sizeof(byte)*4);//sizeof(atoi(argv[1])));//((EMMCoreLeft())*EMMPAGESIZE)); + printf("*pEmmData=%c\n", *pEmmData);*/ /*printf("Map next 2 pages\n"); MapEMM(hEData, 4, 2); // map last 2 pages: 4-5 @@ -91,16 +104,30 @@ int main(int argc, char *argv[]) // do stuff with remaining 32K of data TransformData(pEmmData, 32768UL); printf("*pEmmData=%lu\n", *pEmmData);*/ - if(!atoi(argv[2])) + if(atoi(argv[2])) + { + while(p<(char huge *)((GetEMMSeg0()*0x10000)+0xffff) && !kbhit()) + { + if((i%16)==0) printf("%p= %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c\n", p, +*p, *(p+1), *(p+2), *(p+3), *(p+4), *(p+5), *(p+6), *(p+7), +*(p+8), *(p+9), *(p+10), *(p+11), *(p+12), *(p+13), *(p+14), *(p+15)); + // (*p)++; + i++; + p++; + } + //free(p); + } + if(!atoi(argv[3])) { - UnmapEMM(hEData, 0, 4); // should unmap before freeing - //printf("after EMS *pEmmData=%c\n", *pEmmData); - printf("Close emm\n"); - EMMFree(hEData); // finished with the file data - CloseEMM(); + UnmapEMM(hEData, 0, 4); // should unmap before freeing + //printf("after EMS *pEmmData=%c\n", *pEmmData); + printf("Close emm\n"); + EMMFree(hEData); // finished with the file data + CloseEMM(); } printf("after EMS pEmmData=%p\n", pEmmData); printf("EMS pages available are %lu\n", EMMCoreLeft()); + printf("GetEMMSeg0=%p\n", GetEMMSeg0()*0x10000); //printf("EMMPAGESIZE=%d\n", EMMPAGESIZE); return 0; } diff --git a/src/lib/exmm/f.bat b/src/lib/exmm/f.bat deleted file mode 100644 index 3b6acd04..00000000 --- a/src/lib/exmm/f.bat +++ /dev/null @@ -1,3 +0,0 @@ -wcp -mh far.c -pause -far.exe diff --git a/src/lib/exmm/far.c b/src/lib/exmm/far.c index 7dcbba54..9d5f8f58 100644 --- a/src/lib/exmm/far.c +++ b/src/lib/exmm/far.c @@ -1,34 +1,36 @@ #include #include -#include +//#include -int main(){ +#include "memory.h" + +int main(int argc, char *argv[]) +{ unsigned long i=0; char near w; - char huge *p =(char far *)0xD0000000; + char huge *p =(char huge *)(GetEMMSeg0()*0x10000);//0xD0000000; //char far *q =(char far *)0x53332225; - printf("1p=%p %ul\n", p, i); - while(p<=(char far *)0xDFFFFFFF/*i<262144UL*/ && !kbhit()) + printf("1p=%p %ul\n", p, GetEMMSeg0()); + //while(!kbhit()){ printf("%p\n", ((GetEMMSeg0()*0x10000)+0x0fffffff)); } + //while(!kbhit()){ printf("%p\n", ((GetEMMSeg0()*0x10000)+0xffff)); } + if(argv[1]) { printf("switch on!\n"); while(!kbhit()){} } + while(p<=(char huge *)((GetEMMSeg0()*0x10000)+0xffff)/*i<262144UL*/ && !kbhit()) { - printf("p=%p=%x %ul\n", p, *p, i); -// *p = i; + if(argv[1]!=NULL) (*p) = i; else + //else printf("%p= %x% %ul\n", p, *p, i); + if((i%8)==0) printf("%p= %c %c %c %c %c %c %c %c\n", p, +*p, *(p+1), *(p+2), *(p+3), *(p+4), *(p+5), *(p+6), *(p+7)); // (*p)++; - p++; +// printf(" %p\n", ((GetEMMSeg0()*0x10000)+0x0fffffff)); i++; - } - /*while((_UI16_MAX/2)<=i<(_UI16_MAX) && !kbhit()) - { - printf("*p=%d %d\n",*p, i); - /p = i; - //(*p)++; p++; - i++; - }*/ + } w=104; //printf("*q=%d\n",*q); //printf(" q=%p\n", q); printf(" p=%p\n", p); printf(" w=%d\n", w); printf(" w=%p\n", w); + printf("GetEMMSeg0()=%p\n", GetEMMSeg0()*0x10000); return 0; } diff --git a/src/lib/exmm/memory.c b/src/lib/exmm/memory.c index 38b12255..21b213f8 100644 --- a/src/lib/exmm/memory.c +++ b/src/lib/exmm/memory.c @@ -28,13 +28,13 @@ //static globals -------------------------------- static int ActiveEMList[MAXEMHANDLES]; -static unsigned int EMMSeg; +static unsigned long EMMSeg; //forward declarations --------------------------------- static int EMPresent(void); static int EMReady(void); -static unsigned int GetEMMSeg(void); +static unsigned long GetEMMSeg(void); static int GetEMHandle(int NumPages); static int EMMap(int Handle, int LogPg, int PhyPg); static int FreeEMHandle(int Handle); @@ -308,7 +308,7 @@ EMReady(void) /********************************************************************/ -static unsigned int +static unsigned long GetEMMSeg(void) { unsigned int EMSegment; @@ -328,7 +328,31 @@ GetEMMSeg(void) //NotReady: // return(NOTREADY); -} /* End of GetEMMSeg() */ +} /* End of GetEMMSeg() */ + +/********************************************************************/ + +unsigned long +GetEMMSeg0(void) +{ + unsigned int EMSegment; + + _asm { + mov ah,0x41 /* get EMM page frame segment */ + int 0x67 + or ah,ah + js NotReady /* returns 80, 81, or 84 hex on error */ + mov EMSegment,bx + jmp End + NotReady: + mov EMSegment,NOTREADY + End: + } + return(EMSegment); /*lint !e530 */ + +//NotReady: +// return(NOTREADY); +} /* End of GetEMMSeg0() */ /********************************************************************/ diff --git a/src/lib/exmm/memory.ero b/src/lib/exmm/memory.ero deleted file mode 100644 index 72220273..00000000 --- a/src/lib/exmm/memory.ero +++ /dev/null @@ -1,6 +0,0 @@ -Open Watcom C16 Optimizing Compiler Version 1.9 -Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved. -Source code is available under the Sybase Open Watcom Public License. -See http://www.openwatcom.org/ for details. -memory.c: 413 lines, included 1940, 0 warnings, 0 errors -Code size: 1534 diff --git a/src/lib/exmm/memory.h b/src/lib/exmm/memory.h index 6d0ff1dc..3d35d472 100644 --- a/src/lib/exmm/memory.h +++ b/src/lib/exmm/memory.h @@ -24,7 +24,8 @@ extern int EMVer(void); extern unsigned long EMInfo(void); -extern int OpenEMM(void); +extern int OpenEMM(void); +extern unsigned long GetEMMSeg0(void); extern void CloseEMM(void); extern int EMMInstalled(void); extern void far *EMMalloc(int *Handle, int Pages); diff --git a/src/lib/exmm/x.bat b/src/lib/exmm/x.bat index ca0abb37..51fa1edb 100644 --- a/src/lib/exmm/x.bat +++ b/src/lib/exmm/x.bat @@ -7,3 +7,4 @@ rem wasm -c -mh -0 memory.asm rem wcp -ecc -mh emm.c memory.obj \z\borlandc\lib\ch.lib wcc -0 -mh memory.c wcp -mh emm.c memory.obj +wcp -mh far.c memory.obj -- 2.39.5