|
Otros manuales para este modelo:
Resumen del manual
PROCEDURE BDEPOSIT(dw,sb,nb,exp);
VALUE dw, sb, nb, exp;
LOGICAL dw, sb, nb, exp;
BEGIN
LOGICAL M;
POINTER P;
nb := 16-nb;
sb := nb-sb;
M := (%(16)FFFF & LSR(nb)) & LSL(sb);
@p := dw;
p := (p LAND NOT m) LOR (exp & LSL(sb) LAND m);
END;
SPL BEXTRACT Procedure: Bit Extraction
<< BEXTRACT SPL BIT EXTRACTION >>
<< >>
<< This procedure emulates the SPL bit extraction, for example: >>
<< x := y.(10:4); >>
<< as an SPL procedure: >>
<< x := BEXTRACT(y,10,4); >>
<< >>
<< The parameters to BEXTRACT are: >>
<< wd -- Word (unsigned short) to extract bits from. >>
<< sb -- Starting bit of field (0 through 15, left to right).>>
<< nb -- Number of bits in field. >>
<< >>
<< The return value will be the extracted field, right justified >>
<< in a 16 bit (unsigned short) word. >>
LOGICAL PROCEDURE BEXTRACT(wd,sb,n);
VALUE wd, sb, nb;
LOGICAL wd;
INTEGER sb, nb;
BEGIN
BEXTRACT := (wd & LSL(sb)) & LSR(16-nb);
END;
SPL BYTECMP Procedure: Byte Comparison
<< BYTECMP SPL COMPARE BYTE STRINGS >>
<< >>
<< This emulates the byte string compare expression in SPL, >>
<< for example: >>
<< IF A < B,(N),0; >>
<< NN := TOS; {count} >>
<< @AA := TOS; {left address after compare} >>
<< @BB := TOS; {right address after compare} >>
<< This may be converted to C with: >>
<< if (BYTECMP(a,LSS,b,n,0,&nn,&aa,&bb))....>>
<< >>
<< The parameters to BYTECMP are: >>
<< left -- The left address to be compared. >>
<< cmp -- The comparison to be made. Here the following >>
<< syntax exists. >>
<< LSS means < >>
<< LEQ means <= >>
<< EQU means == >>
<< NEQ means <> >>
<< GEQ means >= >>
<< GTR means > >>
<< right -- The right address to be compared. >>
<< count -- The maximum number of bytes to compare. >>
<< sdec -- The SPL stack decrement. In this context, the >>
<< value of this parameter will determine if the >>
<< function accesses the last parameter, as >>
<< follows: >>
A-2
...Otros modelos de este manual:
Software - MPE/iX 6.5 Operating System (235.59 kb)