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