I found strange and undocumented behaviour in kernel function INT21h/AX=6501h I wanted to report this as a bug but MS-DOS 7.1 has exactly the same behaviour.
We have this snippet of code: var a:array[0..255] of byte; begin asm seges lea di,a mov bx,0ffffh mov dx,0ffffh mov cx,256 mov ax,6501h int 21h end; It should return my country code and code page. But it sometimes works and sometimes not. It depends on values in A array. If A is zeroed (for i:=0 to 255 do a[i]:=0) it works. If A is assigned to constant value (for i:=0 to 255 do a[i]:=2) it works. But if I make: "for i:=0 to 255 do a[i]:=i" it does not work. This behaviour is not documented in RBIL. However MS-DOS 7.1 acts in same way as FreeDOS so I don't know whether is this bug or "feature". ------------------------------------------------------------------------------ Keep yourself connected to Go Parallel: TUNE You got it built. Now make it sing. Tune shows you how. http://goparallel.sourceforge.net _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel