Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

For Rayer - shared resources between DOS and WinXP (Announce)

posted by RayeR Homepage, CZ, 11.07.2008, 02:53
(edited by RayeR on 11.07.2008, 03:09)

I tried a small experiment in DJGPP.
I made a simple program which dumps CS, DS, SS decriptors and show its bases. I run it under NTVDM and the result was:

CS: 1A7h, base = 029E0000h, limit = 9FFFFh, granularity = 1B
DS: 1AFh, base = 029E0000h, limit = 9FFFFh, granularity = 1B
SS: 1AFh, base = 029E0000h, limit = 9FFFFh, granularity = 1B
DOS_DS: 1AFh, base = 00000000h, limit = 0010Fh, granularity = 4096B
MSGPTR: 118E0h


I have placed magic string at offset 118E0.
Parallel with this program I launched Read & Write utility and look at physical
assress equal to base+offset but no magic string there. I searched through phys memory and found it much higher somewhere over 50000000, 60000000 and more in some instances. Hm is it messed up due to paging? Normally I would expect that segment descriptor base address is physical address... So seems a VDD is only possible way (except that damn ramdisk :)

EDIT:
Grrr, I ran muliple instances of my program and all has reported 029E0000h same base, it's impossible to be physical address.

EDIT2:
Under Win98 each instance of program got unique base addres but this is also not true physical address

CS: A7h, base = 84E9F000h, limit = 9FFFFh, granularity = 1B
DS: AFh, base = 84E9F000h, limit = 9FFFFh, granularity = 1B
SS: AFh, base = 84E9F000h, limit = 9FFFFh, granularity = 1B
DOS_DS: AFh, base = 00000000h, limit = 0010Fh, granularity = 4096B
MSGPTR: 118E0h

---
DOS gives me freedom to unlimited HW access.

 

Complete thread:

Back to the forum
Board view  Mix view
22632 Postings in 2109 Threads, 402 registered users, 406 users online (0 registered, 406 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum