Annotation of os2sdk/demos/examples/dynlink/dynlib.asm, revision 1.1

1.1     ! root        1: ;      Static Name Aliases
        !             2: ;
        !             3: ;      $S273_beg       EQU     beg
        !             4: ;      $S274_mid       EQU     mid
        !             5: ;      $S275_end       EQU     end
        !             6:        TITLE   dynlib.c
        !             7:        NAME    dynlib
        !             8: 
        !             9:        .286p
        !            10:        .287
        !            11: _TEXT  SEGMENT  WORD PUBLIC 'CODE'
        !            12: _TEXT  ENDS
        !            13: ETHEL  SEGMENT  WORD PUBLIC 'FAR_DATA'
        !            14: ETHEL  ENDS
        !            15: ETHEL_CONST    SEGMENT  WORD PUBLIC 'FAR_DATA'
        !            16: ETHEL_CONST    ENDS
        !            17: ETHEL_BSS      SEGMENT  WORD PUBLIC 'FAR_DATA'
        !            18: ETHEL_BSS      ENDS
        !            19: $$SYMBOLS      SEGMENT  BYTE PUBLIC 'DEBSYM'
        !            20: $$SYMBOLS      ENDS
        !            21: $$TYPES        SEGMENT  BYTE PUBLIC 'DEBTYP'
        !            22: $$TYPES        ENDS
        !            23: ETHEL_GROUP    GROUP   ETHEL_CONST, ETHEL_BSS, ETHEL
        !            24:        ASSUME  CS: _TEXT, DS: ETHEL_GROUP, SS: ETHEL_GROUP
        !            25: PUBLIC  __acrtused
        !            26: PUBLIC  _id
        !            27: PUBLIC  _pcount
        !            28: EXTRN  __acrtused:ABS
        !            29: EXTRN  DOSWRITE:FAR
        !            30: ETHEL      SEGMENT
        !            31: __acrtused     DW      00H
        !            32: _id    DW      00H
        !            33: _pcount        DD      00H
        !            34: $S273_beg      DB      'I am number ',  00H
        !            35:        ORG     $+1
        !            36: $S274_mid      DB      '.  There are ',  00H
        !            37: $S275_end      DB      ' processes attached.',  0dH,  00H
        !            38: ETHEL      ENDS
        !            39: _TEXT      SEGMENT
        !            40:        ASSUME  CS: _TEXT
        !            41: ; Line 41
        !            42:        PUBLIC  INIT_ID
        !            43: INIT_ID        PROC FAR
        !            44:        enter   WORD PTR 0,0
        !            45:        push    di
        !            46:        push    si
        !            47:        push    ds
        !            48:        mov     ax,ETHEL_GROUP
        !            49:        mov     ds,ax
        !            50:        ASSUME DS: ETHEL_GROUP
        !            51: ; Line 42
        !            52: ;      pc = 6
        !            53: ; Line 43
        !            54:        mov     ax,WORD PTR [bp+6]      ;pc
        !            55:        mov     dx,WORD PTR [bp+8]
        !            56:        mov     WORD PTR _pcount,ax
        !            57:        mov     WORD PTR _pcount+2,dx
        !            58: ; Line 44
        !            59:        les     bx,DWORD PTR [bp+6]     ;pc
        !            60:        mov     ax,WORD PTR es:[bx]
        !            61:        mov     _id,ax
        !            62: ; Line 45
        !            63: $EX270:
        !            64:        pop     ds
        !            65:        ASSUME DS: ETHEL_GROUP
        !            66:        pop     si
        !            67:        pop     di
        !            68:        leave   
        !            69:        ret     4
        !            70: 
        !            71: INIT_ID        ENDP
        !            72: ; Line 50
        !            73:        PUBLIC  PRINTDATA
        !            74: PRINTDATA      PROC FAR
        !            75:        enter   WORD PTR 4,0
        !            76:        push    di
        !            77:        push    si
        !            78:        push    ds
        !            79:        mov     ax,ETHEL_GROUP
        !            80:        mov     ds,ax
        !            81:        ASSUME DS: ETHEL_GROUP
        !            82: ;      c = -2
        !            83: ;      Written = -4
        !            84: ; Line 51
        !            85: ; Line 52
        !            86: ; Line 53
        !            87: ; Line 54
        !            88: ; Line 55
        !            89: ; Line 57
        !            90:        push    1
        !            91:        push    ds
        !            92:        push    OFFSET $S273_beg
        !            93:        push    12
        !            94:        lea     ax,WORD PTR [bp-4]      ;Written
        !            95:        push    ss
        !            96:        push    ax
        !            97:        call    FAR PTR DOSWRITE
        !            98: ; Line 58
        !            99:        mov     al,BYTE PTR _id
        !           100:        add     al,48
        !           101:        mov     BYTE PTR [bp-2],al      ;c
        !           102: ; Line 59
        !           103:        push    1
        !           104:        lea     ax,WORD PTR [bp-2]      ;c
        !           105:        push    ss
        !           106:        push    ax
        !           107:        push    1
        !           108:        lea     ax,WORD PTR [bp-4]      ;Written
        !           109:        push    ss
        !           110:        push    ax
        !           111:        call    FAR PTR DOSWRITE
        !           112: ; Line 60
        !           113:        push    1
        !           114:        push    ds
        !           115:        push    OFFSET $S274_mid
        !           116:        push    13
        !           117:        lea     ax,WORD PTR [bp-4]      ;Written
        !           118:        push    ss
        !           119:        push    ax
        !           120:        call    FAR PTR DOSWRITE
        !           121: ; Line 61
        !           122:        les     bx,DWORD PTR _pcount
        !           123:        mov     al,BYTE PTR es:[bx]
        !           124:        add     al,48
        !           125:        mov     BYTE PTR [bp-2],al      ;c
        !           126: ; Line 62
        !           127:        push    1
        !           128:        lea     ax,WORD PTR [bp-2]      ;c
        !           129:        push    ss
        !           130:        push    ax
        !           131:        push    1
        !           132:        lea     ax,WORD PTR [bp-4]      ;Written
        !           133:        push    ss
        !           134:        push    ax
        !           135:        call    FAR PTR DOSWRITE
        !           136: ; Line 63
        !           137:        push    1
        !           138:        push    ds
        !           139:        push    OFFSET $S275_end
        !           140:        push    21
        !           141:        lea     ax,WORD PTR [bp-4]      ;Written
        !           142:        push    ss
        !           143:        push    ax
        !           144:        call    FAR PTR DOSWRITE
        !           145: ; Line 64
        !           146: $EX272:
        !           147:        pop     ds
        !           148:        ASSUME DS: ETHEL_GROUP
        !           149:        pop     si
        !           150:        pop     di
        !           151:        leave   
        !           152:        ret     
        !           153: 
        !           154: PRINTDATA      ENDP
        !           155: _TEXT  ENDS
        !           156: END

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.