valley@uchicago (Doug Dougherty) (12/18/90)
Observe: All this device driver does is copy 200 words of data starting with its own filename to a safe (?) area of memory (@512K), then exit leaving nothing resident. This allows one to figure out the syntax of the CONFIG.SYS buffer, a topic which, I should add, is utterly undocumented in all the references. As an aside, I think I've got it figured out, but its all emperical data... What's funny is that this was developed under and runs fine under, (several versions) of DOS 3.3. But under DOS 3.2, it crashes and burns (system hard crashes on boot) .RADIX 16 org 0 ; Device driver header dd -1 dw 8000 ; Char dev dw offset strat dw offset cmds db 'AskDev ' ptrsav dd 0 strat: mov W cs:[ptrsav],bx mov W cs:[ptrsav+2],es retf cmds: pushf push es push bx les bx,cs:[ptrsav] ; Get Request Packet mov W es:[bx+3],8003 ; Preset exit with Unknown Command code cmp B es:[bx+2],0 ; INIT is the only cmd we do jne >L99 mov W es:[bx+0E],0 ; Set the end addresses mov W es:[bx+10],cs ; (In no case, do we go resident) cld push ax push cx push ds push si push di lds si,es:[bx+12] mov ax,9000 ; Point at 512K mov es,ax xor di,di mov cx,200 ; (This is a guess) rep movsw pop di pop si pop ds pop cx pop ax L99: pop bx pop es popf retf Comments?