|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2528 (0x9e0)
Types: TextFile
Notes: Mikados_K
Names: »SETPR.K«
└─⟦33b8385fd⟧ Bits:30009009 PSAP1
└─⟦this⟧ »SETPR.K«
;*************************************************************
;* 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
>;*************************************************************>>;* PASCAL STANDARD ASSEMBLER PACKAGE. *>>;* *>>;* (C) 1980 DANSK DATA ELEKTRONIK APS. *>>;*************************************************************>▶01◀;▶01◀>;*************************************************************>>;* PROCEDURE NAME: SETPR *>>;*************************************************************>▶01◀;▶01◀▶10◀; CT 07-MAY-1980▶10◀▶01◀;▶01◀>;=============================================================>▶0e◀; DESCRIPTION:▶0e◀>; THIS PROCEDURE IS USED TO CHANGE THE PRIORITY OF THE CALLING>
; PROCESS.
>; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL>▶1a◀; SECTION 5.1 FOR DETAILS.▶1a◀▶01◀;▶01◀>;------------------------------------------------------------->0; STACK CONTENTS ON ENTRY: I I00; I---------------I00; I RETURN ADR. I00; I---------------I00; I NEW PRIORITY I00; I---------------I00; I I0>;------------------------------------------------------------->$; STACK CONTENTS ON EXIT: EMPTY$>;=============================================================>▶01◀ ▶01◀▶0b◀ SKIP▶0b◀▶0b◀ SYMB▶0b◀▶01◀ ▶01◀▶07◀SETPR::▶07◀▶01◀ ▶01◀▶01◀;▶01◀+;DETERMINE ADDRESS OF PRIORITY FIELD IN PCB+▶01◀;▶01◀▶1f◀ LHLD RUNN ;HL->PCB▶1f◀▶15◀ LXI B,PRIO▶15◀$ DAD B ;HL->PCB.PRIO$$ XCHG ;DE->PCB.PRIO$▶01◀ ▶01◀▶01◀;▶01◀);GET PARAMETER FROM PASCAL PROCEDURE CALL)▶01◀;▶01◀% POP H ;HL=RET.ADRESS%' XTHL ;HL=NEW PRIORITY'& MOV A,L ;A=NEW PRIORITY&▶01◀ ▶01◀▶01◀;▶01◀▶1a◀;TEST VALIDITY OF PRIORITY▶1a◀▶01◀;▶01◀ CPI MINPR ;A<MINPR? # RC ;YES, RETURN#! CPI MAXPR ;A>=MAXPR?!# RNC ;YES, RETURN#▶01◀ ▶01◀▶01◀;▶01◀%;STORE NEW PRIORITY IN PRIORITY FIELD%▶01◀;▶01◀- STAX D ;PCB.PRIO=NEW PRIORITY-
RET
▶01◀ ▶01◀
END
▶00◀▶00◀ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc