|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.