|
3 | 3 |
|
4 | 4 | ; TITLE DEVLOAD to load device drivers from command line. |
5 | 5 | ; FORMAT EXE ; *** changed to COM in 3.12/newer *** |
6 | | -; VERSION 3.16 |
| 6 | +; VERSION 3.17 |
7 | 7 | ; CODE 80x86 |
8 | 8 | ; OPTIONS /ML |
9 | 9 | ; TIME CHECK |
10 | 10 | ; DATE 12/3/92 - 31/3/98 |
11 | 11 | ; AUTHOR David Woodhouse |
12 | 12 | ; (C) 1992, 1993 David Woodhouse. |
13 | | -; Patches for 3.12 to 3.16: 2004 and 2005 by Eric Auer |
| 13 | +; Patches for 3.12 to 3.16, 3.17: 2004 and 2005, 2007 by Eric Auer |
14 | 14 |
|
15 | 15 | ; EXPLANATION... |
16 | 16 | ; The program first relocates itself to the top of the available memory |
|
129 | 129 | ; message and the message which tells whether /H (UMB) worked. |
130 | 130 | ; Inspired by Erwin Veermans' patches. |
131 | 131 |
|
132 | | -; Version 3.16 04/11/2005 - contributed patches and some cleaning |
| 132 | +; Version 3.16 4/11/2005 - contributed patches and some cleaning |
133 | 133 | ; improved TASM compile (normal DEVLOAD compiler is ArrowASM), |
134 | 134 | ; fixed the "UMB needs DOS 5+" version check, improved texts. |
135 | 135 | ; comment style: added spaces after ; where ; starts a comment. |
136 | 136 | ; Added some "short" and "ds:" as suggested by Diego Rodriguez. |
137 | 137 | ; DR DOS version check based on research by Diego Rodriguez. |
138 | 138 |
|
| 139 | +; Version 3.16 9/5/2007 - allocate more space for DPB if DOS 7+ (FAT32) |
| 140 | + |
139 | 141 | ; .............................IMPROVEMENT IDEAS............................. |
140 | 142 |
|
141 | 143 |
|
@@ -1570,9 +1572,9 @@ LASTBYTE equ $ |
1570 | 1572 |
|
1571 | 1573 | ; ................DATA WHICH ISN'T NEEDED AFTER RELOCATION................... |
1572 | 1574 |
|
1573 | | -SignOnMsg db 'DEVLOAD v3.16 (C) 1992 - 1996 David Woodhouse ' |
| 1575 | +SignOnMsg db 'DEVLOAD v3.17 (C) 1992 - 1996 David Woodhouse ' |
1574 | 1576 | |
1575 | | - db ' Patches for v3.12-3.16 by Eric Auer 2004/2005' |
| 1577 | + db ' Patches for v3.12-3.17 by Eric Auer 2004-2007' |
1576 | 1578 | db ' <Eric*CoLi.uni-sb.de>',13,10 |
1577 | 1579 | db ' Loads device drivers from the shell.',13,10 |
1578 | 1580 | ; kind of obvious...: db ' Needs DOS 3 or newer.' |
@@ -1671,13 +1673,26 @@ ver3: ; DR DOS up to 7.00 "are DOS 3.31" but pre-DR-6.0 fail: |
1671 | 1673 | cmp al,71h ; first tested-to-work kernel |
1672 | 1674 | jb badver ; 72h+ report MS version 6... |
1673 | 1675 |
|
| 1676 | +; DOS CDS (current directory structure) array has LASTDRIVE entries of |
| 1677 | +; 58h bytes each, 51h for DOS 3.x ... DOS Block headers are the DPB |
| 1678 | +; (drive parameter block) items, 20h bytes in DOS 3.x, 21h in 4.0-6.0 |
| 1679 | +; FAT32 DPB start like FAT1x ones, but are 1ch bytes longer ... (3.17) |
1674 | 1680 | realver3: mov LDrSize,51h |
1675 | 1681 | mov byte ptr BlHSize,20h |
1676 | 1682 | mov NextBlHOfs,18h |
| 1683 | + jmp short classicver |
| 1684 | + |
| 1685 | +okver: cmp al,7 ; new 3.17 |
| 1686 | + jb classicver |
| 1687 | + |
| 1688 | + ; FAT32 aware version: larger DPB, but same DPB pointer / CDS size |
| 1689 | + mov byte ptr BlHSize,003dh ; new 3.17 |
| 1690 | + |
| 1691 | +classicver: |
1677 | 1692 |
|
1678 | 1693 | ; Check command line. |
1679 | 1694 |
|
1680 | | -okver: mov ds,PSPSeg |
| 1695 | + mov ds,PSPSeg |
1681 | 1696 | xor bh,bh |
1682 | 1697 | mov bl,byte ptr ds:[80h] |
1683 | 1698 | or bx,bx |
|
0 commit comments