|
|
1.1 root 1: TITLE crt0fp - floating point not loaded trap
2: ;***
3: ;crt0fp.asm - floating point not loaded trap
4: ;
5: ; Copyright (c) 1986-1987, Microsoft Corporation, All Rights Reserved
6: ;
7: ;Purpose:
8: ; To trap certain cases where certain necessary floating-point
9: ; software is not loaded. Two specific cases are when 87.LIB
10: ; is linked in but no coprocessor is present, and when floating
11: ; point i/o conversions are done, but no floating-point variables
12: ; or expressions are used in the program.
13: ;
14: ;*******************************************************************************
15:
16: ?DF= 1 ; this is special for c startup
17: include version.inc
18: .xlist
19: include cmacros.inc
20: .list
21:
22: createSeg _TEXT, code, word, public, CODE, <>
23: createSeg _DATA, data, word, public, DATA, DGROUP
24:
25: createSeg HDR, nhdr, byte, public, MSG, DGROUP
26: createSeg MSG, nmsg, byte, public, MSG, DGROUP
27: createSeg PAD, npad, byte, common, MSG, DGROUP
28: createSeg EPAD, nepad, byte, common, MSG, DGROUP
29:
30: defGrp DGROUP ; define DGROUP
31:
32:
33: ; Messages used by _fptrap
34:
35: sBegin nmsg
36: assumes ds,data
37: dw 2
38: db 'R6002',13,10,'- floating point not loaded',13,10,0
39: sEnd
40:
41: sBegin npad
42: assumes ds,data
43: dw -1
44: ; no padding for now;
45: ; MAX padding would be
46: ; db 22 dup(0)
47: sEnd
48:
49: sBegin code
50: assumes cs,code
51:
52: externNP _amsg_exit
53:
54: page
55: ;***
56: ;_fptrap - trap for missing floating-point software
57: ;
58: ;Purpose:
59: ; Catches these cases of incomplete f.p. software linked into a program.
60: ;
61: ; (1) 87.LIB chosen, but no coprocessor present;
62: ; (i.e., emulator not linked)
63: ;
64: ; (2) "%e", "%f", and "%g" i/o conversion formats specified, but
65: ; not all conversion software has been linked in, because the
66: ; program did not use any floating-point variables or expressions.
67: ;
68: ;Entry:
69: ; None.
70: ;
71: ;Exit:
72: ; None.
73: ;
74: ;Uses:
75: ; AX.
76: ;
77: ;Exceptions:
78: ; Transfers control to _amsg_exit which ...
79: ; - Writes error message to standard error: "floating point not loaded";
80: ; - Terminates the program by calling _exit().
81: ;*******************************************************************************
82:
83: labelNP <PUBLIC,_fptrap>
84: mov ax,2 ; issue floating point not loaded
85: jmp _amsg_exit ; and die
86:
87: sEnd code
88:
89: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.