Die form_error-Funktion ist erweitert worden, so daß für sämtliche GEMDOS-Fehler eine vernünftige Nachricht bei einem Aufruf von form_error ausgegeben werden kann.
Ein form_error()-Code berechnet sich aus einem GEMDOS-Fehlercode durch:
formcode = ~gemdoscode - 30
~ ist bitweises NOT
In der Tabelle "form_error-Codes" werden alle möglichen form_error-Codes den entsprechenden GEMDOS-Fehlern gegenübergestellt. In der ersten Spalte steht der form_error-Code und der Name des zugehörigen Objektes in der Systemressource, in der zweiten Spalte der entsprechende GEMDOS-Fehler und in der dritten Spalte eine kurze Beschreibung des Fehlers.
Bitte beachten Sie, daß nicht allen form_error-Codes ein GEMDOS-Fehler zugeordnet ist.
Code | GEMDOS-Fehler | Bedeutung |
0 ERR_TOSERR | !~ | |
1 ERR_INVFN | -32 EINVFN | invalid function |
2 ERR_NOTFOUND | -33 EFILNF | file not found |
3 ERR_NOTFOUND | -34 EPTHNF | path not found |
4 ERR_NHNDL | -35 ENHNDL | no more handles |
5 ERR_ACCDN | -36 EACCDN | access denied |
6 ERR_IHNDL | -37 EBADF | invalid handle |
8 ERR_NSMEM | -39 ENSMEM | insufficient memory |
9 ERR_IMBA | -40 EIMBA | invalid memory block address |
15 ERR_DRIVE | -46 EDRIVE | invalid drive specification |
17 ERR_XDEV | -48 EXDEV | cross device rename |
18 ERR_NOTFOUND | -49 ENMFIL | no more files (fsnext) |
27 ERR_LOCKING | -58 ELOCKED | record is locked already |
28 ERR_LOCKING | -59 ENSLOCK | invalid lock removal request |
33 ERR_TOSERR | -64 ERANGE | range error |
34 ERR_INTRN | -65 EINTRN | internal error |
35 ERR_PLFMT | -66 EPLFMT | invalid program load format |
36 ERR_GSBF | -67 EGSBF | memory block growth failure |
49 ERR_LOOP | -80 ELOOP | too many symbolic links |
50 ERR_PIPE | -81 EPIPE | write to a broken pipe |
Jedem der verschiedenen form_errors entspricht auch eine entsprechende Alertbox in der Systemressourcedatei N_AESSYS.RSC, deren symbolische Konstante mit 'ERR_' beginnt und auch in der Tabelle "form_error-Codes" in der ersten Spalte angegeben ist.