37KGLLQ@CMUVM.BITNET (Tony Papadimitriou) (08/24/90)
Hello all, While writing a program I came across what may indicate a bug in one of several places. If the following program is run under MS-DOS 4.01 an unexpected output is displayed. If, however, it is run under DesqView 386 ver. 2.25 (running on top of DOS 4.01) the program works as expected. So, where is the bug? Is it in my code, in DOS 4.01, in Phoenix 386 BIOS PLUS ver. 1.10.00, or in DesqView 386 2.25 ??? This is only part of a much larger program. I have kept the model the same. I used Borland's TASM and TLINK to produce the .EXE file. ------------------------ Cut Here --------------------------- IDEAL MODEL COMPACT DATASEG buffer db 256 dup(?) CODESEG proc I_write mov ax,@data mov ds,ax mov es,ax mov di,offset buffer mov cx,256 mov al,0 @@1: stosb inc al loop @@1 ; Under DOS not all 256 characters are written, but ; under DesqView 386 2.25 all 256 are written as expected. mov ax,4000h mov bx,1 mov dx,offset buffer mov cx,256 int 21h ; This is where the problem occurs @@exit: mov ax,4c00h int 21h endp I_write end ------------------------ Cut Here ---------------------------