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

⟦51e0a506f⟧ TextFile

    Length: 7648 (0x1de0)
    Types: TextFile
    Notes: Mikados_K
    Names: »RECEIV.K«

Derivation

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

Mikados K File

;*************************************************************
;*         PASCAL STANDARD ASSEMBLER PACKAGE.                *
;*                                                           *
;* (C) 1980 DANSK DATA ELEKTRONIK APS.                       *
;*************************************************************
;
;*************************************************************
;* PROCEDURE NAME:      RECEIV                               *
;*************************************************************
;
; CT 07-MAY-1980
;
;=============================================================
; DESCRIPTION:
; THIS PROCEDURE RECEIVES A MESSAGE FROM THE MAIN SEMAPHORE OF
; THE CALLING ANOTHER PROCESS.
; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL
; SECTION 4.2 FOR DETAILS.
;
;-------------------------------------------------------------
; STACK CONTENTS ON ENTRY:     I               I
;                              I---------------I
;                              I  RETURN ADR.  I
;                              I---------------I
;                              I  -> LENGTH    I
;                              I---------------I
;                              I  -> CONTENTS  I
;                              I---------------I
;                              I  -> SENDER    I
;                              I---------------I
;                              I               I
;-------------------------------------------------------------
; STACK CONTENTS ON EXIT:      EMPTY
;-------------------------------------------------------------
; THE MESSAGE IS EXCHANGED IN A MESSAGE BUFFER.
; BYTES 0-1 OF THE MESSAGE BUFFER CONTAIN THE ADDRESS OF
; THE PCB OF THE SENDING PROCESS.
; BYTE 3 OF THE MESSAGE BUFFER CONTAINS THE LENGTH OF THE
; MESSAGE.
; IF LENGTH <= 10 BYTES 4-13 OF THE MESSAGE BUFFER
;                 CONTAINS THE MESSAGE.
; IF LENGTH > 10  BYTES 4-5 OF THE MESSAGE BUFFER POINT
;                 TO A DATA AREA THAT CONTAINS THE MES-
;                 SAGE. THE LENGTH OF THE DATA AREA IS
;                 STORED IN BYTES 6-7 OF THE MESSAGE
;                 BUFFER.
;=============================================================
       
       SKIP
RECEIV::
 
;
;GET THE PARAMETERS
;
       POP     B       ;BC:=RETURN ADDRESS
       POP     H       ;HL->LENGTH
       SHLD    LENPTR
       POP     H       ;HL->CONTENTS
       SHLD    CONPTR
       POP     H       ;HL->SENDER
       SHLD    SNDPTR
       PUSH    B       ;RESTORE RETURN ADDRESS
 
;
;RECEIVE THE MESSAGE BUFFER FROM THE MAIN SEMAPHORE
;
       CALL    VENTS
 
;
;SAVE THE ADDRESS OF THE MESSAGE BUFFER
;
       PUSH    H
 
;
;GET ADDRESS OF PCB OF SENDING PROCESS FROM BYTES 0-1 OF
;MESSAGE BUFFER
;
       LHLD    SNDPTR  ;HL->SENDER PARAMETER
       LDAX    D       ;SENDER PARAMETER
       MOV     M,A     ;       ->
       INX     H       ;          PCB OF
       INX     D       ;               THE
       LDAX    D       ;                    SENDING
       MOV     M,A     ;                       PROCESS
 
;
;GET LENGTH OF MESSAGE FROM BYTE 3 OF MESSAGE BUFFER
;
       INX     D
       INX     D       ;DE->LENGTH FIELD
       LHLD    LENPTR  ;HL->LENGTH PARAMETER
       LDAX    D       ;LENGTH PARAMETER
       MOV     M,A     ;       :=
       INX     H       ;          LENGTH
       MVI     M,0     ;               OF MESSAGE
       STA     LENGTH  ;SAVE THE LENGTH FOR LATER USE
 
;
;PREPARE TO GET THE MESSAGE
;
       INX     D       ;DE->BYTE 4 OF MESSAGE. IF LENGTH > 10
                       ;  THIS BYTE (TOGETHER WITH BYTE 5)
                       ;  CONTAINS THE ADDRESS OF THE MESSAGE.
                       ;  IF LENGTH <= 10 THIS BYTE IS THE
                       ;  FIRST BYTE OF THE MESSAGE.
       PUSH    D       ;SAVE THE ADDRESS OF BYTE 4
 
;
;DECIDE IF LENGTH <= 10 OR LENGTH > 10
;
       CPI     #11     ;LENGTH<11?
       JC      SHORT   ;YES, THE MESSAGE IS IN THE MES. BUFFER
 
;
;GET ADDRESS OF MESSAGE
;
       XCHG            ;HL->ADDRESS OF MESSAGE
       MOV     E,M     ;DE
       INX     H       ;  ->
       MOV     D,M     ;    MESSAGE
       POP     H       ;HL->BYTE 4 OF MESSAGE BUFFER
       PUSH    D       ; AND REPLACE IT BY THE ADDRESS OF THE
                       ; MESSAGE
 
;
;GET THE LENGTH OF THE DATA AREA ALLOCATED FOR THE MESSAGE
;
       INX     H
       INX     H       ;HL->LENGTH OF DATA AREA
       MOV     A,M     ;ALLLEN
       STA     ALLEN   ;      :=
       INX     H       ;        LENGTH OF
       MOV     A,M     ;           ALLOCATED
       STA     ALLEN+1 ;             DATA AREA
 
;
;EVERYTHING IS NOW READ FOR THE TRANSFER OF THE MESSAGE TO THE
;CONTENTS PARAMETER.
;IF THE MESSAGE LENGTH <= 10 THE TOPMOST ELEMENT ON THE STACK
;      CONTAINS THE ADDRESS OF BYTE 4 OF THE MESSAGE BUFFER.
;IF THE MESSAGE LENGTH > 10 THE TOPMOST ELEMENT ON THE STACK
;      CONTAINS THE ADDRESS OF THE ALLOCATED DATA AREA CON-
;      TAINING THE MESSAGE.
;IN EITHER CASE THE TOPMOST ELEMENT ON THE STACK CONTAINS THE
;      ADDRESS OF THE LOCATION WHERE THE MESSAGE IS STORED.
;
SHORT: LHLD    CONPTR  ;HL->CONTENTS
       POP     D       ;DE->LOCATION OF MESSAGE
       PUSH    D       ;PUT ADDRESS OF MESSAGE BACK ON STACK
       LDA     LENGTH  ;A:=LENGTH OF MESSAGE
       MOV     B,A     ;B:=LENGTH OF MESSAGE
       CALL    MOVE    ;MOVE MESSAGE TO CONTENTS PARAMETER
 
;
;SHOULD AN AREA BE DEALLOCATED? THEN DO IT!
;
       POP     D       ;DE->LOCATION OF MESSAGE. IF THE
                       ; MESSAGE LENGTH > 10 THIS AREA SHOULD
                       ; BE DEALLOCATED.
       LDA     LENGTH  ;A:=MESSAGE LENGTH
       CPI     11      ;LENGTH<11?
       JC      SHORT1  ;YES, WE SHOULD NOT DEALLOCATE
       LHLD    ALLEN   ;HL:=LENGTH OF THE ARE TO BE DALLOCATED
       CALL    DELOC   ;DEALLOCATE
 
;
;SEND THE MESSAGE BUFFER BACK TO THE POOL SEMAPHORE
;
SHORT1:POP     H       ;HL->MESSAGE BUFFER
       LXI     B,POOL
       CALL    SEND    ;SEND IT BACK
 
       RET
       
       SKIP
;***** LOCAL DATA *****
 
LENPTR:DS      2       ;ADDRESS OF LENGTH PARAMETER
CONPTR:DS      2       ;ADDRESS OF CONTENTS PARAMETER
SNDPTR:DS      2       ;ADDRESS OF SENDER PARAMETER
LENGTH:DS      2       ;LENGTH OF MESSAGE
ALLEN: DS      2       ;LENGTH OF DATA AREA ALLOCATED FOR
                       ;       MESSAGE
       END

Mikados K File

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:      RECEIV                               *«, 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…02ab Line {l1=0x3e, l2=»; THIS PROCEDURE RECEIVES A MESSAGE FROM THE MAIN SEMAPHORE OF«, l3=0x3e}
0x02ab…02cb Line {l1=0x1e, l2=»; THE CALLING ANOTHER PROCESS.«, l3=0x1e}
0x02cb…030b Line {l1=0x3e, l2=»; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL«, l3=0x3e}
0x030b…0327 Line {l1=0x1a, l2=»; SECTION 4.2 FOR DETAILS.«, l3=0x1a}
0x0327…032a Line {l1=0x01, l2=»;«, l3=0x01}
0x032a…036a Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x036a…039c Line {l1=0x30, l2=»; STACK CONTENTS ON ENTRY:     I               I«, l3=0x30}
0x039c…03ce Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x03ce…0400 Line {l1=0x30, l2=»;                              I  RETURN ADR.  I«, l3=0x30}
0x0400…0432 Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x0432…0464 Line {l1=0x30, l2=»;                              I  -> LENGTH    I«, l3=0x30}
0x0464…0496 Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x0496…04c8 Line {l1=0x30, l2=»;                              I  -> CONTENTS  I«, l3=0x30}
0x04c8…04fa Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x04fa…052c Line {l1=0x30, l2=»;                              I  -> SENDER    I«, l3=0x30}
0x052c…055e Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x055e…0590 Line {l1=0x30, l2=»;                              I               I«, l3=0x30}
0x0590…05d0 Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x05d0…05f6 Line {l1=0x24, l2=»; STACK CONTENTS ON EXIT:      EMPTY«, l3=0x24}
0x05f6…0636 Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x0636…0667 Line {l1=0x2f, l2=»; THE MESSAGE IS EXCHANGED IN A MESSAGE BUFFER.«, l3=0x2f}
0x0667…06a1 Line {l1=0x38, l2=»; BYTES 0-1 OF THE MESSAGE BUFFER CONTAIN THE ADDRESS OF«, l3=0x38}
0x06a1…06c4 Line {l1=0x21, l2=»; THE PCB OF THE SENDING PROCESS.«, l3=0x21}
0x06c4…06ff Line {l1=0x39, l2=»; BYTE 3 OF THE MESSAGE BUFFER CONTAINS THE LENGTH OF THE«, l3=0x39}
0x06ff…070b Line {l1=0x0a, l2=»; MESSAGE.«, l3=0x0a}
0x070b…073f Line {l1=0x32, l2=»; IF LENGTH <= 10 BYTES 4-13 OF THE MESSAGE BUFFER«, l3=0x32}
0x073f…0768 Line {l1=0x27, l2=»;                 CONTAINS THE MESSAGE.«, l3=0x27}
0x0768…07a1 Line {l1=0x37, l2=»; IF LENGTH > 10  BYTES 4-5 OF THE MESSAGE BUFFER POINT«, l3=0x37}
0x07a1…07da Line {l1=0x37, l2=»;                 TO A DATA AREA THAT CONTAINS THE MES-«, l3=0x37}
0x07da…0812 Line {l1=0x36, l2=»;                 SAGE. THE LENGTH OF THE DATA AREA IS«, l3=0x36}
0x0812…0848 Line {l1=0x34, l2=»;                 STORED IN BYTES 6-7 OF THE MESSAGE«, l3=0x34}
0x0848…0863 Line {l1=0x19, l2=»;                 BUFFER.«, l3=0x19}
0x0863…08a3 Line {l1=0x3e, l2=»;=============================================================«, l3=0x3e}
0x08a3…08ac Line {l1=0x07, l2=»       «, l3=0x07}
0x08ac…08b9 Line {l1=0x0b, l2=»       SKIP«, l3=0x0b}
0x08b9…08c3 Line {l1=0x08, l2=»RECEIV::«, l3=0x08}
0x08c3…08c6 Line {l1=0x01, l2=» «, l3=0x01}
0x08c6…08c9 Line {l1=0x01, l2=»;«, l3=0x01}
0x08c9…08de Line {l1=0x13, l2=»;GET THE PARAMETERS«, l3=0x13}
0x08de…08e1 Line {l1=0x01, l2=»;«, l3=0x01}
0x08e1…090d Line {l1=0x2a, l2=»       POP     B       ;BC:=RETURN ADDRESS«, l3=0x2a}
0x090d…0931 Line {l1=0x22, l2=»       POP     H       ;HL->LENGTH«, l3=0x22}
0x0931…0948 Line {l1=0x15, l2=»       SHLD    LENPTR«, l3=0x15}
0x0948…096e Line {l1=0x24, l2=»       POP     H       ;HL->CONTENTS«, l3=0x24}
0x096e…0985 Line {l1=0x15, l2=»       SHLD    CONPTR«, l3=0x15}
0x0985…09a9 Line {l1=0x22, l2=»       POP     H       ;HL->SENDER«, l3=0x22}
0x09a9…09c0 Line {l1=0x15, l2=»       SHLD    SNDPTR«, l3=0x15}
0x09c0…09f0 Line {l1=0x2e, l2=»       PUSH    B       ;RESTORE RETURN ADDRESS«, l3=0x2e}
0x09f0…09f3 Line {l1=0x01, l2=» «, l3=0x01}
0x09f3…09f6 Line {l1=0x01, l2=»;«, l3=0x01}
0x09f6…0a2b Line {l1=0x33, l2=»;RECEIVE THE MESSAGE BUFFER FROM THE MAIN SEMAPHORE«, l3=0x33}
0x0a2b…0a2e Line {l1=0x01, l2=»;«, l3=0x01}
0x0a2e…0a44 Line {l1=0x14, l2=»       CALL    VENTS«, l3=0x14}
0x0a44…0a47 Line {l1=0x01, l2=» «, l3=0x01}
0x0a47…0a4a Line {l1=0x01, l2=»;«, l3=0x01}
0x0a4a…0a73 Line {l1=0x27, l2=»;SAVE THE ADDRESS OF THE MESSAGE BUFFER«, l3=0x27}
0x0a73…0a76 Line {l1=0x01, l2=»;«, l3=0x01}
0x0a76…0a88 Line {l1=0x10, l2=»       PUSH    H«, l3=0x10}
0x0a88…0a8b Line {l1=0x01, l2=» «, l3=0x01}
0x0a8b…0a8e Line {l1=0x01, l2=»;«, l3=0x01}
0x0a8e…0ac8 Line {l1=0x38, l2=»;GET ADDRESS OF PCB OF SENDING PROCESS FROM BYTES 0-1 OF«, l3=0x38}
0x0ac8…0ad9 Line {l1=0x0f, l2=»;MESSAGE BUFFER«, l3=0x0f}
0x0ad9…0adc Line {l1=0x01, l2=»;«, l3=0x01}
0x0adc…0b0a Line {l1=0x2c, l2=»       LHLD    SNDPTR  ;HL->SENDER PARAMETER«, l3=0x2c}
0x0b0a…0b34 Line {l1=0x28, l2=»       LDAX    D       ;SENDER PARAMETER«, l3=0x28}
0x0b34…0b57 Line {l1=0x21, l2=»       MOV     M,A     ;       ->«, l3=0x21}
0x0b57…0b81 Line {l1=0x28, l2=»       INX     H       ;          PCB OF«, l3=0x28}
0x0b81…0bad Line {l1=0x2a, l2=»       INX     D       ;               THE«, l3=0x2a}
0x0bad…0be2 Line {l1=0x33, l2=»       LDAX    D       ;                    SENDING«, l3=0x33}
0x0be2…0c1a Line {l1=0x36, l2=»       MOV     M,A     ;                       PROCESS«, l3=0x36}
0x0c1a…0c1d Line {l1=0x01, l2=» «, l3=0x01}
0x0c1d…0c20 Line {l1=0x01, l2=»;«, l3=0x01}
0x0c20…0c56 Line {l1=0x34, l2=»;GET LENGTH OF MESSAGE FROM BYTE 3 OF MESSAGE BUFFER«, l3=0x34}
0x0c56…0c59 Line {l1=0x01, l2=»;«, l3=0x01}
0x0c59…0c6b Line {l1=0x10, l2=»       INX     D«, l3=0x10}
0x0c6b…0c95 Line {l1=0x28, l2=»       INX     D       ;DE->LENGTH FIELD«, l3=0x28}
0x0c95…0cc3 Line {l1=0x2c, l2=»       LHLD    LENPTR  ;HL->LENGTH PARAMETER«, l3=0x2c}
0x0cc3…0ced Line {l1=0x28, l2=»       LDAX    D       ;LENGTH PARAMETER«, l3=0x28}
0x0ced…0d10 Line {l1=0x21, l2=»       MOV     M,A     ;       :=«, l3=0x21}
0x0d10…0d3a Line {l1=0x28, l2=»       INX     H       ;          LENGTH«, l3=0x28}
0x0d3a…0d6d Line {l1=0x31, l2=»       MVI     M,0     ;               OF MESSAGE«, l3=0x31}
0x0d6d…0da4 Line {l1=0x35, l2=»       STA     LENGTH  ;SAVE THE LENGTH FOR LATER USE«, l3=0x35}
0x0da4…0da7 Line {l1=0x01, l2=» «, l3=0x01}
0x0da7…0daa Line {l1=0x01, l2=»;«, l3=0x01}
0x0daa…0dc7 Line {l1=0x1b, l2=»;PREPARE TO GET THE MESSAGE«, l3=0x1b}
0x0dc7…0dca Line {l1=0x01, l2=»;«, l3=0x01}
0x0dca…0e09 Line {l1=0x3d, l2=»       INX     D       ;DE->BYTE 4 OF MESSAGE. IF LENGTH > 10«, l3=0x3d}
0x0e09…0e45 Line {l1=0x3a, l2=»                       ;  THIS BYTE (TOGETHER WITH BYTE 5)«, l3=0x3a}
0x0e45…0e85 Line {l1=0x3e, l2=»                       ;  CONTAINS THE ADDRESS OF THE MESSAGE.«, l3=0x3e}
0x0e85…0ec1 Line {l1=0x3a, l2=»                       ;  IF LENGTH <= 10 THIS BYTE IS THE«, l3=0x3a}
0x0ec1…0ef7 Line {l1=0x34, l2=»                       ;  FIRST BYTE OF THE MESSAGE.«, l3=0x34}
0x0ef7…0f2b Line {l1=0x32, l2=»       PUSH    D       ;SAVE THE ADDRESS OF BYTE 4«, l3=0x32}
0x0f2b…0f2e Line {l1=0x01, l2=» «, l3=0x01}
0x0f2e…0f31 Line {l1=0x01, l2=»;«, l3=0x01}
0x0f31…0f59 Line {l1=0x26, l2=»;DECIDE IF LENGTH <= 10 OR LENGTH > 10«, l3=0x26}
0x0f59…0f5c Line {l1=0x01, l2=»;«, l3=0x01}
0x0f5c…0f80 Line {l1=0x22, l2=»       CPI     #11     ;LENGTH<11?«, l3=0x22}
0x0f80…0fc0 Line {l1=0x3e, l2=»       JC      SHORT   ;YES, THE MESSAGE IS IN THE MES. BUFFER«, l3=0x3e}
0x0fc0…0fc3 Line {l1=0x01, l2=» «, l3=0x01}
0x0fc3…0fc6 Line {l1=0x01, l2=»;«, l3=0x01}
0x0fc6…0fdf Line {l1=0x17, l2=»;GET ADDRESS OF MESSAGE«, l3=0x17}
0x0fdf…0fe2 Line {l1=0x01, l2=»;«, l3=0x01}
0x0fe2…1012 Line {l1=0x2e, l2=»       XCHG            ;HL->ADDRESS OF MESSAGE«, l3=0x2e}
0x1012…102e Line {l1=0x1a, l2=»       MOV     E,M     ;DE«, l3=0x1a}
0x102e…104c Line {l1=0x1c, l2=»       INX     H       ;  ->«, l3=0x1c}
0x104c…1071 Line {l1=0x23, l2=»       MOV     D,M     ;    MESSAGE«, l3=0x23}
0x1071…10a7 Line {l1=0x34, l2=»       POP     H       ;HL->BYTE 4 OF MESSAGE BUFFER«, l3=0x34}
0x10a7…10e6 Line {l1=0x3d, l2=»       PUSH    D       ; AND REPLACE IT BY THE ADDRESS OF THE«, l3=0x3d}
0x10e6…1108 Line {l1=0x20, l2=»                       ; MESSAGE«, l3=0x20}
0x1108…110b Line {l1=0x01, l2=» «, l3=0x01}
0x110b…110e Line {l1=0x01, l2=»;«, l3=0x01}
0x110e…114a Line {l1=0x3a, l2=»;GET THE LENGTH OF THE DATA AREA ALLOCATED FOR THE MESSAGE«, l3=0x3a}
0x114a…114d Line {l1=0x01, l2=»;«, l3=0x01}
0x114d…115f Line {l1=0x10, l2=»       INX     H«, l3=0x10}
0x115f…1190 Line {l1=0x2f, l2=»       INX     H       ;HL->LENGTH OF DATA AREA«, l3=0x2f}
0x1190…11b0 Line {l1=0x1e, l2=»       MOV     A,M     ;ALLLEN«, l3=0x1e}
0x11b0…11d2 Line {l1=0x20, l2=»       STA     ALLEN   ;      :=«, l3=0x20}
0x11d2…11fd Line {l1=0x29, l2=»       INX     H       ;        LENGTH OF«, l3=0x29}
0x11fd…122b Line {l1=0x2c, l2=»       MOV     A,M     ;           ALLOCATED«, l3=0x2c}
0x122b…125b Line {l1=0x2e, l2=»       STA     ALLEN+1 ;             DATA AREA«, l3=0x2e}
0x125b…125e Line {l1=0x01, l2=» «, l3=0x01}
0x125e…1261 Line {l1=0x01, l2=»;«, l3=0x01}
0x1261…12a1 Line {l1=0x3e, l2=»;EVERYTHING IS NOW READ FOR THE TRANSFER OF THE MESSAGE TO THE«, l3=0x3e}
0x12a1…12b7 Line {l1=0x14, l2=»;CONTENTS PARAMETER.«, l3=0x14}
0x12b7…12f6 Line {l1=0x3d, l2=»;IF THE MESSAGE LENGTH <= 10 THE TOPMOST ELEMENT ON THE STACK«, l3=0x3d}
0x12f6…1334 Line {l1=0x3c, l2=»;      CONTAINS THE ADDRESS OF BYTE 4 OF THE MESSAGE BUFFER.«, l3=0x3c}
0x1334…1372 Line {l1=0x3c, l2=»;IF THE MESSAGE LENGTH > 10 THE TOPMOST ELEMENT ON THE STACK«, l3=0x3c}
0x1372…13af Line {l1=0x3b, l2=»;      CONTAINS THE ADDRESS OF THE ALLOCATED DATA AREA CON-«, l3=0x3b}
0x13af…13cc Line {l1=0x1b, l2=»;      TAINING THE MESSAGE.«, l3=0x1b}
0x13cc…140b Line {l1=0x3d, l2=»;IN EITHER CASE THE TOPMOST ELEMENT ON THE STACK CONTAINS THE«, l3=0x3d}
0x140b…1448 Line {l1=0x3b, l2=»;      ADDRESS OF THE LOCATION WHERE THE MESSAGE IS STORED.«, l3=0x3b}
0x1448…144b Line {l1=0x01, l2=»;«, l3=0x01}
0x144b…1471 Line {l1=0x24, l2=»SHORT: LHLD    CONPTR  ;HL->CONTENTS«, l3=0x24}
0x1471…14a2 Line {l1=0x2f, l2=»       POP     D       ;DE->LOCATION OF MESSAGE«, l3=0x2f}
0x14a2…14e0 Line {l1=0x3c, l2=»       PUSH    D       ;PUT ADDRESS OF MESSAGE BACK ON STACK«, l3=0x3c}
0x14e0…150e Line {l1=0x2c, l2=»       LDA     LENGTH  ;A:=LENGTH OF MESSAGE«, l3=0x2c}
0x150e…153c Line {l1=0x2c, l2=»       MOV     B,A     ;B:=LENGTH OF MESSAGE«, l3=0x2c}
0x153c…1578 Line {l1=0x3a, l2=»       CALL    MOVE    ;MOVE MESSAGE TO CONTENTS PARAMETER«, l3=0x3a}
0x1578…157b Line {l1=0x01, l2=» «, l3=0x01}
0x157b…157e Line {l1=0x01, l2=»;«, l3=0x01}
0x157e…15ab Line {l1=0x2b, l2=»;SHOULD AN AREA BE DEALLOCATED? THEN DO IT!«, l3=0x2b}
0x15ab…15ae Line {l1=0x01, l2=»;«, l3=0x01}
0x15ae…15e7 Line {l1=0x37, l2=»       POP     D       ;DE->LOCATION OF MESSAGE. IF THE«, l3=0x37}
0x15e7…1626 Line {l1=0x3d, l2=»                       ; MESSAGE LENGTH > 10 THIS AREA SHOULD«, l3=0x3d}
0x1626…1650 Line {l1=0x28, l2=»                       ; BE DEALLOCATED.«, l3=0x28}
0x1650…167b Line {l1=0x29, l2=»       LDA     LENGTH  ;A:=MESSAGE LENGTH«, l3=0x29}
0x167b…169f Line {l1=0x22, l2=»       CPI     11      ;LENGTH<11?«, l3=0x22}
0x169f…16d6 Line {l1=0x35, l2=»       JC      SHORT1  ;YES, WE SHOULD NOT DEALLOCATE«, l3=0x35}
0x16d6…1716 Line {l1=0x3e, l2=»       LHLD    ALLEN   ;HL:=LENGTH OF THE ARE TO BE DALLOCATED«, l3=0x3e}
0x1716…173a Line {l1=0x22, l2=»       CALL    DELOC   ;DEALLOCATE«, l3=0x22}
0x173a…173d Line {l1=0x01, l2=» «, l3=0x01}
0x173d…1740 Line {l1=0x01, l2=»;«, l3=0x01}
0x1740…1775 Line {l1=0x33, l2=»;SEND THE MESSAGE BUFFER BACK TO THE POOL SEMAPHORE«, l3=0x33}
0x1775…1778 Line {l1=0x01, l2=»;«, l3=0x01}
0x1778…17a4 Line {l1=0x2a, l2=»SHORT1:POP     H       ;HL->MESSAGE BUFFER«, l3=0x2a}
0x17a4…17bb Line {l1=0x15, l2=»       LXI     B,POOL«, l3=0x15}
0x17bb…17e1 Line {l1=0x24, l2=»       CALL    SEND    ;SEND IT BACK«, l3=0x24}
0x17e1…17e4 Line {l1=0x01, l2=» «, l3=0x01}
0x17e4…17f0 Line {l1=0x0a, l2=»       RET«, l3=0x0a}
0x17f0…17f9 Line {l1=0x07, l2=»       «, l3=0x07}
0x17f9…1806 Line {l1=0x0b, l2=»       SKIP«, l3=0x0b}
0x1806…181f Line {l1=0x17, l2=»;***** LOCAL DATA *****«, l3=0x17}
0x181f…1822 Line {l1=0x01, l2=» «, l3=0x01}
0x1822…1857 Line {l1=0x33, l2=»LENPTR:DS      2       ;ADDRESS OF LENGTH PARAMETER«, l3=0x33}
0x1857…188e Line {l1=0x35, l2=»CONPTR:DS      2       ;ADDRESS OF CONTENTS PARAMETER«, l3=0x35}
0x188e…18c3 Line {l1=0x33, l2=»SNDPTR:DS      2       ;ADDRESS OF SENDER PARAMETER«, l3=0x33}
0x18c3…18ee Line {l1=0x29, l2=»LENGTH:DS      2       ;LENGTH OF MESSAGE«, l3=0x29}
0x18ee…1929 Line {l1=0x39, l2=»ALLEN: DS      2       ;LENGTH OF DATA AREA ALLOCATED FOR«, l3=0x39}
0x1929…1951 Line {l1=0x26, l2=»                       ;       MESSAGE«, l3=0x26}
0x1951…195d Line {l1=0x0a, l2=»       END«, l3=0x0a}
0x195d…1960 00 00 2b                                                                                          ┆  +┆
0x1960…1980 7d 91 6f 7c 98 67 4d 44 c3 08 43 2a f5 42 2b 56 2b 5e eb 22 f3 42 11 0a 00 19 22 4c 41 2a 4a 41   ┆å oø gMD  C* B+V+^ " B    "LA*JA┆
0x1980…19a0 5e 23 56 0a 87 ca bd 56 4f 06 00 2a 4a 41 09 23 7e 1b 2b 12 7e 1b 2b 12 0d 0d c2 b0 56 2a f5 42   ┆^#V    VO  *JA #ü + ü +     V* B┆
0x19a0…19c0 f9 e1 cd 6d 00 39 2b 2b 7c b5 ca 3c 59 e1 22 f5 42 01 0a 00 09 22 4a 41 e1 22 f7 42 e1 22 f9 42   ┆   m 9++ø  <Y " B    "JA " B " B┆
0x19c0…19e0 e1 22 4e 41 eb f9 c3 fb 42 cd c8 57 c3 08 43 cd c8 57 e1 2a f3 42 e5 c3 08 43 c1 c3 01 57 cd c8   ┆ "NA    B  W  C  W * B   C   W  ┆
0x19e0…1a00 57 2a f3 42 e5 c5 eb 2a 4a 41 22 4c 41 2a f5 42 22 f3 42 eb 4e 23 46 eb 71 23 70 c1 c3 08 43 cd   ┆W* B   *JA"LA* B" B N#F q#p   C ┆
0x1a00…1a20 c8 57 c5 2a f5 42 4d 44 2a f7 42 23 7e 3d fa fa 56 21 05 00 09 56 2b 5e 2b 46 2b 4e eb 23 be c2   ┆ W * BMD* B#ü=  V!   V+^+F+N #  ┆
0x1a20…1a40 31 57 d1 e1 c5 4b 42 c3 08 43 0a 03 fe 50 d2 15 59 2a f9 42 be ca 1f 57 32 b9 57 c5 2a f5 42 4d   ┆1W   KB  C   P  Y* B   W2 W * BM┆
0x1a40…1a60 44 69 60 23 23 5e 23 56 79 93 c2 72 57 78 9a ca 90 57 21 06 00 09 7e 23 66 6f 3a b9 57 be ca 86   ┆Di`##^#Vy  rWx   W!   ü#fo: W   ┆
0x1a60…1a80 57 42 4b c3 61 57 22 bb 57 c1 cd ce 57 c3 22 57 e1 22 4e 41 21 fe ff 39 22 bb 57 2a b9 57 7d cd   ┆WBK aW" W   W "W "NA!  9" W* Wå ┆
0x1a80…1aa0 d4 67 2a bb 57 3a b9 57 be 1e 53 c2 2e 43 2a 4e 41 4d 44 cd bf 57 c3 22 57 00 00 00 00 00 00 e1   ┆ g* W: W  S .C*NAMD  W "W       ┆
0x1aa0…1ac0 22 50 41 37 f5 c3 d4 57 2a f9 42 22 bb 57 e1 22 50 41 a7 f5 0a 03 69 60 22 4e 41 2f 3c 5f 16 ff   ┆"PA7   W* B" W "PA    i`"NA/<_  ┆
0x1ac0…1ae0 2a bb 57 19 19 5e 23 56 37 7d 9b 6f 7c 9a 67 22 bd 57 11 f8 ff 19 5e 23 56 23 4e 23 46 f1 da 0f   ┆* W  ^#V7å oø g" W    ^#V#N#F   ┆
0x1ae0…1b00 58 97 93 6f 3e 00 9a 67 39 f9 eb 19 c3 20 58 eb 09 97 95 6f 3e 00 9c 67 39 f9 eb 2a bb 57 23 23   ┆X  o>  g9     X    o>  g9  * W##┆
0x1b00…1b20 79 b0 ca 3d 58 97 91 4f 3e 00 98 47 7e 12 23 13 7e 12 23 13 0c 0c c2 2c 58 04 c2 2c 58 e5 2a 4e   ┆y  =X  O>  Gü # ü #    ,X  ,X *N┆
0x1b20…1b40 41 e5 2a f9 42 e5 2a f7 42 e5 2a f5 42 e5 e5 2a 48 41 eb 21 d8 ff 39 7d 93 7c 9a 1e 4b da 2e 43   ┆A * B * B * B  *HA !  9å ø  K .C┆
0x1b40…1b60 21 00 00 39 22 f5 42 11 0a 00 19 22 4a 41 2a bb 57 22 f9 42 2a bd 57 22 f7 42 2b 56 2b 5e 7d 93   ┆!  9" B    "JA* W" B* W" B+V+^å ┆
0x1b60…1b80 4f 7c 9a 47 2a 50 41 e9 e1 22 ef 55 e1 22 b9 57 2a f7 42 11 fc ff 19 5e 23 56 37 7d 9b 6f 7c 9a   ┆Oø G*PA  " U " W* B    ^#V7å oø ┆
0x1b80…1ba0 67 22 4e 41 2a f7 42 3a ef 55 be c2 b8 58 2a f9 42 3a b9 57 be ca fb 42 2a f3 42 5e 23 56 eb 22   ┆g"NA* B: U   X* B: W   B* B^#V "┆
0x1ba0…1bc0 f1 55 2a f5 42 4d 44 2a f1 55 7d 91 c2 d6 58 7c 98 1e 58 ca 2e 43 21 04 00 09 5e 23 56 d5 21 fc   ┆ U* BMD* Uå   Xø  X .C!   ^#V ! ┆
0x1bc0…1be0 ff 19 5e 23 56 37 7d 9b 5f 7c 9a 57 21 08 00 09 73 23 72 2b 2b 2b eb e1 3a ef 55 be c2 0b 59 eb   ┆  ^#V7å _ø W!   s#r+++  : U   Y ┆
0x1be0…1c00 5e 23 56 eb 3a b9 57 be ca fb 42 69 60 23 23 4e 23 46 c3 c7 58 60 69 22 4e 41 d6 4d 87 4f 06 00   ┆^#V : W   Bi`##N#F  X`i"NA M O  ┆
0x1c00…1c20 2a b6 69 7c b5 ca 37 59 09 5e 23 56 eb 7c b5 ca 37 59 01 fb 42 c5 e9 1e 45 c3 2e 43 cd b8 00 0a   ┆* iø  7Y ^#V ø  7Y  B   E .C    ┆
0x1c20…1c40 03 69 60 22 4e 41 5f 16 00 21 53 59 19 19 5e 23 56 eb e9 aa 59 3d 5a 94 5a b7 5a 88 58 a7 59 a7   ┆ i`"NA_  !SY  ^#V   Y=Z Z Z X Y ┆
0x1c40…1c60 59 fe 5c c0 5d 17 5a 71 5a de 5a 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76   ┆Y Ø Å ZqZ Zvvvvvvvvvvvvvvvvvvvvv┆
0x1c60…1c80 76 a2 4c aa 4c ec 55 ec 55 ec 55 ec 55 ec 55 ec 55 ec 55 1e 5a 2c 5a b5 59 01 5a e5 4c c2 59 cb   ┆v L L U U U U U U U Z,Z Y Z L Y ┆
0x1c80…1ca0 59 ec 59 dd 59 d2 59 c3 b9 43 2a ef 42 7d 2d fa 08 43 c3 1a 43 2a ef 42 7d a7 f2 be 59 25 e5 c3   ┆Y Y Y Y  C* Bå-  C  C* Bå   Y%  ┆
0x1ca0…1cc0 08 43 e1 26 00 22 ef 42 c3 08 43 e1 cd 8e 00 c3 fb 42 e1 d1 7d f3 cd 7f 00 fb c3 08 43 e1 d1 f3   ┆ C & " B  C      B  å       C   ┆
0x1cc0…1ce0 cd 61 00 fb a5 6f 26 00 e5 c3 08 43 01 fd 59 11 04 00 2a b0 69 3e 02 cd 91 00 c3 fb 42 3c 58 53   ┆ a   o&    C  Y   * i>      B<XS┆
0x1ce0…1d00 44 45 43 42 49 20 20 20 52 41 00 05 00 00 00 00 00 00 00 0b 00 08 41 0a 00 05 00 54 41 4c 4b 20   ┆DECBI   RA            A    TALK ┆
0x1d00…1d20 13 02 44 45 43 42 49 20 20 20 02 13 00 01 00 00 00 76 76 76 13 0d 04 44 45 43 42 49 20 20 20 02   ┆  DECBI          vvv   DECBI    ┆
0x1d20…1d40 00 00 08 0d 05 08 7e d6 30 ca 05 04 0a 02 0b 00 04 0e 08 87 57 87 87 82 57 23 7e d6 30 82 23 c9   ┆      ü 0           W   W#ü 0 # ┆
0x1d40…1d60 0e 02 0f 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x1d60…1d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
            […0x2…]
0x1dc0…1de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63   ┆                               c┆

Reduced view