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

⟦496f9dc28⟧ TextFile

    Length: 5600 (0x15e0)
    Types: TextFile
    Notes: Mikados_K
    Names: »ALLOCA.K«

Derivation

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

Mikados K File

;*************************************************************
;*         PASCAL STANDARD ASSEMBLER PACKAGE.                *
;*                                                           *
;* (C) 1980 DANSK DATA ELEKTRONIK APS.                       *
;*************************************************************
;
;*************************************************************
;* PROCEDURE NAME:      ALLOCA                               *
;*************************************************************
;
; CT 05-MAY-1980
;
;=============================================================
; DESCRIPTION:
; THIS PROCEDURE IS USED TO ALLOCATE A MEMORY AREA.
; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL
; SECTION 6.1 FOR DETAILS.
;
;-------------------------------------------------------------
; STACK CONTENTS ON ENTRY:     I               I
;                              I---------------I
;                              I RETURN ADR.   I
;                              I---------------I
;                              I  -> STATUS    I
;                              I---------------I
;                              I    LENGTH     I
;                              I---------------I
;                              I  -> ADDRESS   I
;                              I---------------I
;                              I               I
;-------------------------------------------------------------
; STACK CONTENTS ON EXIT:      EMPTY
;-------------------------------------------------------------
; THIS PROCEDURE ACTUALLY ALLOCATES THREE BYTES MORE THAN THE
; USER REQUESTED. THE TWO FIRST BYTES OF THE ALLOCATED AREA
; ARE THEN USED TO HOLD THE LENGTH OF THE AREA AND ARE USED
; WHEN DEALLO IS CALLED; THE THIRD BYTE CONTAINS THE CODE EE
; (HEX) AND IS A FLAG THAT INDICATES THAT THIS PARTICULAR AREA
; IS IN USE.
; THE ADDRESS RETURNED TO THE USER IS THE ADDRESS OF THE BYTE
; FOLLOWING THE THREE EXTRA BYTES.
;=============================================================
 
       SKIP
ALLOCA::
       
;
;GET THE REQUESTED LENGTH OF THE MEMORY AREA
;
       POP     B       ;BC=RETURN ADDRESS
       POP     D       ;DE->STATUS
       POP     H       ;HL=REQUESTED LENGTH
       PUSH    B
       PUSH    D
                       ;THE STACK NOW LOOKS LIKE THIS:
                       ;               I               I
                       ;               I---------------I
                       ;               I  -> STATUS    I
                       ;               I---------------I
                       ;               I  RET. ADR.    I
                       ;               I---------------I
                       ;               I  -> ADDRESS   I
                       ;               I---------------I
                       ;               I               I
       INX     H
       INX     H
       INX     H       ;WE SHOULD ALLOCATE THREE EXTRA BYTES
 
;
;IF THE LENGTH IS LESS THAN 4, 4 BYTES ARE ALLOCATED
;
       MOV     A,H     ;A:=MSB OF LENGTH
       ANA     A       ;A=0?
       JNZ     LENGOK  ;NO (I.E. LENGTH >= 256)
       MOV     A,L     ;YES, A:=LSB OF LENGTH
       CPI     4       ;A<4?
       JNC     LENGOK  ;NO
       MVI     L,4     ;YES, LENGTH:=4
 
;
;ALLOCATE!
;
LENGOK:CALL    ALLOC
                       ;DE=0 OR DE=-1 IN CASE OF ERROR
                       ;OTHERWISE: DE->ALLOCATED AREA
                       ;           HL=LENGTH OF ALLOCATED AREA
 
;
;TEST DE
;
       PUSH    D       ;SAVE ADDR. OF ALLOCATED AREA
       INX     D       ;DE=1 OR DE=0 IN CASE OF ERROR
       MOV     A,D     ;A:=MSB OF DE
       ANA     A       ;A=0?
       JNZ     OK      ;NO, ALLOCATION IS OK
       MOV     A,E     ;A:=LSB OF DE
       ANA     A       ;A=0? I.E. ILLEGAL LENGTH?
       JNZ     LEGLEN  ;NO
       MVI     A,2     ;YES, A:=ERROR CODE FOR ILLEGAL LENGTH
       JMP     EXI     ;GO CLEAN UP
LEGLEN:CPI     1       ;A=1? I.E. NO AREA AVAILABLE?
       JNZ     OK      ;NO, ALLOCATION IS OK
                       ;YES, A=1 (WHICH IS THE ERROR CODE FOR
                       ;               NO AREA AVAILABLE)
       JMP     EXI     ;GO CLEAN UP
 
;
;ALLOCATION WAS OK
;
OK:    XRA     A       ;A:=0 (I.E. NO ERROR CODE)
 
;
;CLEAN UP. MOST OF THIS CODE IS IRRELEVANT IF THE ALLOCATION
;WAS A FAILURE
;
EXI:   POP     D       ;DE->ALLOCATED AREA
       XCHG            ;HL->ALLOCATED AREA; DE=LENGTH OF AREA
       MOV     M,E     ;STORE LENGTH
       INX     H       ;  OF ALLOCATED AREA
       MOV     M,D     ;     IN FIRST TWO BYTES
       INX     H
       MVI     M,0EE   ;SET FLAG BYTE
       INX     H       ;AND POINT TO NEXT BYTE
       XCHG            ;DE->THE AREA THE USER GETS
 
;
;REG. A CONTAINS THE STATUS VALUE. STORE IT.
;
       POP     H       ;HL->STATUS
       MOV     M,A     ;STORE STATUS VALUE
       INX     H
       MVI     M,0     ;STORE 0 IN MSB. OF STATUS VALUE
 
;
;SET POINTER TO ALLOCATED AREA
;
       POP     H       ;HL=RETURN ADDRESS
       XTHL            ;HL->ADDRESS
       MOV     M,E     ;STORE
       INX     H       ;  ADDRESS OF
       MOV     M,D     ;    ALLOCATED AREA
 
       RET
 
       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:      ALLOCA                               *«, 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 05-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…02a0 Line {l1=0x33, l2=»; THIS PROCEDURE IS USED TO ALLOCATE A MEMORY AREA.«, l3=0x33}
0x02a0…02e0 Line {l1=0x3e, l2=»; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL«, l3=0x3e}
0x02e0…02fc Line {l1=0x1a, l2=»; SECTION 6.1 FOR DETAILS.«, l3=0x1a}
0x02fc…02ff Line {l1=0x01, l2=»;«, l3=0x01}
0x02ff…033f Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x033f…0371 Line {l1=0x30, l2=»; STACK CONTENTS ON ENTRY:     I               I«, l3=0x30}
0x0371…03a3 Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x03a3…03d5 Line {l1=0x30, l2=»;                              I RETURN ADR.   I«, l3=0x30}
0x03d5…0407 Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x0407…0439 Line {l1=0x30, l2=»;                              I  -> STATUS    I«, l3=0x30}
0x0439…046b Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x046b…049d Line {l1=0x30, l2=»;                              I    LENGTH     I«, l3=0x30}
0x049d…04cf Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x04cf…0501 Line {l1=0x30, l2=»;                              I  -> ADDRESS   I«, l3=0x30}
0x0501…0533 Line {l1=0x30, l2=»;                              I---------------I«, l3=0x30}
0x0533…0565 Line {l1=0x30, l2=»;                              I               I«, l3=0x30}
0x0565…05a5 Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x05a5…05cb Line {l1=0x24, l2=»; STACK CONTENTS ON EXIT:      EMPTY«, l3=0x24}
0x05cb…060b Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x060b…064a Line {l1=0x3d, l2=»; THIS PROCEDURE ACTUALLY ALLOCATES THREE BYTES MORE THAN THE«, l3=0x3d}
0x064a…0687 Line {l1=0x3b, l2=»; USER REQUESTED. THE TWO FIRST BYTES OF THE ALLOCATED AREA«, l3=0x3b}
0x0687…06c4 Line {l1=0x3b, l2=»; ARE THEN USED TO HOLD THE LENGTH OF THE AREA AND ARE USED«, l3=0x3b}
0x06c4…0702 Line {l1=0x3c, l2=»; WHEN DEALLO IS CALLED; THE THIRD BYTE CONTAINS THE CODE EE«, l3=0x3c}
0x0702…0742 Line {l1=0x3e, l2=»; (HEX) AND IS A FLAG THAT INDICATES THAT THIS PARTICULAR AREA«, l3=0x3e}
0x0742…0750 Line {l1=0x0c, l2=»; IS IN USE.«, l3=0x0c}
0x0750…078f Line {l1=0x3d, l2=»; THE ADDRESS RETURNED TO THE USER IS THE ADDRESS OF THE BYTE«, l3=0x3d}
0x078f…07b3 Line {l1=0x22, l2=»; FOLLOWING THE THREE EXTRA BYTES.«, l3=0x22}
0x07b3…07f3 Line {l1=0x3e, l2=»;=============================================================«, l3=0x3e}
0x07f3…07f6 Line {l1=0x01, l2=» «, l3=0x01}
0x07f6…0803 Line {l1=0x0b, l2=»       SKIP«, l3=0x0b}
0x0803…080d Line {l1=0x08, l2=»ALLOCA::«, l3=0x08}
0x080d…0816 Line {l1=0x07, l2=»       «, l3=0x07}
0x0816…0819 Line {l1=0x01, l2=»;«, l3=0x01}
0x0819…0847 Line {l1=0x2c, l2=»;GET THE REQUESTED LENGTH OF THE MEMORY AREA«, l3=0x2c}
0x0847…084a Line {l1=0x01, l2=»;«, l3=0x01}
0x084a…0875 Line {l1=0x29, l2=»       POP     B       ;BC=RETURN ADDRESS«, l3=0x29}
0x0875…0899 Line {l1=0x22, l2=»       POP     D       ;DE->STATUS«, l3=0x22}
0x0899…08c6 Line {l1=0x2b, l2=»       POP     H       ;HL=REQUESTED LENGTH«, l3=0x2b}
0x08c6…08d8 Line {l1=0x10, l2=»       PUSH    B«, l3=0x10}
0x08d8…08ea Line {l1=0x10, l2=»       PUSH    D«, l3=0x10}
0x08ea…0922 Line {l1=0x36, l2=»                       ;THE STACK NOW LOOKS LIKE THIS:«, l3=0x36}
0x0922…095c Line {l1=0x38, l2=»                       ;               I               I«, l3=0x38}
0x095c…0996 Line {l1=0x38, l2=»                       ;               I---------------I«, l3=0x38}
0x0996…09d0 Line {l1=0x38, l2=»                       ;               I  -> STATUS    I«, l3=0x38}
0x09d0…0a0a Line {l1=0x38, l2=»                       ;               I---------------I«, l3=0x38}
0x0a0a…0a44 Line {l1=0x38, l2=»                       ;               I  RET. ADR.    I«, l3=0x38}
0x0a44…0a7e Line {l1=0x38, l2=»                       ;               I---------------I«, l3=0x38}
0x0a7e…0ab8 Line {l1=0x38, l2=»                       ;               I  -> ADDRESS   I«, l3=0x38}
0x0ab8…0af2 Line {l1=0x38, l2=»                       ;               I---------------I«, l3=0x38}
0x0af2…0b2c Line {l1=0x38, l2=»                       ;               I               I«, l3=0x38}
0x0b2c…0b3e Line {l1=0x10, l2=»       INX     H«, l3=0x10}
            […0x1…]
0x0b50…0b8e Line {l1=0x3c, l2=»       INX     H       ;WE SHOULD ALLOCATE THREE EXTRA BYTES«, l3=0x3c}
0x0b8e…0b91 Line {l1=0x01, l2=» «, l3=0x01}
0x0b91…0b94 Line {l1=0x01, l2=»;«, l3=0x01}
0x0b94…0bca Line {l1=0x34, l2=»;IF THE LENGTH IS LESS THAN 4, 4 BYTES ARE ALLOCATED«, l3=0x34}
0x0bca…0bcd Line {l1=0x01, l2=»;«, l3=0x01}
0x0bcd…0bf7 Line {l1=0x28, l2=»       MOV     A,H     ;A:=MSB OF LENGTH«, l3=0x28}
0x0bf7…0c15 Line {l1=0x1c, l2=»       ANA     A       ;A=0?«, l3=0x1c}
0x0c15…0c46 Line {l1=0x2f, l2=»       JNZ     LENGOK  ;NO (I.E. LENGTH >= 256)«, l3=0x2f}
0x0c46…0c75 Line {l1=0x2d, l2=»       MOV     A,L     ;YES, A:=LSB OF LENGTH«, l3=0x2d}
0x0c75…0c93 Line {l1=0x1c, l2=»       CPI     4       ;A<4?«, l3=0x1c}
0x0c93…0caf Line {l1=0x1a, l2=»       JNC     LENGOK  ;NO«, l3=0x1a}
0x0caf…0cd7 Line {l1=0x26, l2=»       MVI     L,4     ;YES, LENGTH:=4«, l3=0x26}
0x0cd7…0cda Line {l1=0x01, l2=» «, l3=0x01}
0x0cda…0cdd Line {l1=0x01, l2=»;«, l3=0x01}
0x0cdd…0ce9 Line {l1=0x0a, l2=»;ALLOCATE!«, l3=0x0a}
0x0ce9…0cec Line {l1=0x01, l2=»;«, l3=0x01}
0x0cec…0d02 Line {l1=0x14, l2=»LENGOK:CALL    ALLOC«, l3=0x14}
0x0d02…0d3a Line {l1=0x36, l2=»                       ;DE=0 OR DE=-1 IN CASE OF ERROR«, l3=0x36}
0x0d3a…0d71 Line {l1=0x35, l2=»                       ;OTHERWISE: DE->ALLOCATED AREA«, l3=0x35}
0x0d71…0db1 Line {l1=0x3e, l2=»                       ;           HL=LENGTH OF ALLOCATED AREA«, l3=0x3e}
0x0db1…0db4 Line {l1=0x01, l2=» «, l3=0x01}
0x0db4…0db7 Line {l1=0x01, l2=»;«, l3=0x01}
0x0db7…0dc1 Line {l1=0x08, l2=»;TEST DE«, l3=0x08}
0x0dc1…0dc4 Line {l1=0x01, l2=»;«, l3=0x01}
0x0dc4…0dfa Line {l1=0x34, l2=»       PUSH    D       ;SAVE ADDR. OF ALLOCATED AREA«, l3=0x34}
0x0dfa…0e31 Line {l1=0x35, l2=»       INX     D       ;DE=1 OR DE=0 IN CASE OF ERROR«, l3=0x35}
0x0e31…0e57 Line {l1=0x24, l2=»       MOV     A,D     ;A:=MSB OF DE«, l3=0x24}
0x0e57…0e75 Line {l1=0x1c, l2=»       ANA     A       ;A=0?«, l3=0x1c}
0x0e75…0ea3 Line {l1=0x2c, l2=»       JNZ     OK      ;NO, ALLOCATION IS OK«, l3=0x2c}
0x0ea3…0ec9 Line {l1=0x24, l2=»       MOV     A,E     ;A:=LSB OF DE«, l3=0x24}
0x0ec9…0efc Line {l1=0x31, l2=»       ANA     A       ;A=0? I.E. ILLEGAL LENGTH?«, l3=0x31}
0x0efc…0f18 Line {l1=0x1a, l2=»       JNZ     LEGLEN  ;NO«, l3=0x1a}
0x0f18…0f57 Line {l1=0x3d, l2=»       MVI     A,2     ;YES, A:=ERROR CODE FOR ILLEGAL LENGTH«, l3=0x3d}
0x0f57…0f7c Line {l1=0x23, l2=»       JMP     EXI     ;GO CLEAN UP«, l3=0x23}
0x0f7c…0fb2 Line {l1=0x34, l2=»LEGLEN:CPI     1       ;A=1? I.E. NO AREA AVAILABLE?«, l3=0x34}
0x0fb2…0fe0 Line {l1=0x2c, l2=»       JNZ     OK      ;NO, ALLOCATION IS OK«, l3=0x2c}
0x0fe0…101f Line {l1=0x3d, l2=»                       ;YES, A=1 (WHICH IS THE ERROR CODE FOR«, l3=0x3d}
0x101f…105a Line {l1=0x39, l2=»                       ;               NO AREA AVAILABLE)«, l3=0x39}
0x105a…107f Line {l1=0x23, l2=»       JMP     EXI     ;GO CLEAN UP«, l3=0x23}
0x107f…1082 Line {l1=0x01, l2=» «, l3=0x01}
0x1082…1085 Line {l1=0x01, l2=»;«, l3=0x01}
0x1085…1099 Line {l1=0x12, l2=»;ALLOCATION WAS OK«, l3=0x12}
0x1099…109c Line {l1=0x01, l2=»;«, l3=0x01}
0x109c…10cf Line {l1=0x31, l2=»OK:    XRA     A       ;A:=0 (I.E. NO ERROR CODE)«, l3=0x31}
0x10cf…10d2 Line {l1=0x01, l2=» «, l3=0x01}
0x10d2…10d5 Line {l1=0x01, l2=»;«, l3=0x01}
0x10d5…1113 Line {l1=0x3c, l2=»;CLEAN UP. MOST OF THIS CODE IS IRRELEVANT IF THE ALLOCATION«, l3=0x3c}
0x1113…1123 Line {l1=0x0e, l2=»;WAS A FAILURE«, l3=0x0e}
0x1123…1126 Line {l1=0x01, l2=»;«, l3=0x01}
0x1126…1152 Line {l1=0x2a, l2=»EXI:   POP     D       ;DE->ALLOCATED AREA«, l3=0x2a}
0x1152…1191 Line {l1=0x3d, l2=»       XCHG            ;HL->ALLOCATED AREA; DE=LENGTH OF AREA«, l3=0x3d}
0x1191…11b7 Line {l1=0x24, l2=»       MOV     M,E     ;STORE LENGTH«, l3=0x24}
0x11b7…11e4 Line {l1=0x2b, l2=»       INX     H       ;  OF ALLOCATED AREA«, l3=0x2b}
0x11e4…1215 Line {l1=0x2f, l2=»       MOV     M,D     ;     IN FIRST TWO BYTES«, l3=0x2f}
0x1215…1227 Line {l1=0x10, l2=»       INX     H«, l3=0x10}
0x1227…124e Line {l1=0x25, l2=»       MVI     M,0EE   ;SET FLAG BYTE«, l3=0x25}
0x124e…127e Line {l1=0x2e, l2=»       INX     H       ;AND POINT TO NEXT BYTE«, l3=0x2e}
0x127e…12b2 Line {l1=0x32, l2=»       XCHG            ;DE->THE AREA THE USER GETS«, l3=0x32}
0x12b2…12b5 Line {l1=0x01, l2=» «, l3=0x01}
0x12b5…12b8 Line {l1=0x01, l2=»;«, l3=0x01}
0x12b8…12e6 Line {l1=0x2c, l2=»;REG. A CONTAINS THE STATUS VALUE. STORE IT.«, l3=0x2c}
0x12e6…12e9 Line {l1=0x01, l2=»;«, l3=0x01}
0x12e9…130d Line {l1=0x22, l2=»       POP     H       ;HL->STATUS«, l3=0x22}
0x130d…1339 Line {l1=0x2a, l2=»       MOV     M,A     ;STORE STATUS VALUE«, l3=0x2a}
0x1339…134b Line {l1=0x10, l2=»       INX     H«, l3=0x10}
0x134b…1384 Line {l1=0x37, l2=»       MVI     M,0     ;STORE 0 IN MSB. OF STATUS VALUE«, l3=0x37}
0x1384…1387 Line {l1=0x01, l2=» «, l3=0x01}
0x1387…138a Line {l1=0x01, l2=»;«, l3=0x01}
0x138a…13aa Line {l1=0x1e, l2=»;SET POINTER TO ALLOCATED AREA«, l3=0x1e}
0x13aa…13ad Line {l1=0x01, l2=»;«, l3=0x01}
0x13ad…13d8 Line {l1=0x29, l2=»       POP     H       ;HL=RETURN ADDRESS«, l3=0x29}
0x13d8…13fd Line {l1=0x23, l2=»       XTHL            ;HL->ADDRESS«, l3=0x23}
0x13fd…141c Line {l1=0x1d, l2=»       MOV     M,E     ;STORE«, l3=0x1d}
0x141c…1442 Line {l1=0x24, l2=»       INX     H       ;  ADDRESS OF«, l3=0x24}
0x1442…146e Line {l1=0x2a, l2=»       MOV     M,D     ;    ALLOCATED AREA«, l3=0x2a}
0x146e…1471 Line {l1=0x01, l2=» «, l3=0x01}
0x1471…147d Line {l1=0x0a, l2=»       RET«, l3=0x0a}
0x147d…1480 Line {l1=0x01, l2=» «, l3=0x01}
0x1480…148c Line {l1=0x0a, l2=»       END«, l3=0x0a}
0x148c…14a0 00 00 a5 83 10 00 00 d2 11 a5 83 10 00 00 d2 11 a5 83 10 d2                                       ┆                    ┆
0x14a0…14c0 16 b9 31 a5 83 10 05 00 d2 11 a5 83 10 a6 08 46 50 45 20 20 20 20 20 00 d2 13 a5 83 10 02 00 d2   ┆  1            FPE              ┆
0x14c0…14e0 11 a5 83 10 00 00 d2 11 a5 83 10 00 00 d2 11 a5 83 10 d2 16 9e 22 00 cb a1 08 c7 40 06 9e 22 82   ┆                     "     @  " ┆
0x14e0…1500 ae 02 a7 49 01 82 ab 49 44 c6 04 bc 05 05 8b a1 45 a5 83 10 05 00 d2 11 a5 83 10 a6 08 46 53 59   ┆   I   ID       E            FSY┆
0x1500…1520 53 20 20 20 20 00 d2 13 a5 83 10 03 00 d2 11 a5 83 10 00 00 d2 11 a5 83 10 00 00 d2 11 a5 83 10   ┆S                               ┆
0x1520…1540 d2 16 9e 22 00 cb a1 08 c7 40 06 9e 22 82 ae 02 a7 49 01 82 ab 49 43 c6 04 bc 05 05 8b a1 45 a5   ┆   "     @  "    I   IC       E ┆
0x1540…1560 83 10 05 00 d2 11 a5 83 10 a6 08 50 43 4f 4d 50 20 20 20 00 d2 13 a5 83 10 04 00 d2 11 a5 83 10   ┆           PCOMP                ┆
0x1560…1580 00 00 d2 11 a5 83 10 00 00 d2 11 a5 83 10 d2 16 9e 22 00 cb a1 08 c7 40 06 9e 22 82 ae 02 a7 49   ┆                 "     @  "    I┆
0x1580…15a0 01 82 ab 49 a5 85 cc d9 01 95 82 3a bf a5 85 cc d9 82 31 bf a5 85 cc d9 01 82 82 30 bf a5 85 cc   ┆   I       :      1        0    ┆
0x15a0…15c0 d9 02 82 82 3a bf a5 85 cc d9 03 82 82 50 bf a5 85 cc 00 82 d9 03 82 bf a5 85 dc a5 85 cc 00 00   ┆    :        P                  ┆
0x15c0…15e0 d2 05 9e 22 00 cb a1 08 c7 b0 04 9e 22 82 ae 02 a5 85 dc 00 d2 08 9e 22 00 cb a1 08 c7 dc 05 63   ┆   "        "          "       c┆

Reduced view