| |
DL5FBD > SP 18.03.99 00:02l 61 Lines 2407 Bytes #-9967 (0) @ DL
BID : 173933DB0GV
Read: DG1FCQ GUEST
Subj: Zu DG0OBR's SP und HIMEM-Problem (RS232-INT-Overlaycrash)
Path: DB0MW<DB0AIS<DB0GV
Sent: 990317/2034z @:DB0GV.#HES.DEU.EU [Frank4t/Mtl OP:DF5FF] $:173933DB0GV
de DL5FBD @ DB0GV.#HES.DEU.EU (Gerd-Michael)
to SP @ DL
-----BEGIN PGP SIGNED MESSAGE-----
Hallo SP-Anwender
Die FAT ist vermutlich nicht zerschossen worden, sondern es sind Datei-
fehler wie verlorene Cluster nach einem SP-Absturz entstanden.
Die Ursache ist mir leider auch schon lange bekannt. SP verwendet ein
Programmoverlaysystem, das heisst es wird nicht der gesammte SP-code in
den Speicher geladen, sondern nur ein Teil und benoetigte Codesegmente
werden dynamisch nachgeladen.
Bei einem Programmfehler der zum Abbruch durch die RUN-Bibliothek des
von DK$NB verwendeten Compiler fuehrt (je nach SP-Version Turbo C oder
Borland C) stuerzt diese Gebilde unkontrolliert ab.
Einer der toedlichsten Fehler in SP ist, das die Interruptroutine fuer
die RS232 nicht ueber einen Fehlerhandler abgeschlossen wird, so dass
dynamisch auf den Speicherplatz der RS232-INT-Handlerroutine noch ande-
rer Code geladen wird.
Trifft jetzt ein RS232-Interrupt ein, dann ist stuerzt das gesammte DOS
System ins Nirvana ab, da kein Interrupthandler mehr existiert, sondern
wild in den nachgeladenen Code auf der ehemaligen INT-Handleradresse
verzweigt wird.
Ich hatte vor laengerer Zeit ein Tool geschrieben, das bei DOS-Program-
men eine nicht deinitialisierte RS232 schliesst. Dieses Tool lud das
Terminal als Kindprogramm buckepack. Es funktionierte bei fast allen
Terminalprogrammen, nur bei den letzten Versionen von SP nicht mehr,
wenn waehrend des Absturzes noch ein Zeichen auf der RS232 empfangen
wurde. Ursache ist, das andere Programme nicht ihre INT-Routine ueber-
schrieben und diese daher auch beim Programmverlassen noch die INTs be-
arbeiten konnte.
Mit einem DEBUG-Monitor konnte man noch die Overlayaktivitaet erkennen,
bevor ein Abstuerzendes SP das DOS ins Verderben riss.
Das ist die Ursache, warum nach SP-Crash die Dateitruemmer auftreten.
Der Speichermanagerfehler duerfte daran liegen, dass von SP angeforder-
te Speicherseiten via HIMEM.SYS nicht mehr freigegeben wurden, so das
die DOS Speicherverwaltung inkonsistent wurde.
73 de Gerd Michael
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: cp850
iQCVAwUBNvARtxViWyGpK3MJAQFBgQP/ZmcGp2dOcIOuMSHMX8uubFcZu8wcRDAQ
8YpVRBKZviN6hHKmogjnGJpf9FhrtzsSrB3S8x4Ee7itg9MBottCV8OA6BNNSNBy
YnVZFWkJlMRyzCvlMzdSTTbm7G/YYonugfL6RwzrYN0gbJjTw/KtAToSGYspEQLv
lGh8B6ZogEY=
=Y0Lv
-----END PGP SIGNATURE-----
Read previous mail | Read next mail
| |