[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

high-speed serial connections



Hi to everyone!
Since I recently had to change my internet provider (well, I left university)
I had to configure everything to establish PPP connections over serial links.
When configuring the KGMD package I discovered that the highest speed actually
supported by the MiNT kernel (Free-MiNT 1.12.6) is 38400bps - too slow for
actual highspeed modems.
So here are my changes to the MiNT-kernel and the .h-files to support speeds of
up to 230400bps. I think that should be enough for the next time (actually I
don't know of any faster serial ST interface).
The changes are tested with an underlaying HSMODEM07 (at least when using
HSMODEM06 the system crashed after transferring a few html pages with CAB!) and
an RS-Speed hardware extension for my MEGA ST.

Just try it out (remember - you have to recompile pppd and any other program
using the serial interface!) and let me know. My actual EMail addresses are
Torsten.Lang@jung.de
Torsten.Lang@ap.physik.uni-giessen.de (will expire in a few weeks!)

And, please notice: I don't have subscribed to the MiNT mailing list - so I
only will receive your answers by EMail.

Have fun,
    Torsten

P. S. there are some other things to mention:
      1. gcc passes wrong values for sozeof()!!!
         Every version of gcc including 2.7.2 (the port of Frank Naumann)
         round the sizeof value of structures to even values (word boundary).
         This behaviour causes big trouble in many cases (e. g. my port of
         mkisofs-1.05 - a ISO9660 + RRIP formatter will not work when compiled
         with MiNT gcc! So I compiled it under Linux/68k gcc and only linked
         it with MiNT gcc).
         Dows anyone know a reason for this problem???
      2. The length of pathes and especially filenames is somewhat limited
         in the .h-files. When using names longer than 32 chars on a Minix FS
         my mkisofs port will do weird things or simply crash! That's not my
         fault!!! So if someone has the time left: Please change the values to
         more useful lengths - at least 64 chars for filenames and 256 chars
         for path lengths.
      3. At least: There seems to be still a bug concerning diskchange
         detection for non-BIOS-devices in MiNT: Steffen Engel's CDROM.XFS
         does not work properly with the actual MiNT versions! After the first
         diskchange I only get empty directories.
         Steffen states that this is a bug in MiNT and gave me some patches
         which at least didn't help.

-------- %< %< %< --------

begin 644 Changes.TL.tar.gz
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
+?_X)/F+6,P#(````
`
end