home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 04 / txl / 3_preis / fast / txl.dsk (.txt) < prev    next >
Turbo C Context File  |  1991-01-15  |  15KB  |  492 lines

  1. Turbo C Context File 
  2. TEXTBUF.C
  3. SCAN.C
  4. NEUUTIL.C
  5. NEUBEF.C
  6. MAININT.C
  7. INTUTIL.C
  8. INTGLOB.C
  9. INTERP.C
  10. INSPGLIN.C
  11. IBEFEHLE.C
  12. ERROR.C
  13. TEXTBUF.C
  14. SCAN.C
  15. NEUUTIL.C
  16. NEUBEF.C
  17. MAININT.C
  18. INTUTIL.C
  19. INTGLOB.C
  20. INTERP.C
  21. INSPGLIN.C
  22. IBEFEHLE.C
  23. ERROR.C
  24. C:\TC\BIN\*.*
  25. E:*.*
  26. C:*.*
  27. A:*.C
  28. C:\TC\AKTUELL\*.C
  29. E:\TC\*.C
  30. E:*.C
  31. E:*.H
  32. E:\INTERPRE\MERLE\*.H
  33. E:\INTERPRE\MERLE\*.TXL
  34.  void *.c 
  35. void *.c
  36. answer
  37. detectgraph
  38. getsign
  39. Alles
  40. alles
  41. Answer
  42. *.OBJ
  43. E:\INTERPRE\MERLE\FAST\MAININT.C
  44. E:\INTERPRE\MERLE\FAST\NEUUTIL.C
  45. E:\INTERPRE\MERLE\FAST\INTERP.H
  46. E:\INTERPRE\MERLE\FAST\SCAN.C
  47. E:\INTERPRE\MERLE\FAST\INTPROT.H
  48. E:\INTERPRE\MERLE\FAST\INTGLOB.C
  49. E:\INTERPRE\MERLE\FAST\INTERP.C
  50. E:\INTERPRE\MERLE\FAST\NEUBEF.C
  51. E:\INTERPRE\MERLE\FAST\INTGLOB.C
  52. E:\INTERPRE\MERLE\FAST\INTERP.H
  53. E:\INTERPRE\MERLE\FAST\HILFE.TXL
  54. E:\INTERPRE\MERLE\FAST\INTGLOB.C
  55. E:\INTERPRE\MERLE\FAST\INTERP.C
  56. E:\INTERPRE\MERLE\FAST\INTERP.C
  57. E:\INTERPRE\MERLE\FAST\INTERP.C
  58. E:\INTERPRE\MERLE\FAST\INTGLOB.C
  59. E:\INTERPRE\MERLE\FAST\INTERP.H
  60. E:\INTERPRE\MERLE\FAST\INTPROT.H
  61. E:\INTERPRE\MERLE\FAST\NEUBEF.C
  62. /void sinus(dword winkel);
  63. //---- Funktions-Prototypen --------------------------------
  64. //---- Funktions-Prototypen --------------------------------
  65. void main()
  66. //---- Funktions-Prototypen --------------------------------
  67. ;              
  68.  SINUS 
  69.             
  70.                                   
  71.       Autor: Ulrich Schmitz & toolbox 1990             
  72.    Compiler: Turbo C++                                 
  73.     EINGABE: 4-Byte Winkelwert                         
  74.     AUSGABE: Sinus (RAD) des Winkelwertes als DWORD    
  75.              bzw. FLOAT-Wert                           
  76.    Funktion: Berechnet den Sinus zu einem vorgegebenen 
  77.              Winkel.                                   
  78. ;              
  79.  SINUS 
  80.             
  81.                                   
  82.       Autor: Ulrich Schmitz & toolbox 1990             
  83.    Compiler: Turbo C++                                 
  84.      AUFRUF: dword sinus(dword winkel);                
  85.     EINGABE: 4-Byte Winkelwert.                        
  86. CKGABE: Sinus (RAD) des Winkelwertes als DWORD    
  87.              bzw. float oder long-Wert.                
  88.    Funktion: Berechnet den Sinus zu einem vorgegebenen 
  89.              Winkel.                                   
  90. ;              
  91.  COPROZESSOR 
  92.             
  93.                             
  94.       Autor: Ulrich Schmitz & toolbox 1990             
  95.   Assembler: Microsoft Assembler ab Version 5.1        
  96.      AUFRUF: byte coprozessor(void);                   
  97.     EINGABE: keine.                                    
  98. CKGABE: 0 --> kein Coprozessor vorhanden.         
  99.              1 --> Coprozessor installiert.            
  100.    Funktion: Pr
  101. ber den BIOS-Interrupt 11h sowie   
  102.              direkt, ob ein Coprozessor vorhanden ist. 
  103. byte coprozessor(void)
  104.  dword Testwert = 0x0F, Ergebnis; // Beliebiger Testwert
  105.  byte Coproz;
  106.  union REGS regs;
  107. // Abfrage des Konfigurationsbytes 
  108. ber BIOS-Funktion 11h
  109.  int86(0x11, ®s, ®s);
  110.  Coproz = regs.h.al << 6;
  111.  Coproz = Coproz >> 7;
  112. // Wenn BIOS-Test auf Coprozessor negativ direkter Test
  113. // (siehe auch toolbox 10'90, Seite 80-81, 80x87 Init.)
  114.  if (!Coproz)
  115.   asm FINIT;
  116.   asm FLD Testwert;
  117.   asm FMUL ST,ST
  118.   asm FST Ergebnis;
  119.   if(Ergebnis == (Testwert*Testwert))
  120.       Coproz = 1;
  121.  else printf("\n Coprozessor wurde vom BIOS erkannt!\n");
  122.  return Coproz;
  123.  Taste 
  124.  K    
  125.  L    
  126.  M    
  127.  N    
  128.  O    
  129.  P    
  130.  Q    
  131.  R    
  132.  S    
  133.  T    
  134.  Ctrl  
  135.  250B 
  136.  260C 
  137.  320D 
  138.  310E 
  139.  180F 
  140.  1910 
  141.  1011 
  142.  1312 
  143.  1F13 
  144.  1414 
  145.  Alt   
  146.  2500 
  147.  2600 
  148.  3200 
  149.  3100 
  150.  1800 
  151.  1900 
  152.  1000 
  153.  1300 
  154.  1F00 
  155.  1400 
  156.  Taste 
  157.  K    
  158.  L    
  159.  M    
  160.  N    
  161.  O    
  162.  P    
  163.  Q    
  164.  R    
  165.  S    
  166.  T    
  167.  Ctrl  
  168.  250B 
  169.  260C 
  170.  320D 
  171.  310E 
  172.  180F 
  173.  1910 
  174.  1011 
  175.  1312 
  176.  1F13 
  177.  1414 
  178.  Alt   
  179.  2500 
  180.  2600 
  181.  3200 
  182.  3100 
  183.  1800 
  184.  1900 
  185.  1000 
  186.  1300 
  187.  1F00 
  188.  1400 
  189.  Taste 
  190.  F1   
  191.  F2   
  192.  F3   
  193.  F4   
  194.  F5   
  195.  F6   
  196.  F7   
  197.  F8   
  198.  F9   
  199.  F10  
  200.  Ohne  
  201.  3B00 
  202.  3C00 
  203.  3D00 
  204.  3E00 
  205.  3F00 
  206.  4000 
  207.  4100 
  208.  4200 
  209.  4300 
  210.  4400 
  211.  Shift 
  212.  5400 
  213.  5500 
  214.  5600 
  215.  5700 
  216.  5800 
  217.  5900 
  218.  5A00 
  219.  5B00 
  220.  5C00 
  221.  5D00 
  222.  Ctrl  
  223.  5E00 
  224.  5F00 
  225.  6000 
  226.  6100 
  227.  6200 
  228.  6300 
  229.  6400 
  230.  6500 
  231.  6600 
  232.  6700 
  233.  Alt   
  234.  6800 
  235.  6900 
  236.  6A00 
  237.  6B00 
  238.  6C00 
  239.  6D00 
  240.  6E00 
  241.  6F00 
  242.  7000 
  243.  7100 
  244.  Taste 
  245.  A    
  246.  B    
  247.  C    
  248.  D    
  249.  E    
  250.  F    
  251.  G    
  252.  H    
  253.  I    
  254.  J    
  255.  Ctrl  
  256.  1E01 
  257.  3002 
  258.  2E03 
  259.  2004 
  260.  1205 
  261.  2106 
  262.  2207 
  263.  2308 
  264.  1709 
  265.  240A 
  266.  Alt   
  267.  1E00 
  268.  3000 
  269.  2E00 
  270.  2000 
  271.  1200 
  272.  2100 
  273.  2200 
  274.  2300 
  275.  1700 
  276.  2400 
  277. #pragma startup test();
  278. #pragma exit test() 100;
  279. char test(void)
  280.  printf("\nTest\");
  281.  getch();
  282.  #pragma option [optionen...]
  283. Setzen Sie dieses Pragma ein, wenn Sie
  284. Optionen f
  285. r den Kommandozeilen-Compiler
  286. gleich mit in den Quelltext aufnehmen wollen.
  287. Folgende Optionen d
  288. rfen nicht in dieser
  289. Direktive verwendet werden:
  290.   -B             -Ifff      -Q
  291.   -c             -Lfff      -S
  292.   -dxxx          -lxset     -Uxxx
  293.   -Dxxx = ccc    -M         -V
  294.   -efff          -o         -Y
  295. Die folgenden Kommandozeilen-Optionen k
  296. nur vor #if, #ifdef, #ifndef und #elif
  297. Direktiven und vor der ersten C oder C++
  298. Deklaration stehen:
  299.  jede Flie
  300. komma-Option au
  301. er -ff
  302.  jede Speichermodell-Option
  303.  -Efff
  304.  -nddd
  305.  -offf
  306. Diese Optionen beeinflussen den Compiler nur,
  307. wenn sie zwischen Funktions- und anderen
  308. Objekt-Deklarationen ge
  309. ndert werden:
  310.   -1    -k    -r
  311.   -2    -N    -rd
  312.   -a    -O    -v
  313.   -ff   -P    -y
  314. Die folgenden Optionen k
  315. nnen zu jeder Zeit
  316. ndert werden und wirken sich sofort aus:
  317.   -A    -gn     -wxxx
  318.   -C    -jn
  319.   -d    -K
  320. Hinweis: -wxxx entspricht #pragma warn.
  321. InsertText(/******* Anfang              ******************************/\n);
  322. /*             ---------
  323.  --------------- SINUS -------------------------------------
  324.  -             ---------                                   -
  325.  -       Autor: Ulrich Schmitz & toolbox 1990              -
  326.  -    Compiler: Turbo C++                                  -
  327.  -      AUFRUF: dword sinus(dword winkel);                 -
  328.  -     EINGABE: 4-Byte Winkelwert.                         -
  329.  -    R
  330. CKGABE: Sinus (RAD) des Winkelwertes als dword     -
  331.  -              bzw. float oder long-Wert.                 -
  332.  -    Funktion: Berechnet den Sinus zu einem vorgegebenen  -
  333.  -              Winkel.                                    -
  334.  -----------------------------------------------------------
  335. int m_print(char *Fname)
  336. int m_installed (void)
  337. int m_print(char *Fname)
  338. int m_installed (void)
  339. void SoundOn()
  340. void MakeSound(unsigned SoundFreq)
  341. void MakeSound(unsigned SoundFreq)
  342. void SoundOff()
  343. void Pause(int PZeit)
  344. /****************************************************************/
  345. /*****                        SoundOn                       *****/
  346. /****************************************************************/
  347. void SoundOn()
  348.   Save42 = inp(0x42);
  349.   Save43 = inp(0x43);
  350.   Save61 = inp(0x61);
  351.   outp(0x43, 182);
  352. /****************************************************************/
  353. /*****                       MakeSound                      *****/
  354. /****************************************************************/
  355. void MakeSound(unsigned SoundFreq)
  356.   outp(0x42, (unsigned char)(1193180 / SoundFreq) & 0xFF);
  357.   outp(0x42, (unsigned char)(((1193180 / SoundFreq) & 0xFF00) / 256) & 0xFF);
  358.   outp(0x61, inp(0x61) | 0x03);
  359. /****************************************************************/
  360. /*****                        NoNoise                       *****/
  361. /****************************************************************/
  362. void NoNoise()
  363.   outp(0x61, inp(0x61) & 0xFC);
  364. /****************************************************************/
  365. /*****                        SoundOff                      *****/
  366. /****************************************************************/
  367. void SoundOff()
  368.   outp(0x42, Save42);
  369.   outp(0x43, Save43);
  370.   outp(0x61, Save61);
  371. /****************************************************************/
  372. /*****                        Pause                         *****/
  373. /****************************************************************/
  374. void Pause(int PZeit)
  375.   delay(PZeit * 30);
  376. void SoundOn()
  377. void MakeSound(unsigned SoundFreq)
  378. void MakeSound(unsigned SoundFreq)
  379. void SoundOff()
  380. void Pause(int PZeit)
  381.  switch (operand) {
  382.   case MULTIPLY:   x *= y; break;
  383.   case DIVIDE:     x /= y; break;
  384.   case ADD:        x += y; break;
  385.   case SUBTRACT:   x -= y; break;
  386.   case INCREMENT2: x++;
  387.   case INCREMENT1: x++;    break;
  388.   case EXPONENT:
  389.   case ROOT:
  390.   case MOD:       printf("Nichts berechnet!\n");
  391.                   break;
  392.   default:        printf("Fehler!\n");
  393.                   exit(1);
  394.  union REGS inregs, outregs;
  395. struct SREGS segregs;
  396.  XAdrArray = XArray;
  397.  crtpage[20][10].ch = 'A';
  398.  crtpage[20][10].at = 7;
  399. WriteCharXY( 1, 2, 3, 4);
  400. crtpage[1][1].ch = 'A';
  401.  WriteTextXY(55+4, 5+5, "demn
  402. chst in");
  403.  union REGS inregs, outregs;
  404.  struct SREGS segregs;
  405.  int lw;
  406.  inregs.h.ah = 0x47;    /* aktuelles Verzeichnis ermitteln  */
  407.  inregs.h.dl = 0x00;    /* aktuelles Laufwerk               */
  408.  inregs.x.si = FP_OFF( directory );  /* Offset  Puffer      */
  409.  segregs.ds  = FP_SEG( directory );  /* Segment Puffer      */
  410.  (void) int86x( 0x21, &inregs, &outregs, &segregs );
  411. union REGS regs;
  412. regs.h.ah = 2;  /* Subfunktion 
  413. Cursor
  414.                    postionieren
  415. regs.h.dh = y;
  416. regs.h.dl = x;
  417. regs.h.bh = 0;  /* Videoseite Nr. 0 */
  418. int86(VIDEO, ®s, ®s);
  419.  union REGS inregs, outregs;
  420.  struct SREGS segregs;
  421.  int lw;
  422.  inregs.h.ah = 0x47;    /* aktuelles Verzeichnis ermitteln  */
  423.  inregs.h.dl = 0x00;    /* aktuelles Laufwerk               */
  424.  inregs.x.si = FP_OFF( directory );  /* Offset  Puffer      */
  425.  segregs.ds  = FP_SEG( directory );  /* Segment Puffer      */
  426.  (void) int86x( 0x21, &inregs, &outregs, &segregs );
  427.    regs.h.ah = 2;  /* Subfunktion 
  428. Cursor
  429.                       postionieren
  430.    regs.h.dh = y;
  431.    regs.h.dl = x;
  432.    regs.h.bh = 0;  /* Videoseite Nr. 0 */
  433.    int86(VIDEO, ®s, ®s);
  434. union REGS regs;
  435. regs.h.ah = 2;  /* Subfunktion 
  436. Cursor
  437.                    postionieren
  438. regs.h.dh = y;
  439. regs.h.dl = x;
  440. regs.h.bh = 0;  /* Videoseite Nr. 0 */
  441. int86(VIDEO, ®s, ®s);
  442. /*------------------------------------------------------ */
  443.    union REGS regs;
  444. regs.h.ah = 2;  /* Subfunktion 
  445. Cursor
  446.                    postionieren
  447. regs.h.dh = y;
  448. regs.h.dl = x;
  449. regs.h.bh = 0;  /* Videoseite Nr. 0 */
  450. int86(VIDEO, ®s, ®s);
  451. /* ------------------------------------------------------ */
  452.  for (ende = len; ende > 0; ende-= n)
  453.       {
  454.    for ( i = 0; i < ende; i+= n )
  455.      z1 = String[i];
  456.      z2 = String[i+n];
  457.      if ( z1 > z2 )
  458.          {
  459.           strncpy( h_String, String+i+n, n);
  460.           strncpy( String+i+n, String+i, n);
  461.           strncpy( String+i, h_String, n);
  462.          }
  463.      }
  464.  /*----- Zweite Stufe, zweiter Buchstabe ebenfalls sortieren ----*/
  465.    for (ende = len; ende > 0; ende-= n)
  466.       {
  467.    for ( i = 0; i < ende; i+= n )
  468.      z1 = String[i];
  469.      z2 = String[i+n];
  470.      zz1 = String[i+1];
  471.      zz2 = String[i+n+1];
  472.      if ( (z1 == z2) && ( zz1 > zz2) )
  473.          {
  474.           strncpy( h_String, String+i+n, n);
  475.           strncpy( String+i+n, String+i, n);
  476.           strncpy( String+i, h_String, n);
  477.          }
  478.      }
  479. an den DMV-Verlag
  480. Bestellungen sind an den DMV-Verlag 
  481. /* ****************************************************
  482.     Erzeugt einen Piepton
  483. int cpiep()
  484.   int i;
  485.   for (i=0; i<=1000; i++)
  486.       {
  487.        sound(i);
  488.        nosound();
  489.        delay(1);
  490.       }
  491. return(OK);
  492.