home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / mint / mint095s / changes < prev    next >
Text File  |  1993-08-03  |  66KB  |  1,805 lines

  1. Changes are listed in *reverse* order, most recent changes being
  2. first.
  3.  
  4. version 0.95
  5.  
  6. PATCHLEVEL13::
  7.  
  8. proto.h,filesys.c:
  9.     Added Alex's patches for Lattice.
  10.  
  11. PATCHLEVEL12::
  12.  
  13. dosdir.c:
  14.     Fsnext() on symbolic links was broken, because
  15.     relpath2cookie no longer checks drive letters
  16.     unless "depth" is > 0. Fixed this.
  17. main.c,filesys.c:
  18.     Added support for putting the mint.cnf file
  19.     and any *.XFS files into the directory \mint.
  20. dos.c:
  21.     Added Pgeteuid() and Pgetegid() system calls.
  22. main.c:
  23.     Fixed the "set current directory" code to
  24.     work properly.
  25. main.c:
  26.     Added a sanity check; if GEM is already running,
  27.     don't try to run it again.
  28. procfs.c:
  29.     Added FIONWRITE and FIONREAD ioctl calls.
  30. proc.c,bios.c:
  31.     Fixed the type of the critical error handler.
  32. dosfile.c,file.h,proc.c:
  33.     Added Alex's patches for O_APPEND and O_NOINHERIT.
  34. shmfs.c:
  35.     Fixed lseek() on shared memory segments, and added
  36.     FIONWRITE and FIONREAD ioctl calls.
  37. fasttext.c:
  38.     Tried once again to tame the wild cursor.
  39. dosmem.c,proc.c:
  40.     Modified process startup code so that PROC structures are no
  41.     longer kept forever by the kernel (which should help alleviate
  42.     memory fragmentation problems a bit).
  43.  
  44. PATCHLEVEL11::
  45.  
  46. dosmem.c:
  47.     Applied Alex Kiernan's SIGTRAP bug fix (and kicked myself for
  48.     forgetting C's precedence rules; thanks, Alex!).
  49. filesys.c:
  50.     Fixed relpath2cookie so that names like "C:\Z:" aren't
  51.     interpreted as referring to drive Z:.
  52. fasttext.c:
  53.     Restored the "turn on cursor when opening()" code, because
  54.     without it the fasttext driver and BIOS aren't in sync.
  55. main.c:
  56.     Moved the check for the presence of an already existing MiNT
  57.     cookie to earlier in the initialization process, so that
  58.     the error message can be printed properly.
  59. shmfs.c:
  60.     Fixed Dpathconf() on U:\SHM (filenames are truncated automatically
  61.     on that file system) and corrected the comment there.
  62. syscall.s:
  63.     New function, call_aes, used to check for the presence of GEM
  64.     (so we can tell whether or not we're running from the AUTO folder).
  65. main.c:
  66.     Run any programs which come after mint.prg in the AUTO
  67.     folder.
  68. version.h:
  69.     Changed so that the patchlevel is always printed on boot-up.
  70.  
  71. PATCHLEVEL10::
  72.  
  73. unifs.c:
  74.     Add U:\SHM as an interface for shared memory.
  75. shmfs.c:
  76.     New file system for doing shared memory.
  77. xbios.c:
  78.     Fixed Bconmap() to always return an error if the underlying
  79.     TOS doesn't support Bconmap.
  80. main.c:
  81.     Fixed a bug in the argument parsing code for the "exec"
  82.     command in mint.cnf.
  83. dosdir.c:
  84.     Changed Dlock() to return ELOCKED if an attempt is made to
  85.     lock a drive that's already locked, and ENSLOCK if an attempt
  86.     is made to remove a non-existent lock.
  87. version.h:
  88.     I forgot again to update this. Aargh!
  89.  
  90. PATCHLEVEL9::
  91.  
  92. mem.c,mem.h:
  93.     Align everything on 16 byte boundaries.
  94. mem.c,dosmem.c:
  95.     Actually fix the "memory being allocated twice" bug.
  96.     The problem was that setting m->links to 0 before calling
  97.     attach_region was a no-no.
  98.  
  99. PATCHLEVEL8::
  100.  
  101. mem.c:
  102.     Attempt to fix the strange "memory being allocated
  103.     twice" bug.
  104. tosfs.c:
  105.     Truncating names at 14 characters came *before* the
  106.     8.3 kludge, which meant that long names were being
  107.     interpreted incorrectly (e.g. gcc-cc1plus.ttp was
  108.     becoming "gcc-cc1p.tt"). Temporary kludge: only
  109.     truncate at 32 characters. Long term solution:
  110.     re-write this code to do the 8.3 truncation at the
  111.     same time as the truncation.
  112. main.c, proc.h:
  113.     Provide a more explicit type for criticerr.
  114. proc.c:
  115.     Don't make _logbase per-process if hardware scrolling
  116.     is active, since this makes for all kinds of weirdness!
  117. mem.c:
  118.     Allow NULL commandline to be the same as an empty
  119.     string. (It was acting this way before, due to the MiNT
  120.     library strncpy; now that we use our own strncpy some
  121.     programs were passing funny arguments.)
  122. dosmem.c:
  123.     Provide a more detailed trace of Pexec activity.
  124. mem.c:
  125.     Added a sanity check in get_region().
  126. proc.c:
  127.     Set the time/date stamp of process 0 to the
  128.     date & time when the system was booted.
  129. fasttext.c:
  130.     Commented out the code that turns the cursor
  131.     on when u:\dev\fasttext is opened.
  132. tty.c:
  133.     Unsigned characters are always >= 0, so we
  134.     don't need to check this.
  135.  
  136. PATCHLEVEL7::
  137.  
  138. makefile.lcc,mintlc.prj:
  139.     Added Alex's patches.
  140. assert.h:
  141.     Added Alex's patch to cast the result to void.
  142. filesys.c:
  143.     Make sure the file system media change routine
  144.     is called every time a disk change is forced;
  145.     this corrects the Dlock() bug (it wasn't forcing
  146.     media change as it should have).
  147. version.h:
  148.     Oops! I forgot to increment this for pl6, so
  149.     it jumps by 2 this time.
  150.  
  151. PATCHLEVEL6::
  152.  
  153. biosfs.c,pipefs.c,tty.c:
  154.     New Fcntl calls for controlling terminal baud
  155.     rates and flags such as parity and stop bits.
  156.     These have been integrated with the old TIOC*
  157.     calls where applicable.
  158. dosfile.c:
  159.     Changed Fcntl to make a call to tty_ioctl be the
  160.     default if the device is a terminal and the device
  161.     ioctl routine returns EINVFN.
  162. procfs.c, proc.c:
  163.     The date/time stamp of a process now shows when the
  164.     process was started, rather than being the number
  165.     of seconds of CPU time used.
  166. tosfs.c:
  167.     Degrade an ALERT to a TRACE; there is a circumstance
  168.     in which a root directory can apparently be changed,
  169.     and that's when a program tries to open an empty
  170.     file name. We don't need to warn the user that
  171.     something is wrong in this case; we can just fail
  172.     silently.
  173. proc.c:
  174.     Save the logical screen base for each process.
  175. main.c,bios.c,proc.h:
  176.     Made the critical error handler per-process.
  177. bios.c,syscall.s:
  178.     A cleaner way of saving registers when calling
  179.     functions... this wasn't really necessary, but I
  180.     did it to make tracking a bug down easier.
  181. tty.c:
  182.     New terminal flag, T_NOFLUSH, to suppress flushing of
  183.     input when SIGINT or SIGQUIT is received.
  184. *fs.c, file.h:
  185.     Added a new Dpathconf() option that tells whether or
  186.     not a file system is case sensitive.
  187. dos.c:
  188.     Forbid Prenice() on processes that you don't own.
  189. dosmem.c:
  190.     Correct a typo that was causing terminal process groups
  191.     to be incorrectly set.
  192.  
  193. PATCHLEVEL5::
  194.  
  195. makefile:
  196.     The -DOWN_LIB declaration should have been on (actually,
  197.     it was, in my copy... sorry for the mix-up).
  198. fasttext.c:
  199.     Applied Alex's patch for the disappearing cursor bug.
  200. everywhere:
  201.     Applied Alex's patches to add "const" declarations where
  202.     appropriate, and to get rid of size_t (since if OWN_LIB
  203.     is defined we use "int" instead).
  204. dosmem.c:
  205.     Fixed M_KEEP to attach memory to rootproc *only* at
  206.     process termination.
  207.  
  208.  
  209. PATCHLEVEL4::
  210.  
  211. proto.h:
  212.     Added prototype for do_func_key().
  213. everywhere:
  214.     Applied apratt's debugging/trace patches.
  215.  
  216. PATCHLEVEL3::
  217.  
  218. xbios.c, biosfs.c:
  219.     Change Bconmap to actually do the equivalent of an
  220.     Fforce(-2, foo) call; this way, we don't need the
  221.     ugly DFLTMODM kludge. (On the other hand, we introduce
  222.     some new ugly kludges :-)).
  223. main.c,proc.c:
  224.     Wait until everything is initialized before opening
  225.     devices; this avoids bogus critical error messages from
  226.     AHDI.
  227. util.c, mint.h, ctype.h:
  228.     Add all sorts of utility routines (for string processing,
  229.     character type recognition, and the like). This is
  230.     designed to make sure that MiNT works the same regardless
  231.     of what library is used to compile it. We're not quite
  232.     totally independent of library yet (the startup code and
  233.     <osbind.h> aren't replaced) but we're pretty close.
  234. main.c, proc.c:
  235.     Initialize the current directory for the root
  236.     process *after* file systems have been loaded, since
  237.     otherwise the info is nuked when a new fs is loaded in.
  238. bios.c:
  239.     Allow output to BIOS device 5 to be redirected along
  240.     with BIOS device 2; we do this by using the MW
  241.     ESC-Q control sequence to quote characters. A bit of
  242.     a hack, but then, not many people use device 5.
  243. quickmov.s:
  244.     Fixed two bugs in quickmove: (1) it didn't work for
  245.     regions bigger than 0x00fffe00 bytes in length,
  246.     and (2) it assumed the length was a multiple of 4
  247.     bytes.
  248. fasttext.c:
  249.     Re-arrange things a bit to get rid of a gcc 2.1 warning.
  250. dosmem.c:
  251.     Change flag 0x4000 to mean "don't free the memory
  252.     automatically on process termination"; explicit
  253.     Mfree requests are still allowed, and after
  254.     termination *any* process may Mfree the memory.
  255.  
  256. PATCHLEVEL2::
  257.  
  258. makefile:
  259.     Remove -fcombine-regs from CFLAGS, since gcc 2.1
  260.     doesn't understand it.
  261. bios.c:
  262.     Ignore value returned by Bconout for the screen
  263.     (many text accelerators get this wrong :-( ).
  264. dossig.c, signal.h:
  265.     New system call, Psigaction(), by AGK. 
  266. xbios.c:
  267.     Added support for Bconmap.
  268. bios.c, biosfs.c:
  269.     Rationalized the way biosfs and bios interact;
  270.     no more funny device numbers are needed. Also:
  271.     added support for Bconmap, and a new default
  272.     modem device.
  273. pipefs.c:
  274.     Applied Michael Hohmuth's patch for pipe_close (thanks,
  275.     Michael!)
  276. filesys.c:
  277.     Don't try to initialize all the drives at boot time; path2cookie
  278.     is quite capable of initializing, and it saves having
  279.     to access drive B: (for example) while booting is going
  280.     on.
  281. main.c:
  282.     Allow the user to avoid booting MiNT if the right shift key
  283.     is held down.
  284. main.c:
  285.     Added safety checking, as suggested by AKP.
  286. dosmem.c:
  287.     In Mxalloc, if (mode & 0x4000) is nonzero then allocate non-freeable
  288.     memory (we do this by attaching the memory to the root process).
  289. fasttext.c:
  290.     Tabs should be non-destructive on the ST!
  291. proc.h:
  292.     Re-arranged some things. Note that "slices" was never supposed
  293.     to be visible to users! Also, added a "bconmap" variable to
  294.     give the current Bconmap mapping for the process.
  295. dosdir.c:
  296.     Fail Ddelete of current directories only on the current
  297.     drive; for other drives, reset the current directory
  298.     to the root directory. NOTE: Ddelete of a current directory
  299.     is forbidden only if the directory is someone else's
  300.     current directory; if it's only your current dir., you
  301.     can delete it (and get automatically bumped back to
  302.     root).
  303.  
  304. PATCHLEVEL1::
  305.  
  306. dosmem.c:
  307.     Fixed a bug that caused processes with no '.' in their names
  308.     to have the wrong process name.
  309. dosmem.c:
  310.     In Pexec, make sure we yield to the new process so that
  311.     it gets at least one timeslice to do an Mshrink().
  312. proc.c:
  313.     In preempt(), don't punish processes that have buffered
  314.     BIOS output and are preempted; the process of flushing the
  315.     buffer may very well put them to sleep, and in any event
  316.     processes doing I/O should not be considered "hogs".
  317. tosfs.c:
  318.     Don't look for volume labels in opendir/readdir/lookup etc.
  319. main.c:
  320.     AGK: added DEBUG_LEVEL and DEBUG_DEVNO options to mint.cnf.
  321. dossig.c:
  322.     New system call (Psigpause()) courtesy of Alex Kiernan.
  323. dosmem.c:
  324.     In Pexec(200,...), don't reset base->p_parent, since the
  325.     "parent" in an overlay exec is oneself.
  326. tty.c:
  327.     Fixed so that RAW mode reads will return all of an
  328.     extended escape sequence at once, rather than waiting
  329.     for the next read.
  330. dosmem.c:
  331.     When terminating a process, make sure that it's "number of
  332.     memory regions" is set to 0; otherwise, calls to memused()
  333.     on the process (e.g. by procfs) can crash the system.
  334. dosdir.c:
  335.     When removing directories, make sure that the directory
  336.     isn't in use as someone's current directory (so that
  337.     they don't get left in limbo).
  338. fasttext.c:
  339.     Screen memory must come from ST RAM -- otherwise hardware
  340.     scrolling crashes and burns. Fixed thanks to AGK.
  341. xbios.c:
  342.     Moved the prototype for midiws to proto.h, and corrected the
  343.     type of its argument (it should have been "int", not "short").
  344.  
  345. PATCHLEVEL0::
  346.  
  347. bios.c:
  348.     Terminal modes weren't being set correctly in Bconout, and also
  349.     weren't being set in bflush (which should have employed RAW
  350.     mode output, but didn't).
  351. everywhere:
  352.     Merged in Alex Kiernan's latest Lattice C patches.
  353.  
  354.  
  355. version 0.94
  356.  
  357. PATCHLEVEL4::
  358.  
  359. filesys.c:
  360.     Use U:\DEV\CON for CON:, instead of V:\CON, since we're
  361.     going to make drive V: go away soon.
  362. unifs.c:
  363.     When looking up a drive, make sure that it has a valid file
  364.     system attached to it -- otherwise, newly installed ramdisks
  365.     can cause system crashes :-(.
  366. fasttext.c:
  367.     Patches to make the fast text device work correctly on a TT,
  368.     courtesy of Erling Henanger.
  369. main.c:
  370.     Install 16 extra cookies, instead of 8, just to be friendly.
  371.  
  372. PATCHLEVEL3::
  373.  
  374. main.c:
  375.     Allow PSEUDODRIVES=MAP to put the extra drives in
  376.     _drvbits without installing new drivers for them.
  377. unifs.c:
  378.     Don't rely on drvmap() to figure out what drives exist;
  379.     it isn't accurate if PSEUDODRIVES=NO.
  380.  
  381. PATCHLEVEL2::
  382.  
  383. main.c:
  384.     Added an option for turning off the BIOS routines for the
  385.     pseudo-drives.
  386. filesys.c:
  387.     Moved the vector set/restore code to main.c (where all the
  388.     other vector stuff is).
  389. tosfs.c:
  390.     If the _FLK cookie was already set when MiNT started, we
  391.     pass file sharing and locking requests through to GEMDOS.
  392. main.c:
  393.     Turn the cursor off when leaving, if we were started from
  394.     the desktop.
  395. tosfs.c:
  396.     Fixed a bug in which tos_chmode was returning an incorrect
  397.     value.
  398. debug.c:
  399.     Added code for octal output to sprintf().
  400. dosdir.c:
  401.     Make Fsfirst() with the FA_LABEL bit set work on non-TOS
  402.     file systems (via the file system readlabel function).
  403.     (This used to work only when the search was restricted to
  404.     labels only.)
  405. various places:
  406.     Get rid of gcc 2.0 warnings.
  407.  
  408. PATCHLEVEL1::
  409.  
  410. file.h:
  411.     Because Fmidipipe and the disk change code can close
  412.     files other than the files of the current process,
  413.     the device driver "close" function needs another
  414.     parameter, namely the process id being closed; this
  415.     allows device drivers to remove locks properly.
  416. tosfs.c:
  417.     Volume labels shouldn't be found by Dreaddir().
  418. tosfs.c:
  419.     Added file locking.
  420. filesys.c, main.c, file.h:
  421.     New utility routine (denylock) to make implementing file
  422.     locking easier for file systems.
  423.  
  424. PATCHLEVEL0::
  425.  
  426. tosfs.c:
  427.     Canonicalize file names (i.e. convert to 8.3 format).
  428.     Also, keep track of the value returned from the last
  429.     readdir() call, so that a subsequent Fxattr() will take
  430.     place quickly.
  431. proc.c:
  432.     In sleep(), make sure interrupts are disabled while queue
  433.     manipulations are occuring.
  434. bios.c:
  435.     Correct a stuttering problem for ^C and similar interrupts.
  436. dosmem.c:
  437.     8 character process names weren't terminated properly.
  438. tty.c:
  439.     Aaargh! Shift+cursor keys were being interpreted even when
  440.     they shouldn't have been.
  441.  
  442. version 0.93
  443.  
  444. PATCHLEVEL6::
  445.  
  446. filesys.c:
  447.     Check for newly installed drives when parsing an
  448.     absolute path without an explicit drive letter, as
  449.     well as when looking at ones with drive letters.
  450.  
  451. PATCHLEVEL5::
  452.  
  453. biosfs.c, fasttext.c:
  454.     Allow TIOCGWINSZ calls on the console (we use the line A
  455.     variables to get the number or rows and columns).
  456. filesys.c:
  457.     Fix a typo in the file system initialization checking.
  458. pipefs.c:
  459.     Make "VIRGIN_PIPE" more obviously a magic value, and
  460.     document it.
  461. pipefs.c:
  462.     Make u:\pipe have a sensible date/time; also, make
  463.     Dfree on u:\pipe return some useful statistics about
  464.     the number of pipes in the system.
  465. procfs.c:
  466.     u:\proc has a sensible time and date now, namely the
  467.     time/date of the last process creation or destruction.
  468. dosfile.c:
  469.     Fcreate() of a volume label now returns a handle to
  470.     u:\dev\null.
  471. dosmem.c:
  472.     Make sure the BIOSBUF buffer is flushed when terminating.
  473. main.c:
  474.     There's a bug in TOS 1.4: GEM seems to assume that all
  475.     memory is zero initially, and if it isn't (e.g. if a large
  476.     AUTO folder program like MiNT terminates and leaves behind
  477.     dirty memory) then having too many (or the wrong kind of)
  478.     desk accessories can lead to a crash. This was a real bear
  479.     to track down, and the work-around is very ugly; before
  480.     MiNT exits we copy a short machine language subroutine into
  481.     the command line, and then execute it; the routine zeros
  482.     all of the TPA and then does a Pterm0().
  483. rendez.c:
  484.     Change a "short" to "int" for the benefit of gcc 2.0.
  485. bios.c:
  486.     Stop process dumps from stuttering.
  487. console.c:
  488.     Added support for global file handles.
  489.  
  490. PATCHLEVEL4::
  491.  
  492. dosfile.c:
  493.     In Fselect(), we have to re-validate file handles after
  494.     a sleep() call, since signal handlers may close files.
  495. proc.c:
  496.     Pre-allocate more PROC structures (this should help
  497.     reduce memory fragmentation).
  498. tty.c, file.h:
  499.     Allow cursor/function keys to send escape sequences.
  500. dosdir.c:
  501.     As suggested by S. Henson: Dsetpath through a symbolic link
  502.     may also require changing the current drive as well.
  503. proc.c,dos.c,timeout.c:
  504.     New process scheduling algorithm, as suggested by A. Pratt.
  505. dosdir.c:
  506.     Make only the low bit of Dlock() significant, for future
  507.     expansion.
  508. dosfile.c:
  509.     Allow Fcreate() to create a global file handle.
  510.  
  511. PATCHLEVEL3::
  512.  
  513. debug.c:
  514.     Changed TRACE mode output so that not just any keys will
  515.     start/stop output, but only Help and Undo.
  516. dosdir.c, filesys.c:
  517.     Add a Dlock() system call to lock/unlock drives.
  518. filesys.c:
  519.     Only initialize drives if the BIOS drive map says that
  520.     they exist.
  521. dosmem.c:
  522.     In Pexec, make a copy of any name we're going to use
  523.     before freeing memory for overlayed programs; the old
  524.     way was decidedly incorrect!
  525. dosfile.c:
  526.     Allow for global file handles, so that shared libraries
  527.     can use file handles that are the same for all processes.
  528. dosmem.c:
  529.     In Mxalloc, ignore bits that we don't understand, to
  530.     allow for future expansion.
  531. syscall.s:
  532.     Fix a bug that could cause the wrong system call to be
  533.     made if BIOS buffering is on (!).
  534. bios.c:
  535.     Streamline the BIOS buffering mechanism, and make it
  536.     more conservative about multiple processes doing Bconout
  537.     output.
  538. procfs.c:
  539.     Allow "foo.-1" to stand for the current process, and
  540.     "foo.-2" to stand for our parent. Also, add new
  541.     Fcntls for getting/setting memory flags.
  542. bios.c:
  543.     In Setexc(), don't actually change any vectors, let the BIOS
  544.     do it -- some TSR's install trap handlers that look for
  545.     certain Setexc functions...
  546. signal.c:
  547.     Allow nested Supexec() calls, or Supexec()'s from a terminate
  548.     vector.
  549. procfs.c:
  550.     Change the definition of PPROCADDR and add a new Fcntl,
  551.     PCTXTSIZE.
  552. mem.c:
  553.     In exec_region, set the stack based on the value of p_hitpa
  554.     from the basepage, instead of the size of the memory
  555.     region -- some programs rely on being able to set the initial
  556.     stack pointer for a Pexec(4,...) this way.
  557. main.c, context.s:
  558.     Avoid using 68020 instructions if we're on a 68010.
  559.  
  560. PATCHLEVEL2::
  561.  
  562. dos.c,proc.c:
  563.     More tweaking of the priority code.
  564. main.c:
  565.     Change the type of "tosbp" from char ** to BASEPAGE **,
  566.     since that's what it really is.
  567. main.c:
  568.     Add a special case for the Spanish TOS 1.0 act_pd variable.
  569. pipefs.c:
  570.     When a writer is waiting to write a small amount of data
  571.     atomically, remember to wake up readers so that they
  572.     can clear the pipe!
  573. debug.c:
  574.     Add the %u flag to ksprintf() (Fselect uses it, maybe others
  575.     do too...)
  576. dosmem.c:
  577.     In Pterm(), put the exit code onto the stack when calling
  578.     etv_term. It won't be in the same place as it was for TOS,
  579.     but c'est la vie. (People asked for this feature...)
  580. xbios.c:
  581.     Provide a way to pass arguments to Supexec(). Note that Atari
  582.     never documented that this was possible, but some people were
  583.     relying on it anyway :-(. (Don't use this feature, it's only
  584.     there as a compatibility hack.)
  585. main.c:
  586.     In shutdown(), don't bother waiting a second for processes
  587.     to finish if there are no other processes.
  588. filesys.c:
  589.     Make sure that path names are null terminated after strncpy.
  590. mem.c:
  591.     Fix the code to zero process registers so that it *only* zeros
  592.     process registers.
  593. dosmem.c:
  594.     Eliminate some redundant code.
  595. dosfile.c:
  596.     Open u:\pipe\sys$pipe.xxx rather than q:\sys$pipe.xxx.
  597. main.c:
  598.     Change a "malloc" into "kmalloc", and restore the #include
  599.     of <minimal.h> that was inadvertently deleted.
  600. main.c:
  601.     Allow parameters to be passed to the initial program specified
  602.     by the INIT= string.
  603.  
  604. PATCHLEVEL1::
  605.  
  606. main.c:
  607.     Fix a typo in shutdown() that was causing problems when
  608.     MiNT was shut down while processes were active.
  609. tosfs.c:
  610.     Make sure that tfullpath() returns a string less than
  611.     PATH_MAX characters long.
  612. everywhere:
  613.     Replace "sprintf" with "ksprintf".
  614. debug.c:
  615.     Add a "ksprintf" function that's like sprintf(), but
  616.     (a) doesn't have so many features (making it smaller),
  617.     and more importantly (b) won't try to write more than
  618.     SPRINTF_MAX characters into a buffer.
  619. filesys.c:
  620.     In path2cookie, make sure we don't try to copy more than
  621.     PATH_MAX characters into the fixed size buffers.
  622. dosmem.c:
  623.     The "sleep if no memory available during Malloc" code
  624.     was causing more problems than it solved, so it was
  625.     removed. To compensate, we increase the priority of
  626.     newly Pexec'd processes to make sure that they get
  627.     to run.
  628. dosmem.c:
  629.     Aaaargh! A very serious screw-up in terminate() was
  630.     causing us to wake up processes sleeping in vfork()
  631.     even when their children were still using the address
  632.     space; needless to say, horrible (and mysterious)
  633.     crashes could ensue. Fix: only force the parent awake
  634.     if wait_q == WAIT_Q && wait_cond matches the terminating
  635.     process, otherwise let post_sig() handle waking.
  636.     While fixing this bug, re-arrange the terminate code
  637.     to do the waking up at the very end, just in case some
  638.     of the other code may cause a sleep() temporarily.
  639. bios.c:
  640.     Fix the scan code for the UNDO key.
  641. fasttext.c:
  642.     Use Setscreen() to set the hardware screen base, since setting
  643.     the variable at 0x45e causes TOS to keep setting the screen base
  644.     ad infinitum.
  645.  
  646. PATCHLEVEL0::
  647.  
  648. rendez.c:
  649.     When waking a process up from a semaphore, check to see
  650.     if it's on the WAIT_Q before trying to remove it from
  651.     that queue (it might have been moved off the wait queue
  652.     by a signal).
  653. bios.c:
  654.     Make sure that Bconout(2,c) always succeeds, to compensate
  655.     for text accelerators and other programs that don't return
  656.     sensible values from Bconout. Also, ignore the Bconout
  657.     return value when flushing the text output buffer.
  658.  
  659. version 0.92
  660.  
  661. PATCHLEVEL4::
  662.  
  663. biosfs.c:
  664.     Provide devices for the extra Mega STe serial ports.
  665. biosfs.c:
  666.     Make the kernel info structure available to device drivers
  667.     loaded with Dcntl.
  668. xbios.c:
  669.     Provide a modified Midiws function so that this is also
  670.     affected by Fmidipipe and Fforce.
  671. biosfs.c:
  672.     Split bios_device into two device drivers; one for
  673.     terminal devices, and one for plain character devices
  674.     (the printer and IKBD port fall into this category).
  675.     Also: provide a new Dcntl call to install plain BIOS
  676.     devices in U:\DEV.
  677. tty.c:
  678.     Check for terminal start/stop keys while reading.
  679. bios.c:
  680.     In checkkeys, loop through all keys received since our last
  681.     interrupt, rather than just checking the last thing in the
  682.     buffer (as A. Pratt suggested).
  683. bios.c, tty.c:
  684.     Made the "disable" character for special terminal functions
  685.     (e.g. the EOF key) be 0 instead of -1; this matches System V,
  686.     is more POSIX friendly, and also makes confusing function keys
  687.     and ^@ less likely. (Thanks to Scott Willingham for this
  688.     suggestion.)
  689. file.h, elsewhere as needed:
  690.     Renamed the O_BIOS flag O_TTY (since that's what it really
  691.     represents) and renamed the is_bios macro is_terminal.
  692. dosmem.c:
  693.     Make Pexec mode 106 cause the child to be truly independent
  694.     of the parent (i.e. it doesn't get the parent's address space,
  695.     nor does the parent get the child's).
  696. biosfs.c:
  697.     Allow symbolic links from U:\DEV; this lets us do things like
  698.     Fsymlink("U:\PIPE\SERVERFIFO", "U:\DEV\SERVERDEV").
  699. main.c:
  700.     When PRN=d:\foo is specified, create the file foo instead of
  701.     just trying to open it; this makes no difference to devices,
  702.     but makes redirecting printer output to a file much more
  703.     convenient.
  704. unifs.c:
  705.     Fix a bug that was causing Dgetpath() to return incorrect
  706.     information for U:\A.
  707. timeout.c:
  708.     Make sure "searchtime" is up-to-date; bconout uses this for
  709.     the time out.
  710. biosfs.c:
  711.     Fix bios_write so that if bconout fails, so does the write.
  712. bios.c:
  713.     Fix bconout so that it doesn't hang forever if the device isn't
  714.     going to be ready (e.g. the printer is off); instead, there's
  715.     a 10 second timeout.
  716. main.c:
  717.     Send all processes SIGTERM when we're shutting down, so that
  718.     they have a chance to clean up after themselves.
  719. mint.h:
  720.     The KBDVEC structure was missing the "clockvec" element (!).
  721.  
  722. PATCHLEVEL3::
  723.  
  724. biosfs.c:
  725.     Revised to allow support for loading/removing device drivers
  726.     dynamically, via a Dcntl() call.
  727. dosmem.c,mem.c,dosfile.c,file.h:
  728.     Added support for setuid/setgid. These bits are only checked
  729.     in Pexec modes 0, 100, and 200, i.e. the "load and go" modes.
  730. rendez.c:
  731.     Added new semaphore code from Allan Pratt.
  732. main.c:
  733.     New command for mint.cnf: "exec foo.prg bar" runs the program
  734.     "foo" with argument(s) "bar".
  735. main.c:
  736.     Use the XBRA protocol for all interrupt routines that we grab.
  737. filesys.c:
  738.     When terminating MiNT, close all open files to make sure data
  739.     is flushed and devices are nicely shut down.
  740. main.c:
  741.     Add some more variables, such as CON and PRN for redirecting
  742.     those handles, and HARDSCROLL for controlling the fast text
  743.     output.
  744. proc.c:
  745.     Make sure the "links" field for the prn and aux handles is
  746.     correct.
  747. syscall.s, bios.c:
  748.     Special case the BIOS Bconout code to try to speed it up
  749.     a bit. We allow for buffering of Bconout output; the buffer
  750.     is flushed on the next non-Bconout system call or context
  751.     switch. This should usually work OK, but as a precaution
  752.     we provide for a way to turn it off (BIOSBUF=NO in mint.cnf).
  753. fasttext.c.fasttext.h:
  754.     New files for a faster text output device; changes were
  755.     made to biosfs.c to support this, too.
  756. tty.c:
  757.     Streamline writes to terminals by sending data to the
  758.     tty device in chunks instead of 1 character at a time.
  759. dosfile.c:
  760.     In do_open, always return EFILNF, never EPTHNF.
  761. dosmem.c:
  762.     Use supexec() to execute the terminate vector code, to
  763.     avoid duplication of signal 0 faking.
  764. xbios.c:
  765.     In Supexec() does leave the kernel, so we have to make
  766.     appropriate adjustments. We do this by faking a signal
  767.     (signal 0) and installing the user's function as a signal
  768.     handler.
  769. dosdir.c:
  770.     Make Dfree(x) actually look at free space on the drive which
  771.     corresponds to the current directory on <x>; this should make
  772.     Dfree on drive U: much more useful.
  773. proc.h:
  774.     Make the "base" field of the PROC structure have type BASEPAGE *
  775.     (since that's what it is!)
  776. basepage.h, dosdir.c, dosmem.c:
  777.     Support some undocumented fields in the basepage a little bit
  778.     (i.e. they're read only). Programs that try to write to these
  779.     fields break. Surprise, surprise.
  780.  
  781. PATCHLEVEL2::
  782.  
  783. dosmem.c, mem.c:
  784.     The docs say that children started with Pexec(104,...) or
  785.     Pexec(106,...) share the parent's memory. This was unfortunately
  786.     not the case; if the parent exited and the child was running
  787.     in the parent's address space (e.g. see tfork() in mntlib)
  788.     the child died very soon thereafter (like when the next program
  789.     comes along and clears the memory the child was running out of).
  790.     This is now fixed.
  791. dos.c, proc.c, timeout.c:
  792.     More tuning of the process scheduler.
  793. main.c:
  794.     Added "setenv" function for mint.cnf.
  795.  
  796. PATCHLEVEL1::
  797.  
  798. filesys.c:
  799.     In some circumstances, AHDI will keep telling us that a drive
  800.     has changed, ad infinitum. To avoid this, we stop trying after
  801.     8 media changes occur in a row.
  802. util.c:
  803.     Tuned the kmalloc() strategy to reduce memory fragmentation
  804.     (every process will be allocating 264 bytes for its
  805.     memory region maps right after creation, and this should
  806.     come from kernel memory).
  807. tty.c:
  808.     Under TOS, 1 byte writes should always be in raw mode.
  809. dos.c:
  810.     In Syield(), we should call sleep() even if no other processes
  811.     are waiting, just to make sure that signals, alarms, etc.
  812.     are properly dealt with.
  813. filesys.c, dosfile.c:
  814.     The media change code was wedged (actually, the fault was in
  815.     do_pclose, which sometimes neglected to check to see whether
  816.     or not the file had a still-valid device driver).
  817. dosmem.c:
  818.     In the termination code, close "files" referring to a process
  819.     *before* freeing all the process memory; that way, we don't
  820.     have to worry in do_pclose() and other places about what
  821.     kind of state the process is in.
  822. mem.h:
  823.     Round off memory regions only to a word boundary for better
  824.     TOS compatibility.
  825.  
  826. PATCHLEVEL0::
  827. dos.c,intr.s,syscall.s:
  828.     Changed s_yield() to actually give up the processor if
  829.     another process is waiting for it; this means that processes
  830.     that call Syield() won't be penalized by the priority code.
  831.     Also: added a new kernel function, preempt(), which does
  832.     what the old s_yield() did (and hence penalizes CPU hogs).
  833. makefile:
  834.     Cleaned up a bit, per suggestions from A. Pratt and D. Gymer.
  835.  
  836.  
  837. version 0.91
  838.  
  839. dosmem.c:
  840.     Only the high 4 bits of the program load flags give memory
  841.     requirements (we were using 8 bits).
  842. dosdir.c:
  843.     Add a hack so that ksh still works (it was using '/' in a
  844.     path name). THIS HACK WILL GO AWAY SOMEDAY!
  845. tty.c:
  846.     CBREAK mode shouldn't do erase, kill, or EOF processing.
  847. dosdir.c:
  848.     Freadlink should check first to make sure the file really
  849.     is a link!
  850. file.h,tty.c:
  851.     Change the name "struct winsiz" to "struct winsize" to match
  852.     what Unix calls it (cosmetic change only).
  853. unifs.c:
  854.     Allow renaming of the drives, and allow rmdir() to work
  855.     like unlink() for symbolic links (since we fake the return
  856.     value from Fsfirst to look like a directory if the link
  857.     points to a directory).
  858. biosfs.c:
  859.     lseek() on the null device should not return 0 always;
  860.     otherwise, it will look like a terminal to many programs!
  861. dosfile.c:
  862.     If a MiNT domain process closes stdin or stdout, they
  863.     really do want them closed (for compatibility with
  864.     MiNT 0.8).
  865. syscall.s:
  866.     When returning from traps, don't pre-empt the current process
  867.     if it's in supervisor mode.
  868. mem.c:
  869.     Fake some stuff in the basepage so that programs compiled
  870.     with dLibs will work some of the time.
  871. tosfs.c:
  872.     Make the value returned from Dgetpath() lower case in the MiNT
  873.     domain. Also, make tosfs a little less verbose when debugging
  874.     or tracing is on.
  875. dosmem.c:
  876.     Try to allocate space for saved fork() memory in the alternate (TT)
  877.     memory map first, as well as in core (ST) memory.
  878. mem.h:
  879.     Round allocation requests up to multiples of 8 bytes instead
  880.     of 4; this automatically gives us a bit of slush for ill
  881.     behaved programs, and also means that requests will always
  882.     be for a multiple of sizeof(double) bytes.
  883. util.c:
  884.     Get rid of the extra slush around kmalloc'd regions (which
  885.     was a lot bigger than originally intended anyway!)
  886.  
  887.  
  888. version 0.9
  889.  
  890. PATCHLEVEL21:: released version
  891.  
  892. dosmem.c:
  893.     Make Malloc and Mxalloc try again if there isn't enough memory;
  894.     maybe the situation is temporary.
  895. mem.c:
  896.     Plug a memory leak in load_region(); also make load_region try again
  897.     if there isn't enough memory to load the program (just in case the
  898.     situation is temporary).
  899. dosdir.c:
  900.     Add a check to Fattrib to make sure that attributes of directories
  901.     are never changed.
  902.  
  903. PATCHLEVEL20::
  904.  
  905. dosdir.c:
  906.     Allow Frenames of processes and other special kinds of files even
  907.     if they do have the FA_RDONLY bit set.
  908. dosfile.c:
  909.     Allow creation of files with the read-only attribute.
  910. tosfs.c:
  911.     Change the file deletion code so that an attempt to delete an
  912.     open file no longer fails, but rather marks the file to be
  913.     deleted when it is closed.
  914. file.h:
  915.     Add some extra space to the tty struct, for future expansion.
  916. filesys.c,main.c:
  917.     Make sure the fake BIOS disk routines are available before
  918.     any of the pseudo-drives are used, by having them set up
  919.     in init_filesys() instead of init_intr().
  920. tosfs.c:
  921.     Remove some debugging output that isn't needed anymore.
  922.  
  923. PATCHLEVEL19::
  924. Beta release.
  925.  
  926. intr.s,main.c:
  927.     provide some fake BIOS disk routines for the pseudo-drives,
  928.     in hopes of avoiding "drive U: is not responding" types of
  929.     messages that some have reported
  930. pipefs.c:
  931.     half.ttp was failing under mgr, because of a race condition:
  932.     our select() returns "ready" for a pipe if nobody exists to
  933.     write to it (since then a read will return immediately). half
  934.     would make a pipe that would end up being destroyed immediately
  935.     by mgr before it got attached to a process. Solution: pipes that
  936.     have *never* been opened yet for writing get a special marker
  937.     and select doesn't worry about them, only about ones that were
  938.     once written to.
  939. pipefs.c:
  940.     Fixed FIONWRITE to return the correct value.
  941. dosdir.c:
  942.     Refuse to Frename a file with the FA_RDONLY attribute.
  943. biosfs.c:
  944.     Fixed bios_write to return the number of bytes successfully
  945.     written.
  946. bios.c:
  947.     LAST_DEVICE was inaccurate. This could happen again, so I'm simply
  948.     getting rid of it and leaving all errors to the BIOS.
  949. pipefs.c:
  950.     Make sure the FA_RDONLY attribute is sensible (i.e. unidirectional
  951.     pipes that don't have a writer can still be written to).
  952. filesys.c:
  953.     Fixed relpath2cookie so that it doesn't *always* follow symlinks
  954.     (it only should when lastname == follow_links)
  955. dosfile.c:
  956.     If the FA_RDONLY bit is set on the file, even the superuser should
  957.     be denied access for writing.
  958. dosfile.c:
  959.     Requiring write permission for Fdatime is a Bad Idea, since GEMDOS
  960.     doesn't; so now MiNT doesn't either.
  961. tosfs.c, filesys.c:
  962.     Fixed a bug with media changes (Fsfirst would sometimes try to close a
  963.     directory that had already been automatically closed by a media change).
  964.  
  965. PATCHLEVEL18::
  966.  
  967. main.c:
  968.     Fixed the machine type detection code; it needs to run before
  969.     biosfs is initialized, i.e. before init_filesys().
  970. main.c:
  971.     Provide a configuration file so that users can automatically
  972.     setup symbolic links and can change their init program.
  973. biosfs.c:
  974.     Allow rename on bios devices, so people who want terminals called
  975.     "ttyX" instead of "modemX" can do so.
  976. dosdir.c:
  977.     Flink shouldn't need write permission on the destination
  978.     directory, only the source.
  979. dosfile.c:
  980.     Added FSTAT function for Fcntl, to allow a better version of
  981.     fstat() for the library.
  982. dosfile.c:
  983.     Add code to fcntl to automatically convert MiNT 0.8 O_NDELAY
  984.     into MiNT 0.9 O_NDELAY. This is a temporary measure only,
  985.     to let older versions of mgr continue to work for a while.
  986. filesys.c:
  987.     Symbolic links with relative paths were always failing with
  988.     ELOOP. Oops! (Thanks to Stephen Henson for catching this.)
  989. file.h, tosfs.c, dosfile.c:
  990.     Added a new flag, FS_NOXBIT, to control whether or not the
  991.     file system has a sensible notion of execute permission.
  992.     This removes an ugly check for &tos_filesys.
  993. mint.h,util.c,mem.c:
  994.     Added a compile time option, JUNK_MEM, to deliberately fill
  995.     the memory MiNT acquires with garbage; this is for debugging
  996.     (to help track down silly failures to initialize memory) and
  997.     not for production code.
  998. proc.c:
  999.     Fixed a typo in init_proc() that was causing memory not to
  1000.     be initialized to 0 correctly. (Thanks are due to Stephen
  1001.     Usher for catching this one.)
  1002. tosfs.c:
  1003.     Added a tos_rewinddir that works.
  1004. file.h:
  1005.     Added blocks and blksize fields to the XATTR structure, and
  1006.     provided a few extra reserved fields for future expansion.
  1007.     (Also: re-arranged some fields to match what the gcc library
  1008.     already has.)
  1009. file.h, main.c:
  1010.     Add sleep, wake, and wakeselect to the kernel info structure;
  1011.     some device drivers will need these.
  1012. biosfs.c:
  1013.     Make nodskchng do a Getbpb on the (non-existent) device; the officially
  1014.     documented way of forcing a disk change requires this.
  1015. file.h,filesys.c,*fs.c:
  1016.     Remove the "flag" argument from the dskchng function, and
  1017.     have the kernel check Rwabs for E_CHNG; this should save
  1018.     a lot of duplication in user file systems, since everyone
  1019.     really has to do this anyways.
  1020. dosdir.c:
  1021.     Make sure that Fsfirst names can be null-terminated.
  1022. filesys.c:
  1023.     Oops: a misplaced bracket in disk_changed was causing
  1024.     write-protected disks to always appear to have changed!
  1025. tosfs.c:
  1026.     Made it illegal to delete or truncate an open file.
  1027.  
  1028. PATCHLEVEL17::
  1029.  
  1030. version.h:
  1031.     I think we can call this version an "alpha" one, now. No more
  1032.     major features remain to be added (fingers crossed, here).
  1033. filesys.c,dosdir.c,*fs.c,file.h:
  1034.     Media change detection code; this is now the kernel's
  1035.     responsibility. This necessitated an additional function
  1036.     for file systems; I hope this is the last one.
  1037. main.c,biosfs.c:
  1038.     Check what kind of machine we're on, and adjust what devices are
  1039.     present accordingly. The rs232 file has been renamed to "modem1".
  1040.     WARNING: This will break existing code that uses the name "rs232".
  1041. filesys.c:
  1042.     Code for loading file systems (finally!)
  1043. bios.c,context.s:
  1044.     Made Rwabs, Getbpb, and Mediach save registers (since device
  1045.     drivers often don't, and loadable file systems will be calling
  1046.     these directly).
  1047. main.c:
  1048.     Implemented the "struct kerinfo" to pass information to loadable
  1049.     file systems.
  1050. filesys.c:
  1051.     Re-wrote path2cookie to provide for symbolic links; a new routine
  1052.     (relpath2cookie) helps us out.
  1053. unifs.c:
  1054.     Code for creating, reading, and deleting symbolic links.
  1055. *fs.c, dosfile.c, file.h:
  1056.     Changed the way file opens and creates are done; the former
  1057.     (*getdev) routine for file systems has been split into
  1058.     (*creat) and (*getdev), both of which are quite a bit simpler.
  1059.     This whole scheme is clearer, less work for the file system,
  1060.     and will support symbolic links much better.
  1061. various places:
  1062.     Add security checks. This is still pretty sad, but at least it
  1063.     can provide one with a modicum of protection against silly
  1064.     mistakes.
  1065. dosfile.c:
  1066.     Require write permission on a file before changing its date via
  1067.     Fdatime.
  1068. tosfs.c:
  1069.     Cleaned up and streamlined a bit, and fixed tos_readlabel.
  1070. *fs.c,dosdir.c,file.h:
  1071.     Changed the file system "getxattr", "chmode", "chown", and
  1072.     "chattr" functions to take a single file cookie instead of a
  1073.     (directory, name) pair. This should make most uses of these
  1074.     functions (e.g. in name lookups) more efficient. Also,
  1075.     changed the readdir() function to return a file cookie to go
  1076.     along with the newly read file name.
  1077. main.c:
  1078.     If "init.prg" isn't found, try starting GEM instead.
  1079. unifs.c:
  1080.     Re-arranged to allow for symbolic links.
  1081. filesys.c:
  1082.     Implemented some media change routines.
  1083. dosdir.c:
  1084.     Added Fchown and Fchmod system calls.
  1085. dosdir.c:
  1086.     Added security check for Fattrib().
  1087.  
  1088. PATCHLEVEL16::
  1089.  
  1090. lots of places:
  1091.     Try to make TRACE() and DEBUG() messages more useful for people
  1092.     who don't know the internals of the kernel, and who just want to
  1093.     debug their own programs.
  1094. dosdir.c:
  1095.     Added Flink, Fsymlink, Freadlink, and Dcntl system calls.
  1096. *fs.c,file.h:
  1097.     Added a new mode to Dpathconf() to determine whether the
  1098.     file system uses DOS type file naming conventions, ordinary
  1099.     Unix type, or _POSIX_NO_TRUNC type.
  1100. file.h:
  1101.     Add an "fscntl" field to the file system structure.
  1102. tosfs.c:
  1103.     Fix the mode values returned from getxattr() (regular files
  1104.     have type S_IFREG, not S_IFMT).
  1105. proc.c:
  1106.     Zero the child's srchdta field after fork_proc(); otherwise,
  1107.     the accounting for Fsfirst/Fsnext can get messed up. Thanks
  1108.     again to S. Henson.
  1109. mem.c:
  1110.     As Steve Henson pointed out, resetting the effective user and
  1111.     group id's in exec_region is probably a Bad Idea.
  1112. dosdir.c:
  1113.     Change Dopendir/Dclosedir to use umalloc and ufree instead of
  1114.     kmalloc and kfree.
  1115.  
  1116. PATCHLEVEL15::
  1117.  
  1118. dosdir.c:
  1119.     When terminating, clean up after any Fsfirst/Fsnext sequences that
  1120.     didn't go to completion.
  1121. tosfs.c:
  1122.     Streamlined garbage collection code, and also corrected a bug in
  1123.     which file indices used in directory searches could be garbage
  1124.     collected.
  1125. file.h, *fs.c:
  1126.     Add symlink and hard link functions.
  1127. pipefs.c:
  1128.     Make FIONWRITE work again (a line was accidentally deleted).
  1129.     Make sure that Fselect() will select any pipes that have been
  1130.     closed.
  1131. dossig.c:
  1132.     Put back the user id check in Pkill.
  1133. dos.c, proc.c:
  1134.     Make sure that the "euid" and "egid" fields are set with
  1135.     the Psetuid and Psetgid calls. Also, make sure the fields
  1136.     are reset after an exec.
  1137. mem.c:
  1138.     Make exec_region shrink the process 'mem' and 'addr' tables
  1139.     to the default again if extra regions had been allocated.
  1140. dosmem.c:
  1141.     Get rid of the magic number "100", and introduce a maximum user
  1142.     settable priority MAX_NICE so that the kernel can make sure
  1143.     that a process that needs to run (e.g. an aborted vfork) will
  1144.     run first by setting its priority to MAX_NICE+1.
  1145. proc.c:
  1146.     Make sure the initial process memory tables are zeroed.
  1147. proc.c:
  1148.     Adjust the process scheduling algorithm (yet again!). Also,
  1149.     rename "nice_count" to "curpri".
  1150. dosdir.c,dos.c:
  1151.     Added Dopendir, Dreaddir, Drewinddir, Dclosedir system calls.
  1152. *fs.c:
  1153.     Made readdir return a file index (inode number) if it's not
  1154.     doing a TOS mode search.
  1155. biosfs.c:
  1156.     PHYSCONS is such an ugly name; CONSOLE makes more sense.
  1157.  
  1158. PATCHLEVEL14::
  1159.  
  1160. mem.c:
  1161.     Allow the kernel to dynamically allocate memory region
  1162.     descriptors if it runs out; also, increase the number that
  1163.     it starts with by default.
  1164. util.c:
  1165.     Made it harmless to call kfree with a NULL argument.
  1166. proc.h,mem.c,dosmem.c,proc.c:
  1167.     Eliminate the 64 region per process limit, by making the "mem"
  1168.     and "addr" arrays dynamically allocated.
  1169. proc.c:
  1170.     Change the code for selecting which process to run next; if more
  1171.     than one process is on the ready queue, we use a per-process
  1172.     counter to prevent high priority processes from hogging all the
  1173.     time.
  1174. dosmem.c:
  1175.     Release a process' controlling terminal (by setting it's process
  1176.     group back to 0) if the process is a process group leader and
  1177.     is exiting.
  1178. dosfile.c,tty.c,*fs.c:
  1179.     Made do_open set terminals up correctly on open/close, and
  1180.     handle assigning process groups to them. Also, made the terminal's
  1181.     process group be set automatically on Fforce(-1,...).
  1182. main.c,timeout.c:
  1183.     Added AKP's code for better resolution of time usage.
  1184. DELETED FILES:
  1185.     xlate.c, xlate32.s, newdisk.s
  1186. everywhere:
  1187.     Removed all references to NEED_TRANSLATION. This is getting to be a
  1188.     pain to maintain, and nobody seems to actually use it.
  1189. *fs.c:
  1190.     Fixed the ENAMETOOLONG detection code in readdir (thanks, Steve!).
  1191. timeout.c:
  1192.     New function, nap, for processes that are in busy loops waiting for
  1193.     an event that probably won't happen for a while (e.g. waiting for
  1194.     the user to hit a key); use e.g. nap(60) to sleep for 60 milliseconds
  1195.     instead of yield().
  1196. mem.c:
  1197.     create_env() should use the value from the current process' basepage,
  1198.     since this may *not* be the same as the environment the process
  1199.     was actually started with
  1200. dosfile.c:
  1201.     Make Fcntl(fh, arg, F_SETFL) leave the file sharing mode alone as well
  1202.     as the read/write mode.
  1203. unifs.c:
  1204.     Change the name "fifo" to "pipe"; change "drva", "drvb" etc. into just
  1205.     "a", "b" etc.
  1206. dosmem.c:
  1207.     Make it possible to provide a name with Pexec mode 104. Provide a new
  1208.     mode 106 that starts a process in the background and automatically
  1209.     detaches the process TPA from the parent's memory.
  1210.  
  1211. PATCHLEVEL13::
  1212.  
  1213. biosfs.c:
  1214.     Made sure that tty_getchar() won't see (long) negative values
  1215.     returned from a successful read, by clearing the high bit
  1216.     of read values.
  1217. *fs.c,atarierr.h:
  1218.     Made file systems responsible for dealing with "." and "..";
  1219.     introduced a new (fake) EMOUNT error to indicate when ".." is
  1220.     found in a root directory (this is for the benefit of the
  1221.     unified file system code)
  1222. dosdir.c,filesys.c:
  1223.     Changes to allow for the unified file system.
  1224. unifs.c, makefile:
  1225.     New file, for a "unified" file system.
  1226. filesys.c, *fs.c:
  1227.     Renamed denyaccess() to denyshare().
  1228. dosdir.c:
  1229.     Changed getname() to work from the root down instead of from
  1230.     the directory up; this should work better for mounting and
  1231.     symbolic links.
  1232. dosdir.c:
  1233.     Moved the check for a drive specifier (A:\FOO) in Dsetpath to
  1234.     where it should have been, namely before any use of the drive.
  1235. biosfs.c,pipefs.c:
  1236.     In opendir, make sure the directory structure is properly
  1237.     initialized.
  1238. dos.c:
  1239.     Changed snice and srenice to pnice and prenice; also modified the
  1240.     return values to be 16 bit (for the normal case), and 32 bit
  1241.     negative for errors, so that low priority processes can be
  1242.     distinguished from errors.
  1243. debug*.c:
  1244.     The Bconstat() check for the printer should be applied to device
  1245.     0, not 1.
  1246.  
  1247. PATCHLEVEL12::
  1248.  
  1249. dosdir.c,filesys.c:
  1250.     Re-wrote Fsfirst/next to use opendir/readdir/closedir. Re-wrote
  1251.     the pat_match function to work correctly (at least, according
  1252.     to the TOS rules :-).
  1253. *fs.c, file.h:
  1254.     Added opendir/readdir/closedir calls to file systems to allow
  1255.     more general file systems; also changed getattr into getxattr
  1256.     (again, to allow file systems with extra goodies), setattr into
  1257.     chattr, and added chown and chmod calls. Deleted sfirst/snext
  1258.     file system entry points, and the Xsfirst/Xsnext system calls.
  1259. *fs.c,file.h,dosfile.c,dosdir.c:
  1260.     Changed file systems to have separate calls for reading/writing
  1261.     volume labels. Added checks to Fattrib and Fcreate to avoid creating
  1262.     files with bad attributes (e.g. FA_LABEL or FA_DIR and anything
  1263.     else).
  1264. main.c:
  1265.     Change the definition of tosvers so that TOS 1.0 corresponds
  1266.     to tosvers == 0x100, not tosvers == 0. Also, clean up the
  1267.     code for testing TOS versions.
  1268.     WARNING: This may break RAM TOS versions. I doubt it matters.
  1269. bios.c,main.c:
  1270.     Always set the kbshft variable, so that kbshift is more
  1271.     efficient.
  1272. dos.c:
  1273.     Eliminated the old code that allowed Super(-1L) to work (GEMDOS
  1274.     doesn't support this, so why should MiNT?)
  1275. dos.c:
  1276.     Added GEMDOS date and time routines, and made sure that
  1277.     datestamp and timestamp are initialized properly when
  1278.     MiNT is started.
  1279. mem.c:
  1280.     Increased the size of the buffer used for reading relocation
  1281.     information in load_region.
  1282. *fs.c, dosfile.c:
  1283.     Changed the filesystem getdev call to return a file cookie
  1284.     (this saves a call to lookup on every open).
  1285. *fs.c, filesys.c:
  1286.     Eliminated static variables, changed all routines that used to
  1287.     return pointers to cookies to take an extra argument (a pointer
  1288.     to the place to put the result).
  1289. tosfs.c:
  1290.     Turn O_COMPAT sharing mode into O_DENYNONE (after making other
  1291.     appropriate changes to the access modes).
  1292. debugold.c:
  1293.     Updated to reflect changes in debug.c.
  1294. debug.c:
  1295.     Added calls to va_end where appropriate.
  1296. debug.c:
  1297.     Before, hitting a key paused debugging output; now, debug_ws
  1298.     checks the device that output is going to, so that e.g. if it's
  1299.     going to the MIDI port, the output is paused when a character
  1300.     arrives on the MIDI port.
  1301. mem.c:
  1302.     Made exec_region use O_DENYNONE sharing mode instead of O_DENYW
  1303.  
  1304. PATCHLEVEL11::
  1305.  
  1306. dosfile.c:
  1307.     Forbid closing file handles < 0; this will prevent accidental
  1308.     destruction of the BIOS handles.
  1309. dosfile.c:
  1310.     Change Fbiosdev to be MIDI specific, rename it to Fmidipipe, and
  1311.     move it to dosfile.c. The semantics are a bit different, too;
  1312.     see the comments in dosfile.c.
  1313. bios.c:
  1314.     Really fix the MIDI output routines, this time. (sigh)
  1315.  
  1316. PATCHLEVEL10::
  1317.  
  1318. signal.c:
  1319.     Fixed a typo in the message printed when bombs occur. Also,
  1320.     removed the copying of data from the supervisor stack to the
  1321.     BIOS area -- this was causing very strange problems, and it's
  1322.     not clear that the info would be useful under MiNT anyway.
  1323.     Finally, all this is only supposed to happen for certain
  1324.     signals, not for any random killings.
  1325.  
  1326. PATCHLEVEL9::
  1327.  
  1328. file.h, *fs.c:
  1329.     Changed the definition of the DTA buffer to free up space for
  1330.     user/group id fields and an extended attributes field. Made
  1331.     sfirst/snext use the 'aux' field of the directory cookie
  1332.     as an index.
  1333. dos.c:
  1334.     Fixed Talarm() to return the number of seconds left before an
  1335.     alarm, not the number of milliseconds.
  1336. dosdir.c:
  1337.     New system calls, Xsfirst/Xsnext, for accessing file systems
  1338.     with long (>12 character) names.
  1339. signal.c:
  1340.     Fill in the BIOS post-mortem dump error correctly after
  1341.     bus errors, address errors, etc. Also, made the "bomb" replacement
  1342.     routine give the process basepage address and program counter,
  1343.     as suggested by AKP.
  1344. tosfs.c:
  1345.     Fixed the tos_lookup bug that was causing bus errors during file
  1346.     opens.
  1347.  
  1348. PATCHLEVEL8::
  1349.  
  1350. tosfs.c:
  1351.     Made opens with O_COMPAT sharing mode always open for both reading
  1352.     and writing; this is so broken TOS programs that write to read-only
  1353.     handles will continue to work.
  1354. file.h, tty.c:
  1355.     Added TIOCGWINSZ/TIOCSWINSZ and the appropriate window size
  1356.     fields to the tty structure to support them.
  1357. dossig.c:
  1358.     Remove user id checks (for now). Make it impossible to catch
  1359.     SIGSTOP.
  1360. bios.c:
  1361.     Fix so Bconout returns a value (it really should, at least for
  1362.     the printer).
  1363. mem.c:
  1364.     Don't context switch and retry alloc_region; file systems and some
  1365.     parts of the kernel aren't expecting the context switch, and besides
  1366.     the previous change makes this tactic less likely to be helpful.
  1367. mem.c:
  1368.     Don't allocate *all* of the memory to the basepage, leave some for
  1369.     the kernel and other programs.
  1370. pipefs.c:
  1371.     Add a check for broken pipes when a program is trying to write
  1372.     atomically.
  1373. dosmem.c:
  1374.     Block job control signals during a vfork instead of ignoring
  1375.     them; this will result in the "right" thing happening after
  1376.     the exec (since the blocked signals will then be unblocked).
  1377. tosfs.c:
  1378.     Eeek! Fixed a very serious bug in the garbage collection
  1379.     routines ("i" was used where "j" should have been in a loop:
  1380.     result: things could be garbage collected that shouldn't
  1381.     have been!)
  1382. procfs.c:
  1383.     changed the return value from "dfree" to more accurately indicate
  1384.     the free memory in the system, and to also provide information
  1385.     about the smallest unit of allocable memory (currently a longword)
  1386. *fs.c,dosfile.c,dosdir.c,filesys.c:
  1387.     instead of passing fcookies to file systems, pass pointers to
  1388.     them; this should slightly improve efficiency, and greatly
  1389.     improve portability (otherwise, compilers used to make
  1390.     installable file systems would have to have the same structure
  1391.     passing/return conventions as the one that compiled the kernel)
  1392. dos.c:
  1393.     new system call, Srenice(), to change priority of a different
  1394.     process
  1395. dos.c:
  1396.     change Fbiosdev() system call to take a pid argument
  1397. proc.h, dosfile.c:
  1398.     add per-file descriptor flags for things like "close on exec"
  1399. file.h, mem.c, *fs.c:
  1400.     new file open mode, O_EXEC, for the kernel to use in Pexec
  1401. rendez.c, dos.c:
  1402.     new file from AKP to implement a simple and fast message based
  1403.     IPC; the new system call is Pmsg. Also note that the syscall number
  1404.     of Pmsg is 0x125, which used to be used by Fbiosdev; Fbiosdev has
  1405.     been moved to 0x126.
  1406. filesys.c:
  1407.     applied Steve Henson's patches to improve path2cookie's handling of
  1408.     repeated slashes
  1409. proc.h:
  1410.     MAX_OPEN should be 32, not 20!
  1411. mem.c:
  1412.     Ignore "close on exec" flag for the standard handles (for some
  1413.     reason, bash manages to set these for 0,1,2; this is probably a bug
  1414.     in the port of bash, but on the other hand it's unlikely that
  1415.     anyone would really want to close the standard handles when doing
  1416.     an exec, anyway)
  1417. tty.c:
  1418.     Fixed RAW mode reads on terminals so that they're no longer
  1419.     terminated by '\r' or '\n' (and so that pty slaves aren't forced
  1420.     to read just 1 character at a time). Thanks to AKP for catching
  1421.     this.
  1422.  
  1423. PATCHLEVEL7::
  1424.  
  1425. *fs.c:
  1426.     Cleaned up the Dpathconf() return values to better reflect
  1427.     reality, and made the code a little easier to understand.
  1428. bios.c:
  1429.     Adjust bcostat() parameters so that V:\MIDI and V:\KBD call
  1430.     the right (wrong) device (BIOS devices 3 and 4 are mixed
  1431.     up for Bcostat).
  1432. dosmem.c:
  1433.     Made sure that Malloc(0L) always returns a NULL pointer.
  1434. dosfile.c:
  1435.     Made Fclose() of handles 0, 1, 2, and 3 restore the default
  1436.     mappings. (Apparently TOS _does_ do this, after all.)
  1437. bios.c:
  1438.     AHDI 3.1 added a new parameter to Rwabs; we now pass that
  1439.     along too.
  1440. timeout.c:
  1441.     Make canceltimeout() free the memory used by the time out
  1442.     descriptor. (another Fselect bug)
  1443. signal.h:
  1444.     Removed ABORT and ALARM from list of signals that are reported
  1445.     by the kernel.
  1446. proc.c:
  1447.     Moved checkalarms() to do_wakeup_things() so that short time outs
  1448.     will be properly recognized; this fixes a nasty bug in Fselect.
  1449.  
  1450. PATCHLEVEL6::
  1451.  
  1452. pipefs.c:
  1453.     Make writes of 1024 or fewer bytes atomic. Also, increase pipe
  1454.     buffer size to 4096.
  1455. tosfs.c:
  1456.     Make O_EXCL and O_TRUNC bits useful.
  1457. tosfs.c,pipefs.c,filesys.c:
  1458.     Fully implement file sharing modes for tosfs and pipefs. A new
  1459.     routine (denyaccess) is provided in filesys.c for checking
  1460.     file open modes and determining conflicts (if any).
  1461. pipefs.c:
  1462.     If a process writes on a broken pipe while ignoring SIGPIPE,
  1463.     the write now returns -1. (Thanks, Stephen)
  1464. debug.c, bios.c:
  1465.     Applied bammi's patches to PATCHLEVEL 5 to fix some typos.
  1466.  
  1467. PATCHLEVEL5::
  1468.  
  1469. debug.c, bios.c:
  1470.     Applied AKP's debugging output patches, to allow TRACE and
  1471.     DEBUG output to go to serial ports as well as the printer.
  1472.  
  1473. PATCHLEVEL4::
  1474.  
  1475. dos.c:
  1476.     NEW SYSTEM CALL: Fbiosdev() to control redirection of BIOS
  1477.     devices.
  1478. bios.c, proc.h:
  1479.     Added binput and boutput arrays to allow for per-process redirection
  1480.     of BIOS device input and output to GEMDOS file handles.
  1481. biosfs.c:
  1482.     Changed "mdi" to "midi".
  1483.     WARNING: this change could (I suppose) break existing code.
  1484. util.c:
  1485.     Added a umalloc() function to allocate memory in user space,
  1486.     and modified the various sfirst routines to use this to
  1487.     allocate space for patterns instead of kmalloc.
  1488. dosdir.c,file.h:
  1489.     Added an FS_CASESENSITIVE flag to control conversion of file
  1490.     names to upper case for TOS domain processes.
  1491. dosdir.c, *fs.c:
  1492.     Made sfirst/snext functions take an extra argument, the length
  1493.     of the file name field in the DTA buffer (so that we can provide
  1494.     Xsfirst/Xsnext functions that can work with longer names)
  1495. mem.c:
  1496.     Fixed exec_region so that the close-on-exec flag works.
  1497. filesys.c:
  1498.     Made path2cookie take the name of the place to store the last
  1499.     component of the path name as an argument (instead of always
  1500.     storing it in the global variable temp1).
  1501. biosfs.c:
  1502.     Added code for O_NDELAY on bios devices.
  1503. tosfs.c:
  1504.     Cleaned up garbage collection a bit -- I hope this fixes the
  1505.     problems with running out of indices.
  1506. filesys.c:
  1507.     Returned the special parsing code for CON:, AUX:, etc.
  1508. file.h:
  1509.     OOPS! The flock structure was missing an element (l_whence). It
  1510.     was added.
  1511.     WARNING: This change may break existing code.
  1512. util.c:
  1513.     Made kmalloc take a long parameter, just in case installable
  1514.     file systems need lots of memory.
  1515. file.h, atarierr.h, pipefs.c:
  1516.     Made file modes compatible with _FLK specification. Also
  1517.     added the ELOCKED and ENSLOCK errors to atarierr.h, and made
  1518.     pipefs.c use ELOCKED instead of EACCDN.
  1519.     WARNING: this *will* break existing programs. In particular, mgr
  1520.     no longer works :-( because O_NDELAY has changed. (this was
  1521.     temporarily patched)
  1522. dos.c,dosfile.c:
  1523.     Added Flock() system call.
  1524. mem.c:
  1525.     Made the initial user stack pointer low enough so that syscall.s
  1526.     won't run into the end of memory if the user makes a system call
  1527.     right away and doesn't push many parameters (the code in syscall
  1528.     always tries to copy a large chunk of the caller's stack).
  1529. dosmem.c:
  1530.     Made vfork'd processes ignore job control signals (thanks to
  1531.     Stephen for pointing out how some shells rely on BSD's similar
  1532.     behaviour).
  1533.  
  1534. PATCHLEVEL3::
  1535.  
  1536. dosfile.c, file.h, *fs.c, bios.c:
  1537.     Changed f_select to use the new timeout mechanism, and provided
  1538.     routines in device drivers to wake up selecting processes.
  1539. proc.h:
  1540.     New queue, SELECT_Q, for processes doing "select", to match above
  1541.     changes
  1542. dos.c:
  1543.     Changed t_alarm to use the new timeout mechanism.
  1544. timeout.c,proc.h:
  1545.     Added a new "timeout" mechanism, so that processes can specify
  1546.     an action to be taken when a counter expires.
  1547. various places:
  1548.     Cleaned up TRACE and DEBUG output
  1549. proc.c:
  1550.     Set current directory based on the TOS current directory
  1551.     when MiNT is starting up.
  1552. debug.c:
  1553.     Added AKP's "trace" mode patch
  1554. filesys.c:
  1555.     Replaced strcmp() for . and .. with direct comparisons, again
  1556.     per AKP.
  1557. tosfs.c:
  1558.     Improved search performance a bit (indicies are now allocated
  1559.     at the beginning of the list, instead of at the end)
  1560. main.c, version.h:
  1561.     Introduced PATCHLEVEL for alpha and beta test versions    
  1562. util.c:
  1563.     Made kmalloc() try the kernel memory region first for small
  1564.     regions, to cut down fragmentation of the user's memory space
  1565. proc.h:
  1566.     Made the system stacks bigger, to compensate for the bigger
  1567.     contexts now that there's FPU support
  1568. dosmem.c:
  1569.     Fixed bug with Pexec mode 6 (thanks again, AKP)
  1570. biosfs.c:
  1571.     Changed FD0 to STDIN, FD1 to STDOUT, etc.
  1572.     WARNING: this change could break existing code
  1573. filesys.c:
  1574.     '/' is no longer a directory separator for MiNT domain processes
  1575.     (few were using it, and it simplifies things to be able to
  1576.     assume '\' is the only such separator).
  1577.     WARNING: this change could break existing code
  1578. all over the place:
  1579.     Changed the way directories/files are stored. We now have
  1580.     "file cookies" for directories, instead of strings. We
  1581.     also now have two directories per drive per process
  1582.     (a root and current).
  1583. minixfs.c:
  1584.     Removed from the main compile, and MINIX_FS symbol was also
  1585.     removed -- this will be a loadable file system someday
  1586.     (soon, I hope).
  1587. various places:
  1588.     Added Alex Kiernan's patches to support compilation under
  1589.     Lattice C v5
  1590. proc.h, context.s:
  1591.     Added Alex Kiernan's FPU co-processor patches. WARNING: this
  1592.     changes the layout of the proc structure in memory, and so
  1593.     breaks "ps" and similar programs.
  1594. proc.c:
  1595.     Changed sleep() to take the wait condition as an argument; this
  1596.     means that fewer things need to know the internals of the
  1597.     PROC structure
  1598. various places:
  1599.     Added AKP's T_TOSTOP flag changes
  1600. minixfs.c:
  1601.     Changed the 8K buffer in do_change to a static variable; our
  1602.     stacks aren't *that* big!
  1603. intr.s:
  1604.     Fixed a typo that was causing serious problems with the bus
  1605.     error and other exception codes on the TT (thanks for
  1606.     catching this, Allan).
  1607. dosmem.c,signal.c:
  1608.     Corrected the GEMDOS termination vector code (the system stack
  1609.     was being corrupted if the user's code returned). Thanks to
  1610.     Julian Reschke for catching this error.
  1611. ===========================================================================
  1612. version 0.8
  1613.  
  1614. biosfs.c, pipefs.c:
  1615.     fix ^C and ^Y to send the signals to the whole process group,
  1616.     and also to make sure processes don't read these keys if
  1617.     they're turned into signals
  1618. intr.s,dossig.c:
  1619.     fix exception handlers to be more careful about the distinction
  1620.     between being in or out of the kernel
  1621. intr.s, syscall.s, main.c:
  1622.     make sure interrupts are off before changing any vectors
  1623. bios.c:
  1624.     fixed the annoying problems with CTRL-ALT-Fx sometimes leaving
  1625.     keys in the buffer
  1626. signal.c:
  1627.     forced p_sigreturn() with no signal pending to unwind the
  1628.     *whole* signal stack, in case there were multiple signals
  1629.     pending at the time the user did a longjmp() (or whatever
  1630.     prompted the Psigreturn())
  1631. dosmem.c:
  1632.     p_wait3 now supports the WUNTRACED bit; if this isn't set,
  1633.     processes stopped due to job control are *not* returned
  1634. dosmem.c:
  1635.     removed dLibs kludge -- some programs rely on p_parent being
  1636.     non-zero to tell them that they're not accessories
  1637. various places:
  1638.     cleaned up job control stuff to be more Unix like
  1639. mem.c,util.c:
  1640.     added a new memory map for the kernel -- this should ease
  1641.     the problems with programs grabbing all of available memory
  1642. mem.c,dosmem.c:
  1643.     incorporated Allan's bugfixes; alternative RAM should work now
  1644. signal.c, main.c, intr.s:
  1645.     integrated signals with normal exceptions, so that e.g.
  1646.     a bus error raises SIGBUS. This improves the survivability
  1647.     of the kernel, so that a bus error resulting from a bad
  1648.     system call parameter won't kill MiNT, just the offending
  1649.     process.
  1650. proc.c:
  1651.     kludge to let low priority processes run every so often, even
  1652.     in the presence of a high priority process that is ready to run
  1653. atarierr.h:
  1654.     ENMFIL is -49, not -47 -- so much for Abacus' docs :-)
  1655. procfs.c:
  1656.     changes to allow read/write from process space
  1657. minixfs.[ch]:
  1658.     changed lots of function parameter types to avoid promotion and
  1659.     prototype problems with 32 bit code
  1660. bios.c:
  1661.     changed IOREC to IOREC_T to avoid name conflicts with some osbind.h
  1662. biosfs.c:
  1663.     made mouse driver change the line A mouse position variables, so MGR
  1664.     will work with bigscrn and similar large screen emulators
  1665. minixfs.c:
  1666.     new version from Stephen, now supports floppies and other removable
  1667.     media
  1668. mem.c, dosmem.c, dos.c:
  1669.     added code to support new TT TOS calls Mxalloc and Maddalt, plus
  1670.     program flags for loading/mallocing in alternate memory
  1671. bios.c,biosfs.c,dosfile.c:
  1672.     changed so that bios handles 0 and 1 can be redirected just like
  1673.     handle 2 (via the new file handles -3 and -2 respectively; AUX:
  1674.     and PRN: now refer to these files, and RS232 and CENTR to the
  1675.     physical devices)
  1676. dosdir.c:
  1677.     Dsetdrv() fixed to return an error indication when one happens
  1678. dos.c:
  1679.     fixed Super() bug (thanks Stephen)
  1680. minixfs.c:
  1681.     incorporated changes to handle 1K sector sizes
  1682.  
  1683. =============================================================================
  1684. version 0.7
  1685.  
  1686. minixfs.c:
  1687.     new file, courtesy of Stephen N. Henson (olorin@tardis.cs.ed.ac.uk)
  1688.     this is still "under construction"; see minixfs.doc for more details
  1689. bios.c:
  1690.     CTRL-ALT-UNDO now raises SIGQUIT, for the benefit of people with
  1691.     foreign ROMs (some have trouble with ^\)
  1692. filesys.c:
  1693.     changed pathname resolution code so that multiple slashes in a file
  1694.     name have the same effect as single slashes. POSIX mandates this,
  1695.     and some Unix programs expect it, too
  1696. dosmem.c:
  1697.     changed do_vfork() code so that the text segment of processes is
  1698.     *not* saved in a fork() if the process has separate text, data, and
  1699.     bss segments; this saves a fair bit of memory
  1700. proc.c:
  1701.     changed the process initialization code to better deal with job
  1702.     control; also changed handle 2 to be AUX: (as under TOS) rather
  1703.     than PRN:
  1704. bios.c:
  1705.     added CTRL-ALT-F5 (show memory usage) and CTRL-ALT-F6
  1706.     (show processes)
  1707. filesys.c:
  1708.     make explicit the fact the individual file names are limited to
  1709.     14 characters
  1710. everywhere:
  1711.     change FILENAME_MAX to PATH_MAX
  1712. mem.c:
  1713.     fixed up comments and debugging/trace info for load_region
  1714. dossig.c:
  1715.     NEW SYSTEM CALL: Psigpending() returns the set of signals that
  1716.     have been sent to the process, but not yet delivered.
  1717. dos.c, dosdir.c:
  1718.     NEW SYSTEM CALLS:
  1719.     Sysconf(n) returns information about the global limits of the
  1720.     currently running version of MiNT
  1721.     Dpathconf(name, n) returns information about the file system that
  1722.     the file "name" is located on
  1723. bios.c:
  1724.     allow CTRL-ALT-C, CTRL-ALT-\, and CTRL-ALT-Z to force a SIGINT,
  1725.     SIGQUIT, or SIGTSTP, respectively, even if the terminal is in raw
  1726.     mode
  1727. various places:
  1728.     call zero() instead of bzero()
  1729. context.s,intr.s:
  1730.     changes to make MiNT TT compatible. Thanks to Allan Pratt for this!
  1731. biosfs.c, tosfs.c, pipefs.c, procfs.c:
  1732.     fsfirst/fsnext return all upper case in TOS domain now, but
  1733.     lower case (or mixed) in MiNT domain; this is to try to wean
  1734.     programmers off of the habit of assuming everything is upper case
  1735.     (and converting accordingly)
  1736. biosfs.c:
  1737.     made mouse compatible with TOS ALT-cursor keys (the Y direction was
  1738.     wrong before)
  1739. intr.s:
  1740.     IPL 7 before reboot (thanks, Allan)
  1741. version.h, main.c:
  1742.     made version numbering a bit easier (big deal)
  1743. main.c:
  1744.     AARGH! The cookie jar stuff was plain wrong (the last cookie should
  1745.     have the total number of slots, not just the ones that are free).
  1746. main.c:
  1747.     pass current environment along to init.prg, instead of forcing an
  1748.     empty environment
  1749. signal.c:
  1750.     corrected killpg() bug (wasn't checking signals, so the current
  1751.     process didn't get the signal until later)
  1752. mem.c, dosmem.c:
  1753.     made sure that all sizes would always be rounded to the nearest
  1754.     longword. Just in case they aren't, Malloc(-1L) rounds down to the
  1755.         next smallest longword.
  1756. lots of places:
  1757.     memory handling was overhauled completely; kmalloc now allocates
  1758.     memory from the same space as do m_alloc and p_exec, so there is
  1759.     no artificial constraint on the number of processes
  1760. ===========================================================================
  1761. version 0.6
  1762.  
  1763. dos.c:
  1764.     added Talarm() and Pause() system calls
  1765. bios.c, tty.c, pipefs.c:
  1766.     added real tty structures that programs can manipulate
  1767. proc.c:
  1768.     added some sanity checks for things like stack overflow
  1769. signal.c:
  1770.     revamped signal handling so that Psigreturn() no longer needs an
  1771.     argument.
  1772. dosmem.c:
  1773.     made Pexec'ing processes immune to SIGINT, SIGHUP, and SIGTSTP
  1774. intr.s:
  1775.     fixed the Psigreturn race condition bug
  1776. biosfs.c, pipefs.c, filesys.c, util.c:
  1777.     added case-insensitive string comparison routine, and modified the
  1778.     file systems to use it
  1779. bios.c, console.c:
  1780.     changed return values of status calls from 1 to -1, to be TOS
  1781.     compatible
  1782. dos.c:
  1783.     added new calls to get resource usage, and set resource limits
  1784. dosfile.c:
  1785.     added new call, f_select
  1786. signal.c:
  1787.     changed so stopped processes always have a return code of 0177
  1788. biosfs.c:
  1789.     added a fake "third button" on the mouse (you get it by holding down
  1790.     a shift key and a mouse button)
  1791.     made mouse_read return at least 1 byte
  1792. bios.c, proc.c, biosfs.c:
  1793.     added code to check for CTRL-ALT-key combinations on every
  1794.     process switch; thus, debugging, rebooting, etc. do not require
  1795.     waiting for a read from the keyboard. Also, ^C sends a SIGINT
  1796.     immediately, and ^Z (SIGTSTP) and ^\ (SIGQUIT) take effect
  1797.     right away, too.
  1798.     CTRL-ALT-DEL supported for TOS < 1.4
  1799.  
  1800. =========================================================================
  1801. version 0.5
  1802.  
  1803. First publically released version (made available for FTP as a beta test)
  1804.  
  1805.