Subj : ] To : Chris Hoppman From : mark lewis Date : Mon Dec 15 2003 12:28 pm CH> OS2: asm CH> push dx CH> xor dx, dx CH> mov ax, 0 CH> sti CH> hlt CH> db 035h, 0Cah CH> pop dx the stuff i've used for years doesn't push or pop the dx register and it does not have the sti call in it... the only difference between what i use for Warp3 and Warp4 is "mov ax, 2" for Warp3... oh yes... and the db line should read "db 035h,0cah,90h" without the quotes... my actual killtime procedure is Procedure KillTime; assembler; asm PUSHF CALL DWord Ptr [os_slice_vec] end; so that may cover why i don't worry about the DX register... i dunno... i used to have iret at the end of the os/2 slice calls but had problems and have it commented out, currently... again, just to clarify, my slice routines are stuck into an interrupt vector so i just call killtime whenever and it pokes the already installed slice routine... why did i do it this way? why should we figure out what os we're running each and every time we go to slice? figure out the os during program startup and go from there... in your above, you have to decide which slice to use on every invocation of the slice routine... i see that as inefficient... thus i came up with the decision stuff during program start and just install the desired slice then... )\/(ark * Origin: (1:3634/12) .