|
|
1.1 ! root 1: ! 2: ; Static Name Aliases ! 3: ; ! 4: ! 5: ; code copied from assembler output generated by cc -- as doesn't like it ! 6: ; ! 7: ; DGROUP GROUP CONST, _BSS, _DATA ! 8: ; ASSUME CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP ! 9: ! 10: ASSUME CS: _TEXT, DS: _DATA, SS: _DATA, ES: _DATA ! 11: ! 12: PUBLIC _coswitch ! 13: EXTRN _syserr:NEAR ! 14: EXTRN _interp:NEAR ! 15: ! 16: _DATA SEGMENT WORD PUBLIC 'DATA' ! 17: $1 DB 'interp() returned in coswitch', 00H ! 18: EVEN ! 19: _DATA ENDS ! 20: ! 21: _TEXT SEGMENT WORD PUBLIC 'CODE' ! 22: ! 23: PUBLIC _coswitch ! 24: _coswitch PROC NEAR ! 25: ; coswitch(old_cs, new_cs, first) ! 26: ; int *old_cs, *new_cs; ! 27: ; int first; ! 28: push bp ! 29: mov bp,sp ! 30: push di ! 31: push si ! 32: ! 33: push bp ! 34: mov bx, 4[bp] ! 35: mov [bx], sp ! 36: mov bx, 6[bp] ! 37: ! 38: ; if (first == 0) set up a new stack ! 39: mov ax, 8[bp] ! 40: or ax,ax ! 41: jnz not_first ! 42: ! 43: mov sp, [bx] ! 44: sub ax,ax ! 45: push ax ! 46: push ax ! 47: call _interp ! 48: pop ax ; clear args from stack ! 49: pop ax ! 50: mov ax, offset $1 ! 51: push ax ! 52: ; push "interp() returned in costart" ! 53: call _syserr ! 54: ! 55: not_first: ! 56: mov sp, [bx] ! 57: pop bp ! 58: ! 59: pop si ! 60: pop di ! 61: pop bp ! 62: ret ! 63: _coswitch ENDP ! 64: ! 65: _TEXT ENDS ! 66: END ! 67:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.