<--- Turn the page     (contents page)     Turn the page --->


Undocumented




Each article in this column will be about undocumented items and/or features of DOS and DOS Apps. If you know of any undocumented items in DOS, DOS apps, Intel Instructions, etc., lease let us know and you could be the author of the article for an upcoming issue. [Ed.]

Undocumented. Well, what does this word mean? If I document something that is undocumented, then is it undocumented any more?

Microsoft defines Undocumented in this fashion: "Microsoft can not guarantee that the information in this entry will be valid for future version of MS-DOS." [Undocumented DOS, Addison Wesley, 1990].

How about something that is undocumented; is unsupported, most likely will be taken out of [DOS] at any time, and is without written references. Does that sound familiar? However, Microsoft used a highly used, highly undocumented assembler instruction called the LOADALL instruction. The LOADALL instruction allowed access to extended memory on a 286. Did you ever see any documentation of it? Did Intel ever let you know about it in their manuals? In their table of opcodes, Intel put a blank next to 0F 05, the opcode for LOADALL.

How about the DOS in-flag? Did you ever hear about this? The DOS in-flag is used very much in writing TSRs to see if it is "safe" to enter DOS.

How about the list-of-lists? How much information is needed from this list and how would you know how to access this list?

In each article of this column, we will take an undocumented topic and discuss it in detail to give you more information on an undocumented item of DOS. We will also have "tips", so-to-speak, of other small items that are undocumented.



For instance; how many times have you wanted to get the length of an asciiz string? There are many ways to do this:
         mov  si,offset string
Loop1:   lodsb
         or   al,al
         jnz  short Loop1
         mov  cx,si
         sub  cx,offset string
or
         mov  si,offset string
         xor  cx,cx
Loop1:   lodsb
         inc  cx
         or   al,al
         jnz  short Loop1
or
         les  di,string
         mov  cx,256
         xor  al,al
         repne 
         scasb
         xchg cx,ax
         mov  cx,256
         sub  cx,ax
how about
         les  di,string
         mov  ax,1212h
         int  2Fh
This undocumented service was included with DOS 3.x and up. ¥


<--- Turn the page     (contents page)     Turn the page --->

Page 13