;*************************************************************;*         PASCAL STANDARD ASSEMBLER PACKAGE.                *;*                                                           *;* (C) 1980 DANSK DATA ELEKTRONIK APS.                       *;*************************************************************;;*************************************************************;* PROCEDURE NAME:      SETPR                                *;*************************************************************;; CT 07-MAY-1980;;=============================================================; DESCRIPTION:; THIS PROCEDURE IS USED TO CHANGE THE PRIORITY OF THE CALLING; PROCESS.; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL; SECTION 5.1 FOR DETAILS.;;-------------------------------------------------------------; STACK CONTENTS ON ENTRY:     I               I;                              I---------------I;                              I RETURN ADR.   I;                              I---------------I;                              I NEW PRIORITY  I;                              I---------------I;                              I               I;-------------------------------------------------------------; STACK CONTENTS ON EXIT:      EMPTY;=============================================================        SKIP       SYMB SETPR:: ;;DETERMINE ADDRESS OF PRIORITY FIELD IN PCB;       LHLD    RUNN    ;HL->PCB       LXI     B,PRIO       DAD     B       ;HL->PCB.PRIO       XCHG            ;DE->PCB.PRIO ;;GET PARAMETER FROM PASCAL PROCEDURE CALL;       POP     H       ;HL=RET.ADRESS       XTHL            ;HL=NEW PRIORITY       MOV     A,L     ;A=NEW PRIORITY ;;TEST VALIDITY OF PRIORITY;       CPI     MINPR   ;A<MINPR?       RC              ;YES, RETURN       CPI     MAXPR   ;A>=MAXPR?       RNC             ;YES, RETURN ;;STORE NEW PRIORITY IN PRIORITY FIELD;       STAX    D       ;PCB.PRIO=NEW PRIORITY       RET        END