At 01:09 PM 3/10/2012, Zbigniew wrote:
>If I correctly found the relevant sections of DX-Forth's kernel.asm
>(it's included in the package), the word is defined the following way:
>;       runtime for deferred words - equiv to @ EXECUTE
>dodef:  pop     bx
>         jmp     [bx]
>;       MS  ( ms -- )
>         hdr     1,'MS'
>ms:     call    dodef
>         dw      ms0
Well, that's only the Forth definition of it, which in fact calls the 
kernel routine ms0, which in turn does quite bit that could be 
influenced at least by JEMM, though not sure what in 4DOS could interfere:
>ms0:    pop     cx              ; (MS)
>         push    tnext1
>;       delay (ms) in CX        ; uses timer 0
>ms1:    jcxz    ms5
>ms2:    test    cl,3            ; PAUSE each 4mS for
>         jnz     ms3             ; multitasking
>         push    cx
>         call    docol
>         dw      pause
>         dw      exit1
>         pop     cx
>ms3:    call    ms6
>         mov     dx,bx
>ms4:    call    ms6
>         sub     bx,dx
>         cmp     bx,-2385
>         jnc     ms4
>         loop    ms2
>ms5:    ret
>ms6:    pushf                   ; clear interrupts
>         cli                     ; during CTC read
>         sub     al,al
>         out     43h,al
>         iodelay
>         in      al,40h
>         mov     bl,al
>         iodelay
>         in      al,40h
>         mov     bh,al
>         popf
>         ret
The "pause" call is for me the most likely culprit, doubt that this 
is something that could be fixed in DX-Forth, specially if it works 
without and with other memory managers...
The INT 1Ah that Rugxulo mentioned doesn't come into play, it would 
have only a 18Hz resolution, not milliseconds, to begin with...


Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
Freedos-user mailing list

Reply via email to