Turbo C Context File TEXTBUF.C SCAN.C NEUUTIL.C NEUBEF.C MAININT.C INTUTIL.C INTGLOB.C INTERP.C INSPGLIN.C IBEFEHLE.C ERROR.C TEXTBUF.C SCAN.C NEUUTIL.C NEUBEF.C MAININT.C INTUTIL.C INTGLOB.C INTERP.C INSPGLIN.C IBEFEHLE.C ERROR.C C:\TC\BIN\*.* E:*.* C:*.* A:*.C C:\TC\AKTUELL\*.C E:\TC\*.C E:*.C E:*.H E:\INTERPRE\MERLE\*.H E:\INTERPRE\MERLE\*.TXL void *.c void *.c answer detectgraph getsign Alles alles Answer *.OBJ E:\INTERPRE\MERLE\FAST\MAININT.C E:\INTERPRE\MERLE\FAST\NEUUTIL.C E:\INTERPRE\MERLE\FAST\INTERP.H E:\INTERPRE\MERLE\FAST\SCAN.C E:\INTERPRE\MERLE\FAST\INTPROT.H E:\INTERPRE\MERLE\FAST\INTGLOB.C E:\INTERPRE\MERLE\FAST\INTERP.C E:\INTERPRE\MERLE\FAST\NEUBEF.C E:\INTERPRE\MERLE\FAST\INTGLOB.C E:\INTERPRE\MERLE\FAST\INTERP.H E:\INTERPRE\MERLE\FAST\HILFE.TXL E:\INTERPRE\MERLE\FAST\INTGLOB.C E:\INTERPRE\MERLE\FAST\INTERP.C E:\INTERPRE\MERLE\FAST\INTERP.C E:\INTERPRE\MERLE\FAST\INTERP.C E:\INTERPRE\MERLE\FAST\INTGLOB.C E:\INTERPRE\MERLE\FAST\INTERP.H E:\INTERPRE\MERLE\FAST\INTPROT.H E:\INTERPRE\MERLE\FAST\NEUBEF.C /void sinus(dword winkel); //---- Funktions-Prototypen -------------------------------- //---- Funktions-Prototypen -------------------------------- void main() //---- Funktions-Prototypen -------------------------------- ; SINUS Autor: Ulrich Schmitz & toolbox 1990 Compiler: Turbo C++ EINGABE: 4-Byte Winkelwert AUSGABE: Sinus (RAD) des Winkelwertes als DWORD bzw. FLOAT-Wert Funktion: Berechnet den Sinus zu einem vorgegebenen Winkel. ; SINUS Autor: Ulrich Schmitz & toolbox 1990 Compiler: Turbo C++ AUFRUF: dword sinus(dword winkel); EINGABE: 4-Byte Winkelwert. CKGABE: Sinus (RAD) des Winkelwertes als DWORD bzw. float oder long-Wert. Funktion: Berechnet den Sinus zu einem vorgegebenen Winkel. ; COPROZESSOR Autor: Ulrich Schmitz & toolbox 1990 Assembler: Microsoft Assembler ab Version 5.1 AUFRUF: byte coprozessor(void); EINGABE: keine. CKGABE: 0 --> kein Coprozessor vorhanden. 1 --> Coprozessor installiert. Funktion: Pr ber den BIOS-Interrupt 11h sowie direkt, ob ein Coprozessor vorhanden ist. byte coprozessor(void) dword Testwert = 0x0F, Ergebnis; // Beliebiger Testwert byte Coproz; union REGS regs; // Abfrage des Konfigurationsbytes ber BIOS-Funktion 11h int86(0x11, ®s, ®s); Coproz = regs.h.al << 6; Coproz = Coproz >> 7; // Wenn BIOS-Test auf Coprozessor negativ direkter Test // (siehe auch toolbox 10'90, Seite 80-81, 80x87 Init.) if (!Coproz) asm FINIT; asm FLD Testwert; asm FMUL ST,ST asm FST Ergebnis; if(Ergebnis == (Testwert*Testwert)) Coproz = 1; else printf("\n Coprozessor wurde vom BIOS erkannt!\n"); return Coproz; Taste K L M N O P Q R S T Ctrl 250B 260C 320D 310E 180F 1910 1011 1312 1F13 1414 Alt 2500 2600 3200 3100 1800 1900 1000 1300 1F00 1400 Taste K L M N O P Q R S T Ctrl 250B 260C 320D 310E 180F 1910 1011 1312 1F13 1414 Alt 2500 2600 3200 3100 1800 1900 1000 1300 1F00 1400 Taste F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 Ohne 3B00 3C00 3D00 3E00 3F00 4000 4100 4200 4300 4400 Shift 5400 5500 5600 5700 5800 5900 5A00 5B00 5C00 5D00 Ctrl 5E00 5F00 6000 6100 6200 6300 6400 6500 6600 6700 Alt 6800 6900 6A00 6B00 6C00 6D00 6E00 6F00 7000 7100 Taste A B C D E F G H I J Ctrl 1E01 3002 2E03 2004 1205 2106 2207 2308 1709 240A Alt 1E00 3000 2E00 2000 1200 2100 2200 2300 1700 2400 #pragma startup test(); #pragma exit test() 100; char test(void) printf("\nTest\"); getch(); #pragma option [optionen...] Setzen Sie dieses Pragma ein, wenn Sie Optionen f r den Kommandozeilen-Compiler gleich mit in den Quelltext aufnehmen wollen. Folgende Optionen d rfen nicht in dieser Direktive verwendet werden: -B -Ifff -Q -c -Lfff -S -dxxx -lxset -Uxxx -Dxxx = ccc -M -V -efff -o -Y Die folgenden Kommandozeilen-Optionen k nur vor #if, #ifdef, #ifndef und #elif Direktiven und vor der ersten C oder C++ Deklaration stehen: jede Flie komma-Option au er -ff jede Speichermodell-Option -Efff -nddd -offf Diese Optionen beeinflussen den Compiler nur, wenn sie zwischen Funktions- und anderen Objekt-Deklarationen ge ndert werden: -1 -k -r -2 -N -rd -a -O -v -ff -P -y Die folgenden Optionen k nnen zu jeder Zeit ndert werden und wirken sich sofort aus: -A -gn -wxxx -C -jn -d -K Hinweis: -wxxx entspricht #pragma warn. InsertText(/******* Anfang ******************************/\n); /* --------- --------------- SINUS ------------------------------------- - --------- - - Autor: Ulrich Schmitz & toolbox 1990 - - Compiler: Turbo C++ - - AUFRUF: dword sinus(dword winkel); - - EINGABE: 4-Byte Winkelwert. - - R CKGABE: Sinus (RAD) des Winkelwertes als dword - - bzw. float oder long-Wert. - - Funktion: Berechnet den Sinus zu einem vorgegebenen - - Winkel. - ----------------------------------------------------------- int m_print(char *Fname) int m_installed (void) int m_print(char *Fname) int m_installed (void) void SoundOn() void MakeSound(unsigned SoundFreq) void MakeSound(unsigned SoundFreq) void SoundOff() void Pause(int PZeit) /****************************************************************/ /***** SoundOn *****/ /****************************************************************/ void SoundOn() Save42 = inp(0x42); Save43 = inp(0x43); Save61 = inp(0x61); outp(0x43, 182); /****************************************************************/ /***** MakeSound *****/ /****************************************************************/ void MakeSound(unsigned SoundFreq) outp(0x42, (unsigned char)(1193180 / SoundFreq) & 0xFF); outp(0x42, (unsigned char)(((1193180 / SoundFreq) & 0xFF00) / 256) & 0xFF); outp(0x61, inp(0x61) | 0x03); /****************************************************************/ /***** NoNoise *****/ /****************************************************************/ void NoNoise() outp(0x61, inp(0x61) & 0xFC); /****************************************************************/ /***** SoundOff *****/ /****************************************************************/ void SoundOff() outp(0x42, Save42); outp(0x43, Save43); outp(0x61, Save61); /****************************************************************/ /***** Pause *****/ /****************************************************************/ void Pause(int PZeit) delay(PZeit * 30); void SoundOn() void MakeSound(unsigned SoundFreq) void MakeSound(unsigned SoundFreq) void SoundOff() void Pause(int PZeit) switch (operand) { case MULTIPLY: x *= y; break; case DIVIDE: x /= y; break; case ADD: x += y; break; case SUBTRACT: x -= y; break; case INCREMENT2: x++; case INCREMENT1: x++; break; case EXPONENT: case ROOT: case MOD: printf("Nichts berechnet!\n"); break; default: printf("Fehler!\n"); exit(1); union REGS inregs, outregs; struct SREGS segregs; XAdrArray = XArray; crtpage[20][10].ch = 'A'; crtpage[20][10].at = 7; WriteCharXY( 1, 2, 3, 4); crtpage[1][1].ch = 'A'; WriteTextXY(55+4, 5+5, "demn chst in"); union REGS inregs, outregs; struct SREGS segregs; int lw; inregs.h.ah = 0x47; /* aktuelles Verzeichnis ermitteln */ inregs.h.dl = 0x00; /* aktuelles Laufwerk */ inregs.x.si = FP_OFF( directory ); /* Offset Puffer */ segregs.ds = FP_SEG( directory ); /* Segment Puffer */ (void) int86x( 0x21, &inregs, &outregs, &segregs ); union REGS regs; regs.h.ah = 2; /* Subfunktion Cursor postionieren regs.h.dh = y; regs.h.dl = x; regs.h.bh = 0; /* Videoseite Nr. 0 */ int86(VIDEO, ®s, ®s); union REGS inregs, outregs; struct SREGS segregs; int lw; inregs.h.ah = 0x47; /* aktuelles Verzeichnis ermitteln */ inregs.h.dl = 0x00; /* aktuelles Laufwerk */ inregs.x.si = FP_OFF( directory ); /* Offset Puffer */ segregs.ds = FP_SEG( directory ); /* Segment Puffer */ (void) int86x( 0x21, &inregs, &outregs, &segregs ); regs.h.ah = 2; /* Subfunktion Cursor postionieren regs.h.dh = y; regs.h.dl = x; regs.h.bh = 0; /* Videoseite Nr. 0 */ int86(VIDEO, ®s, ®s); union REGS regs; regs.h.ah = 2; /* Subfunktion Cursor postionieren regs.h.dh = y; regs.h.dl = x; regs.h.bh = 0; /* Videoseite Nr. 0 */ int86(VIDEO, ®s, ®s); /*------------------------------------------------------ */ union REGS regs; regs.h.ah = 2; /* Subfunktion Cursor postionieren regs.h.dh = y; regs.h.dl = x; regs.h.bh = 0; /* Videoseite Nr. 0 */ int86(VIDEO, ®s, ®s); /* ------------------------------------------------------ */ for (ende = len; ende > 0; ende-= n) { for ( i = 0; i < ende; i+= n ) z1 = String[i]; z2 = String[i+n]; if ( z1 > z2 ) { strncpy( h_String, String+i+n, n); strncpy( String+i+n, String+i, n); strncpy( String+i, h_String, n); } } /*----- Zweite Stufe, zweiter Buchstabe ebenfalls sortieren ----*/ for (ende = len; ende > 0; ende-= n) { for ( i = 0; i < ende; i+= n ) z1 = String[i]; z2 = String[i+n]; zz1 = String[i+1]; zz2 = String[i+n+1]; if ( (z1 == z2) && ( zz1 > zz2) ) { strncpy( h_String, String+i+n, n); strncpy( String+i+n, String+i, n); strncpy( String+i, h_String, n); } } an den DMV-Verlag Bestellungen sind an den DMV-Verlag /* **************************************************** Erzeugt einen Piepton int cpiep() int i; for (i=0; i<=1000; i++) { sound(i); nosound(); delay(1); } return(OK);