|
|
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.