Es gibt hierzu einen MI-Befehl, der einen Wait als kleinste Einheit von 1ms erlaubt.
Hier noch meine Quelle (mit meinem MI-Compiler oder dem API zu erstellen):
Code:DCL SPCPTR PWAITDECTIME PARM; DCL OL *ENTRY (PWAITDECTIME) PARM EXT; DCL DD WAITDECTIME PKD(15,0) BAS(PWAITDECTIME); DCL DD WAITSTRUCT CHAR(16); DCL DD WAIT1 BIN(4) DEF(WAITSTRUCT) POS(1); DCL DD WAIT2 BIN(2) UNSGND DEF(WAITSTRUCT) POS(5); DCL DD * BIN(2) DEF(WAITSTRUCT) POS(7) INIT(0); DCL DD WAITOPT CHAR(2) DEF(WAITSTRUCT) POS(9) INIT(X"2000"); DCL DD * CHAR(6) DEF(WAITSTRUCT) POS(11) INIT((6)X"00"); DCL DD GESAMTZEIT PKD(31,0); #DEBUG ENTRY * (*ENTRY) EXT; CMPNV(B) WAITDECTIME,0/HI(ZEIT_POSITIV); NEG(S) WAITDECTIME; ZEIT_POSITIV: MULT(R) GESAMTZEIT,WAITDECTIME,P"0.625142"; DIVREM WAIT1,GESAMTZEIT,P"65536",WAIT2; #NODEBUG BRK ".WAITTIME"; WAITTIME WAITSTRUCT; #DEBUG RTX *; DCL EXCM MCH1202 EXCID(H'0C02',H'0C0A') BP(FEHLER) IMD CV(X"00000000"); FEHLER: CPYNV WAITDECTIME,P"100000"; B ZEIT_POSITIV; PEND;
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks