/* c programm wie cli why aber der fehlercode muß mit angegeben werden.

   aufgetretene fehler:
                        semikolon hinter for schleifen klammer

Martin und Christoph Franzen Bonifatiusstr.70 4130 Moers Asberg

*/

char * tab = "\n         " ;
char * abh = "\nABHILFE: " ;

                      void main ( argc , argv )

int argc ;            /* anzahl der argumente */
char * argv [ ] ;     /* argumente (mit aufrufprg hä */

{
 char * zahl ;
 int  fehler [ 4 ] ;
 int  i ;

 zahl = argv [ 1 ] ;

 if ( argc == 2 ) {            /* genau 2 argumente */
    if ( * zahl != '?' ) {
       for ( i = 0 ; i < 3 ; i ++ )
           fehler [ i ] = ( * ( zahl + i ) - '0' ) ;

       for ( i = 0 , fehler [ 3 ] = 0 ; i < 3 && fehler [ i ] > -1 ; i ++ )
           fehler [ 3 ] = ( fehler [ 3 ] * 10 ) + fehler [ i ] ;

       switch ( fehler [ 3 ] ) {


         case 103: printf ( "%sKEIN FREIER SPEICHER MEHR VERFüGBAR!\n" , tab ) ;
                   printf ( "%sAlle nicht benötigten Fenster schließen.", abh ) ;
                   printf ( "%sNicht benötigte Files aus der Ram Disk löschen." , tab ) ;
                   printf ( "%sNicht benötigte Programme beenden." , tab ) ;
                   printf ( "%sevt. das System neu starten." , tab ) ;
                   printf ( "%sSpeichererweiterung kaufen (und anschließen).\n" , tab ) ;
         break ;

         case 104: printf ( "%sZU VIELE CLI-FENSTER GEÖFFNET!\n" , tab ) ;
                   printf ( "%sAmiga-DOS verwaltet maximal zwanzig aktive CLI-Prozesse." , abh ) ;
                   printf ( "%sNoch einen Amiga dazukaufen.\n" , tab ) ;
         break ;

         case 120: printf ( "%sFEHLER IN DER BEFEHLSZEILE BZW, BEFEHLSZEILE ZU LANG.\n" , tab ) ;
                   printf ( "%sZeile noch mal durchlesen und Fehler korrigieren.\n" , abh ) ;
         break ;

         case 121: printf ( "%sDATEI NICHT LADBAR!\n" , tab ) ;
                   printf ( "%sDatei mit Hauptprogramm laden.\n" , abh ) ;
         break ;

         case 122: printf ( "%sFEHLER IN LIBRARY!\n" , tab ) ;
                   printf ( "%sProgramm mit neuester Workbench starten.\n" , abh ) ;
         break ;

         case 202: printf ( "%sGLEICHZEITIGER LESE UND SCHREIBZUGRIFF AUF DIE BENUTZTE DATEI!\n" , tab ) ;
                   printf ( "%sDatei von dem Programm schließen lassen welches sie geöffnet hat." , abh ) ;
                   printf ( "%sPrüfen ob das Verzeichnis mit assign,cd oder path ausgewählt wurde.\n" , tab ) ;
         break ;

         case 203: printf ( "%sDIESE DATEI ODER DAS VERZEICHNIS EXISTIERT BEREITS!\n" , tab ) ;
                   printf ( "%sEinen anderen Datei- oder Verzeichnisnamen verwenden." , abh ) ;
                   printf ( "%sAlte Datei oder altes Verzeichnis umbenennen oder löschen.\n" , tab ) ;
         break ;

         case 204: printf ( "%sVERZEICHNIS NICHT GEFUNDEN!\n" , tab ) ;
                   printf ( "%sBefehl auf Schreibfehler untersuchen.\n" , abh ) ;

         break ;

         case 205: printf ( "%DATEI ODER GERÄT NICHT GEFUNDEN!\n" , tab ) ;
                   printf ( "%sBefehl auf Schreibfehler untersuchen." , abh ) ;
                   printf ( "%sGucken ob die richtige Diskette im angesprochenen Laufwerk liegt.\n" , tab ) ;

         break ;

         case 206: printf ( "%sUNGÜLTIGE FENSTERDEFINITION!\n" , tab ) ;
                   printf ( "%sFensterparameter überprüfen und Befehlssyntax checken." , abh ) ;
                   printf ( "%sFensternamen auf Schreibfehler untersuchen.\n" , tab ) ;

         break ;

         case 209: printf ( "%sUNNBEKANNTER ANFORDERUNGSCODE!\n" , tab ) ;
                   printf ( "%sFalsche Verwendung von Gerätetreibern." , abh ) ;
                   printf ( "%sDOS-Handbuch lesen.\n" , tab ) ;

         break ;

         case 210: printf ( "%sDATEINAME ZU LANG ODER ENTHÄLT UNGÜLTIGE ZEICHEN!\n" , tab ) ;
                   printf ( "%sDateinamen dürfen nicht mehr als dreißig Buchstaben enthalten." , abh ) ;
                   printf ( "%sDer Slash und der Doppelpunkt sind nicht erlaubt. Bei anderen" , tab ) ;
                   printf ( "%sSonderzeichen oder Leerstellen im Dateinamen muß der Dateiname" , tab ) ;
                   printf ( "%sin Anführungszeichen stehen. Bei Anführungszeichen im Dateinamen" , tab ) ;
                   printf ( "%smuß vor dem Anführungszeichen ein Stern stehen. Bei einem Stern im" , tab ) ;
                   printf ( "%sDateinamen muß ein zweiter Stern vor den ersten gesetzt werden.\n" , tab ) ;
         break ;

         case 211: printf ( "%sNICHTGüLTIGE LOCKSTRUCKTUR!\n" , tab ) ;

         break ;

         case 212: printf ( "%sBEFEHLSSTRUCKTUR DES LETZTEN DOS-BEFEHLS WAR FALSCH!\n" , tab ) ;
                   printf ( "%sBefehle im DOS-Handbuch nachschlagen.\n" , abh ) ;

         break ;

         case 213: printf ( "%sDIE DISKETTENERKENNUNG IST NOCH NICHT ABGESCHLOSSEN!\n" , tab ) ;
                   printf ( "%sMit Schreibzugriffen auf eine neu eingelegte Diskette bis" , abh ) ;
                   printf ( "%szu einer Minute warten. Eventuell Diskette defekt.\n" , tab ) ;

         break ;

         case 214: printf ( "%sDISKETTE IST SCHREIBGESCHüTZT!\n" , tab ) ;
                   printf ( "%sSchreibschutz entfernen oder Disketteninhalt auf" , abh ) ;
                   printf ( "%sneue Diskette kopieren.\n" , tab ) ;

         break ;

         case 215: printf ( "%sUNGüLTIGE NAMENSÄNDERUNG!\n" , tab ) ;
                   printf ( "%sGeräte können nicht mit Rename umbenannt werden.\n" , abh ) ;

         break ;

         case 216: printf ( "%sVERZEICHNIS NICHT LEER!\n" , tab ) ;
                   printf ( "%sEin Verzeichnis kann nur dann mit Delete gelöscht werden," , abh ) ;
                   printf ( "%swenn es keine Dateien mehr enthält.\n" , tab ) ;

         break ;

         case 218: printf ( "%sLOGISCHES GERÄT NICHT AUFFINDBAR!\n" , tab ) ;
                   printf ( "%sGerätename auf Rechtschreibfehler untersuchen.\n" , abh ) ;

         break ;

         case 219: printf ( "%sSEEKBEFEHL ENTHÄLT UNGÜLTIGE PARAMETER!\n" , tab ) ;

         break ;

         case 220: printf ( "%sKOMMENTAR IST ZU LANG!\n" , tab ) ;
                   printf ( "%sEin Kommentar der mit dem Befehl Filenote erstellt wird," , abh ) ;
                   printf ( "%sdarf nicht mehr als achzig Zeichen lang sein.\n" , tab ) ;

         break ;

         case 221: printf ( "%sDISKETTE IST VOLL!\n" , tab ) ;
                   printf ( "%sDiskette durch neue mit freiem Speicherplatz ersetzen.\n" , abh ) ;

         break ;

         case 222: printf ( "%sDATEI LöSCHGESCHüTZT!\n" , tab ) ;
                   printf ( "%sMit dem Befehl Protect den Dateistatus D setzen.\n" , abh ) ;

         break ;

         case 223: printf ( "%sIN DIE DATEI KANN NICHT GESCHRIEBEN WERDEN!\n" , tab ) ;
                   printf ( "%sMit dem Befehl Protect den Dateistatus W setzen.\n" , abh ) ;

         break ;

         case 224: printf ( "%sDATEI IST LESEGESCHüTZT!\n" , tab ) ;
                   printf ( "%sMit dem Befehl Protect den Dateistatus R setzen.\n" , abh ) ;

         break ;

         case 225: printf ( "%sDISKETTE NICHT IM AMIGADOS FORMAT!\n" , tab ) ;
                   printf ( "%sAutoboot-Diskette mit speziellem Aufzeichnungsformat oder" , abh ) ;
                   printf ( "%sdefekt.\n" , tab ) ;

         break ;

         case 226: printf ( "%sKEINE DISKETTE IM LAUFWERK!\n" , tab ) ;
                   printf ( "%sÜberprüfen ob die Diskette richtig im Laufwerk liegt.\n" , abh ) ;

         break ;

         case 232: printf ( "%sIM VERZEICHNIS EXISTIEREN KEINE WEITEREN DATEIEINTRäGE!\n" ,  tab ) ;

         break ;

         default:  printf ( "%sLeider kenne ich keinen Fehler mit der Nummer %d.\n" ,
                            tab , fehler [ 3 ] ) ;
         break ;



       }    /* ende switch */

    } else        /* if zahl */
       printf ( "%sAUFRUF: Hä Fehlernummer\n" , tab ) ;
 } else {       /* ende if argc */
    printf ( "%sFalscher Aufruf!!!!!!" , tab ) ;
    printf ( "%sHä Fehlernummer\n" , tab ) ; }

}       /* main ende */

