|
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: 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