|
|
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)
Types: TextFile
Notes: Mikados_K
Names: »RESERV.K«
└─⟦33b8385fd⟧ Bits:30009009 PSAP1
└─⟦this⟧ »RESERV.K«
;*************************************************************
;* 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
0x0000…0040 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x0040…0080 Line {l1=0x3e, l2=»;* PASCAL STANDARD ASSEMBLER PACKAGE. *«, l3=0x3e}
0x0080…00c0 Line {l1=0x3e, l2=»;* *«, l3=0x3e}
0x00c0…0100 Line {l1=0x3e, l2=»;* (C) 1980 DANSK DATA ELEKTRONIK APS. *«, l3=0x3e}
0x0100…0140 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x0140…0143 Line {l1=0x01, l2=»;«, l3=0x01}
0x0143…0183 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x0183…01c3 Line {l1=0x3e, l2=»;* PROCEDURE NAME: RESERV *«, l3=0x3e}
0x01c3…0203 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x0203…0206 Line {l1=0x01, l2=»;«, l3=0x01}
0x0206…0218 Line {l1=0x10, l2=»; CT 07-MAY-1980«, l3=0x10}
0x0218…021b Line {l1=0x01, l2=»;«, l3=0x01}
0x021b…025b Line {l1=0x3e, l2=»;=============================================================«, l3=0x3e}
0x025b…026b Line {l1=0x0e, l2=»; DESCRIPTION:«, l3=0x0e}
0x026b…02a5 Line {l1=0x38, l2=»; THIS PROCEDURE IS USED TO RESERVE A SYMBOLIC RESOURCE.«, l3=0x38}
0x02a5…02e5 Line {l1=0x3e, l2=»; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL«, l3=0x3e}
0x02e5…0301 Line {l1=0x1a, l2=»; SECTION 7.1 FOR DETAILS.«, l3=0x1a}
0x0301…0304 Line {l1=0x01, l2=»;«, l3=0x01}
0x0304…0344 Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x0344…0376 Line {l1=0x30, l2=»; STACK CONTENTS ON ENTRY: I I«, l3=0x30}
0x0376…03a8 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x03a8…03da Line {l1=0x30, l2=»; I RETURN ADR. I«, l3=0x30}
0x03da…040c Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x040c…043e Line {l1=0x30, l2=»; I -> STATUS I«, l3=0x30}
0x043e…0470 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x0470…04a2 Line {l1=0x30, l2=»; I WAIT I«, l3=0x30}
0x04a2…04d4 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x04d4…0506 Line {l1=0x30, l2=»; I EXCLUSIVE I«, l3=0x30}
0x0506…0538 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x0538…056a Line {l1=0x30, l2=»; I -> RESOURCE I«, l3=0x30}
0x056a…059c Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x059c…05ce Line {l1=0x30, l2=»; I I«, l3=0x30}
0x05ce…060e Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x060e…0634 Line {l1=0x24, l2=»; STACK CONTENTS ON EXIT: EMPTY«, l3=0x24}
0x0634…0674 Line {l1=0x3e, l2=»;=============================================================«, l3=0x3e}
0x0674…0677 Line {l1=0x01, l2=» «, l3=0x01}
0x0677…0684 Line {l1=0x0b, l2=» SKIP«, l3=0x0b}
0x0684…068e Line {l1=0x08, l2=»RESERV::«, l3=0x08}
0x068e…0691 Line {l1=0x01, l2=» «, l3=0x01}
0x0691…0694 Line {l1=0x01, l2=»;«, l3=0x01}
0x0694…06d0 Line {l1=0x3a, l2=»;GET PARAMETERS FROM PASCAL AND BUILD PARAMETERS FOR RESRV«, l3=0x3a}
0x06d0…06d3 Line {l1=0x01, l2=»;«, l3=0x01}
0x06d3…06fe Line {l1=0x29, l2=» POP H ;HL=RETURN ADDRESS«, l3=0x29}
0x06fe…072b Line {l1=0x2b, l2=» SHLD RETADR ;SAVE RETURN ADDRESS«, l3=0x2b}
0x072b…074f Line {l1=0x22, l2=» POP H ;HL->STATUS«, l3=0x22}
0x074f…077f Line {l1=0x2e, l2=» SHLD STADR ;SAVE ADDRESS OF STATUS«, l3=0x2e}
0x077f…07aa Line {l1=0x29, l2=» POP H ;HL (BIT 0) = WAIT«, l3=0x29}
0x07aa…07d5 Line {l1=0x29, l2=» MOV A,L ;A (BIT 0) = WAIT«, l3=0x29}
0x07d5…0800 Line {l1=0x29, l2=» RLC ;A (BIT 1) = WAIT«, l3=0x29}
0x0800…0830 Line {l1=0x2e, l2=» POP H ;HL (BIT 0) = EXCLUSIVE«, l3=0x2e}
0x0830…0867 Line {l1=0x35, l2=» ORA L ;A (BIT 1,0) = WAIT,EXCLUSIVE«, l3=0x35}
0x0867…089e Line {l1=0x35, l2=» MOV L,A ;HL (BIT 1,0) = WAIT,EXCLUSIVE«, l3=0x35}
0x089e…08db Line {l1=0x3b, l2=» XTHL ;PUSH SUBPARAMETERS ;HL->RESOURCE(0)«, l3=0x3b}
0x08db…0917 Line {l1=0x3a, l2=» PUSH H ;SAVE ADDRESS OF RESOURCE PARAMETER«, l3=0x3a}
0x0917…091a Line {l1=0x01, l2=» «, l3=0x01}
0x091a…091d Line {l1=0x01, l2=»;«, l3=0x01}
0x091d…092c Line {l1=0x0d, l2=»;BLANK RESOUR«, l3=0x0d}
0x092c…092f Line {l1=0x01, l2=»;«, l3=0x01}
0x092f…096a Line {l1=0x39, l2=» MVI A,#10 ;A:=LENGTH OF FIELD TO BE BLANKED«, l3=0x39}
0x096a…099c Line {l1=0x30, l2=» LXI H,RESOUR ;HL->FIELD TO BE BLANKED«, l3=0x30}
0x099c…09c0 Line {l1=0x22, l2=» CALL E0LIN ;BLANK IT!«, l3=0x22}
0x09c0…09c3 Line {l1=0x01, l2=» «, l3=0x01}
0x09c3…09c6 Line {l1=0x01, l2=»;«, l3=0x01}
0x09c6…09ea Line {l1=0x22, l2=»;MOVE RESOURCE PARAMETER TO RESOUR«, l3=0x22}
0x09ea…09ed Line {l1=0x01, l2=»;«, l3=0x01}
0x09ed…0a2a Line {l1=0x3b, l2=» POP H ;HL->RESOURCE(0) I.E. THE LENGTH OF«, l3=0x3b}
0x0a2a…0a6a Line {l1=0x3e, l2=» ; THE RESOURCE STRING«, l3=0x3e}
0x0a6a…0aa3 Line {l1=0x37, l2=» MOV B,M ;B=LENGTH OF STRING TO BE MOVED«, l3=0x37}
0x0aa3…0acd Line {l1=0x28, l2=» INX H ;HL->RESOURCE(1)«, l3=0x28}
0x0acd…0afe Line {l1=0x2f, l2=» XCHG ;DE->RESOURCE PARAMETER«, l3=0x2f}
0x0afe…0b2f Line {l1=0x2f, l2=» LXI H,RESOUR ;HL->DESTINATION STRING«, l3=0x2f}
0x0b2f…0b52 Line {l1=0x21, l2=» CALL MOVE ;MOVE IT!«, l3=0x21}
0x0b52…0b55 Line {l1=0x01, l2=» «, l3=0x01}
0x0b55…0b58 Line {l1=0x01, l2=»;«, l3=0x01}
0x0b58…0b8b Line {l1=0x31, l2=»;GET THE LAST TWO CHARACTERS OF THE RESOURCE NAME«, l3=0x31}
0x0b8b…0b8e Line {l1=0x01, l2=»;«, l3=0x01}
0x0b8e…0bcc Line {l1=0x3c, l2=» LHLD RESOUR+8 ;HL:=LAST TWO CHARACTERS OF RESOURCE«, l3=0x3c}
0x0bcc…0c0b Line {l1=0x3d, l2=» PUSH H ;PUSH LAST TWO CHARACTERS OF RESOURCE«, l3=0x3d}
0x0c0b…0c30 Line {l1=0x23, l2=» LXI H,RESOUR ;HL->RESOUR«, l3=0x23}
0x0c30…0c63 Line {l1=0x31, l2=» PUSH H ;PUSH ADDRESS OF RESOURCE«, l3=0x31}
0x0c63…0c79 Line {l1=0x14, l2=» CALL RESRV«, l3=0x14}
0x0c79…0c7c Line {l1=0x01, l2=» «, l3=0x01}
0x0c7c…0c7f Line {l1=0x01, l2=»;«, l3=0x01}
0x0c7f…0cb5 Line {l1=0x34, l2=»;UPON RETURN FROM RESRV REG. A CONTAINS STATUS VALUE«, l3=0x34}
0x0cb5…0cb8 Line {l1=0x01, l2=»;«, l3=0x01}
0x0cb8…0cdc Line {l1=0x22, l2=» LHLD STADR ;HL->STATUS«, l3=0x22}
0x0cdc…0cf0 Line {l1=0x12, l2=» MOV M,A«, l3=0x12}
0x0cf0…0d02 Line {l1=0x10, l2=» INX H«, l3=0x10}
0x0d02…0d2e Line {l1=0x2a, l2=» MVI M,0 ;STORE STATUS VALUE«, l3=0x2a}
0x0d2e…0d31 Line {l1=0x01, l2=» «, l3=0x01}
0x0d31…0d34 Line {l1=0x01, l2=»;«, l3=0x01}
0x0d34…0d3d Line {l1=0x07, l2=»;RETURN«, l3=0x07}
0x0d3d…0d40 Line {l1=0x01, l2=»;«, l3=0x01}
0x0d40…0d6b Line {l1=0x29, l2=» LHLD RETADR ;HL=RETURN ADDRESS«, l3=0x29}
0x0d6b…0d78 Line {l1=0x0b, l2=» PCHL«, l3=0x0b}
0x0d78…0d7b Line {l1=0x01, l2=» «, l3=0x01}
0x0d7b…0d88 Line {l1=0x0b, l2=» SKIP«, l3=0x0b}
0x0d88…0da6 Line {l1=0x1c, l2=»;******* LOCAL DATA ********«, l3=0x1c}
0x0da6…0dce Line {l1=0x26, l2=»RETADR:DS 2 ;RETURN ADDRESS«, l3=0x26}
0x0dce…0df9 Line {l1=0x29, l2=»STADR: DS 2 ;ADDRESS OF STATUS«, l3=0x29}
0x0df9…0e20 Line {l1=0x25, l2=»RESOUR:DS #10 ;RESOURCE NAME«, l3=0x25}
0x0e20…0e29 Line {l1=0x07, l2=» «, l3=0x07}
0x0e29…0e35 Line {l1=0x0a, l2=» END«, l3=0x0a}
0x0e35…0e40 00 00 63 63 63 63 63 63 63 63 63 ┆ ccccccccc┆
0x0e40…0e60 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x14…]
>;*************************************************************>>;* PASCAL STANDARD ASSEMBLER PACKAGE. *>>;* *>>;* (C) 1980 DANSK DATA ELEKTRONIK APS. *>>;*************************************************************>▶01◀;▶01◀>;*************************************************************>>;* PROCEDURE NAME: RESERV *>>;*************************************************************>▶01◀;▶01◀▶10◀; CT 07-MAY-1980▶10◀▶01◀;▶01◀>;=============================================================>▶0e◀; DESCRIPTION:▶0e◀8; THIS PROCEDURE IS USED TO RESERVE A SYMBOLIC RESOURCE.8>; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL>▶1a◀; SECTION 7.1 FOR DETAILS.▶1a◀▶01◀;▶01◀>;------------------------------------------------------------->0; STACK CONTENTS ON ENTRY: I I00; I---------------I00; I RETURN ADR. I00; I---------------I00; I -> STATUS I00; I---------------I00; I WAIT I00; I---------------I00; I EXCLUSIVE I00; I---------------I00; I -> RESOURCE I00; I---------------I00; I I0>;------------------------------------------------------------->$; STACK CONTENTS ON EXIT: EMPTY$>;=============================================================>▶01◀ ▶01◀▶0b◀ SKIP▶0b◀▶08◀RESERV::▶08◀▶01◀ ▶01◀▶01◀;▶01◀:;GET PARAMETERS FROM PASCAL AND BUILD PARAMETERS FOR RESRV:▶01◀;▶01◀) 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.5 ORA L ;A (BIT 1,0) = WAIT,EXCLUSIVE55 MOV L,A ;HL (BIT 1,0) = WAIT,EXCLUSIVE5; XTHL ;PUSH SUBPARAMETERS ;HL->RESOURCE(0);: PUSH H ;SAVE ADDRESS OF RESOURCE PARAMETER:▶01◀ ▶01◀▶01◀;▶01◀\r;BLANK RESOUR\r▶01◀;▶01◀9 MVI A,#10 ;A:=LENGTH OF FIELD TO BE BLANKED90 LXI H,RESOUR ;HL->FIELD TO BE BLANKED0" CALL E0LIN ;BLANK IT!"▶01◀ ▶01◀▶01◀;▶01◀";MOVE RESOURCE PARAMETER TO RESOUR"▶01◀;▶01◀; POP H ;HL->RESOURCE(0) I.E. THE LENGTH OF;> ; THE RESOURCE STRING>7 MOV B,M ;B=LENGTH OF STRING TO BE MOVED7( INX H ;HL->RESOURCE(1)(/ XCHG ;DE->RESOURCE PARAMETER// LXI H,RESOUR ;HL->DESTINATION STRING/! CALL MOVE ;MOVE IT!!▶01◀ ▶01◀▶01◀;▶01◀1;GET THE LAST TWO CHARACTERS OF THE RESOURCE NAME1▶01◀;▶01◀< LHLD RESOUR+8 ;HL:=LAST TWO CHARACTERS OF RESOURCE<= PUSH H ;PUSH LAST TWO CHARACTERS OF RESOURCE=# LXI H,RESOUR ;HL->RESOUR#1 PUSH H ;PUSH ADDRESS OF RESOURCE1▶14◀ CALL RESRV▶14◀▶01◀ ▶01◀▶01◀;▶01◀4;UPON RETURN FROM RESRV REG. A CONTAINS STATUS VALUE4▶01◀;▶01◀" LHLD STADR ;HL->STATUS"▶12◀ MOV M,A▶12◀▶10◀ INX H▶10◀* MVI M,0 ;STORE STATUS VALUE*▶01◀ ▶01◀▶01◀;▶01◀▶07◀;RETURN▶07◀▶01◀;▶01◀) LHLD RETADR ;HL=RETURN ADDRESS)▶0b◀ PCHL▶0b◀▶01◀ ▶01◀▶0b◀ SKIP▶0b◀▶1c◀;******* LOCAL DATA ********▶1c◀&RETADR:DS 2 ;RETURN ADDRESS&)STADR: DS 2 ;ADDRESS OF STATUS)%RESOUR:DS #10 ;RESOURCE NAME%▶07◀ ▶07◀
END
▶00◀▶00◀ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc