Hi all, I browsed my memory with the free and powerful 386SWAT
debugger a bit... (after loading, activate with ctrl alt numpad-5,
leave with ESC, swap screens with alt f7, toggle user screen with f10,
get help with f1... in particular, keyboard quick help is useful...).
Results (no XMS / EMS / HMA in use) -->
386SWAT remapped the last page of the 1st MB (to trap reboots)
The main part of the debugger is at 114000-136fff.
At adresses 240000, 280000 and 300000, there are the bytes:
aa 55 aa 55 00 00 00 00 cc 33 cc 33 00 00 00 00
At adress 200000, there are the same bytes, but there is MORE stuff
between 200030 and 20c8ff.
The rest of the RAM is empty.
So it looks as if those 16 magic bytes are some BIOS header, and
there are 1 "loaded" and 3 "vanished" modules. Or maybe the headers
have fixed addresses, so there are 4 slots, one of which is used,
the others having only empty headers?
The data at 200030 is: 00 10 03 00 00 01 20 00, then we have 00s until
the module at 200100 which starts with: 55 aa 64 e9 d3 b0 00
00 00 00 00 50 58 00 00
00 00 00 00 00 00 00 00 1c 00 5b 00 "PCIR"
00 10 03 00 00 00 18 00 00 00 00 00 64 00 0b 04
00 00 00 00 00 00 00 00 "Copyright 1995,1998, Symbios Inc,." 00 "$PnP" 02
at 200160:
02 00 00 00 fa 00 10 0f 00 10 00 ff 00 01 00 00
e4 00 00 00 00 00 00 "SYM53C8XX Boot Support" 00
200196:
1e 50 e8 2d ... (code / data / text starts)
Bonus observation: My VGA BIOS contains some interesting data structures:
0000000: 55aa 50eb 4b37 3430 30e9 4c19 77cc 5649 U.P.K7400.L.w.VI
0000010: 4445 4f20 0d00 0000 7400 0000 0000 4942 DEO ....t.....IB
0000020: 4d20 5647 4120 436f 6d70 6174 6962 6c65 M VGA Compatible
0000030: 0100 0000 1000 0000 3130 2f31 382f 3939 ........10/18/99
0000040: 0000 0000 0000 0000 0001 0100 3f3e 3736 ............?>76
0000050: e99d 0700 4810 3a0c e93f 18e9 4718 504d ....H.:..?..G.PM
0000060: 4944 5800 5b00 0000 00a0 00b0 00b8 00c0 IDX.[...........
0000070: 005b 0000 5043 4952 de10 2d00 0000 1800 .[..PCIR..-.....
0000080: 0003 0000 5000 0503 0080 0000 e549 fe94 ....P........I..
0000090: aa3b e3a7 4e56 3a0c 2480 2c01 7d00 8f00 .;..NV:.$.,.}...
00000a0: 01a5 9362 3141 0000 0000 ff7f 4e56 0002 ...b1A......NV..
00000b0: 01db dc00 0000 0503 0000 0000 b601 b502 ................
00000c0: 6301 db00 a200 3c10 7128 0d91 6791 b893 c.....<.q(..g...
00000d0: 9193 7793 2e03 3c03 f893 000a 0afe 0d0a ..w...<.........
00000e0: b320 454c 5341 2045 5241 5a4f 5220 4949 . ELSA ERAZOR II
00000f0: 4920 4c54 2020 2020 2056 6572 2e20 332e I LT Ver. 3.
That "PMIDX" structure is followed by 9 "selector" (?) words,
and you can replace the a000, b000, b800 and c000 ones to tell
the BIOS that it has to use other segment values to access VGA RAM,
mono text RAM, color text RAM and itself, respectively.
The BIOS is even checking if CS is c000 when you enter it, and if not:
0x887: push DS DS=CS SI=0 CLI CLD MOVSD_0x4000_DWORDS pop DS
(ES:DI is a000:0 at that moment, NOT using the replaceable a000 from PMIDX)
Otherwise, it does:
ESI=0x30.0000 call 0x47ed IF AX != 0xaa55 THEN -> 0x887
CLI CLD do_0x4000_times( call 0x47ed stosd esi+=4) (copy logo?) JUMP 0x895
(0x895: is right after the 0x887 thing)
0x47ed: push ebx,dx,cx,edi call 0x472a call 0x47b1 call 0x4751 eax=edi
pop edi,cx,dx,ebx ret
0x472a: (deep/) AL=x038 call 0x3279 CX=DX push ax AH=5 out dx,ax DX=0x3d0
push inw(DX) AX=0x0338 DX=CX out dx,ax DX=0x3d0 push inw(DX) dx+=2
EAX=inw(DX)<<16 pop ax, dx, bx ret
0x4751: (deep/) push esi, bx, dx esi=eax AX=0x0338 DX=CX out dx,ax DX=0x3d2
EAX=ESI EAX>>=16 out dx,ax dx-=2 AX=SI out dx,ax AX=0x738 out dx,ax
DX=0x3d0 pop ax out dx,ax pop esi ret
0x47b1: (deep/) push dx,eax call 0x47a0 DX=CX AX=0x538 out dx,ax DX=0x3d2
EAX=inw(dx)<<16 dx-=2 AX=inw(dx) EDI=EAX pop eax,dx ret
0x3279: call 0x33e8 out dx,al in ax,dx ret
0x33e8: (deep) DX = (inb(0x3cc) & 1) ? 0x3b4 : 0x3d4 ret (ax preserved)
Does anybody have experiences with that PMIDX or cc33cc3300000000aa55aa5500000000
"protected mode BIOS module" header described above? Would be interesting
to know. After all, there are far more things happening than creeping
around in the first 1 MB in modern computers.
Eric
-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel