SU.OS2.FAQ--------------- < Пред. | След. > -- < @ > -- < Сообщ. > -- < Эхи > --
 Nп/п : 70 из 100
 От   : FAQServer                           2:5020/181        05 сен 24 07:37:04
 К    : All                                                   05 сен 24 07:52:01
 Тема : PRG3 - Как в пpогpамке под DOS отдавать тики OS/2?
----------------------------------------------------------------------------------
                                                                                 
@MSGID: 2:5020/181 af78f3ba
@RFC-Message-ID: 1@mhm.com.lan>
@TZUTC: 0300
[Q]: Как в пpогpамке под DOS отдавать тики OS/2?

[A]: Vladimir Bogoryatskih (2:5080/14.1)

Unit TimeTask;

INTERFACE

{
  TaskRec.OS
  0 : No MultiTasking
  1 : Windows
  2 : OS/2
  3 : DESQview
  4 : TopView
}

Type
  TaskRec = record
    OS      : Word;
    Version : Word; {writeln(`Version `,hi(Version), `.`, lo(Version) );}
    Delay   : Word;
  end;

Const
  Task    : TaskRec = (
    OS      : 0;
    Version : 0;
    Delay   : 100
  );

Procedure TimeSlice;
Procedure InitMulti;

IMPLEMENTATION

uses dos;

Procedure InitMulti; Assembler;
Asm
  mov  Task.OS, 0
  mov  Task.Version, 0
  mov  Ah, 30h
  mov  Al, 01h
  int  21h
  cmp  Al, 20
  je   @OS2
  mov  Ax, 160Ah
  int  2Fh
  cmp  Ax, 0
  je   @Windows
  mov  Ax, 1022h
  mov  Bx, 0000h
  int  15h
  cmp  Bx, 0
  jne  @DESQview
  mov  Ah, 2Bh
  mov  Al, 01h
  mov  Cx, 4445h
  mov  Dx, 5351h
  int  21h
  cmp  Al, $FF
  jne  @TopView
  jmp  @Fin
@Windows:
  Mov  Task.OS, 1
  Mov  Task.Version, BX
  jmp  @Fin
@OS2:
  Mov  Task.OS, 2
  Mov  Bh, Ah
  Xor  Ah, Ah
  Mov  Cl, 10
  Div  Cl
  Mov  Ah, Bh
  Xchg Ah, Al
  Mov  Task.Version, AX
  jmp  @Fin
@DESQview:
  mov  Task.OS, 3
  jmp  @Fin
@TopView:
  mov  Task.OS, 4
@Fin:
End;


Procedure TimeSlice; Assembler;
Asm
  cmp  Task.OS, 0
  je   @Fin
  cmp  Task.OS, 1
  je   @Win_OS2
  cmp  Task.OS, 2
  je   @Win_OS2
@DV_TV:
  mov  Ax, 1000h
  int  15h
  jmp  @Fin
@Win_OS2:
  mov  Ax, 1680h
  int  2Fh
@Fin:
End;

end.
 
--- INN 2.7.2
 * Origin: This echo is READ-ONLY. Send %HELP to FAQSERVER at (2:5020/181)
SEEN-BY: 4500/1 5001/100 5019/40 5020/77 81 181
545 848 1042 1941 1955 4441
SEEN-BY: 5020/8086 12000 5030/1081 1900 5060/900
5097/31 6090/1
@PATH: 5020/181 12000 4441



   GoldED+ VK   │                                                 │   09:55:30    
                                                                                
В этой области больше нет сообщений.

Остаться здесь
Перейти к списку сообщений
Перейти к списку эх