home *** CD-ROM | disk | FTP | other *** search
- extern struct DosLibrary * DOSBase;
-
- static __inline long
- Write (unsigned long file, unsigned long buffer,long length)
- {
- register long _res __asm("d0");
- register struct DosLibrary *a6 __asm("a6") = DOSBase;
- register unsigned long d1 __asm("d1") = file;
- register unsigned long d2 __asm("d2") = buffer;
- register long d3 __asm("d3") = length;
- __asm __volatile ("jsr a6@(-0x30)"
- : "=r" (_res)
- : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
- : "a0","a1","d0","d1","d2","d3", "memory");
- return _res;
- }
-
- static __inline unsigned long
- Output (void)
- {
- register unsigned long _res __asm("d0");
- register struct DosLibrary *a6 __asm("a6") = DOSBase;
- __asm __volatile ("jsr a6@(-0x3c)"
- : "=r" (_res)
- : "r" (a6)
- : "a0","a1","d0","d1", "memory");
- return _res;
- }
-
- extern void _exit(int status);
-
- void
- default_new_handler ()
- {
- /* don't use fprintf (stderr, ...) because it may need to call malloc. */
- Write (Output(), (unsigned long)"default_new_handler: out of memory... aaaiiiiiieeeeeeeeeeeeee!\n", 65);
- /* don't call exit () because that may call global destructors which
- may cause a loop. */
- _exit (-1);
- }
-