DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦12947ba65⟧

    Length: 2528 (0x9e0)
    Notes: Mikados TextFile, Mikados_K
    Names: »SETPR«

Derivation

└─⟦38ff28550⟧ Bits:30004682 Pascal Standard Assembler til MIKADOS
    └─ ⟦this⟧ »SETPR« 

Text

;*************************************************************
;*         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