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

1.1     ! root        1: ;      Static Name Aliases
        !             2: ;
        !             3: ;      $S270_beg       EQU     beg
        !             4: ;      $S271_First     EQU     First
        !             5: ;      $S272_NotFirst  EQU     NotFirst
        !             6:        TITLE   dynlib2.c
        !             7:        NAME    dynlib2
        !             8: 
        !             9:        .286p
        !            10:        .287
        !            11: _TEXT  SEGMENT  WORD PUBLIC 'CODE'
        !            12: _TEXT  ENDS
        !            13: FRED   SEGMENT  WORD PUBLIC 'FAR_DATA'
        !            14: FRED   ENDS
        !            15: FRED_CONST     SEGMENT  WORD PUBLIC 'FAR_DATA'
        !            16: FRED_CONST     ENDS
        !            17: FRED_BSS       SEGMENT  WORD PUBLIC 'FAR_DATA'
        !            18: FRED_BSS       ENDS
        !            19: $$SYMBOLS      SEGMENT  BYTE PUBLIC 'DEBSYM'
        !            20: $$SYMBOLS      ENDS
        !            21: $$TYPES        SEGMENT  BYTE PUBLIC 'DEBTYP'
        !            22: $$TYPES        ENDS
        !            23: FRED_GROUP     GROUP   FRED_CONST, FRED_BSS, FRED
        !            24:        ASSUME  CS: _TEXT, DS: FRED_GROUP, SS: FRED_GROUP
        !            25: PUBLIC  _count
        !            26: EXTRN  __acrtused:ABS
        !            27: EXTRN  INIT_ID:FAR
        !            28: EXTRN  DOSWRITE:FAR
        !            29: FRED      SEGMENT
        !            30: $SG277 DB      '.',  0aH,  0dH,  00H
        !            31: _count DW      00H
        !            32: $S270_beg      DB      'I am number ',  00H
        !            33:        ORG     $+1
        !            34: $S271_First    DB      'First time initialization.',  0aH,  0dH,  00H
        !            35:        ORG     $+1
        !            36: $S272_NotFirst DB      'Not first time initialization.',  0aH,  0dH,  00H
        !            37: FRED      ENDS
        !            38: _TEXT      SEGMENT
        !            39:        ASSUME  CS: _TEXT
        !            40: ; Line 21
        !            41:        PUBLIC  INITROUTINE
        !            42: INITROUTINE    PROC FAR
        !            43:        enter   WORD PTR 4,0
        !            44:        push    di
        !            45:        push    si
        !            46:        push    ds
        !            47:        mov     ax,FRED_GROUP
        !            48:        mov     ds,ax
        !            49:        ASSUME DS: FRED_GROUP
        !            50: ;      c = -2
        !            51: ;      Written = -4
        !            52: ; Line 22
        !            53: ; Line 23
        !            54: ; Line 24
        !            55: ; Line 25
        !            56: ; Line 26
        !            57:        mov     WORD PTR [bp-4],0       ;Written
        !            58: ; Line 28
        !            59:        mov     ax,_count
        !            60:        inc     WORD PTR _count
        !            61:        cmp     ax,0
        !            62:        je      $JCC27
        !            63:        jmp     $I275
        !            64: $JCC27:
        !            65: ; Line 29
        !            66: ; Line 30
        !            67:        push    1
        !            68:        push    ds
        !            69:        push    OFFSET $S271_First
        !            70:        push    28
        !            71:        lea     ax,WORD PTR [bp-4]      ;Written
        !            72:        push    ss
        !            73:        push    ax
        !            74:        call    FAR PTR DOSWRITE
        !            75: ; Line 31
        !            76: ; Line 32
        !            77:        jmp     $I276
        !            78: $I275:
        !            79: ; Line 33
        !            80: ; Line 34
        !            81:        push    1
        !            82:        push    ds
        !            83:        push    OFFSET $S272_NotFirst
        !            84:        push    32
        !            85:        lea     ax,WORD PTR [bp-4]      ;Written
        !            86:        push    ss
        !            87:        push    ax
        !            88:        call    FAR PTR DOSWRITE
        !            89: ; Line 35
        !            90: $I276:
        !            91: ; Line 36
        !            92:        push    1
        !            93:        push    ds
        !            94:        push    OFFSET $S270_beg
        !            95:        push    12
        !            96:        lea     ax,WORD PTR [bp-4]      ;Written
        !            97:        push    ss
        !            98:        push    ax
        !            99:        call    FAR PTR DOSWRITE
        !           100: ; Line 37
        !           101:        mov     al,BYTE PTR _count
        !           102:        add     al,48
        !           103:        mov     BYTE PTR [bp-2],al      ;c
        !           104: ; Line 38
        !           105:        push    1
        !           106:        lea     ax,WORD PTR [bp-2]      ;c
        !           107:        push    ss
        !           108:        push    ax
        !           109:        push    1
        !           110:        lea     ax,WORD PTR [bp-4]      ;Written
        !           111:        push    ss
        !           112:        push    ax
        !           113:        call    FAR PTR DOSWRITE
        !           114: ; Line 39
        !           115:        push    1
        !           116:        push    ds
        !           117:        push    OFFSET $SG277
        !           118:        push    3
        !           119:        lea     ax,WORD PTR [bp-4]      ;Written
        !           120:        push    ss
        !           121:        push    ax
        !           122:        call    FAR PTR DOSWRITE
        !           123: ; Line 40
        !           124:        push    ds
        !           125:        push    OFFSET _count
        !           126:        call    FAR PTR INIT_ID
        !           127: ; Line 41
        !           128: ; Line 42
        !           129:        mov     ax,1
        !           130:        jmp     $EX269
        !           131: ; Line 43
        !           132: $EX269:
        !           133:        pop     ds
        !           134:        ASSUME DS: FRED_GROUP
        !           135:        pop     si
        !           136:        pop     di
        !           137:        leave   
        !           138:        ret     
        !           139: 
        !           140: INITROUTINE    ENDP
        !           141: _TEXT  ENDS
        !           142: END

unix.superglobalmegacorp.com

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