|
|
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 - metrics - download
Length: 4320 (0x10e0)
Notes: Mikados TextFile, Mikados_K
Names: »RESERV«
└─⟦38ff28550⟧ Bits:30004682 Pascal Standard Assembler til MIKADOS
└─⟦this⟧ »RESERV«
;*************************************************************
;* PASCAL STANDARD ASSEMBLER PACKAGE. *
;* *
;* (C) 1980 DANSK DATA ELEKTRONIK APS. *
;*************************************************************
;
;*************************************************************
;* PROCEDURE NAME: RESERV *
;*************************************************************
;
; CT 07-MAY-1980
;
;=============================================================
; DESCRIPTION:
; THIS PROCEDURE IS USED TO RESERVE A SYMBOLIC RESOURCE.
; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL
; SECTION 7.1 FOR DETAILS.
;
;-------------------------------------------------------------
; STACK CONTENTS ON ENTRY: I I
; I---------------I
; I RETURN ADR. I
; I---------------I
; I -> STATUS I
; I---------------I
; I WAIT I
; I---------------I
; I EXCLUSIVE I
; I---------------I
; I -> RESOURCE I
; I---------------I
; I I
;-------------------------------------------------------------
; STACK CONTENTS ON EXIT: EMPTY
;=============================================================
SKIP
RESERV::
;
;GET PARAMETERS FROM PASCAL AND BUILD PARAMETERS FOR RESRV
;
POP H ;HL=RETURN ADDRESS
SHLD RETADR ;SAVE RETURN ADDRESS
POP H ;HL->STATUS
SHLD STADR ;SAVE ADDRESS OF STATUS
POP H ;HL (BIT 0) = WAIT
MOV A,L ;A (BIT 0) = WAIT
RLC ;A (BIT 1) = WAIT
POP H ;HL (BIT 0) = EXCLUSIVE
ORA L ;A (BIT 1,0) = WAIT,EXCLUSIVE
MOV L,A ;HL (BIT 1,0) = WAIT,EXCLUSIVE
XTHL ;PUSH SUBPARAMETERS ;HL->RESOURCE(0)
PUSH H ;SAVE ADDRESS OF RESOURCE PARAMETER
;
;BLANK RESOUR
;
MVI A,#10 ;A:=LENGTH OF FIELD TO BE BLANKED
LXI H,RESOUR ;HL->FIELD TO BE BLANKED
CALL E0LIN ;BLANK IT!
;
;MOVE RESOURCE PARAMETER TO RESOUR
;
POP H ;HL->RESOURCE(0) I.E. THE LENGTH OF
; THE RESOURCE STRING
MOV B,M ;B=LENGTH OF STRING TO BE MOVED
INX H ;HL->RESOURCE(1)
XCHG ;DE->RESOURCE PARAMETER
LXI H,RESOUR ;HL->DESTINATION STRING
CALL MOVE ;MOVE IT!
;
;GET THE LAST TWO CHARACTERS OF THE RESOURCE NAME
;
LHLD RESOUR+8 ;HL:=LAST TWO CHARACTERS OF RESOURCE
PUSH H ;PUSH LAST TWO CHARACTERS OF RESOURCE
LXI H,RESOUR ;HL->RESOUR
PUSH H ;PUSH ADDRESS OF RESOURCE
CALL RESRV
;
;UPON RETURN FROM RESRV REG. A CONTAINS STATUS VALUE
;
LHLD STADR ;HL->STATUS
MOV M,A
INX H
MVI M,0 ;STORE STATUS VALUE
;
;RETURN
;
LHLD RETADR ;HL=RETURN ADDRESS
PCHL
SKIP
;******* LOCAL DATA ********
RETADR:DS 2 ;RETURN ADDRESS
STADR: DS 2 ;ADDRESS OF STATUS
RESOUR:DS #10 ;RESOURCE NAME
END