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

⟦b9c6f05ac⟧ TextFile

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

Derivation

└─⟦33b8385fd⟧ Bits:30009009 PSAP1
    └─⟦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 63                                                                                          ┆  c┆
0x1960…1980 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┆
            […0x23…]

Reduced view