Annotation of MiNT/src/changes, revision 1.1.1.5

1.1       root        1: Changes are listed in *reverse* order, most recent changes being
                      2: 
                      3: first.
                      4: 
                      5: 
                      6: 
1.1.1.5 ! root        7: version 1.12
        !             8: 
        !             9: 
        !            10: 
        !            11: dos.c, dosdir.c: [email protected]
        !            12: 
        !            13:        Added Dreadlabel() and Dwritelabel() system calls.
        !            14: 
        !            15: 
        !            16: 
        !            17: 
        !            18: 
        !            19: version 1.11
        !            20: 
        !            21: 
        !            22: 
        !            23: tty.c: [email protected]
        !            24: 
        !            25:        Added T_ECHOCTL flag.
        !            26: 
        !            27: proc.c,file.h: [email protected]
        !            28: 
        !            29:        Added iwake() function to go with isleep().
        !            30: 
        !            31: tty.c: [email protected]
        !            32: 
        !            33:        Fixed Fselect() collision detection.
        !            34: 
        !            35: pipefs.c,shmfs.c: [email protected]
        !            36: 
        !            37:        Use effective user id's when creating files.
        !            38: 
        !            39: mint.h,debug.c: [email protected]
        !            40: 
        !            41:        Added code to call debugging routines only if the debugging
        !            42: 
        !            43:        level is appropriately set.
        !            44: 
        !            45: signal.c,tty.c,etc.: [email protected]
        !            46: 
        !            47:        Fixed a big security hole in killgroup().
        !            48: 
        !            49: all over the place: [email protected]
        !            50: 
        !            51:        Extensive changes to the modem code, to support
        !            52: 
        !            53:        new ioctls (e.g. for VMIN and VTIME) and to support
        !            54: 
        !            55:        SIGHUP.
        !            56: 
        !            57: timeout.c: [email protected]
        !            58: 
        !            59:        Added an optional long argument for timeouts.
        !            60: 
        !            61: *fs.c: [email protected]
        !            62: 
        !            63:        Added DP_MODEATTR and DP_XATTRFIELDS to Dcntl() call.
        !            64: 
        !            65: dosfile.c: [email protected]
        !            66: 
        !            67:        Made Fselect correctly handle collisions.
        !            68: 
        !            69: signal.c: [email protected]
        !            70: 
        !            71:        Fix ikill.
        !            72: 
        !            73: various places: [email protected]
        !            74: 
        !            75:        Patches for Lattice C compatibililty.
        !            76: 
        !            77: signal.c: [email protected]
        !            78: 
        !            79:        For traced processes, notify tracer about all signals
        !            80: 
        !            81:        sent (even if they are ignored or blocked).
        !            82: 
        !            83: dosdir.c: [email protected]
        !            84: 
        !            85:        Don't follow links in Fchown.
        !            86: 
        !            87: dos.c,main.c,quickmov.spp,procfs.c: [email protected]
        !            88: 
        !            89:        Various bug fixes and enhancements.
        !            90: 
        !            91: unifs.c: [email protected]
        !            92: 
        !            93:        Added date,time fields for drive U:, and made
        !            94: 
        !            95:        the root directory accessible only to administrators.
        !            96: 
        !            97: timeout.c: [email protected]
        !            98: 
        !            99:        Fixed timeouts so that canceltimeout() on an
        !           100: 
        !           101:        expired timeout will no longer cancel a new one.
        !           102: 
        !           103: pipefs.c:
        !           104: 
        !           105:        Made it no longer fatal to use FIONREAD or FIONWRITE
        !           106: 
        !           107:        on unidirectional pipes.
        !           108: 
        !           109: 
        !           110: 
        !           111: version 1.11 BETA
        !           112: 
        !           113: 
        !           114: 
        !           115: biosfs.c, pipefs.c, tty.c: [email protected]
        !           116: 
        !           117:        Improved ^S/^Q handling for ptys.
        !           118: 
        !           119: biosfs.c, proc.c, xbios.c: [email protected]
        !           120: 
        !           121:        Cleaned up xbios and related initializations.
        !           122: 
        !           123: dos.c, dosmem.c, dossig.c, intr.spp, proto.h: [email protected]
        !           124: 
        !           125:         Added new system call Psigintr().
        !           126: 
        !           127: dos.c, proc.[ch]: [email protected]
        !           128: 
        !           129:        Implemented Tsetitimer() system call.
        !           130: 
        !           131: biosfs.c,pipefs.c,tty.c: [email protected]
        !           132: 
        !           133:         add readb+writeb for ptys (for the slave->master pipe),
        !           134: 
        !           135:         use memcpy for all pipes
        !           136: 
        !           137:         really buffer 4K not 4K - 1 byte so the copies are aligned more often
        !           138: 
        !           139: bios.c,biosfs.c,file.h,mint.h,proto.h,quickmov.spp,sproto.h
        !           140: 
        !           141: tty.c,types.h,xbios.c: [email protected]
        !           142: 
        !           143:         add shortcuts for fast RAW tty IO in the DEVDRV
        !           144: 
        !           145:         make memcpy an extended quickmove
        !           146: 
        !           147:         add an XDEF'd _bcopy as a hint for gcc
        !           148: 
        !           149: mint.h: [email protected]
        !           150: 
        !           151:        Moved definition of INLINE here.
        !           152: 
        !           153: bios.c,biosfs.c,xbios.c: [email protected]
        !           154: 
        !           155:        Better serial line support, particularly for SCC ports,
        !           156: 
        !           157:        and work arounds for some BIOS bugs.
        !           158: 
        !           159: dosmem.c: [email protected]
        !           160: 
        !           161:        Fix a memory leak with M_KEEP regions.
        !           162: 
        !           163: dosmem.c,main.c: [email protected]
        !           164: 
        !           165:        Allow memory protection to work with the old AES (if
        !           166: 
        !           167:        MULTITOS is not defined).
        !           168: 
        !           169: dosfile.c fasttext.c *fs.c: [email protected]
        !           170: 
        !           171:        Add FIOEXCEPT ioctls, and make Fselect() able to
        !           172: 
        !           173:        select for exceptional conditions.
        !           174: 
        !           175: dosfile.c, proc.c: [email protected]
        !           176: 
        !           177:        Solve the 'endless serial overruns' bug.
        !           178: 
        !           179: dosmem.c: [email protected]
        !           180: 
        !           181:        Don't allocate memory for shared text regions in a fork().
        !           182: 
        !           183: dos.c: [email protected]
        !           184: 
        !           185:        New system calls to support supplementary group id's.
        !           186: 
        !           187: dosfile.c dosmem.c filesys.c mem.[ch]: [email protected]
        !           188: 
        !           189:        Improve the shared text sticky bit code.
        !           190: 
        !           191: dosmem.c, mem.c: [email protected]
        !           192: 
        !           193:        Keep shared-text memory regions in memory even after
        !           194: 
        !           195:        the last process using them exits (like a sticky bit)
        !           196: 
        !           197: dos.c,intr.spp,proc.c,loadave.h: ++steve usher (?)
        !           198: 
        !           199:        Added uptime/load average code.
        !           200: 
        !           201: bios.c biosfs.c intr.spp: [email protected],[email protected], et. al.
        !           202: 
        !           203:        Allow select() on serial devices.
        !           204: 
        !           205: lots of places: [email protected]
        !           206: 
        !           207:        Diffs for Pure C compatibility.
        !           208: 
        !           209: biosfs.c: [email protected]
        !           210: 
        !           211:        Made Dcntl() check for already existing devices
        !           212: 
        !           213:        with the same name, when installing a new device.
        !           214: 
        !           215: tosfs.c: [email protected]
        !           216: 
        !           217:        Fixed a bug in the force media change code.
        !           218: 
        !           219: biosfs.c,pipefs.c: [email protected]
        !           220: 
        !           221:        Made blksize 1024.
        !           222: 
        !           223: dosmem.c: [email protected]
        !           224: 
        !           225:        When a process exits both its own and its children's
        !           226: 
        !           227:        process time should be added to the parent's children
        !           228: 
        !           229:        time.  Also the time reported as resource usage
        !           230: 
        !           231:        should include the children's time.
        !           232: 
        !           233: pipefs.c: [email protected]
        !           234: 
        !           235:        Don't cancel selects when pipes are closed, unless
        !           236: 
        !           237:        it is the last close for the pipe.
        !           238: 
        !           239: dos.c: [email protected]
        !           240: 
        !           241:        Added Pseteuid() and Psetegid() system calls.
        !           242: 
        !           243: dos.c,dosdir.c: [email protected]
        !           244: 
        !           245:        Added Dxreaddir() system call.
        !           246: 
        !           247: signal.c: [email protected]
        !           248: 
        !           249:        Provide more information about program crashes
        !           250: 
        !           251:        to the ALERT pipe.
        !           252: 
        !           253: tosfs.c,bios.c: [email protected]
        !           254: 
        !           255:        Allowed permissions to be changed on the root
        !           256: 
        !           257:        directories of TOS drives; added CRC code for
        !           258: 
        !           259:        inode numbers; fixed blocksize reported when
        !           260: 
        !           261:        sector size != 512.
        !           262: 
        !           263: signal.c:
        !           264: 
        !           265:        Provided a version of "kill" that device drivers may
        !           266: 
        !           267:        safely call from an interrupt. This function (ikill)
        !           268: 
        !           269:        is available in the kerinfo structure.
        !           270: 
        !           271: tty.c,dosfile.c:
        !           272: 
        !           273:        Made Fselect() recognize extended escape sequences.
        !           274: 
        !           275: tty.c: [email protected]
        !           276: 
        !           277:        Improved job control checks for SIGTTIN/SIGTTOU.
        !           278: 
        !           279: dosmem.c,proc.c: [email protected]
        !           280: 
        !           281:        Give more time to starting processes.
        !           282: 
        !           283: proc.c: [email protected]
        !           284: 
        !           285:        Reduce the amount of time the kernel spends at ipl 7.
        !           286: 
        !           287: tty.c: [email protected]
        !           288: 
        !           289:        When the window size for a tty, has changed, send SIGWINCH to the
        !           290: 
        !           291:        foreground process group of the tty.
        !           292: 
        !           293:        Do CRMOD input translation only in COOKED mode.
        !           294: 
        !           295: dosfile.c,dosdir.c,proc.c: [email protected]
        !           296: 
        !           297:        Fixed some bugs in the re-entrant open() function.
        !           298: 
        !           299: timeout.c,file.h,proc.h: [email protected]
        !           300: 
        !           301:        Added Kay Roemer's MiNTNet code.
        !           302: 
        !           303: filesys.c:
        !           304: 
        !           305:        Relax the conditions for EUNDEV drives (OK, I was wrong :-)).
        !           306: 
        !           307: dosfile.c,proc.c:
        !           308: 
        !           309:        Finished the select() collision detection code (inspired by
        !           310: 
        !           311:        Kay Roemer's patch for 1.09).
        !           312: 
        !           313: dosmem.c: [email protected]
        !           314: 
        !           315:        Only release the controlling terminal when all members of a pgroup
        !           316: 
        !           317:        exit.
        !           318: 
        !           319: biosfs.c: [email protected]
        !           320: 
        !           321:        Don't "follow the chain" for character special devices
        !           322: 
        !           323:        in bios_getxattr().
        !           324: 
        !           325: tty.c, file.h, xbios.c: [email protected]
        !           326: 
        !           327:        Add a real TIOCSETP (differs from TIOCSETN in that it waits for
        !           328: 
        !           329:        the output buffer to be empty if the device supports TIOCOUTQ.)
        !           330: 
        !           331:        Remove a kludge in rsconf() which is not needed if a real TIOCSETP
        !           332: 
        !           333:        exists.
        !           334: 
        !           335: various places: [email protected]
        !           336: 
        !           337:        Added __attribute__((noreturn)) support.
        !           338: 
        !           339: debug.c, fasttext.c: [email protected]
        !           340: 
        !           341:        Assorted bug fixes.
        !           342: 
        !           343: intr.spp: [email protected]
        !           344: 
        !           345:        Improved select() for repeating keys.
        !           346: 
        !           347: various places: [email protected]
        !           348: 
        !           349:        All kinds of useful optimizations and bug fixes.
        !           350: 
        !           351:        Thanks, Andreas!
        !           352: 
        !           353: various places: [email protected]
        !           354: 
        !           355:        Removed various PureC warnings.
        !           356: 
        !           357: main.c: [email protected]
        !           358: 
        !           359:        Initialize timestamp and datestamp before
        !           360: 
        !           361:        doing file system initialization.
        !           362: 
        !           363: pipefs.c: [email protected]
        !           364: 
        !           365:        Changed FIONREAD to correctly return the number
        !           366: 
        !           367:        of bytes available for reading, even if there
        !           368: 
        !           369:        are no writers.
        !           370: 
        !           371: tosfs.c: [email protected]
        !           372: 
        !           373:        Make FIONREAD return an accurate count of the
        !           374: 
        !           375:        number of bytes left to read.
        !           376: 
        !           377: tty.c: [email protected]
        !           378: 
        !           379:        Fcntl(TIOCSETP) now puts the terminal into RAW or
        !           380: 
        !           381:        cooked mode immediately (it used to take until
        !           382: 
        !           383:        the next read or write).
        !           384: 
        !           385: dosfile.c: [email protected]
        !           386: 
        !           387:        Watch out for aliasing of pointers passed to
        !           388: 
        !           389:        Fselect().
        !           390: 
        !           391: 
        !           392: 
1.1.1.4   root      393: version 1.10
                    394: 
                    395: 
                    396: 
                    397: procfs.c: [email protected]
                    398: 
                    399:        New Fcntl() command (PFSTAT) for finding
                    400: 
                    401:        control terminals of processes.
                    402: 
                    403: dosfile.c: [email protected]
                    404: 
                    405:        Make f_open and f_create reentrant.
                    406: 
                    407: main.c: [email protected]
                    408: 
                    409:        Better Falcon Bconmap() fix.
                    410: 
                    411: dos.c: [email protected]
                    412: 
                    413:        NEW SYSTEM CALL: Tmalarm() for millisecond resolution
                    414: 
                    415:        alarms.
                    416: 
                    417: biosfs.c: [email protected]
                    418: 
                    419:        Fixed ioctl(,,TCSETBAUD) when oldbaud == newbaud.
                    420: 
                    421: dosdir.c,unifs.c: [email protected]
                    422: 
                    423:        Extended Dfree() to work properly on arbitrary drives,
                    424: 
                    425:        not just ones that are root directories or aliased
                    426: 
                    427:        (this arises e.g. for Dfree() on U:, when the current directory
                    428: 
                    429:        isn't a root).
                    430: 
                    431: syscall.spp,inline.h: [email protected]
                    432: 
                    433:        Bugfix for TOS 1.4: the BIOS expects register A5 to
                    434: 
                    435:        contain a 0 when it is called.
                    436: 
                    437: bios.c: [email protected]
                    438: 
                    439:        Make reads on console interrupt driven.
                    440: 
                    441: procfs.c,shmfs.c:
                    442: 
                    443:        Fixed Fseek(offset,f,2) to properly add "offset" to the
                    444: 
                    445:        end of file position, rather than subtracting it.
                    446: 
                    447: proc.c,signal.c: [email protected]
                    448: 
                    449:        Made sleep return a value specifying whether or not the
                    450: 
                    451:        sleeping process was interrupted by any signals.
                    452: 
                    453: file.h,biosfs.c,fasttext.c: [email protected]
                    454: 
                    455:        Added XATTR structure to bios files, to allow them to have
                    456: 
                    457:        ownership, access modes, and time stamps. Restricted
                    458: 
                    459:        Dcntl on u:\dev to superuser processes.
                    460: 
                    461: biosfs.c, pipefs.c, file.h: [email protected]
                    462: 
                    463:        Fix TIOCFLUSH on biosfs.
                    464: 
                    465:        Give meaning to TIOCFLUSH's argument:  it is now a pointer
                    466: 
                    467:                to a longword mask specifying the type of flush:
                    468: 
                    469:                *arg & 1 -> flush input only
                    470: 
                    471:                *arg & 2 -> flush output only
                    472: 
                    473:                *arg == 0 -> flush input and output
                    474: 
                    475:                arg == NULL -> flush input and output (backwards compatibility)
                    476: 
                    477:        Add TIOCOUTQ to biosfs and pipefs.  The argument is a pointer
                    478: 
                    479:                to a longword to be filled with the number of bytes in the
                    480: 
                    481:                output buffer.
                    482: 
                    483: *fs.c,file.h:
                    484: 
                    485:        Added an "rdev" field to the XATTR structure, so that programs
                    486: 
                    487:        can find the BIOS device number for character devices.
                    488: 
                    489: biosfs.c: [email protected]
                    490: 
                    491:        Added a /dev/fd subdirectory.
                    492: 
                    493: biosfs.c: [email protected]
                    494: 
                    495:        Restrict some operations to privileged users.
                    496: 
                    497: filesys.c: [email protected]
                    498: 
                    499:        Create new device filenames in lower case, for consistency.
                    500: 
                    501: dosdir.c,tosfs.c: [email protected]
                    502: 
                    503:        Improved security for Fdelete, Dsetpath, and some other
                    504: 
                    505:        calls; made TOS file systems accessible only to root and
                    506: 
                    507:        the admin group.
                    508: 
                    509: bios.c,syscall.spp,main.c,proc.h:
                    510: 
                    511:        Added a flag (in_dos) to the PROC structure; the BIOS can use
                    512: 
                    513:        this for security checking on Rwabs and similar calls.
                    514: 
                    515: procfs.c: [email protected]
                    516: 
                    517:        Bug fix: memory protection modes weren't being properly reset
                    518: 
                    519:        after memory was read from/written to.
                    520: 
                    521: mem.c: [email protected]
                    522: 
                    523:        Fixed a bug with memory initialization when the screen is
                    524: 
                    525:        at a fixed location (i.e. with 3rd party graphics cards).
                    526: 
                    527: context.spp: [email protected]
                    528: 
                    529:        Only check for 64 bytes of supervisor stack, rather than 1K; also,
                    530: 
                    531:        corrected some loop counters.
                    532: 
                    533: tty.c: [email protected]
                    534: 
                    535:        Hack so that ^S/^Q work on BIOS devices other than the keyboard.
                    536: 
                    537: intr.spp: [email protected]
                    538: 
                    539:        Check for auto-repeating keys so that Fselect() wakes up more
                    540: 
                    541:        quickly.
                    542: 
                    543: bios.c: [email protected]
                    544: 
                    545:        Made BIOS devices take less CPU time while waiting for characters.
                    546: 
                    547: filesys.c:
                    548: 
                    549:        If a search for a path component (other than the last one)
                    550: 
                    551:        fails, always return EPTHNF (like GEMDOS does).
                    552: 
                    553: pipefs.c:
                    554: 
                    555:        When freeing a closed fifo, free any associated tty as well.
                    556: 
                    557: main.c: [email protected]
                    558: 
                    559:        New command for mint.cnf: "include".
                    560: 
                    561: mem.c:
                    562: 
                    563:        In create_base(), limited the amount of memory assigned to
                    564: 
                    565:        a new basepage if the current process has a limit assigned
                    566: 
                    567:        by Psetlimit().
                    568: 
                    569: biosfs.c:
                    570: 
                    571:        Fixed the DEV_NEWBIOS call (it wasn't linking the newly created
                    572: 
                    573:        device into the bios file system chain).
                    574: 
                    575: dosdir.c:
                    576: 
                    577:        Based on a suggestion by Uwe Seimet: made Dlock() return
                    578: 
                    579:        ELOCKED when called twice by the same process, so that under
                    580: 
                    581:        single tasking AES accessories may use it.
                    582: 
                    583: unifs.c:
                    584: 
                    585:        Fixed a bug in FS_UNMOUNT (fc->index is not necessarily
                    586: 
                    587:        a pointer to a UNIFILE, since the file system may use
                    588: 
                    589:        that for its own purposes).
                    590: 
                    591: debug.c: [email protected]
                    592: 
                    593:        Make only ctrl-alt-key characters significant to the
                    594: 
                    595:        debug code (before, any character could start/stop output).
                    596: 
                    597: memprot.c,mem.c,dosmem.c: [email protected]
                    598: 
                    599:        Andreas did a major clean-up of the memory protection code.
                    600: 
                    601:        It's now faster, and quite a few bugs have been fixed.
                    602: 
                    603: mem.c: [email protected]
                    604: 
                    605:        Made sure that only even addresses are passed to zero() (I guess
                    606: 
                    607:        some linkers don't make sure that text, data, and bss are all
                    608: 
                    609:        even lengths?)
                    610: 
                    611: util.c: [email protected]
                    612: 
                    613:        In kmalloc(), the size passed to nalloc_add_arena() was wrong.
                    614: 
                    615: main.c,debug.c,mem.c: [email protected]
                    616: 
                    617:        Restore the screen to its original address when exiting MiNT.
                    618: 
                    619: fasttext.c: [email protected]
                    620: 
                    621:        Allowed the fasttext device to be opened more than once.
                    622: 
                    623: nalloc2.c: [email protected]
                    624: 
                    625:        Fixed the code for figuring out when to free an arena (it didn't
                    626: 
                    627:        use to take account of the arena size itself).
                    628: 
                    629: proc.c: [email protected]
                    630: 
                    631:        Allocate all memory before doing file duplication, so that
                    632: 
                    633:        if a fork() runs out of memory we don't leave cookies
                    634: 
                    635:        hanging.
                    636: 
                    637: main.c: [email protected]
                    638: 
                    639:        Allow quotes to delimit arguments in the MINT.CNF file.
                    640: 
                    641: xbios.c:
                    642: 
                    643:        Installed a work-around in dosound() for Pure C's problem
                    644: 
                    645:        with "volatile".
                    646: 
                    647: filesys.c:
                    648: 
                    649:        Put in a temporary kludge so that .XFSes that don't install
                    650: 
                    651:        BIOS vectors can work (for a while). Note that .XFSes should
                    652: 
                    653:        either install BIOS vectors, or should mount themselves on
                    654: 
                    655:        drive U: without taking up a drive letter. THIS KLUDGE WILL
                    656: 
                    657:        GO AWAY SOMEDAY SOON!!!
                    658: 
                    659: syscall.spp: [email protected]
                    660: 
                    661:        Various optimizations.
                    662: 
                    663: 
                    664: 
                    665: version 1.09
                    666: 
                    667: 
                    668: 
                    669: biosfs.c:
                    670: 
                    671:        Implement file locking for BIOS devices.
                    672: 
                    673: dosmem.c:
                    674: 
                    675:        Fix the Pexec(200,...) bug (trying to save the command line
                    676: 
                    677:        image must be done *before* the existing program's memory
                    678: 
                    679:        is freed).
                    680: 
                    681: nalloc2.c,util.c:
                    682: 
                    683:        Allow kmalloc()'d memory to be returned to the OS, if possible.
                    684: 
                    685: xbios.c:
                    686: 
                    687:        Dosound() can be called with a negative number as its parameter,
                    688: 
                    689:        in which case it is only an inquiry function.
                    690: 
                    691: 
                    692: 
1.1.1.3   root      693: version 1.08
                    694: 
                    695: 
                    696: 
                    697: dosfile.c,dosdir.c,filesys.c:
                    698: 
                    699:        Made the file and directory operations re-entrant, by replacing
                    700: 
                    701:        the global variable "temp1" with local variables (where needed).
                    702: 
                    703: dosdir.c,filesys.c: [email protected]
                    704: 
                    705:        Cleaned up the directory closing functions.
                    706: 
                    707: dosmem.c: [email protected]
                    708: 
                    709:        Fixed a bug in do_vfork (the child's PROC structure could be
                    710: 
                    711:        freed when signals are checked for, and the old code wasn't
                    712: 
                    713:        prepared for that).
                    714: 
                    715: purec\*.*: [email protected]
                    716: 
                    717:        Updated for the new version of MiNT.
                    718: 
                    719: *.*: [email protected]
                    720: 
                    721:        Lots of fixes to get rid of warnings and some small optimizations.
                    722: 
                    723: dosmem.c,procfs.c: [email protected]
                    724: 
                    725:        In Pexec, save the name and arguments a process was started with
                    726: 
                    727:        into the PROC structure, so that they can be recovered at run time.
                    728: 
                    729: filesys.c,main.c,unifs.c: ++Ulrich Kuehn
                    730: 
                    731:        At boot time, load files called *.xdd which contain external
                    732: 
                    733:        device drivers.
                    734: 
                    735:        Also, provide Dcntl calls for drive U: to allow installing and
                    736: 
                    737:        de-installing file systems at run time.
                    738: 
                    739: bios.c: [email protected]
                    740: 
                    741:        Only busy-wait for the parallel port, not for serial ports.
                    742: 
                    743: unifs.c: [email protected]
                    744: 
                    745:        Pass Dcntl commands along to file systems.
                    746: 
                    747: signal.c: [email protected]
                    748: 
                    749:        Make Fselect interruptable.
                    750: 
                    751: procfs.c: [email protected]
                    752: 
                    753:        Check for illegal signal numbers in ioctl(PTRACEGO,...).
                    754: 
                    755: dosdir.c:
                    756: 
                    757:        Fattrib should have been following links.
                    758: 
                    759: *.spp: ++Claus Brod and Uwe Seimet
                    760: 
                    761:        Various optimizations
                    762: 
                    763: 
                    764: 
                    765: version 1.07
                    766: 
                    767: 
                    768: 
                    769: debug.c: [email protected]
                    770: 
                    771:        Translated the German "FATAL ERROR" message.
                    772: 
                    773: intr.spp:
                    774: 
                    775:        The bus error handler shouldn't use 68030 MMU instructions unless
                    776: 
                    777:        it is on a 68030. (Thanks to Stephen Henson for catching this.)
                    778: 
                    779: 
                    780: 
                    781: version 1.06
                    782: 
                    783: 
                    784: 
                    785: bios.c: [email protected]
                    786: 
                    787:        Fixed a bug with Bconout and TOS 1.02.
                    788: 
                    789: dosmem.c:
                    790: 
                    791:        Bug fix: Pexec mode 4 should cause the child to inherit its parent's
                    792: 
                    793:        memory.
                    794: 
                    795: filesys.c:
                    796: 
                    797:        if disk_changed() detects an invalid drive, return EDRIVE from
                    798: 
                    799:        it and also from path2cookie().
                    800: 
                    801: main.c:
                    802: 
                    803:        Fixed the PRN= line in mint.cnf (it was redirecting AUX:, not
                    804: 
                    805:        PRN:).
                    806: 
                    807: xbios.c:
                    808: 
                    809:        Made Dosound() automatically grant supervisor access to the
                    810: 
                    811:        region the sound is in.
                    812: 
                    813: debug.c:
                    814: 
                    815:        Make the "FATAL ERROR" message multilingual, and also less
                    816: 
                    817:        confusing if debugging information is not provided.
                    818: 
                    819: timeout.c,main.c:
                    820: 
                    821:        Make the addtimeout() and canceltimeout() functions available
                    822: 
                    823:        for device drivers.
                    824: 
                    825: signal.c: [email protected]
                    826: 
                    827:        Reduce the amount of space needed for signal calls (we were
                    828: 
                    829:        being overly cautious on that),
                    830: 
                    831: dosmem.c: [email protected]
                    832: 
                    833:        Make sure that the text segment in which a process will be
                    834: 
                    835:        executing is attached to that process when it is started with
                    836: 
                    837:        a Pexec (4,...).
                    838: 
                    839: asmtrans: [email protected]
                    840: 
                    841:        Enhanced to accept some 68030 specific addressing modes.
                    842: 
                    843: proc.c:
                    844: 
                    845:        Removed the save/restore of the logical screen pointer for the
                    846: 
                    847:        MultiTOS kernel (this causes problems on a Falcon, since if the
                    848: 
                    849:        AES changes resolution its parent process may be left with a
                    850: 
                    851:        logical screen pointer pointing at invalid memory). 
                    852: 
                    853: bios.c: [email protected]
                    854: 
                    855:        Some small optimizations.
                    856: 
                    857: biosfs.c:
                    858: 
                    859:        Fcntl() was not interacting properly with rsconf(), so that
                    860: 
                    861:        setting baud rates via Fcntl didn't work.
                    862: 
                    863: dosfile.c:
                    864: 
                    865:        Fforce() should return 0 on success.
                    866: 
                    867: context.spp,cpu.spp: [email protected]
                    868: 
                    869:        Patches for PureC.
                    870: 
                    871: intr.spp: [email protected]
                    872: 
                    873:        Small optimization: no return value is needed for spl().
                    874: 
                    875: 
                    876: 
                    877: version 1.05
                    878: 
                    879: 
                    880: 
                    881: main.c: [email protected]
                    882: 
                    883:        A better Falcon BIOS fix: if we're on a broken Falcon, turn
                    884: 
                    885:        off Bconmap completely.
                    886: 
                    887: various places: [email protected]
                    888: 
                    889:        Applied Michael's patch to make MiNT compile with PureC and
                    890: 
                    891:        the MiNT library.
                    892: 
                    893: memprot.c: [email protected]
                    894: 
                    895:        Fixed a bug in prot_temp (the cookie values weren't being
                    896: 
                    897:        parsed out correctly). Also, added "const" where appropriate.
                    898: 
                    899: dosfile.c: [email protected]
                    900: 
                    901:        Fixed some places where the fdflags[] for file handles
                    902: 
                    903:        wasn't be set up correctly (default is 0 for std handles,
                    904: 
                    905:        FD_CLOEXEC for non-std).
                    906: 
                    907: cpu.spp,main.c: [email protected]
                    908: 
                    909:        Saved the MMU context when starting MiNT, so that we can
                    910: 
                    911:        restore it again afterwards (and thus exit MiNT gracefully).
                    912: 
                    913: main.c: [email protected]
                    914: 
                    915:        Supplied a PMMU cookie if memory protection is on; if a PMMU
                    916: 
                    917:        cookie already exists, don't do memory protection.
                    918: 
                    919: fasttext.c: [email protected]
                    920: 
                    921:        Added ESC-t support to the fasttext device.
                    922: 
                    923: bios.c: [email protected]
                    924: 
                    925:        Some modem port TSRs also don't return the correct value from
                    926: 
                    927:        Bconout.
                    928: 
                    929: dos.c:
                    930: 
                    931:        Made Tsettime() and Tsetdate() available only to the super user.
                    932: 
                    933: various places: [email protected],[email protected]
                    934: 
                    935:        Portability fixes to make the code compile with PureC and
                    936: 
                    937:        Lattice C; also, Alex fixed up the cache clearing code.
                    938: 
                    939: tosfs.c: [email protected]
                    940: 
                    941:        Fixed a bug in the NEWWAY code (during disk change, don't
                    942: 
                    943:        free file cookies that may be in use).
                    944: 
                    945: context.spp: [email protected]
                    946: 
                    947:        In the restore context code, touch the page containing the
                    948: 
                    949:        (new) supervisor stack pointer before switching stack pointers.
                    950: 
                    951:        Otherwise, if the page is not resident (a 3rd party virtual
                    952: 
                    953:        memory system has swapped it out) then the resulting
                    954: 
                    955:        bus error is fatal.
                    956: 
                    957: tosfs.c: [email protected]
                    958: 
                    959:        Fixed a bug that could cause crashes on disk changes (the
                    960: 
                    961:        'open' field was an integer for directories).
                    962: 
                    963: rendez.c, mem.c: [email protected]
                    964: 
                    965:        Fixed some memory leaks (semaphores weren't freed after being
                    966: 
                    967:        destroyed, and if load_and_reloc failed then the memory
                    968: 
                    969:        allocated for the shared text region wasn't freed).
                    970: 
                    971: procfs.c:
                    972: 
                    973:        When tracing is cancelled for a process with PTRACESFLAGS,
                    974: 
                    975:        start the process again by sending it SIGCONT.
                    976: 
                    977: procfs.c: [email protected]
                    978: 
                    979:        Don't allow processes to be removed by a different user.
                    980: 
                    981: signal.c:
                    982: 
                    983:        Fixed the debug tracing code so that SIGCONT doesn't stop
                    984: 
                    985:        a process, even if it is being traced.
                    986: 
                    987: procfs.c:
                    988: 
                    989:        Dpathconf was returning the wrong value (8 instead of 12 -- it
                    990: 
                    991:        wasn't taking the pid number extension into account).
                    992: 
                    993: 
                    994: 
                    995: version 1.04
                    996: 
                    997: 
                    998: 
                    999: bios.c:
                   1000: 
                   1001:        Changed the way timeout worked for Bconout() stuff (basically,
                   1002: 
                   1003:        rewrote the code so that it really does work -- the old code
                   1004: 
                   1005:        used the system clock in timeout.c, which doesn't get updated
                   1006: 
                   1007:        if no context switches are happening; the new code uses the
                   1008: 
                   1009:        200hz counter, which is always updated).
                   1010: 
                   1011: proc.h:
                   1012: 
                   1013:        Increased the number of Fsfirst searches that can happen
                   1014: 
                   1015:        simultaneously to 10 from 6 (this is a per-process
                   1016: 
                   1017:        limit, not system wide).
                   1018: 
                   1019: 
                   1020: 
                   1021: version 1.03
                   1022: 
                   1023: 
                   1024: 
                   1025: xbios.c: [email protected]
                   1026: 
                   1027:        In old versions of TOS, Rsconf could get stuck waiting for the
                   1028: 
                   1029:        transmit buffer to empty if flow control was on. Added a timeout.
                   1030: 
                   1031: dos.c:
                   1032: 
                   1033:        Changed Psetpgrp so that passing a pgrp of -1 makes it into
                   1034: 
                   1035:        an inquiry call.
                   1036: 
                   1037: filesys.c: [email protected]
                   1038: 
                   1039:        Fixed a bug in Flock (regions were being locked 1 byte too far).
                   1040: 
                   1041: mem.h:
                   1042: 
                   1043:        Changed the memory allocation quantum to 256 bytes, so that
                   1044: 
                   1045:        Srealloc will always work right on ST's.
                   1046: 
                   1047: 
                   1048: 
                   1049: version 1.02
                   1050: 
                   1051: 
                   1052: 
                   1053: main.c:
                   1054: 
                   1055:        Run any AUTO folder programs appearing after MINTNP.PRG
                   1056: 
                   1057:        as well as just plain MINT.PRG.
                   1058: 
                   1059: syscall.spp:
                   1060: 
                   1061:        Pop more stuff off the stack in sig_return, since we
                   1062: 
                   1063:        did push more onto it in handle_sig. (It really shouldn't
                   1064: 
                   1065:        matter, restore_context will restore the stack pointer
                   1066: 
                   1067:        anyway, but better safe than sorry.)
                   1068: 
                   1069: filesys.c,mem.c:
                   1070: 
                   1071:        Made the open file associated with shared text memory
                   1072: 
                   1073:        regions be closed automatically when a media change occurs.
                   1074: 
                   1075: xbios.c:
                   1076: 
                   1077:        Changed the do_usrcall function into an assembly language
                   1078: 
                   1079:        routine which preserves all registers. Apparently some
                   1080: 
                   1081:        programs rely on being able to pass parameters to Supexec
                   1082: 
                   1083:        in registers. We only used to kill register A0, which was
                   1084: 
                   1085:        reserved for BIOS use anyway, but obviously some programmers
                   1086: 
                   1087:        choose not to read the f'ing manual.
                   1088: 
                   1089: dosdir.c: [email protected]
                   1090: 
                   1091:        Fixed a typo (PATH_MAX where ERANGE should have been).
                   1092: 
                   1093: biosfs.c: [email protected]
                   1094: 
                   1095:        Check control keys on every newline, so users get quick response
                   1096: 
                   1097:        to their key hits.
                   1098: 
                   1099: tty.c: [email protected]
                   1100: 
                   1101:        Fixed a typo (t_startc is the character to use to resume terminal
                   1102: 
                   1103:        output, not t_stopc!)
                   1104: 
                   1105: dosdir.c,dosmem.c,filesys.c,tosfs.c: [email protected]
                   1106: 
                   1107:        Fixed many dup_cookie and release_cookie bugs; the code should be much
                   1108: 
                   1109:        more usable now.
                   1110: 
                   1111: main.c:
                   1112: 
                   1113:        Corrected a flaw in the 68030 only version -- it assumed that
                   1114: 
                   1115:        68030 was synonymous with memory protection. Also: set
                   1116: 
                   1117:        mcpu correctly.
                   1118: 
                   1119: main.c:
                   1120: 
                   1121:        Checked to see if we're called "MINTNP.PRG"; if so, turn off
                   1122: 
                   1123:        memory protection automatically. Commented out the code
                   1124: 
                   1125:        for automatically turning MP off on 1 meg machines.
                   1126: 
                   1127: 
                   1128: 
                   1129: version 1.01
                   1130: 
                   1131: 
                   1132: 
                   1133: main.c,intr.spp:
                   1134: 
                   1135:        Use init_tail for the temporary stack (saves us 128 bytes of bss,
                   1136: 
                   1137:        oh boy).
                   1138: 
                   1139: main.c:
                   1140: 
                   1141:        If less than 1 megabyte is free, turn off memory protection
                   1142: 
                   1143:        automatically.
                   1144: 
                   1145: mem.h:
                   1146: 
                   1147:        If there's no memory protection, do all ROUNDing etc. to
                   1148: 
                   1149:        16 byte boundaries rather than 8K page boundaries.
                   1150: 
                   1151: mem.c:
                   1152: 
                   1153:        Added a check for the ability to move screen RAM; evidently
                   1154: 
                   1155:        some boards use ST RAM but still don't allow Setscreen()
                   1156: 
                   1157:        to work.
                   1158: 
                   1159: all over the place: [email protected]
                   1160: 
                   1161:        Cleaned up the code for PureC compatibility.
                   1162: 
                   1163: all over the place: [email protected]
                   1164: 
                   1165:        Cleaned up the code for Lattice compatibility.
                   1166: 
                   1167: fasttext.c: [email protected]
                   1168: 
                   1169:        Sped up by special casing some of the gotoxy() calls, and
                   1170: 
                   1171:        also allowed 8 pixel high characters in monochrome mode.
                   1172: 
                   1173: dosdir.c: [email protected]
                   1174: 
                   1175:        Allow Frename() to succeed on symbolic links.
                   1176: 
                   1177: signal.c: [email protected]
                   1178: 
                   1179:        Save processor context stuf in the reserved BIOS area even for
                   1180: 
                   1181:        bus errors with memory protection on.
                   1182: 
                   1183: dosfile.c: [email protected]
                   1184: 
                   1185:        Initialize the exception file descriptors to 0, in anticipation
                   1186: 
                   1187:        of future use of this Fselect feature.
                   1188: 
                   1189: dosfile.c: [email protected]
                   1190: 
                   1191:        Allow pipes to be opened and written to with O_APPEND mode.
                   1192: 
                   1193: version.h:
                   1194: 
                   1195:        Got rid of the PATCHLEVEL define. Now that I've finally
                   1196: 
                   1197:        checked everything into RCS, it's much easier to just bump
                   1198: 
                   1199:        up the version numbers on each release.
                   1200: 
                   1201: 
                   1202: 
                   1203: version 1.00
                   1204: 
                   1205: 
                   1206: 
                   1207: welcome.c,version.h:
                   1208: 
                   1209:        Sigh. This is MultiTOS 1.0's MiNT, so even though I don't
                   1210: 
                   1211:        consider it "finished", I'm changing the version number to
                   1212: 
                   1213:        1.0. At least it's no worse than TOS 1.0 :-).
                   1214: 
                   1215: memprot.c:
                   1216: 
                   1217:        We want to flush the ATC cache, *not* the CPU cache. Thanks
                   1218: 
                   1219:        for pointing this out, Alex.
                   1220: 
                   1221: bios.c:
                   1222: 
                   1223:        Fixed a problem with Speedo GDOS; if the printer's buffer was
                   1224: 
                   1225:        full, Bconout(2,...) would do a context switch, which is not
                   1226: 
                   1227:        a good thing for Speedo.
                   1228: 
                   1229: 
                   1230: 
                   1231: version 0.99
                   1232: 
                   1233: 
                   1234: 
                   1235: PATCHLEVEL 2::
                   1236: 
                   1237: 
                   1238: 
                   1239: main.c:
                   1240: 
                   1241:        Big bug fix -- the do_exec_os routine was being called with a
                   1242: 
                   1243:        basepage that occupied all of memory, so that the Pexec(200) it
                   1244: 
                   1245:        did was failing due to insufficient memory. Now we Mshrink the
                   1246: 
                   1247:        basepage; this also necessitates fixing up the stack pointer.
                   1248: 
                   1249: main.c:
                   1250: 
                   1251:        Handle mint.cnf files that don't end in a carriage return/line feed
                   1252: 
                   1253:        combination.
                   1254: 
                   1255: filesys.c:
                   1256: 
                   1257:        New path parsing code to correct a bug in the way symbolic
                   1258: 
                   1259:        links were being handled on loadable file systems.
                   1260: 
                   1261: 
                   1262: 
                   1263: PATCHLEVEL 1::
                   1264: 
                   1265: 
                   1266: 
                   1267: debug.c:
                   1268: 
                   1269:        Made the default debugging level give ALERT messages.
                   1270: 
                   1271: dosfile.c:
                   1272: 
                   1273:        Corrected a bug in the way global file handles are closed.
                   1274: 
                   1275: 
                   1276: 
                   1277: PATCHLEVEL 0::
                   1278: 
                   1279: 
                   1280: 
                   1281: dosmem.c:
                   1282: 
                   1283:        Made it so that overlay Pexec modes (e.g. 200) set up
                   1284: 
                   1285:        the basepage to preserve the same "parent".
                   1286: 
                   1287: main.c:
                   1288: 
                   1289:        Added in a kludge so that if we're starting GEM from a file
                   1290: 
                   1291:        (e.g. gem.sys) then we do it via the exec_os vector. I hope
                   1292: 
                   1293:        this makes the Codeheads happy :-).
                   1294: 
                   1295: dosmem.c,tty.c:
                   1296: 
                   1297:        Backed out entropy's and schwab's changes. Random programs
                   1298: 
                   1299:        were getting stopped under MultiTOS because of them; I can't
                   1300: 
                   1301:        find the cause, so let's go back to something that worked
                   1302: 
                   1303:        (if suboptimally).
                   1304: 
                   1305: main.c:
                   1306: 
                   1307:        Fixed a silly initialization error: we should not
                   1308: 
                   1309:        assume a default language, we should get it from
                   1310: 
                   1311:        the ROMs.
                   1312: 
                   1313: dosdir.c: [email protected]
                   1314: 
                   1315:        Extended Dlock: if bit 1 of the mode is set, then the
                   1316: 
                   1317:        process id of the process using the drive is returned
                   1318: 
                   1319:        instead of ELOCKED or EACCDN; this allows for more
                   1320: 
                   1321:        informative error messages.
                   1322: 
                   1323: welcome.c:
                   1324: 
                   1325:        Updated the copyright notice.
                   1326: 
                   1327: 
                   1328: 
                   1329: version 0.98
                   1330: 
                   1331: 
                   1332: 
                   1333: PATCHLEVEL 4::
                   1334: 
                   1335: 
                   1336: 
                   1337: dosmem.c,tty.c: [email protected]
                   1338: 
                   1339:        Corrected some silliness in the job control code.
                   1340: 
                   1341: 
                   1342: 
                   1343: PATCHLEVEL 3::
                   1344: 
                   1345: 
                   1346: 
                   1347: xbios.c:
                   1348: 
                   1349:        Took out the ONLY030 optimization; it didn't work correctly
                   1350: 
                   1351:        (I can't see any reason why it shouldn't have worked, but
                   1352: 
                   1353:        it didn't; perhaps a compiler bug bit us?)
                   1354: 
                   1355: 
                   1356: 
                   1357: PATCHLEVEL 2::
                   1358: 
                   1359: 
                   1360: 
                   1361: main.c:
                   1362: 
                   1363:        Changed magic shift key to LEFT shift key.
                   1364: 
                   1365: filesys.c:
                   1366: 
                   1367:        Make loaded .XFS files go into supervisor accessible
                   1368: 
                   1369:        memory.
                   1370: 
                   1371: welcome.c,main.c:
                   1372: 
                   1373:        Ask user in her own language whether or not to boot if the
                   1374: 
                   1375:        kernel is a MultiTOS one and she held down the shift key.
                   1376: 
                   1377: filesys.c:
                   1378: 
                   1379:        Relax O_COMPAT mode opens somewhat so that any
                   1380: 
                   1381:        number of processes can open the file for reading,
                   1382: 
                   1383:        as long as no more than 1 has it open for writing.
                   1384: 
                   1385:        ALSO: make sure O_EXEC gets treated the same as O_RDONLY.
                   1386: 
                   1387: dosfile.c:
                   1388: 
                   1389:        Change TRACE() to TRACELOW() on Fread and Fwrite.
                   1390: 
                   1391: tosfs.c:
                   1392: 
                   1393:        Went back to old method of doing tosfs.c; this is
                   1394: 
                   1395:        better tested and safer.
                   1396: 
                   1397: dos.c:
                   1398: 
                   1399:        New system call, Salert(msg), for doing an alert message.
                   1400: 
                   1401: debug.c:
                   1402: 
                   1403:        Terminate messages written to the alert pipe with a 0.
                   1404: 
                   1405:        Also: pour them into alert boxes so that programs like
                   1406: 
                   1407:        sysalert don't have so much to do.
                   1408: 
                   1409: 
                   1410: 
                   1411: PATCHLEVEL 1::
                   1412: 
                   1413: 
                   1414: 
                   1415: fasttext.c: ++shenson
                   1416: 
                   1417:        Corrected the quote_putch function.
                   1418: 
                   1419: dosdir.c:
                   1420: 
                   1421:        Allow Dfree(n) to work if "n" is a big number (e.g. BIOSDRV)
                   1422: 
                   1423:        and the corresponding pseudo-drive is a current or root directory
                   1424: 
                   1425:        of the current process.
                   1426: 
                   1427: pipefs.c: [email protected]
                   1428: 
                   1429:        Return a new error number, EPIPE, for writes to broken pipes.
                   1430: 
                   1431: tty.c: [email protected]
                   1432: 
                   1433:        If a tty loses its owner, the next process to do i/o to it
                   1434: 
                   1435:        will become the owner.
                   1436: 
                   1437: dosfile.c: [email protected]
                   1438: 
                   1439:        FA_RDONLY doesn't mean "read only" on the process file system,
                   1440: 
                   1441:        so allow such processes to be opened for writing.
                   1442: 
                   1443: 
                   1444: 
                   1445: PATCHLEVEL 0::
                   1446: 
                   1447: 
                   1448: 
                   1449: xbios.c:
                   1450: 
                   1451:        Fixed Supexec to pass the function pointer on the stack, too
                   1452: 
                   1453:        (just as TOS does). This is still undocumented behaviour,
                   1454: 
                   1455:        so you rely on it at your own risk.
                   1456: 
                   1457: xbios.c: [email protected]
                   1458: 
                   1459:        Applied a fix for Rsconf() with TOS 1.04, and made the
                   1460: 
                   1461:        old TOS Rsconf stuff #ifndef ONLY030.
                   1462: 
                   1463: proc.c,dosmem.c:
                   1464: 
                   1465:        Wrap all calls to add_q/rm_q in spl7(), so that the
                   1466: 
                   1467:        wakeselect() function truly can be called from
                   1468: 
                   1469:        interrupt code.
                   1470: 
                   1471: makefile,*.spp:
                   1472: 
                   1473:        Make provisions for compiling an 030/040 only version
                   1474: 
                   1475:        of MiNT; this should be faster and smaller than the
                   1476: 
                   1477:        generic version.
                   1478: 
                   1479: version.h:
                   1480: 
                   1481:        The file system interface changes warrant a new version
                   1482: 
                   1483:        number, so here it is.
                   1484: 
                   1485: 
                   1486: 
                   1487: version 0.97
                   1488: 
                   1489: 
                   1490: 
                   1491: PATCHLEVEL 3::
                   1492: 
                   1493: 
                   1494: 
                   1495: dosdir.c,proc.c:
                   1496: 
                   1497:        Keep a chain of open directories, so that if a program
                   1498: 
                   1499:        terminates without calling closedir() we can still clean
                   1500: 
                   1501:        up after it. Also: allocate directory structures from
                   1502: 
                   1503:        kernel memory rather than user memory, so that we don't
                   1504: 
                   1505:        take an 8K hit on each one. PROBLEM: a bug in the mntlib
                   1506: 
                   1507:        readdir() function causes bus errors if memory protection
                   1508: 
                   1509:        is on. This is a library bug that needs to be fixed
                   1510: 
                   1511:        real soon now.
                   1512: 
                   1513: dosmem.c:
                   1514: 
                   1515:        TSRs now get forced into global memory if they were running
                   1516: 
                   1517:        privately; this should make things easier for users who
                   1518: 
                   1519:        forgot to change prgflags on their TSR programs.
                   1520: 
                   1521: filesys.c:
                   1522: 
                   1523:        New meaning for O_COMPAT mode: deny write access to all other
                   1524: 
                   1525:        processes.
                   1526: 
                   1527: tosfs.c:
                   1528: 
                   1529:        Added a define to turn on/off the RO_FASCISM code. Personally,
                   1530: 
                   1531:        I think it should always be on.
                   1532: 
                   1533: dosdir.c,filesys.c,file.h,*fs.c:
                   1534: 
                   1535:        New file system functions, release() and dupcookie(), so that
                   1536: 
                   1537:        the kernel can inform file systems when it is finished
                   1538: 
                   1539:        with a file cookie; networked file systems will be very
                   1540: 
                   1541:        happy about this.
                   1542: 
                   1543: 
                   1544: 
                   1545: PATCHLEVEL 2::
                   1546: 
                   1547: 
                   1548: 
                   1549: procfs.c:
                   1550: 
                   1551:        Moved the memory protection checks for proc_read and
                   1552: 
                   1553:        proc_write to a separate function in memprot.c.
                   1554: 
                   1555: dosfile.c:
                   1556: 
                   1557:        Remove the old compatibility code for Fcntl(F_SETFL,...).
                   1558: 
                   1559:        (Actually, it's commented out, so we can put it back in
                   1560: 
                   1561:        if we need to.)
                   1562: 
                   1563: signal.c:
                   1564: 
                   1565:        Change default behaviour for SIGFPE (which is raised
                   1566: 
                   1567:        by division by 0) to "ignore", same as TOS.
                   1568: 
                   1569: dosdir.c:
                   1570: 
                   1571:        Made Dgetcwd() use the new size parameter, so that it
                   1572: 
                   1573:        works as advertised.
                   1574: 
                   1575: file.h, *fs.c:
                   1576: 
                   1577:        Provide a "size" parameter for the getname() file system
                   1578: 
                   1579:        function, so that we can do Dgetpath() of arbitrary length
                   1580: 
                   1581:        paths.
                   1582: 
                   1583: util.c:
                   1584: 
                   1585:        BIG_MEM_DUMP is a nasty thing for users to get;
                   1586: 
                   1587:        so we shouldn't do it on all failed mallocs!
                   1588: 
                   1589: 
                   1590: 
                   1591: PATCHLEVEL 1::
                   1592: 
                   1593: 
                   1594: 
                   1595: proc.c:
                   1596: 
                   1597:        Plugged a memory leak (dispose_proc was failing to
                   1598: 
                   1599:        free the process table memory, because fork_proc
                   1600: 
                   1601:        was zeroing that field in the PROC structure).
                   1602: 
                   1603: main.c:
                   1604: 
                   1605:        Fixed MAXMEM= (it was setting the maximum CPU time,
                   1606: 
                   1607:        not the maximum memory -- I thought I tested this!)
                   1608: 
                   1609: 
                   1610: 
                   1611: PATCHLEVEL 0::
                   1612: 
                   1613: 
                   1614: 
                   1615: main.c:
                   1616: 
                   1617:        Added MAXMEM= and SLICES= variables for mint.cnf.
                   1618: 
                   1619: bios.c:
                   1620: 
                   1621:        Fixed Setexc so that if the new vector is in a global
                   1622: 
                   1623:        region, the region is re-marked to be super.
                   1624: 
                   1625: dosmem.c:
                   1626: 
                   1627:        Fixed a race condition with memory protection and
                   1628: 
                   1629:        Pexec(100,...) (if the new process exited early,
                   1630: 
                   1631:        the old process might still try to access it).
                   1632: 
                   1633: realloc.c:
                   1634: 
                   1635:        New file, for doing the Srealloc system call (for
                   1636: 
                   1637:        Falcon TOS).
                   1638: 
                   1639: *.*:
                   1640: 
                   1641:        Merged in Allan's memory protection and debugging
                   1642: 
                   1643:        code. New files: memprot.c, nalloc2.c, welcome.c.
                   1644: 
                   1645: 
                   1646: 
1.1.1.2   root     1647: version 0.96
                   1648: 
                   1649: 
                   1650: 
                   1651: PATCHLEVEL 14::
                   1652: 
                   1653: 
                   1654: 
                   1655: tosfs.c:
                   1656: 
                   1657:        Aaargh! Just after cutting this patch I discovered
                   1658: 
                   1659:        that I had the test backwards.
                   1660: 
                   1661: 
                   1662: 
                   1663: PATCHLEVEL 13::
                   1664: 
                   1665: 
                   1666: 
                   1667: tosfs.c:
                   1668: 
                   1669:        Changed so that Fsfirst()/Fsnext() always return
                   1670: 
                   1671:        upper case, regardless of domain. (MiNT aware
                   1672: 
                   1673:        programs should use the new directory functions.)
                   1674: 
                   1675: dosdir.c: ++akiernan
                   1676: 
                   1677:        Got rid of the special hack for drive x:, since
                   1678: 
                   1679:        drive x: no longer exists.
                   1680: 
                   1681: asm.y: ++akiernan
                   1682: 
                   1683:        Cleaned up a bit.
                   1684: 
                   1685: *.c: ++julian
                   1686: 
                   1687:        Some minor patches for PureC.
                   1688: 
                   1689: dosdir.c: ++julian
                   1690: 
                   1691:        New system call, Dgetcwd(), with a 'size' parameter;
                   1692: 
                   1693:        this doesn't do anything different from Dgetpath
                   1694: 
                   1695:        now, but it's there for future expansion.
                   1696: 
                   1697: 
                   1698: 
                   1699: PATCHLEVEL 12::
                   1700: 
                   1701: 
                   1702: 
                   1703: version.h:
                   1704: 
                   1705:        Update the patchlevel correctly.
                   1706: 
                   1707: pipefs.c,dosfile.c:
                   1708: 
                   1709:        Keep the Unix style semantics for pipes created with
                   1710: 
                   1711:        Fpipe, but not for other fifo's (which by default will
                   1712: 
                   1713:        continue to read the number of bytes requested).
                   1714: 
                   1715: 
                   1716: 
                   1717: PATCHLEVEL 11::
                   1718: 
                   1719: 
                   1720: 
                   1721: tty.c: ++schwab
                   1722: 
                   1723:        Support word-erase and quote-next-char.
                   1724: 
                   1725: fasttext.c: ++schwab
                   1726: 
                   1727:        support fgcol/bgcol
                   1728: 
                   1729:        (screen_ioctl): tty_ioctl is now called by parent by default if
                   1730: 
                   1731:        EINVFN
                   1732: 
                   1733: signal.c (check_sigs): ++schwab
                   1734: 
                   1735:        Use an int to index signals, not a long
                   1736: 
                   1737: biosfs.c (bios_getxattr): ++schwab
                   1738: 
                   1739:        u:\dev\stdin, etc., get the attributes of
                   1740: 
                   1741:        the associated files
                   1742: 
                   1743: dos.c (p_setuid, p_setgid): ++schwab
                   1744: 
                   1745:        Allow setting to the current real [gu]id
                   1746: 
                   1747: bios.c (checkkeys): [email protected]
                   1748: 
                   1749:        Keys read by do_func_key should not be
                   1750: 
                   1751:        interpreted (esp. UNDO -> SIGQUIT). also recheck shift status
                   1752: 
                   1753:        since do_func_key may take some time
                   1754: 
                   1755: xbios.c: [email protected]
                   1756: 
                   1757:        Added code to support old (tos < 1.4) Rsconf()
                   1758: 
                   1759:        semantics.
                   1760: 
                   1761: mem.c:
                   1762: 
                   1763:        Changed so that attempts to execute a shared text program
                   1764: 
                   1765:        which has data/bss references in the text segment will
                   1766: 
                   1767:        get an ENOEXEC error instead of ENSMEM.
                   1768: 
                   1769: *.c: [email protected]
                   1770: 
                   1771:        Applied Julian's purec patches.
                   1772: 
                   1773: 
                   1774: 
                   1775: PATCHLEVEL 10::
                   1776: 
                   1777: 
                   1778: 
                   1779: pipefs.c:
                   1780: 
                   1781:        Changed so that read() on a pipe will return as
                   1782: 
                   1783:        soon as some data is available; this is how
                   1784: 
                   1785:        all Unixes work.
                   1786: 
                   1787: *.c:
                   1788: 
                   1789:        Applied Julian's patches to allow compilation with
                   1790: 
                   1791:        PureC.
                   1792: 
                   1793: main.c:
                   1794: 
                   1795:        New variable, MAXMEM=, for setting maximum memory
                   1796: 
                   1797:        size (in K).
                   1798: 
                   1799: main.c:
                   1800: 
                   1801:        Removed PSEUDODRIVES= command, since "alias" has
                   1802: 
                   1803:        replaced it.
                   1804: 
                   1805: util.c:
                   1806: 
                   1807:        Changed atoi to atol; it's more generally useful.
                   1808: 
                   1809: asmtrans:
                   1810: 
                   1811:        Applied Howard's patches; in particular, made %ifdef
                   1812: 
                   1813:        apply to other commands (like %define) as well as to
                   1814: 
                   1815:        code generation.
                   1816: 
                   1817:        
                   1818: 
                   1819: PATCHLEVEL 9::
                   1820: 
                   1821: 
                   1822: 
                   1823: asmtrans:
                   1824: 
                   1825:        Cleaned up a bit more for cross-compilation.
                   1826: 
                   1827: intr.spp:
                   1828: 
                   1829:        in_kernel can be set while the process is in user mode
                   1830: 
                   1831:        (if the critical error handler calls GEM)
                   1832: 
                   1833: syscall.spp:
                   1834: 
                   1835:        Get rid of some more magic numbers.
                   1836: 
                   1837: bios.c:
                   1838: 
                   1839:        While fixing the mtt bug, a new bug was introduced. So,
                   1840: 
                   1841:        let's try again :-).
                   1842: 
                   1843: 
                   1844: 
                   1845: PATCHLEVEL 8::
                   1846: 
                   1847: 
                   1848: 
                   1849: bios.c:
                   1850: 
                   1851:        Fixed a particularly silly bug in bios.c: in do_bconin(),
                   1852: 
                   1853:        r was being returned without being initialized. Why didn't
                   1854: 
                   1855:        gcc catch this?
                   1856: 
                   1857: *.c:
                   1858: 
                   1859:        Applied Alex's patches for Lattice, and Julian's patches for
                   1860: 
                   1861:        Pure C.
                   1862: 
                   1863: signal.c:
                   1864: 
                   1865:        Kill programs with p_term() instead of terminate() (except for
                   1866: 
                   1867:        signal SIGKILL) so as to allow them a chance to clean up via
                   1868: 
                   1869:        the term_vec vector.
                   1870: 
                   1871: shmfs.c:
                   1872: 
                   1873:        Allow Fattrib() call to change the read-only
                   1874: 
                   1875:        bit. Made Fxattr() return the correct mode
                   1876: 
                   1877:        for shared memory files.
                   1878: 
                   1879: main.c, fasttext.c:
                   1880: 
                   1881:        Allowed HARDSCROLL=AUTO to set the number of
                   1882: 
                   1883:        lines of scrolling to the current screen size.
                   1884: 
                   1885: syscall.spp, inline.h:
                   1886: 
                   1887:        New functions, callout2() and callout1(), with
                   1888: 
                   1889:        less overhead; used by bios.c to call the
                   1890: 
                   1891:        Bconxxx functions.
                   1892: 
                   1893: bios.c:
                   1894: 
                   1895:        Changed calls to Bconxxx functions into
                   1896: 
                   1897:        jumps through the defined vector table in
                   1898: 
                   1899:        low memory, when this is possible (TOS 1.0
                   1900: 
                   1901:        doesn't have the table).
                   1902: 
                   1903: asmtrans, *.spp:
                   1904: 
                   1905:        Added %ifdef, %else, and %endif commands (for
                   1906: 
                   1907:        future expansion). Removed the requirement that
                   1908: 
                   1909:        macros to be expanded be delimited by % signs,
                   1910: 
                   1911:        and cleaned up the definitions. Changed
                   1912: 
                   1913:        "SECTION FOO" to "FOO". Added -purec compilation
                   1914: 
                   1915:        option.
                   1916: 
                   1917: filesys.c:
                   1918: 
                   1919:        Fixed a bug in changedrv (there was no
                   1920: 
                   1921:        check to see if "d" was a BIOS drive before
                   1922: 
                   1923:        aliasdrv[d] was tested).
                   1924: 
                   1925: 
                   1926: 
                   1927: PATCHLEVEL 7::
                   1928: 
                   1929: 
                   1930: 
                   1931: biosfs.c,fasttext.c:
                   1932: 
                   1933:        Fixed incorrect code that assumed TCURSON
                   1934: 
                   1935:        was 0.
                   1936: 
                   1937: makefile:
                   1938: 
                   1939:        Fixed Makefile to work with older versions
                   1940: 
                   1941:        of gmake, as well as generic make programs.
                   1942: 
                   1943: 
                   1944: 
                   1945: PATCHLEVEL 6::
                   1946: 
                   1947: 
                   1948: 
                   1949: *.s:
                   1950: 
                   1951:        Radical overhaul of how assembly language is
                   1952: 
                   1953:        handled. We now provide 2 utility programs,
                   1954: 
                   1955:        "genmagic" (for producing symbolic names for
                   1956: 
                   1957:        various offsets into structures) and "asmtrans"
                   1958: 
                   1959:        (for processing .spp files, replacing macros
                   1960: 
                   1961:        defined by "genmagic" and optionally translating
                   1962: 
                   1963:        Motorola to MIT syntax). Now we only have to
                   1964: 
                   1965:        maintain the .spp files; the Lattice and gcc
                   1966: 
                   1967:        versions of the .s files are generated automatically,
                   1968: 
                   1969:        and as a side benefit we can get rid of magic
                   1970: 
                   1971:        numbers in the .s files and be sure that if we
                   1972: 
                   1973:        change proc.h, the assembly language will be
                   1974: 
                   1975:        updated properly.
                   1976: 
                   1977: main.c,filesys.c,file.h:
                   1978: 
                   1979:        Added a new command to mint.cnf, "alias", to
                   1980: 
                   1981:        enable aliases for pseudo (and other) drives
                   1982: 
                   1983:        to be created. Also, deleted drives q:, v:, and
                   1984: 
                   1985:        x:. Programs should no longer be using these;
                   1986: 
                   1987:        if they are, users can put things like
                   1988: 
                   1989:        "alias q: u:\pipe" into mint.cnf.
                   1990: 
                   1991: file.h:
                   1992: 
                   1993:        Fixed the definitions for TCURSON and TCURSOFF.
                   1994: 
                   1995: console.c:
                   1996: 
                   1997:        Moved the handle checks in file_* functions into
                   1998: 
                   1999:        separate functions, since for example we *know*
                   2000: 
                   2001:        that handle 0 falls within the legal range; this
                   2002: 
                   2003:        should remove a bit of overhead on BIOS and
                   2004: 
                   2005:        single character GEMDOS I/O.
                   2006: 
                   2007: main.c:
                   2008: 
                   2009:        Got rid of the zeroexit() code; since we now
                   2010: 
                   2011:        allow the whole boot process to be aborted by
                   2012: 
                   2013:        right shift.
                   2014: 
                   2015: pipefs.c:
                   2016: 
                   2017:        Allow Cursconf() to work on TOSWIN pipes.
                   2018: 
                   2019: mem.c:
                   2020: 
                   2021:        Check the date and time of shared text regions
                   2022: 
                   2023:        before re-using them.
                   2024: 
                   2025: bios.c,syscall.s:
                   2026: 
                   2027:        Changed the trap #13 entry point to allow quick
                   2028: 
                   2029:        evaluation of BIOS functions that don't need
                   2030: 
                   2031:        the full context save/restore done.
                   2032: 
                   2033: everywhere:
                   2034: 
                   2035:        Macro-ize TRACE and DEBUG so that it's possible
                   2036: 
                   2037:        to produce a smaller version of MiNT without
                   2038: 
                   2039:        them.
                   2040: 
                   2041: biosfs.c:
                   2042: 
                   2043:        Don't check for keyboard presses after every
                   2044: 
                   2045:        BIOS write, it's too time consuming.
                   2046: 
                   2047: 
                   2048: 
                   2049: PATCHLEVEL 5::
                   2050: 
                   2051: 
                   2052: 
                   2053: mem.c:
                   2054: 
                   2055:        Another bug: we shouldn't do the dLibs Pexec
                   2056: 
                   2057:        hack on the first process we start up, because
                   2058: 
                   2059:        it means messing with the MiNT basepage (which
                   2060: 
                   2061:        is not ours to mess with, it's TOS's).
                   2062: 
                   2063: main.c:
                   2064: 
                   2065:        Fixed bug in enter_kernel (rootproc->base is no
                   2066: 
                   2067:        longer necessarily MiNT's basepage).
                   2068: 
                   2069: various places:
                   2070: 
                   2071:        Tried to remove gcc warnings about constant
                   2072: 
                   2073:        expression overflow.
                   2074: 
                   2075: syscall.s:
                   2076: 
                   2077:        Applied Alex's patch to allow trace mode to work
                   2078: 
                   2079:        with non-MiNT debuggers.
                   2080: 
                   2081: various places:
                   2082: 
                   2083:        Applied Alex's patches to get rid of Lattice warnings
                   2084: 
                   2085:        about unneeded assignments.
                   2086: 
                   2087: mem.c:
                   2088: 
                   2089:        Added extra traces to exec_region() in an effort to
                   2090: 
                   2091:        track down the mysterious crash problems that others
                   2092: 
                   2093:        have had.
                   2094: 
                   2095: 
                   2096: 
                   2097: PATCHLEVEL 4::
                   2098: 
                   2099: 
                   2100: 
                   2101: dosmem.c:
                   2102: 
                   2103:        Made do_vfork not bother to save shared text regions.
                   2104: 
                   2105: bios.c:
                   2106: 
                   2107:        Made Rwabs respect Dlock.
                   2108: 
                   2109: tosfs.c:
                   2110: 
                   2111:        Made the TOS media change routines lazier (actual
                   2112: 
                   2113:        disk access is deferred until the disk is next
                   2114: 
                   2115:        needed).
                   2116: 
                   2117: main.c:
                   2118: 
                   2119:        Applied Alex's patches for setenv.
                   2120: 
                   2121: everywhere:
                   2122: 
                   2123:        Applied Julian's patches for Pure/Turbo C. The
                   2124: 
                   2125:        resulting kernel doesn't actually work yet, but
                   2126: 
                   2127:        at least we don't get so many error messages when
                   2128: 
                   2129:        compiling. (Who needs lint when you have three
                   2130: 
                   2131:        fussy ANSI compilers?)
                   2132: 
                   2133: mint.h:
                   2134: 
                   2135:        Oops; we should have had #include "inline.h" here.
                   2136: 
                   2137: inline.h:
                   2138: 
                   2139:        Applied jrb's GCC patches, and Alex's Lattice patches.
                   2140: 
                   2141: 
                   2142: 
                   2143: PATCHLEVEL 3::
                   2144: 
                   2145: 
                   2146: 
                   2147: bios.c:
                   2148: 
                   2149:        Some optimizations in bflush(). I tried something like
                   2150: 
                   2151:        this before, but messed up the terminal output modes.
                   2152: 
                   2153:        Let's hope I got it right this time. Also:
                   2154: 
                   2155:        removed some dependencies on sizeof(int).
                   2156: 
                   2157: makefile:
                   2158: 
                   2159:        Tried -O2 instead of -O. It seems to work, so let's
                   2160: 
                   2161:        leave it on for now.
                   2162: 
                   2163: inline.h:
                   2164: 
                   2165:        New file to keep short, inlined versions of frequently
                   2166: 
                   2167:        called functions.
                   2168: 
                   2169: intr.s:
                   2170: 
                   2171:        Check the floppy disk locking flag before doing a
                   2172: 
                   2173:        pre-emption. Not really necessary now, but it doesn't
                   2174: 
                   2175:        hurt to be careful.
                   2176: 
                   2177: dosfile.c,*fs.c:
                   2178: 
                   2179:        Applied Alex's F_SETLKW patches. If Alex isn't careful,
                   2180: 
                   2181:        he's going to make MiNT Posix compliant on us :-).
                   2182: 
                   2183: dosmem.c:
                   2184: 
                   2185:        Applied Alex's patches to add a Pwaitpid system call.
                   2186: 
                   2187: main.c:
                   2188: 
                   2189:        If running from the AUTO folder, adjust the basepage
                   2190: 
                   2191:        chains so that MiNT is invisible to programs that
                   2192: 
                   2193:        (incorrectly!) make assumptions about basepages.
                   2194: 
                   2195: proc.c:
                   2196: 
                   2197:        Some optimizations in do_wakeup.
                   2198: 
                   2199: filesys.c:
                   2200: 
                   2201:        Don't call (*fs->dskchng)() twice when a disk
                   2202: 
                   2203:        change is detected.
                   2204: 
                   2205: main.c:
                   2206: 
                   2207:        Make sure the _resvalid system variable has the
                   2208: 
                   2209:        correct magic number in it for indicating that
                   2210: 
                   2211:        we want to catch the reset.
                   2212: 
                   2213: 
                   2214: 
                   2215: PATCHLEVEL 2::
                   2216: 
                   2217: 
                   2218: 
                   2219: dosdir.c:
                   2220: 
                   2221:        Really forbid deleting other process' current
                   2222: 
                   2223:        directories (the actual "return EACCDN" was missing!)
                   2224: 
                   2225: proc.c:
                   2226: 
                   2227:        Inlined the check_time() function, and re-arranged
                   2228: 
                   2229:        do_wakeup_things a bit to be more efficient.
                   2230: 
                   2231: syscall.s:
                   2232: 
                   2233:        Streamlined a bit; things are now kept in registers
                   2234: 
                   2235:        where possible.
                   2236: 
                   2237: filesys.c:
                   2238: 
                   2239:        When loading file systems at startup time, don't
                   2240: 
                   2241:        check the \MINT directory if that's the current one.
                   2242: 
                   2243: filesys.c:
                   2244: 
                   2245:        After a media change, instead of throwing away all
                   2246: 
                   2247:        handles that pointed to the changed drive, make
                   2248: 
                   2249:        them point to /dev/null instead, so that they
                   2250: 
                   2251:        won't be re-used until the user explicitly closes
                   2252: 
                   2253:        them.
                   2254: 
                   2255: dosdir.c:
                   2256: 
                   2257:        Allow Dlock() to succeed even if there is an
                   2258: 
                   2259:        unfinished Fsfirst/Fsnext sequence on the drive.
                   2260: 
                   2261: mem.c:
                   2262: 
                   2263:        Allow relocations outside of the program load area;
                   2264: 
                   2265:        apparently, some programs actually need these.
                   2266: 
                   2267: mem.c:
                   2268: 
                   2269:        Insert some sanity checks on memory addresses.
                   2270: 
                   2271: signal.c:
                   2272: 
                   2273:        Restart check_sigs if the process stopped because of
                   2274: 
                   2275:        a signal, since the parent may reset the set of
                   2276: 
                   2277:        pending signals.
                   2278: 
                   2279: cpu.s:
                   2280: 
                   2281:        New file from Alex, to control caching &c.
                   2282: 
                   2283: various places:
                   2284: 
                   2285:        More debugging patches from Alex, to make attaching
                   2286: 
                   2287:        to existing processes work correctly.
                   2288: 
                   2289: 
                   2290: 
                   2291: PATCHLEVEL 1::
                   2292: 
                   2293: 
                   2294: 
                   2295: various places:
                   2296: 
                   2297:        Cleaned up the debugging stuff a bit. For example, if a
                   2298: 
                   2299:        process does PTRACESFLAGS on itself, it's the same
                   2300: 
                   2301:        as if the parent did; also, if the process does a
                   2302: 
                   2303:        Pexec with overlay (i.e. Unix exec()) then it stops
                   2304: 
                   2305:        before its first instruction. This makes emulating
                   2306: 
                   2307:        the Unix ptrace() system call much easier.
                   2308: 
                   2309: 
                   2310: 
                   2311: PATCHLEVEL 0::
                   2312: 
                   2313: 
                   2314: 
                   2315: biosfs.c:
                   2316: 
                   2317:        Changed Fcntl TIOCISPEED/TIOCOSPEED to return the
                   2318: 
                   2319:        next lowest legal baud rate if an illegal one is
                   2320: 
                   2321:        specified.
                   2322: 
                   2323: filesys.c:
                   2324: 
                   2325:        Fix a bug that would cause an infinite loop if a
                   2326: 
                   2327:        bad .XFS format is encountered.
                   2328: 
                   2329: mem.c,mem.h,dosmem.c:
                   2330: 
                   2331:        Implemented shared text; if the appropriate bit
                   2332: 
                   2333:        (for now, 0x800) in the program header is set, then
                   2334: 
                   2335:        the loader will set up a shared text region for
                   2336: 
                   2337:        the program, and subsequent executions of it will
                   2338: 
                   2339:        run out of the same text segment. Note that this
                   2340: 
                   2341:        does require appropriate compiler support!
                   2342: 
                   2343: filesys.c:
                   2344: 
                   2345:        Fixed bug in the way directory searches are closed
                   2346: 
                   2347:        after a media change.
                   2348: 
                   2349: biosfs.c,intr.s:
                   2350: 
                   2351:        Applied Julian's third mouse button patch for
                   2352: 
                   2353:        /dev/mouse.
                   2354: 
                   2355: *.s:
                   2356: 
                   2357:        Applied Alex's debugging patches. Also: wrote a
                   2358: 
                   2359:        Motorola->MIT syntax converter, so that we only
                   2360: 
                   2361:        have to maintain the stuff in the "asm" directory.
                   2362: 
                   2363: signal.c,proc.h,procfs.c,etc.:
                   2364: 
                   2365:        Applied Alex's debugging patches, with a few
                   2366: 
                   2367:        slight modifications.
                   2368: 
                   2369: 
                   2370: 
1.1       root     2371: version 0.95
                   2372: 
                   2373: 
                   2374: 
1.1.1.2   root     2375: PATCHLEVEL14::
                   2376: 
                   2377: 
                   2378: 
                   2379: 
                   2380: 
                   2381: filesys.c:
                   2382: 
                   2383:        Check for the existence of the \MINT directory before
                   2384: 
                   2385:        trying to load .XFS files from there.
                   2386: 
                   2387: 
                   2388: 
                   2389: --- patchlevel 13 released to the public ---
                   2390: 
                   2391: 
                   2392: 
1.1       root     2393: PATCHLEVEL13::
                   2394: 
                   2395: 
                   2396: 
                   2397: proto.h,filesys.c:
                   2398: 
                   2399:        Added Alex's patches for Lattice.
                   2400: 
                   2401: 
                   2402: 
                   2403: PATCHLEVEL12::
                   2404: 
                   2405: 
                   2406: 
                   2407: dosdir.c:
                   2408: 
                   2409:        Fsnext() on symbolic links was broken, because
                   2410: 
                   2411:        relpath2cookie no longer checks drive letters
                   2412: 
1.1.1.3   root     2413:        unless "depth" is > 0. Fixed this. (why did
                   2414: 
                   2415:        we change relpath2cookie that way?? this is
                   2416: 
                   2417:        changed back in 0.99pl2)
1.1       root     2418: 
                   2419: main.c,filesys.c:
                   2420: 
                   2421:        Added support for putting the mint.cnf file
                   2422: 
                   2423:        and any *.XFS files into the directory \mint.
                   2424: 
                   2425: dos.c:
                   2426: 
                   2427:        Added Pgeteuid() and Pgetegid() system calls.
                   2428: 
                   2429: main.c:
                   2430: 
                   2431:        Fixed the "set current directory" code to
                   2432: 
                   2433:        work properly.
                   2434: 
                   2435: main.c:
                   2436: 
                   2437:        Added a sanity check; if GEM is already running,
                   2438: 
                   2439:        don't try to run it again.
                   2440: 
                   2441: procfs.c:
                   2442: 
                   2443:        Added FIONWRITE and FIONREAD ioctl calls.
                   2444: 
                   2445: proc.c,bios.c:
                   2446: 
                   2447:        Fixed the type of the critical error handler.
                   2448: 
                   2449: dosfile.c,file.h,proc.c:
                   2450: 
                   2451:        Added Alex's patches for O_APPEND and O_NOINHERIT.
                   2452: 
                   2453: shmfs.c:
                   2454: 
                   2455:        Fixed lseek() on shared memory segments, and added
                   2456: 
                   2457:        FIONWRITE and FIONREAD ioctl calls.
                   2458: 
                   2459: fasttext.c:
                   2460: 
                   2461:        Tried once again to tame the wild cursor.
                   2462: 
                   2463: dosmem.c,proc.c:
                   2464: 
                   2465:        Modified process startup code so that PROC structures are no
                   2466: 
                   2467:        longer kept forever by the kernel (which should help alleviate
                   2468: 
                   2469:        memory fragmentation problems a bit).
                   2470: 
                   2471: 
                   2472: 
                   2473: PATCHLEVEL11::
                   2474: 
                   2475: 
                   2476: 
                   2477: dosmem.c:
                   2478: 
                   2479:        Applied Alex Kiernan's SIGTRAP bug fix (and kicked myself for
                   2480: 
                   2481:        forgetting C's precedence rules; thanks, Alex!).
                   2482: 
                   2483: filesys.c:
                   2484: 
                   2485:        Fixed relpath2cookie so that names like "C:\Z:" aren't
                   2486: 
                   2487:        interpreted as referring to drive Z:.
                   2488: 
                   2489: fasttext.c:
                   2490: 
                   2491:        Restored the "turn on cursor when opening()" code, because
                   2492: 
                   2493:        without it the fasttext driver and BIOS aren't in sync.
                   2494: 
                   2495: main.c:
                   2496: 
                   2497:        Moved the check for the presence of an already existing MiNT
                   2498: 
                   2499:        cookie to earlier in the initialization process, so that
                   2500: 
                   2501:        the error message can be printed properly.
                   2502: 
                   2503: shmfs.c:
                   2504: 
                   2505:        Fixed Dpathconf() on U:\SHM (filenames are truncated automatically
                   2506: 
                   2507:        on that file system) and corrected the comment there.
                   2508: 
                   2509: syscall.s:
                   2510: 
                   2511:        New function, call_aes, used to check for the presence of GEM
                   2512: 
                   2513:        (so we can tell whether or not we're running from the AUTO folder).
                   2514: 
                   2515: main.c:
                   2516: 
                   2517:        Run any programs which come after mint.prg in the AUTO
                   2518: 
                   2519:        folder.
                   2520: 
                   2521: version.h:
                   2522: 
                   2523:        Changed so that the patchlevel is always printed on boot-up.
                   2524: 
                   2525: 
                   2526: 
                   2527: PATCHLEVEL10::
                   2528: 
                   2529: 
                   2530: 
                   2531: unifs.c:
                   2532: 
                   2533:        Add U:\SHM as an interface for shared memory.
                   2534: 
                   2535: shmfs.c:
                   2536: 
                   2537:        New file system for doing shared memory.
                   2538: 
                   2539: xbios.c:
                   2540: 
                   2541:        Fixed Bconmap() to always return an error if the underlying
                   2542: 
                   2543:        TOS doesn't support Bconmap.
                   2544: 
                   2545: main.c:
                   2546: 
                   2547:        Fixed a bug in the argument parsing code for the "exec"
                   2548: 
                   2549:        command in mint.cnf.
                   2550: 
                   2551: dosdir.c:
                   2552: 
                   2553:        Changed Dlock() to return ELOCKED if an attempt is made to
                   2554: 
                   2555:        lock a drive that's already locked, and ENSLOCK if an attempt
                   2556: 
                   2557:        is made to remove a non-existent lock.
                   2558: 
                   2559: version.h:
                   2560: 
                   2561:        I forgot again to update this. Aargh!
                   2562: 
                   2563: 
                   2564: 
                   2565: PATCHLEVEL9::
                   2566: 
                   2567: 
                   2568: 
                   2569: mem.c,mem.h:
                   2570: 
                   2571:        Align everything on 16 byte boundaries.
                   2572: 
                   2573: mem.c,dosmem.c:
                   2574: 
                   2575:        Actually fix the "memory being allocated twice" bug.
                   2576: 
                   2577:        The problem was that setting m->links to 0 before calling
                   2578: 
                   2579:        attach_region was a no-no.
                   2580: 
                   2581: 
                   2582: 
                   2583: PATCHLEVEL8::
                   2584: 
                   2585: 
                   2586: 
                   2587: mem.c:
                   2588: 
                   2589:        Attempt to fix the strange "memory being allocated
                   2590: 
                   2591:        twice" bug.
                   2592: 
                   2593: tosfs.c:
                   2594: 
                   2595:        Truncating names at 14 characters came *before* the
                   2596: 
                   2597:        8.3 kludge, which meant that long names were being
                   2598: 
                   2599:        interpreted incorrectly (e.g. gcc-cc1plus.ttp was
                   2600: 
                   2601:        becoming "gcc-cc1p.tt"). Temporary kludge: only
                   2602: 
                   2603:        truncate at 32 characters. Long term solution:
                   2604: 
                   2605:        re-write this code to do the 8.3 truncation at the
                   2606: 
                   2607:        same time as the truncation.
                   2608: 
                   2609: main.c, proc.h:
                   2610: 
                   2611:        Provide a more explicit type for criticerr.
                   2612: 
                   2613: proc.c:
                   2614: 
                   2615:        Don't make _logbase per-process if hardware scrolling
                   2616: 
                   2617:        is active, since this makes for all kinds of weirdness!
                   2618: 
                   2619: mem.c:
                   2620: 
                   2621:        Allow NULL commandline to be the same as an empty
                   2622: 
                   2623:        string. (It was acting this way before, due to the MiNT
                   2624: 
                   2625:        library strncpy; now that we use our own strncpy some
                   2626: 
                   2627:        programs were passing funny arguments.)
                   2628: 
                   2629: dosmem.c:
                   2630: 
                   2631:        Provide a more detailed trace of Pexec activity.
                   2632: 
                   2633: mem.c:
                   2634: 
                   2635:        Added a sanity check in get_region().
                   2636: 
                   2637: proc.c:
                   2638: 
                   2639:        Set the time/date stamp of process 0 to the
                   2640: 
                   2641:        date & time when the system was booted.
                   2642: 
                   2643: fasttext.c:
                   2644: 
                   2645:        Commented out the code that turns the cursor
                   2646: 
                   2647:        on when u:\dev\fasttext is opened.
                   2648: 
                   2649: tty.c:
                   2650: 
                   2651:        Unsigned characters are always >= 0, so we
                   2652: 
                   2653:        don't need to check this.
                   2654: 
                   2655: 
                   2656: 
                   2657: PATCHLEVEL7::
                   2658: 
                   2659: 
                   2660: 
                   2661: makefile.lcc,mintlc.prj:
                   2662: 
                   2663:        Added Alex's patches.
                   2664: 
                   2665: assert.h:
                   2666: 
                   2667:        Added Alex's patch to cast the result to void.
                   2668: 
                   2669: filesys.c:
                   2670: 
                   2671:        Make sure the file system media change routine
                   2672: 
                   2673:        is called every time a disk change is forced;
                   2674: 
                   2675:        this corrects the Dlock() bug (it wasn't forcing
                   2676: 
                   2677:        media change as it should have).
                   2678: 
                   2679: version.h:
                   2680: 
                   2681:        Oops! I forgot to increment this for pl6, so
                   2682: 
                   2683:        it jumps by 2 this time.
                   2684: 
                   2685: 
                   2686: 
                   2687: PATCHLEVEL6::
                   2688: 
                   2689: 
                   2690: 
                   2691: biosfs.c,pipefs.c,tty.c:
                   2692: 
                   2693:        New Fcntl calls for controlling terminal baud
                   2694: 
                   2695:        rates and flags such as parity and stop bits.
                   2696: 
                   2697:        These have been integrated with the old TIOC*
                   2698: 
                   2699:        calls where applicable.
                   2700: 
                   2701: dosfile.c:
                   2702: 
                   2703:        Changed Fcntl to make a call to tty_ioctl be the
                   2704: 
                   2705:        default if the device is a terminal and the device
                   2706: 
                   2707:        ioctl routine returns EINVFN.
                   2708: 
                   2709: procfs.c, proc.c:
                   2710: 
                   2711:        The date/time stamp of a process now shows when the
                   2712: 
                   2713:        process was started, rather than being the number
                   2714: 
                   2715:        of seconds of CPU time used.
                   2716: 
                   2717: tosfs.c:
                   2718: 
                   2719:        Degrade an ALERT to a TRACE; there is a circumstance
                   2720: 
                   2721:        in which a root directory can apparently be changed,
                   2722: 
                   2723:        and that's when a program tries to open an empty
                   2724: 
                   2725:        file name. We don't need to warn the user that
                   2726: 
                   2727:        something is wrong in this case; we can just fail
                   2728: 
                   2729:        silently.
                   2730: 
                   2731: proc.c:
                   2732: 
                   2733:        Save the logical screen base for each process.
                   2734: 
                   2735: main.c,bios.c,proc.h:
                   2736: 
                   2737:        Made the critical error handler per-process.
                   2738: 
                   2739: bios.c,syscall.s:
                   2740: 
                   2741:        A cleaner way of saving registers when calling
                   2742: 
                   2743:        functions... this wasn't really necessary, but I
                   2744: 
                   2745:        did it to make tracking a bug down easier.
                   2746: 
                   2747: tty.c:
                   2748: 
                   2749:        New terminal flag, T_NOFLUSH, to suppress flushing of
                   2750: 
                   2751:        input when SIGINT or SIGQUIT is received.
                   2752: 
                   2753: *fs.c, file.h:
                   2754: 
                   2755:        Added a new Dpathconf() option that tells whether or
                   2756: 
                   2757:        not a file system is case sensitive.
                   2758: 
                   2759: dos.c:
                   2760: 
                   2761:        Forbid Prenice() on processes that you don't own.
                   2762: 
                   2763: dosmem.c:
                   2764: 
                   2765:        Correct a typo that was causing terminal process groups
                   2766: 
                   2767:        to be incorrectly set.
                   2768: 
                   2769: 
                   2770: 
                   2771: PATCHLEVEL5::
                   2772: 
                   2773: 
                   2774: 
                   2775: makefile:
                   2776: 
                   2777:        The -DOWN_LIB declaration should have been on (actually,
                   2778: 
                   2779:        it was, in my copy... sorry for the mix-up).
                   2780: 
                   2781: fasttext.c:
                   2782: 
                   2783:        Applied Alex's patch for the disappearing cursor bug.
                   2784: 
                   2785: everywhere:
                   2786: 
                   2787:        Applied Alex's patches to add "const" declarations where
                   2788: 
                   2789:        appropriate, and to get rid of size_t (since if OWN_LIB
                   2790: 
                   2791:        is defined we use "int" instead).
                   2792: 
                   2793: dosmem.c:
                   2794: 
                   2795:        Fixed M_KEEP to attach memory to rootproc *only* at
                   2796: 
                   2797:        process termination.
                   2798: 
                   2799: 
                   2800: 
                   2801: 
                   2802: 
                   2803: PATCHLEVEL4::
                   2804: 
                   2805: 
                   2806: 
                   2807: proto.h:
                   2808: 
                   2809:        Added prototype for do_func_key().
                   2810: 
                   2811: everywhere:
                   2812: 
                   2813:        Applied apratt's debugging/trace patches.
                   2814: 
                   2815: 
                   2816: 
                   2817: PATCHLEVEL3::
                   2818: 
                   2819: 
                   2820: 
                   2821: xbios.c, biosfs.c:
                   2822: 
                   2823:        Change Bconmap to actually do the equivalent of an
                   2824: 
                   2825:        Fforce(-2, foo) call; this way, we don't need the
                   2826: 
                   2827:        ugly DFLTMODM kludge. (On the other hand, we introduce
                   2828: 
                   2829:        some new ugly kludges :-)).
                   2830: 
                   2831: main.c,proc.c:
                   2832: 
                   2833:        Wait until everything is initialized before opening
                   2834: 
                   2835:        devices; this avoids bogus critical error messages from
                   2836: 
                   2837:        AHDI.
                   2838: 
                   2839: util.c, mint.h, ctype.h:
                   2840: 
                   2841:        Add all sorts of utility routines (for string processing,
                   2842: 
                   2843:        character type recognition, and the like). This is
                   2844: 
                   2845:        designed to make sure that MiNT works the same regardless
                   2846: 
                   2847:        of what library is used to compile it. We're not quite
                   2848: 
                   2849:        totally independent of library yet (the startup code and
                   2850: 
                   2851:        <osbind.h> aren't replaced) but we're pretty close.
                   2852: 
                   2853: main.c, proc.c:
                   2854: 
                   2855:        Initialize the current directory for the root
                   2856: 
                   2857:        process *after* file systems have been loaded, since
                   2858: 
                   2859:        otherwise the info is nuked when a new fs is loaded in.
                   2860: 
                   2861: bios.c:
                   2862: 
                   2863:        Allow output to BIOS device 5 to be redirected along
                   2864: 
                   2865:        with BIOS device 2; we do this by using the MW
                   2866: 
                   2867:        ESC-Q control sequence to quote characters. A bit of
                   2868: 
                   2869:        a hack, but then, not many people use device 5.
                   2870: 
                   2871: quickmov.s:
                   2872: 
                   2873:        Fixed two bugs in quickmove: (1) it didn't work for
                   2874: 
                   2875:        regions bigger than 0x00fffe00 bytes in length,
                   2876: 
                   2877:        and (2) it assumed the length was a multiple of 4
                   2878: 
                   2879:        bytes.
                   2880: 
                   2881: fasttext.c:
                   2882: 
                   2883:        Re-arrange things a bit to get rid of a gcc 2.1 warning.
                   2884: 
                   2885: dosmem.c:
                   2886: 
                   2887:        Change flag 0x4000 to mean "don't free the memory
                   2888: 
                   2889:        automatically on process termination"; explicit
                   2890: 
                   2891:        Mfree requests are still allowed, and after
                   2892: 
                   2893:        termination *any* process may Mfree the memory.
                   2894: 
                   2895: 
                   2896: 
                   2897: PATCHLEVEL2::
                   2898: 
                   2899: 
                   2900: 
                   2901: makefile:
                   2902: 
                   2903:        Remove -fcombine-regs from CFLAGS, since gcc 2.1
                   2904: 
                   2905:        doesn't understand it.
                   2906: 
                   2907: bios.c:
                   2908: 
                   2909:        Ignore value returned by Bconout for the screen
                   2910: 
                   2911:        (many text accelerators get this wrong :-( ).
                   2912: 
                   2913: dossig.c, signal.h:
                   2914: 
                   2915:        New system call, Psigaction(), by AGK. 
                   2916: 
                   2917: xbios.c:
                   2918: 
                   2919:        Added support for Bconmap.
                   2920: 
                   2921: bios.c, biosfs.c:
                   2922: 
                   2923:        Rationalized the way biosfs and bios interact;
                   2924: 
                   2925:        no more funny device numbers are needed. Also:
                   2926: 
                   2927:        added support for Bconmap, and a new default
                   2928: 
                   2929:        modem device.
                   2930: 
                   2931: pipefs.c:
                   2932: 
                   2933:        Applied Michael Hohmuth's patch for pipe_close (thanks,
                   2934: 
                   2935:        Michael!)
                   2936: 
                   2937: filesys.c:
                   2938: 
                   2939:        Don't try to initialize all the drives at boot time; path2cookie
                   2940: 
                   2941:        is quite capable of initializing, and it saves having
                   2942: 
                   2943:        to access drive B: (for example) while booting is going
                   2944: 
                   2945:        on.
                   2946: 
                   2947: main.c:
                   2948: 
                   2949:        Allow the user to avoid booting MiNT if the right shift key
                   2950: 
                   2951:        is held down.
                   2952: 
                   2953: main.c:
                   2954: 
                   2955:        Added safety checking, as suggested by AKP.
                   2956: 
                   2957: dosmem.c:
                   2958: 
                   2959:        In Mxalloc, if (mode & 0x4000) is nonzero then allocate non-freeable
                   2960: 
                   2961:        memory (we do this by attaching the memory to the root process).
                   2962: 
                   2963: fasttext.c:
                   2964: 
                   2965:        Tabs should be non-destructive on the ST!
                   2966: 
                   2967: proc.h:
                   2968: 
                   2969:        Re-arranged some things. Note that "slices" was never supposed
                   2970: 
                   2971:        to be visible to users! Also, added a "bconmap" variable to
                   2972: 
                   2973:        give the current Bconmap mapping for the process.
                   2974: 
                   2975: dosdir.c:
                   2976: 
                   2977:        Fail Ddelete of current directories only on the current
                   2978: 
                   2979:        drive; for other drives, reset the current directory
                   2980: 
                   2981:        to the root directory. NOTE: Ddelete of a current directory
                   2982: 
                   2983:        is forbidden only if the directory is someone else's
                   2984: 
                   2985:        current directory; if it's only your current dir., you
                   2986: 
                   2987:        can delete it (and get automatically bumped back to
                   2988: 
                   2989:        root).
                   2990: 
                   2991: 
                   2992: 
                   2993: PATCHLEVEL1::
                   2994: 
                   2995: 
                   2996: 
                   2997: dosmem.c:
                   2998: 
                   2999:        Fixed a bug that caused processes with no '.' in their names
                   3000: 
                   3001:        to have the wrong process name.
                   3002: 
                   3003: dosmem.c:
                   3004: 
                   3005:        In Pexec, make sure we yield to the new process so that
                   3006: 
                   3007:        it gets at least one timeslice to do an Mshrink().
                   3008: 
                   3009: proc.c:
                   3010: 
                   3011:        In preempt(), don't punish processes that have buffered
                   3012: 
                   3013:        BIOS output and are preempted; the process of flushing the
                   3014: 
                   3015:        buffer may very well put them to sleep, and in any event
                   3016: 
                   3017:        processes doing I/O should not be considered "hogs".
                   3018: 
                   3019: tosfs.c:
                   3020: 
                   3021:        Don't look for volume labels in opendir/readdir/lookup etc.
                   3022: 
                   3023: main.c:
                   3024: 
                   3025:        AGK: added DEBUG_LEVEL and DEBUG_DEVNO options to mint.cnf.
                   3026: 
                   3027: dossig.c:
                   3028: 
                   3029:        New system call (Psigpause()) courtesy of Alex Kiernan.
                   3030: 
                   3031: dosmem.c:
                   3032: 
                   3033:        In Pexec(200,...), don't reset base->p_parent, since the
                   3034: 
                   3035:        "parent" in an overlay exec is oneself.
                   3036: 
                   3037: tty.c:
                   3038: 
                   3039:        Fixed so that RAW mode reads will return all of an
                   3040: 
                   3041:        extended escape sequence at once, rather than waiting
                   3042: 
                   3043:        for the next read.
                   3044: 
                   3045: dosmem.c:
                   3046: 
                   3047:        When terminating a process, make sure that it's "number of
                   3048: 
                   3049:        memory regions" is set to 0; otherwise, calls to memused()
                   3050: 
                   3051:        on the process (e.g. by procfs) can crash the system.
                   3052: 
                   3053: dosdir.c:
                   3054: 
                   3055:        When removing directories, make sure that the directory
                   3056: 
                   3057:        isn't in use as someone's current directory (so that
                   3058: 
                   3059:        they don't get left in limbo).
                   3060: 
                   3061: fasttext.c:
                   3062: 
                   3063:        Screen memory must come from ST RAM -- otherwise hardware
                   3064: 
                   3065:        scrolling crashes and burns. Fixed thanks to AGK.
                   3066: 
                   3067: xbios.c:
                   3068: 
                   3069:        Moved the prototype for midiws to proto.h, and corrected the
                   3070: 
                   3071:        type of its argument (it should have been "int", not "short").
                   3072: 
                   3073: 
                   3074: 
                   3075: PATCHLEVEL0::
                   3076: 
                   3077: 
                   3078: 
                   3079: bios.c:
                   3080: 
                   3081:        Terminal modes weren't being set correctly in Bconout, and also
                   3082: 
                   3083:        weren't being set in bflush (which should have employed RAW
                   3084: 
                   3085:        mode output, but didn't).
                   3086: 
                   3087: everywhere:
                   3088: 
                   3089:        Merged in Alex Kiernan's latest Lattice C patches.
                   3090: 
                   3091: 
                   3092: 
                   3093: 
                   3094: 
                   3095: version 0.94
                   3096: 
                   3097: 
                   3098: 
                   3099: PATCHLEVEL4::
                   3100: 
                   3101: 
                   3102: 
                   3103: filesys.c:
                   3104: 
                   3105:        Use U:\DEV\CON for CON:, instead of V:\CON, since we're
                   3106: 
                   3107:        going to make drive V: go away soon.
                   3108: 
                   3109: unifs.c:
                   3110: 
                   3111:        When looking up a drive, make sure that it has a valid file
                   3112: 
                   3113:        system attached to it -- otherwise, newly installed ramdisks
                   3114: 
                   3115:        can cause system crashes :-(.
                   3116: 
                   3117: fasttext.c:
                   3118: 
                   3119:        Patches to make the fast text device work correctly on a TT,
                   3120: 
                   3121:        courtesy of Erling Henanger.
                   3122: 
                   3123: main.c:
                   3124: 
                   3125:        Install 16 extra cookies, instead of 8, just to be friendly.
                   3126: 
                   3127: 
                   3128: 
                   3129: PATCHLEVEL3::
                   3130: 
                   3131: 
                   3132: 
                   3133: main.c:
                   3134: 
                   3135:        Allow PSEUDODRIVES=MAP to put the extra drives in
                   3136: 
                   3137:        _drvbits without installing new drivers for them.
                   3138: 
                   3139: unifs.c:
                   3140: 
                   3141:        Don't rely on drvmap() to figure out what drives exist;
                   3142: 
                   3143:        it isn't accurate if PSEUDODRIVES=NO.
                   3144: 
                   3145: 
                   3146: 
                   3147: PATCHLEVEL2::
                   3148: 
                   3149: 
                   3150: 
                   3151: main.c:
                   3152: 
                   3153:        Added an option for turning off the BIOS routines for the
                   3154: 
                   3155:        pseudo-drives.
                   3156: 
                   3157: filesys.c:
                   3158: 
                   3159:        Moved the vector set/restore code to main.c (where all the
                   3160: 
                   3161:        other vector stuff is).
                   3162: 
                   3163: tosfs.c:
                   3164: 
                   3165:        If the _FLK cookie was already set when MiNT started, we
                   3166: 
                   3167:        pass file sharing and locking requests through to GEMDOS.
                   3168: 
                   3169: main.c:
                   3170: 
                   3171:        Turn the cursor off when leaving, if we were started from
                   3172: 
                   3173:        the desktop.
                   3174: 
                   3175: tosfs.c:
                   3176: 
                   3177:        Fixed a bug in which tos_chmode was returning an incorrect
                   3178: 
                   3179:        value.
                   3180: 
                   3181: debug.c:
                   3182: 
                   3183:        Added code for octal output to sprintf().
                   3184: 
                   3185: dosdir.c:
                   3186: 
                   3187:        Make Fsfirst() with the FA_LABEL bit set work on non-TOS
                   3188: 
                   3189:        file systems (via the file system readlabel function).
                   3190: 
                   3191:        (This used to work only when the search was restricted to
                   3192: 
                   3193:        labels only.)
                   3194: 
                   3195: various places:
                   3196: 
                   3197:        Get rid of gcc 2.0 warnings.
                   3198: 
                   3199: 
                   3200: 
                   3201: PATCHLEVEL1::
                   3202: 
                   3203: 
                   3204: 
                   3205: file.h:
                   3206: 
                   3207:        Because Fmidipipe and the disk change code can close
                   3208: 
                   3209:        files other than the files of the current process,
                   3210: 
                   3211:        the device driver "close" function needs another
                   3212: 
                   3213:        parameter, namely the process id being closed; this
                   3214: 
                   3215:        allows device drivers to remove locks properly.
                   3216: 
                   3217: tosfs.c:
                   3218: 
                   3219:        Volume labels shouldn't be found by Dreaddir().
                   3220: 
                   3221: tosfs.c:
                   3222: 
                   3223:        Added file locking.
                   3224: 
                   3225: filesys.c, main.c, file.h:
                   3226: 
                   3227:        New utility routine (denylock) to make implementing file
                   3228: 
                   3229:        locking easier for file systems.
                   3230: 
                   3231: 
                   3232: 
                   3233: PATCHLEVEL0::
                   3234: 
                   3235: 
                   3236: 
                   3237: tosfs.c:
                   3238: 
                   3239:        Canonicalize file names (i.e. convert to 8.3 format).
                   3240: 
                   3241:        Also, keep track of the value returned from the last
                   3242: 
                   3243:        readdir() call, so that a subsequent Fxattr() will take
                   3244: 
                   3245:        place quickly.
                   3246: 
                   3247: proc.c:
                   3248: 
                   3249:        In sleep(), make sure interrupts are disabled while queue
                   3250: 
                   3251:        manipulations are occuring.
                   3252: 
                   3253: bios.c:
                   3254: 
                   3255:        Correct a stuttering problem for ^C and similar interrupts.
                   3256: 
                   3257: dosmem.c:
                   3258: 
                   3259:        8 character process names weren't terminated properly.
                   3260: 
                   3261: tty.c:
                   3262: 
                   3263:        Aaargh! Shift+cursor keys were being interpreted even when
                   3264: 
                   3265:        they shouldn't have been.
                   3266: 
                   3267: 
                   3268: 
                   3269: version 0.93
                   3270: 
                   3271: 
                   3272: 
                   3273: PATCHLEVEL6::
                   3274: 
                   3275: 
                   3276: 
                   3277: filesys.c:
                   3278: 
                   3279:        Check for newly installed drives when parsing an
                   3280: 
                   3281:        absolute path without an explicit drive letter, as
                   3282: 
                   3283:        well as when looking at ones with drive letters.
                   3284: 
                   3285: 
                   3286: 
                   3287: PATCHLEVEL5::
                   3288: 
                   3289: 
                   3290: 
                   3291: biosfs.c, fasttext.c:
                   3292: 
                   3293:        Allow TIOCGWINSZ calls on the console (we use the line A
                   3294: 
                   3295:        variables to get the number or rows and columns).
                   3296: 
                   3297: filesys.c:
                   3298: 
                   3299:        Fix a typo in the file system initialization checking.
                   3300: 
                   3301: pipefs.c:
                   3302: 
                   3303:        Make "VIRGIN_PIPE" more obviously a magic value, and
                   3304: 
                   3305:        document it.
                   3306: 
                   3307: pipefs.c:
                   3308: 
                   3309:        Make u:\pipe have a sensible date/time; also, make
                   3310: 
                   3311:        Dfree on u:\pipe return some useful statistics about
                   3312: 
                   3313:        the number of pipes in the system.
                   3314: 
                   3315: procfs.c:
                   3316: 
                   3317:        u:\proc has a sensible time and date now, namely the
                   3318: 
                   3319:        time/date of the last process creation or destruction.
                   3320: 
                   3321: dosfile.c:
                   3322: 
                   3323:        Fcreate() of a volume label now returns a handle to
                   3324: 
                   3325:        u:\dev\null.
                   3326: 
                   3327: dosmem.c:
                   3328: 
                   3329:        Make sure the BIOSBUF buffer is flushed when terminating.
                   3330: 
                   3331: main.c:
                   3332: 
                   3333:        There's a bug in TOS 1.4: GEM seems to assume that all
                   3334: 
                   3335:        memory is zero initially, and if it isn't (e.g. if a large
                   3336: 
                   3337:        AUTO folder program like MiNT terminates and leaves behind
                   3338: 
                   3339:        dirty memory) then having too many (or the wrong kind of)
                   3340: 
                   3341:        desk accessories can lead to a crash. This was a real bear
                   3342: 
                   3343:        to track down, and the work-around is very ugly; before
                   3344: 
                   3345:        MiNT exits we copy a short machine language subroutine into
                   3346: 
                   3347:        the command line, and then execute it; the routine zeros
                   3348: 
                   3349:        all of the TPA and then does a Pterm0().
                   3350: 
                   3351: rendez.c:
                   3352: 
                   3353:        Change a "short" to "int" for the benefit of gcc 2.0.
                   3354: 
                   3355: bios.c:
                   3356: 
                   3357:        Stop process dumps from stuttering.
                   3358: 
                   3359: console.c:
                   3360: 
                   3361:        Added support for global file handles.
                   3362: 
                   3363: 
                   3364: 
                   3365: PATCHLEVEL4::
                   3366: 
                   3367: 
                   3368: 
                   3369: dosfile.c:
                   3370: 
                   3371:        In Fselect(), we have to re-validate file handles after
                   3372: 
                   3373:        a sleep() call, since signal handlers may close files.
                   3374: 
                   3375: proc.c:
                   3376: 
                   3377:        Pre-allocate more PROC structures (this should help
                   3378: 
                   3379:        reduce memory fragmentation).
                   3380: 
                   3381: tty.c, file.h:
                   3382: 
                   3383:        Allow cursor/function keys to send escape sequences.
                   3384: 
                   3385: dosdir.c:
                   3386: 
                   3387:        As suggested by S. Henson: Dsetpath through a symbolic link
                   3388: 
                   3389:        may also require changing the current drive as well.
                   3390: 
                   3391: proc.c,dos.c,timeout.c:
                   3392: 
                   3393:        New process scheduling algorithm, as suggested by A. Pratt.
                   3394: 
                   3395: dosdir.c:
                   3396: 
                   3397:        Make only the low bit of Dlock() significant, for future
                   3398: 
                   3399:        expansion.
                   3400: 
                   3401: dosfile.c:
                   3402: 
                   3403:        Allow Fcreate() to create a global file handle.
                   3404: 
                   3405: 
                   3406: 
                   3407: PATCHLEVEL3::
                   3408: 
                   3409: 
                   3410: 
                   3411: debug.c:
                   3412: 
                   3413:        Changed TRACE mode output so that not just any keys will
                   3414: 
                   3415:        start/stop output, but only Help and Undo.
                   3416: 
                   3417: dosdir.c, filesys.c:
                   3418: 
                   3419:        Add a Dlock() system call to lock/unlock drives.
                   3420: 
                   3421: filesys.c:
                   3422: 
                   3423:        Only initialize drives if the BIOS drive map says that
                   3424: 
                   3425:        they exist.
                   3426: 
                   3427: dosmem.c:
                   3428: 
                   3429:        In Pexec, make a copy of any name we're going to use
                   3430: 
                   3431:        before freeing memory for overlayed programs; the old
                   3432: 
                   3433:        way was decidedly incorrect!
                   3434: 
                   3435: dosfile.c:
                   3436: 
                   3437:        Allow for global file handles, so that shared libraries
                   3438: 
                   3439:        can use file handles that are the same for all processes.
                   3440: 
                   3441: dosmem.c:
                   3442: 
                   3443:        In Mxalloc, ignore bits that we don't understand, to
                   3444: 
                   3445:        allow for future expansion.
                   3446: 
                   3447: syscall.s:
                   3448: 
                   3449:        Fix a bug that could cause the wrong system call to be
                   3450: 
                   3451:        made if BIOS buffering is on (!).
                   3452: 
                   3453: bios.c:
                   3454: 
                   3455:        Streamline the BIOS buffering mechanism, and make it
                   3456: 
                   3457:        more conservative about multiple processes doing Bconout
                   3458: 
                   3459:        output.
                   3460: 
                   3461: procfs.c:
                   3462: 
                   3463:        Allow "foo.-1" to stand for the current process, and
                   3464: 
                   3465:        "foo.-2" to stand for our parent. Also, add new
                   3466: 
                   3467:        Fcntls for getting/setting memory flags.
                   3468: 
                   3469: bios.c:
                   3470: 
                   3471:        In Setexc(), don't actually change any vectors, let the BIOS
                   3472: 
                   3473:        do it -- some TSR's install trap handlers that look for
                   3474: 
                   3475:        certain Setexc functions...
                   3476: 
                   3477: signal.c:
                   3478: 
                   3479:        Allow nested Supexec() calls, or Supexec()'s from a terminate
                   3480: 
                   3481:        vector.
                   3482: 
                   3483: procfs.c:
                   3484: 
                   3485:        Change the definition of PPROCADDR and add a new Fcntl,
                   3486: 
                   3487:        PCTXTSIZE.
                   3488: 
                   3489: mem.c:
                   3490: 
                   3491:        In exec_region, set the stack based on the value of p_hitpa
                   3492: 
                   3493:        from the basepage, instead of the size of the memory
                   3494: 
                   3495:        region -- some programs rely on being able to set the initial
                   3496: 
                   3497:        stack pointer for a Pexec(4,...) this way.
                   3498: 
                   3499: main.c, context.s:
                   3500: 
                   3501:        Avoid using 68020 instructions if we're on a 68010.
                   3502: 
                   3503: 
                   3504: 
                   3505: PATCHLEVEL2::
                   3506: 
                   3507: 
                   3508: 
                   3509: dos.c,proc.c:
                   3510: 
                   3511:        More tweaking of the priority code.
                   3512: 
                   3513: main.c:
                   3514: 
                   3515:        Change the type of "tosbp" from char ** to BASEPAGE **,
                   3516: 
                   3517:        since that's what it really is.
                   3518: 
                   3519: main.c:
                   3520: 
                   3521:        Add a special case for the Spanish TOS 1.0 act_pd variable.
                   3522: 
                   3523: pipefs.c:
                   3524: 
                   3525:        When a writer is waiting to write a small amount of data
                   3526: 
                   3527:        atomically, remember to wake up readers so that they
                   3528: 
                   3529:        can clear the pipe!
                   3530: 
                   3531: debug.c:
                   3532: 
                   3533:        Add the %u flag to ksprintf() (Fselect uses it, maybe others
                   3534: 
                   3535:        do too...)
                   3536: 
                   3537: dosmem.c:
                   3538: 
                   3539:        In Pterm(), put the exit code onto the stack when calling
                   3540: 
                   3541:        etv_term. It won't be in the same place as it was for TOS,
                   3542: 
                   3543:        but c'est la vie. (People asked for this feature...)
                   3544: 
                   3545: xbios.c:
                   3546: 
                   3547:        Provide a way to pass arguments to Supexec(). Note that Atari
                   3548: 
                   3549:        never documented that this was possible, but some people were
                   3550: 
                   3551:        relying on it anyway :-(. (Don't use this feature, it's only
                   3552: 
                   3553:        there as a compatibility hack.)
                   3554: 
                   3555: main.c:
                   3556: 
                   3557:        In shutdown(), don't bother waiting a second for processes
                   3558: 
                   3559:        to finish if there are no other processes.
                   3560: 
                   3561: filesys.c:
                   3562: 
                   3563:        Make sure that path names are null terminated after strncpy.
                   3564: 
                   3565: mem.c:
                   3566: 
                   3567:        Fix the code to zero process registers so that it *only* zeros
                   3568: 
                   3569:        process registers.
                   3570: 
                   3571: dosmem.c:
                   3572: 
                   3573:        Eliminate some redundant code.
                   3574: 
                   3575: dosfile.c:
                   3576: 
                   3577:        Open u:\pipe\sys$pipe.xxx rather than q:\sys$pipe.xxx.
                   3578: 
                   3579: main.c:
                   3580: 
                   3581:        Change a "malloc" into "kmalloc", and restore the #include
                   3582: 
                   3583:        of <minimal.h> that was inadvertently deleted.
                   3584: 
                   3585: main.c:
                   3586: 
                   3587:        Allow parameters to be passed to the initial program specified
                   3588: 
                   3589:        by the INIT= string.
                   3590: 
                   3591: 
                   3592: 
                   3593: PATCHLEVEL1::
                   3594: 
                   3595: 
                   3596: 
                   3597: main.c:
                   3598: 
                   3599:        Fix a typo in shutdown() that was causing problems when
                   3600: 
                   3601:        MiNT was shut down while processes were active.
                   3602: 
                   3603: tosfs.c:
                   3604: 
                   3605:        Make sure that tfullpath() returns a string less than
                   3606: 
                   3607:        PATH_MAX characters long.
                   3608: 
                   3609: everywhere:
                   3610: 
                   3611:        Replace "sprintf" with "ksprintf".
                   3612: 
                   3613: debug.c:
                   3614: 
                   3615:        Add a "ksprintf" function that's like sprintf(), but
                   3616: 
                   3617:        (a) doesn't have so many features (making it smaller),
                   3618: 
                   3619:        and more importantly (b) won't try to write more than
                   3620: 
                   3621:        SPRINTF_MAX characters into a buffer.
                   3622: 
                   3623: filesys.c:
                   3624: 
                   3625:        In path2cookie, make sure we don't try to copy more than
                   3626: 
                   3627:        PATH_MAX characters into the fixed size buffers.
                   3628: 
                   3629: dosmem.c:
                   3630: 
                   3631:        The "sleep if no memory available during Malloc" code
                   3632: 
                   3633:        was causing more problems than it solved, so it was
                   3634: 
                   3635:        removed. To compensate, we increase the priority of
                   3636: 
                   3637:        newly Pexec'd processes to make sure that they get
                   3638: 
                   3639:        to run.
                   3640: 
                   3641: dosmem.c:
                   3642: 
                   3643:        Aaaargh! A very serious screw-up in terminate() was
                   3644: 
                   3645:        causing us to wake up processes sleeping in vfork()
                   3646: 
                   3647:        even when their children were still using the address
                   3648: 
                   3649:        space; needless to say, horrible (and mysterious)
                   3650: 
                   3651:        crashes could ensue. Fix: only force the parent awake
                   3652: 
                   3653:        if wait_q == WAIT_Q && wait_cond matches the terminating
                   3654: 
                   3655:        process, otherwise let post_sig() handle waking.
                   3656: 
                   3657:        While fixing this bug, re-arrange the terminate code
                   3658: 
                   3659:        to do the waking up at the very end, just in case some
                   3660: 
                   3661:        of the other code may cause a sleep() temporarily.
                   3662: 
                   3663: bios.c:
                   3664: 
                   3665:        Fix the scan code for the UNDO key.
                   3666: 
                   3667: fasttext.c:
                   3668: 
                   3669:        Use Setscreen() to set the hardware screen base, since setting
                   3670: 
                   3671:        the variable at 0x45e causes TOS to keep setting the screen base
                   3672: 
                   3673:        ad infinitum.
                   3674: 
                   3675: 
                   3676: 
                   3677: PATCHLEVEL0::
                   3678: 
                   3679: 
                   3680: 
                   3681: rendez.c:
                   3682: 
                   3683:        When waking a process up from a semaphore, check to see
                   3684: 
                   3685:        if it's on the WAIT_Q before trying to remove it from
                   3686: 
                   3687:        that queue (it might have been moved off the wait queue
                   3688: 
                   3689:        by a signal).
                   3690: 
                   3691: bios.c:
                   3692: 
                   3693:        Make sure that Bconout(2,c) always succeeds, to compensate
                   3694: 
                   3695:        for text accelerators and other programs that don't return
                   3696: 
                   3697:        sensible values from Bconout. Also, ignore the Bconout
                   3698: 
                   3699:        return value when flushing the text output buffer.
                   3700: 
                   3701: 
                   3702: 
                   3703: version 0.92
                   3704: 
                   3705: 
                   3706: 
                   3707: PATCHLEVEL4::
                   3708: 
                   3709: 
                   3710: 
                   3711: biosfs.c:
                   3712: 
                   3713:        Provide devices for the extra Mega STe serial ports.
                   3714: 
                   3715: biosfs.c:
                   3716: 
                   3717:        Make the kernel info structure available to device drivers
                   3718: 
                   3719:        loaded with Dcntl.
                   3720: 
                   3721: xbios.c:
                   3722: 
                   3723:        Provide a modified Midiws function so that this is also
                   3724: 
                   3725:        affected by Fmidipipe and Fforce.
                   3726: 
                   3727: biosfs.c:
                   3728: 
                   3729:        Split bios_device into two device drivers; one for
                   3730: 
                   3731:        terminal devices, and one for plain character devices
                   3732: 
                   3733:        (the printer and IKBD port fall into this category).
                   3734: 
                   3735:        Also: provide a new Dcntl call to install plain BIOS
                   3736: 
                   3737:        devices in U:\DEV.
                   3738: 
                   3739: tty.c:
                   3740: 
                   3741:        Check for terminal start/stop keys while reading.
                   3742: 
                   3743: bios.c:
                   3744: 
                   3745:        In checkkeys, loop through all keys received since our last
                   3746: 
                   3747:        interrupt, rather than just checking the last thing in the
                   3748: 
                   3749:        buffer (as A. Pratt suggested).
                   3750: 
                   3751: bios.c, tty.c:
                   3752: 
                   3753:        Made the "disable" character for special terminal functions
                   3754: 
                   3755:        (e.g. the EOF key) be 0 instead of -1; this matches System V,
                   3756: 
                   3757:        is more POSIX friendly, and also makes confusing function keys
                   3758: 
                   3759:        and ^@ less likely. (Thanks to Scott Willingham for this
                   3760: 
                   3761:        suggestion.)
                   3762: 
                   3763: file.h, elsewhere as needed:
                   3764: 
                   3765:        Renamed the O_BIOS flag O_TTY (since that's what it really
                   3766: 
                   3767:        represents) and renamed the is_bios macro is_terminal.
                   3768: 
                   3769: dosmem.c:
                   3770: 
                   3771:        Make Pexec mode 106 cause the child to be truly independent
                   3772: 
                   3773:        of the parent (i.e. it doesn't get the parent's address space,
                   3774: 
                   3775:        nor does the parent get the child's).
                   3776: 
                   3777: biosfs.c:
                   3778: 
                   3779:        Allow symbolic links from U:\DEV; this lets us do things like
                   3780: 
                   3781:        Fsymlink("U:\PIPE\SERVERFIFO", "U:\DEV\SERVERDEV").
                   3782: 
                   3783: main.c:
                   3784: 
                   3785:        When PRN=d:\foo is specified, create the file foo instead of
                   3786: 
                   3787:        just trying to open it; this makes no difference to devices,
                   3788: 
                   3789:        but makes redirecting printer output to a file much more
                   3790: 
                   3791:        convenient.
                   3792: 
                   3793: unifs.c:
                   3794: 
                   3795:        Fix a bug that was causing Dgetpath() to return incorrect
                   3796: 
                   3797:        information for U:\A.
                   3798: 
                   3799: timeout.c:
                   3800: 
                   3801:        Make sure "searchtime" is up-to-date; bconout uses this for
                   3802: 
                   3803:        the time out.
                   3804: 
                   3805: biosfs.c:
                   3806: 
                   3807:        Fix bios_write so that if bconout fails, so does the write.
                   3808: 
                   3809: bios.c:
                   3810: 
                   3811:        Fix bconout so that it doesn't hang forever if the device isn't
                   3812: 
                   3813:        going to be ready (e.g. the printer is off); instead, there's
                   3814: 
                   3815:        a 10 second timeout.
                   3816: 
                   3817: main.c:
                   3818: 
                   3819:        Send all processes SIGTERM when we're shutting down, so that
                   3820: 
                   3821:        they have a chance to clean up after themselves.
                   3822: 
                   3823: mint.h:
                   3824: 
                   3825:        The KBDVEC structure was missing the "clockvec" element (!).
                   3826: 
                   3827: 
                   3828: 
                   3829: PATCHLEVEL3::
                   3830: 
                   3831: 
                   3832: 
                   3833: biosfs.c:
                   3834: 
                   3835:        Revised to allow support for loading/removing device drivers
                   3836: 
                   3837:        dynamically, via a Dcntl() call.
                   3838: 
                   3839: dosmem.c,mem.c,dosfile.c,file.h:
                   3840: 
                   3841:        Added support for setuid/setgid. These bits are only checked
                   3842: 
                   3843:        in Pexec modes 0, 100, and 200, i.e. the "load and go" modes.
                   3844: 
                   3845: rendez.c:
                   3846: 
                   3847:        Added new semaphore code from Allan Pratt.
                   3848: 
                   3849: main.c:
                   3850: 
                   3851:        New command for mint.cnf: "exec foo.prg bar" runs the program
                   3852: 
                   3853:        "foo" with argument(s) "bar".
                   3854: 
                   3855: main.c:
                   3856: 
                   3857:        Use the XBRA protocol for all interrupt routines that we grab.
                   3858: 
                   3859: filesys.c:
                   3860: 
                   3861:        When terminating MiNT, close all open files to make sure data
                   3862: 
                   3863:        is flushed and devices are nicely shut down.
                   3864: 
                   3865: main.c:
                   3866: 
                   3867:        Add some more variables, such as CON and PRN for redirecting
                   3868: 
                   3869:        those handles, and HARDSCROLL for controlling the fast text
                   3870: 
                   3871:        output.
                   3872: 
                   3873: proc.c:
                   3874: 
                   3875:        Make sure the "links" field for the prn and aux handles is
                   3876: 
                   3877:        correct.
                   3878: 
                   3879: syscall.s, bios.c:
                   3880: 
                   3881:        Special case the BIOS Bconout code to try to speed it up
                   3882: 
                   3883:        a bit. We allow for buffering of Bconout output; the buffer
                   3884: 
                   3885:        is flushed on the next non-Bconout system call or context
                   3886: 
                   3887:        switch. This should usually work OK, but as a precaution
                   3888: 
                   3889:        we provide for a way to turn it off (BIOSBUF=NO in mint.cnf).
                   3890: 
                   3891: fasttext.c.fasttext.h:
                   3892: 
                   3893:        New files for a faster text output device; changes were
                   3894: 
                   3895:        made to biosfs.c to support this, too.
                   3896: 
                   3897: tty.c:
                   3898: 
                   3899:        Streamline writes to terminals by sending data to the
                   3900: 
                   3901:        tty device in chunks instead of 1 character at a time.
                   3902: 
                   3903: dosfile.c:
                   3904: 
                   3905:        In do_open, always return EFILNF, never EPTHNF.
                   3906: 
                   3907: dosmem.c:
                   3908: 
                   3909:        Use supexec() to execute the terminate vector code, to
                   3910: 
                   3911:        avoid duplication of signal 0 faking.
                   3912: 
                   3913: xbios.c:
                   3914: 
                   3915:        In Supexec() does leave the kernel, so we have to make
                   3916: 
                   3917:        appropriate adjustments. We do this by faking a signal
                   3918: 
                   3919:        (signal 0) and installing the user's function as a signal
                   3920: 
                   3921:        handler.
                   3922: 
                   3923: dosdir.c:
                   3924: 
                   3925:        Make Dfree(x) actually look at free space on the drive which
                   3926: 
                   3927:        corresponds to the current directory on <x>; this should make
                   3928: 
                   3929:        Dfree on drive U: much more useful.
                   3930: 
                   3931: proc.h:
                   3932: 
                   3933:        Make the "base" field of the PROC structure have type BASEPAGE *
                   3934: 
                   3935:        (since that's what it is!)
                   3936: 
                   3937: basepage.h, dosdir.c, dosmem.c:
                   3938: 
                   3939:        Support some undocumented fields in the basepage a little bit
                   3940: 
                   3941:        (i.e. they're read only). Programs that try to write to these
                   3942: 
                   3943:        fields break. Surprise, surprise.
                   3944: 
                   3945: 
                   3946: 
                   3947: PATCHLEVEL2::
                   3948: 
                   3949: 
                   3950: 
                   3951: dosmem.c, mem.c:
                   3952: 
                   3953:        The docs say that children started with Pexec(104,...) or
                   3954: 
                   3955:        Pexec(106,...) share the parent's memory. This was unfortunately
                   3956: 
                   3957:        not the case; if the parent exited and the child was running
                   3958: 
                   3959:        in the parent's address space (e.g. see tfork() in mntlib)
                   3960: 
                   3961:        the child died very soon thereafter (like when the next program
                   3962: 
                   3963:        comes along and clears the memory the child was running out of).
                   3964: 
                   3965:        This is now fixed.
                   3966: 
                   3967: dos.c, proc.c, timeout.c:
                   3968: 
                   3969:        More tuning of the process scheduler.
                   3970: 
                   3971: main.c:
                   3972: 
                   3973:        Added "setenv" function for mint.cnf.
                   3974: 
                   3975: 
                   3976: 
                   3977: PATCHLEVEL1::
                   3978: 
                   3979: 
                   3980: 
                   3981: filesys.c:
                   3982: 
                   3983:        In some circumstances, AHDI will keep telling us that a drive
                   3984: 
                   3985:        has changed, ad infinitum. To avoid this, we stop trying after
                   3986: 
                   3987:        8 media changes occur in a row.
                   3988: 
                   3989: util.c:
                   3990: 
                   3991:        Tuned the kmalloc() strategy to reduce memory fragmentation
                   3992: 
                   3993:        (every process will be allocating 264 bytes for its
                   3994: 
                   3995:        memory region maps right after creation, and this should
                   3996: 
                   3997:        come from kernel memory).
                   3998: 
                   3999: tty.c:
                   4000: 
                   4001:        Under TOS, 1 byte writes should always be in raw mode.
                   4002: 
                   4003: dos.c:
                   4004: 
                   4005:        In Syield(), we should call sleep() even if no other processes
                   4006: 
                   4007:        are waiting, just to make sure that signals, alarms, etc.
                   4008: 
                   4009:        are properly dealt with.
                   4010: 
                   4011: filesys.c, dosfile.c:
                   4012: 
                   4013:        The media change code was wedged (actually, the fault was in
                   4014: 
                   4015:        do_pclose, which sometimes neglected to check to see whether
                   4016: 
                   4017:        or not the file had a still-valid device driver).
                   4018: 
                   4019: dosmem.c:
                   4020: 
                   4021:        In the termination code, close "files" referring to a process
                   4022: 
                   4023:        *before* freeing all the process memory; that way, we don't
                   4024: 
                   4025:        have to worry in do_pclose() and other places about what
                   4026: 
                   4027:        kind of state the process is in.
                   4028: 
                   4029: mem.h:
                   4030: 
                   4031:        Round off memory regions only to a word boundary for better
                   4032: 
                   4033:        TOS compatibility.
                   4034: 
                   4035: 
                   4036: 
                   4037: PATCHLEVEL0::
                   4038: 
                   4039: dos.c,intr.s,syscall.s:
                   4040: 
                   4041:        Changed s_yield() to actually give up the processor if
                   4042: 
                   4043:        another process is waiting for it; this means that processes
                   4044: 
                   4045:        that call Syield() won't be penalized by the priority code.
                   4046: 
                   4047:        Also: added a new kernel function, preempt(), which does
                   4048: 
                   4049:        what the old s_yield() did (and hence penalizes CPU hogs).
                   4050: 
                   4051: makefile:
                   4052: 
                   4053:        Cleaned up a bit, per suggestions from A. Pratt and D. Gymer.
                   4054: 
                   4055: 
                   4056: 
                   4057: 
                   4058: 
                   4059: version 0.91
                   4060: 
                   4061: 
                   4062: 
                   4063: dosmem.c:
                   4064: 
                   4065:        Only the high 4 bits of the program load flags give memory
                   4066: 
                   4067:        requirements (we were using 8 bits).
                   4068: 
                   4069: dosdir.c:
                   4070: 
                   4071:        Add a hack so that ksh still works (it was using '/' in a
                   4072: 
                   4073:        path name). THIS HACK WILL GO AWAY SOMEDAY!
                   4074: 
                   4075: tty.c:
                   4076: 
                   4077:        CBREAK mode shouldn't do erase, kill, or EOF processing.
                   4078: 
                   4079: dosdir.c:
                   4080: 
                   4081:        Freadlink should check first to make sure the file really
                   4082: 
                   4083:        is a link!
                   4084: 
                   4085: file.h,tty.c:
                   4086: 
                   4087:        Change the name "struct winsiz" to "struct winsize" to match
                   4088: 
                   4089:        what Unix calls it (cosmetic change only).
                   4090: 
                   4091: unifs.c:
                   4092: 
                   4093:        Allow renaming of the drives, and allow rmdir() to work
                   4094: 
                   4095:        like unlink() for symbolic links (since we fake the return
                   4096: 
                   4097:        value from Fsfirst to look like a directory if the link
                   4098: 
                   4099:        points to a directory).
                   4100: 
                   4101: biosfs.c:
                   4102: 
                   4103:        lseek() on the null device should not return 0 always;
                   4104: 
                   4105:        otherwise, it will look like a terminal to many programs!
                   4106: 
                   4107: dosfile.c:
                   4108: 
                   4109:        If a MiNT domain process closes stdin or stdout, they
                   4110: 
                   4111:        really do want them closed (for compatibility with
                   4112: 
                   4113:        MiNT 0.8).
                   4114: 
                   4115: syscall.s:
                   4116: 
                   4117:        When returning from traps, don't pre-empt the current process
                   4118: 
                   4119:        if it's in supervisor mode.
                   4120: 
                   4121: mem.c:
                   4122: 
                   4123:        Fake some stuff in the basepage so that programs compiled
                   4124: 
                   4125:        with dLibs will work some of the time.
                   4126: 
                   4127: tosfs.c:
                   4128: 
                   4129:        Make the value returned from Dgetpath() lower case in the MiNT
                   4130: 
                   4131:        domain. Also, make tosfs a little less verbose when debugging
                   4132: 
                   4133:        or tracing is on.
                   4134: 
                   4135: dosmem.c:
                   4136: 
                   4137:        Try to allocate space for saved fork() memory in the alternate (TT)
                   4138: 
                   4139:        memory map first, as well as in core (ST) memory.
                   4140: 
                   4141: mem.h:
                   4142: 
                   4143:        Round allocation requests up to multiples of 8 bytes instead
                   4144: 
                   4145:        of 4; this automatically gives us a bit of slush for ill
                   4146: 
                   4147:        behaved programs, and also means that requests will always
                   4148: 
                   4149:        be for a multiple of sizeof(double) bytes.
                   4150: 
                   4151: util.c:
                   4152: 
                   4153:        Get rid of the extra slush around kmalloc'd regions (which
                   4154: 
                   4155:        was a lot bigger than originally intended anyway!)
                   4156: 
                   4157: 
                   4158: 
                   4159: 
                   4160: 
                   4161: version 0.9
                   4162: 
                   4163: 
                   4164: 
                   4165: PATCHLEVEL21:: released version
                   4166: 
                   4167: 
                   4168: 
                   4169: dosmem.c:
                   4170: 
                   4171:        Make Malloc and Mxalloc try again if there isn't enough memory;
                   4172: 
                   4173:        maybe the situation is temporary.
                   4174: 
                   4175: mem.c:
                   4176: 
                   4177:        Plug a memory leak in load_region(); also make load_region try again
                   4178: 
                   4179:        if there isn't enough memory to load the program (just in case the
                   4180: 
                   4181:        situation is temporary).
                   4182: 
                   4183: dosdir.c:
                   4184: 
                   4185:        Add a check to Fattrib to make sure that attributes of directories
                   4186: 
                   4187:        are never changed.
                   4188: 
                   4189: 
                   4190: 
                   4191: PATCHLEVEL20::
                   4192: 
                   4193: 
                   4194: 
                   4195: dosdir.c:
                   4196: 
                   4197:        Allow Frenames of processes and other special kinds of files even
                   4198: 
                   4199:        if they do have the FA_RDONLY bit set.
                   4200: 
                   4201: dosfile.c:
                   4202: 
                   4203:        Allow creation of files with the read-only attribute.
                   4204: 
                   4205: tosfs.c:
                   4206: 
                   4207:        Change the file deletion code so that an attempt to delete an
                   4208: 
                   4209:        open file no longer fails, but rather marks the file to be
                   4210: 
                   4211:        deleted when it is closed.
                   4212: 
                   4213: file.h:
                   4214: 
                   4215:        Add some extra space to the tty struct, for future expansion.
                   4216: 
                   4217: filesys.c,main.c:
                   4218: 
                   4219:        Make sure the fake BIOS disk routines are available before
                   4220: 
                   4221:        any of the pseudo-drives are used, by having them set up
                   4222: 
                   4223:        in init_filesys() instead of init_intr().
                   4224: 
                   4225: tosfs.c:
                   4226: 
                   4227:        Remove some debugging output that isn't needed anymore.
                   4228: 
                   4229: 
                   4230: 
                   4231: PATCHLEVEL19::
                   4232: 
                   4233: Beta release.
                   4234: 
                   4235: 
                   4236: 
                   4237: intr.s,main.c:
                   4238: 
                   4239:        provide some fake BIOS disk routines for the pseudo-drives,
                   4240: 
                   4241:        in hopes of avoiding "drive U: is not responding" types of
                   4242: 
                   4243:        messages that some have reported
                   4244: 
                   4245: pipefs.c:
                   4246: 
                   4247:        half.ttp was failing under mgr, because of a race condition:
                   4248: 
                   4249:        our select() returns "ready" for a pipe if nobody exists to
                   4250: 
                   4251:        write to it (since then a read will return immediately). half
                   4252: 
                   4253:        would make a pipe that would end up being destroyed immediately
                   4254: 
                   4255:        by mgr before it got attached to a process. Solution: pipes that
                   4256: 
                   4257:        have *never* been opened yet for writing get a special marker
                   4258: 
                   4259:        and select doesn't worry about them, only about ones that were
                   4260: 
                   4261:        once written to.
                   4262: 
                   4263: pipefs.c:
                   4264: 
                   4265:        Fixed FIONWRITE to return the correct value.
                   4266: 
                   4267: dosdir.c:
                   4268: 
                   4269:        Refuse to Frename a file with the FA_RDONLY attribute.
                   4270: 
                   4271: biosfs.c:
                   4272: 
                   4273:        Fixed bios_write to return the number of bytes successfully
                   4274: 
                   4275:        written.
                   4276: 
                   4277: bios.c:
                   4278: 
                   4279:        LAST_DEVICE was inaccurate. This could happen again, so I'm simply
                   4280: 
                   4281:        getting rid of it and leaving all errors to the BIOS.
                   4282: 
                   4283: pipefs.c:
                   4284: 
                   4285:        Make sure the FA_RDONLY attribute is sensible (i.e. unidirectional
                   4286: 
                   4287:        pipes that don't have a writer can still be written to).
                   4288: 
                   4289: filesys.c:
                   4290: 
                   4291:        Fixed relpath2cookie so that it doesn't *always* follow symlinks
                   4292: 
                   4293:        (it only should when lastname == follow_links)
                   4294: 
                   4295: dosfile.c:
                   4296: 
                   4297:        If the FA_RDONLY bit is set on the file, even the superuser should
                   4298: 
                   4299:        be denied access for writing.
                   4300: 
                   4301: dosfile.c:
                   4302: 
                   4303:        Requiring write permission for Fdatime is a Bad Idea, since GEMDOS
                   4304: 
                   4305:        doesn't; so now MiNT doesn't either.
                   4306: 
                   4307: tosfs.c, filesys.c:
                   4308: 
                   4309:        Fixed a bug with media changes (Fsfirst would sometimes try to close a
                   4310: 
                   4311:        directory that had already been automatically closed by a media change).
                   4312: 
                   4313: 
                   4314: 
                   4315: PATCHLEVEL18::
                   4316: 
                   4317: 
                   4318: 
                   4319: main.c:
                   4320: 
                   4321:        Fixed the machine type detection code; it needs to run before
                   4322: 
                   4323:        biosfs is initialized, i.e. before init_filesys().
                   4324: 
                   4325: main.c:
                   4326: 
                   4327:        Provide a configuration file so that users can automatically
                   4328: 
                   4329:        setup symbolic links and can change their init program.
                   4330: 
                   4331: biosfs.c:
                   4332: 
                   4333:        Allow rename on bios devices, so people who want terminals called
                   4334: 
                   4335:        "ttyX" instead of "modemX" can do so.
                   4336: 
                   4337: dosdir.c:
                   4338: 
                   4339:        Flink shouldn't need write permission on the destination
                   4340: 
                   4341:        directory, only the source.
                   4342: 
                   4343: dosfile.c:
                   4344: 
                   4345:        Added FSTAT function for Fcntl, to allow a better version of
                   4346: 
                   4347:        fstat() for the library.
                   4348: 
                   4349: dosfile.c:
                   4350: 
                   4351:        Add code to fcntl to automatically convert MiNT 0.8 O_NDELAY
                   4352: 
                   4353:        into MiNT 0.9 O_NDELAY. This is a temporary measure only,
                   4354: 
                   4355:        to let older versions of mgr continue to work for a while.
                   4356: 
                   4357: filesys.c:
                   4358: 
                   4359:        Symbolic links with relative paths were always failing with
                   4360: 
                   4361:        ELOOP. Oops! (Thanks to Stephen Henson for catching this.)
                   4362: 
                   4363: file.h, tosfs.c, dosfile.c:
                   4364: 
                   4365:        Added a new flag, FS_NOXBIT, to control whether or not the
                   4366: 
                   4367:        file system has a sensible notion of execute permission.
                   4368: 
                   4369:        This removes an ugly check for &tos_filesys.
                   4370: 
                   4371: mint.h,util.c,mem.c:
                   4372: 
                   4373:        Added a compile time option, JUNK_MEM, to deliberately fill
                   4374: 
                   4375:        the memory MiNT acquires with garbage; this is for debugging
                   4376: 
                   4377:        (to help track down silly failures to initialize memory) and
                   4378: 
                   4379:        not for production code.
                   4380: 
                   4381: proc.c:
                   4382: 
                   4383:        Fixed a typo in init_proc() that was causing memory not to
                   4384: 
                   4385:        be initialized to 0 correctly. (Thanks are due to Stephen
                   4386: 
                   4387:        Usher for catching this one.)
                   4388: 
                   4389: tosfs.c:
                   4390: 
                   4391:        Added a tos_rewinddir that works.
                   4392: 
                   4393: file.h:
                   4394: 
                   4395:        Added blocks and blksize fields to the XATTR structure, and
                   4396: 
                   4397:        provided a few extra reserved fields for future expansion.
                   4398: 
                   4399:        (Also: re-arranged some fields to match what the gcc library
                   4400: 
                   4401:        already has.)
                   4402: 
                   4403: file.h, main.c:
                   4404: 
                   4405:        Add sleep, wake, and wakeselect to the kernel info structure;
                   4406: 
                   4407:        some device drivers will need these.
                   4408: 
                   4409: biosfs.c:
                   4410: 
                   4411:        Make nodskchng do a Getbpb on the (non-existent) device; the officially
                   4412: 
                   4413:        documented way of forcing a disk change requires this.
                   4414: 
                   4415: file.h,filesys.c,*fs.c:
                   4416: 
                   4417:        Remove the "flag" argument from the dskchng function, and
                   4418: 
                   4419:        have the kernel check Rwabs for E_CHNG; this should save
                   4420: 
                   4421:        a lot of duplication in user file systems, since everyone
                   4422: 
                   4423:        really has to do this anyways.
                   4424: 
                   4425: dosdir.c:
                   4426: 
                   4427:        Make sure that Fsfirst names can be null-terminated.
                   4428: 
                   4429: filesys.c:
                   4430: 
                   4431:        Oops: a misplaced bracket in disk_changed was causing
                   4432: 
                   4433:        write-protected disks to always appear to have changed!
                   4434: 
                   4435: tosfs.c:
                   4436: 
                   4437:        Made it illegal to delete or truncate an open file.
                   4438: 
                   4439: 
                   4440: 
                   4441: PATCHLEVEL17::
                   4442: 
                   4443: 
                   4444: 
                   4445: version.h:
                   4446: 
                   4447:        I think we can call this version an "alpha" one, now. No more
                   4448: 
                   4449:        major features remain to be added (fingers crossed, here).
                   4450: 
                   4451: filesys.c,dosdir.c,*fs.c,file.h:
                   4452: 
                   4453:        Media change detection code; this is now the kernel's
                   4454: 
                   4455:        responsibility. This necessitated an additional function
                   4456: 
                   4457:        for file systems; I hope this is the last one.
                   4458: 
                   4459: main.c,biosfs.c:
                   4460: 
                   4461:        Check what kind of machine we're on, and adjust what devices are
                   4462: 
                   4463:        present accordingly. The rs232 file has been renamed to "modem1".
                   4464: 
                   4465:        WARNING: This will break existing code that uses the name "rs232".
                   4466: 
                   4467: filesys.c:
                   4468: 
                   4469:        Code for loading file systems (finally!)
                   4470: 
                   4471: bios.c,context.s:
                   4472: 
                   4473:        Made Rwabs, Getbpb, and Mediach save registers (since device
                   4474: 
                   4475:        drivers often don't, and loadable file systems will be calling
                   4476: 
                   4477:        these directly).
                   4478: 
                   4479: main.c:
                   4480: 
                   4481:        Implemented the "struct kerinfo" to pass information to loadable
                   4482: 
                   4483:        file systems.
                   4484: 
                   4485: filesys.c:
                   4486: 
                   4487:        Re-wrote path2cookie to provide for symbolic links; a new routine
                   4488: 
                   4489:        (relpath2cookie) helps us out.
                   4490: 
                   4491: unifs.c:
                   4492: 
                   4493:        Code for creating, reading, and deleting symbolic links.
                   4494: 
                   4495: *fs.c, dosfile.c, file.h:
                   4496: 
                   4497:        Changed the way file opens and creates are done; the former
                   4498: 
                   4499:        (*getdev) routine for file systems has been split into
                   4500: 
                   4501:        (*creat) and (*getdev), both of which are quite a bit simpler.
                   4502: 
                   4503:        This whole scheme is clearer, less work for the file system,
                   4504: 
                   4505:        and will support symbolic links much better.
                   4506: 
                   4507: various places:
                   4508: 
                   4509:        Add security checks. This is still pretty sad, but at least it
                   4510: 
                   4511:        can provide one with a modicum of protection against silly
                   4512: 
                   4513:        mistakes.
                   4514: 
                   4515: dosfile.c:
                   4516: 
                   4517:        Require write permission on a file before changing its date via
                   4518: 
                   4519:        Fdatime.
                   4520: 
                   4521: tosfs.c:
                   4522: 
                   4523:        Cleaned up and streamlined a bit, and fixed tos_readlabel.
                   4524: 
                   4525: *fs.c,dosdir.c,file.h:
                   4526: 
                   4527:        Changed the file system "getxattr", "chmode", "chown", and
                   4528: 
                   4529:        "chattr" functions to take a single file cookie instead of a
                   4530: 
                   4531:        (directory, name) pair. This should make most uses of these
                   4532: 
                   4533:        functions (e.g. in name lookups) more efficient. Also,
                   4534: 
                   4535:        changed the readdir() function to return a file cookie to go
                   4536: 
                   4537:        along with the newly read file name.
                   4538: 
                   4539: main.c:
                   4540: 
                   4541:        If "init.prg" isn't found, try starting GEM instead.
                   4542: 
                   4543: unifs.c:
                   4544: 
                   4545:        Re-arranged to allow for symbolic links.
                   4546: 
                   4547: filesys.c:
                   4548: 
                   4549:        Implemented some media change routines.
                   4550: 
                   4551: dosdir.c:
                   4552: 
                   4553:        Added Fchown and Fchmod system calls.
                   4554: 
                   4555: dosdir.c:
                   4556: 
                   4557:        Added security check for Fattrib().
                   4558: 
                   4559: 
                   4560: 
                   4561: PATCHLEVEL16::
                   4562: 
                   4563: 
                   4564: 
                   4565: lots of places:
                   4566: 
                   4567:        Try to make TRACE() and DEBUG() messages more useful for people
                   4568: 
                   4569:        who don't know the internals of the kernel, and who just want to
                   4570: 
                   4571:        debug their own programs.
                   4572: 
                   4573: dosdir.c:
                   4574: 
                   4575:        Added Flink, Fsymlink, Freadlink, and Dcntl system calls.
                   4576: 
                   4577: *fs.c,file.h:
                   4578: 
                   4579:        Added a new mode to Dpathconf() to determine whether the
                   4580: 
                   4581:        file system uses DOS type file naming conventions, ordinary
                   4582: 
                   4583:        Unix type, or _POSIX_NO_TRUNC type.
                   4584: 
                   4585: file.h:
                   4586: 
                   4587:        Add an "fscntl" field to the file system structure.
                   4588: 
                   4589: tosfs.c:
                   4590: 
                   4591:        Fix the mode values returned from getxattr() (regular files
                   4592: 
                   4593:        have type S_IFREG, not S_IFMT).
                   4594: 
                   4595: proc.c:
                   4596: 
                   4597:        Zero the child's srchdta field after fork_proc(); otherwise,
                   4598: 
                   4599:        the accounting for Fsfirst/Fsnext can get messed up. Thanks
                   4600: 
                   4601:        again to S. Henson.
                   4602: 
                   4603: mem.c:
                   4604: 
                   4605:        As Steve Henson pointed out, resetting the effective user and
                   4606: 
                   4607:        group id's in exec_region is probably a Bad Idea.
                   4608: 
                   4609: dosdir.c:
                   4610: 
                   4611:        Change Dopendir/Dclosedir to use umalloc and ufree instead of
                   4612: 
                   4613:        kmalloc and kfree.
                   4614: 
                   4615: 
                   4616: 
                   4617: PATCHLEVEL15::
                   4618: 
                   4619: 
                   4620: 
                   4621: dosdir.c:
                   4622: 
                   4623:        When terminating, clean up after any Fsfirst/Fsnext sequences that
                   4624: 
                   4625:        didn't go to completion.
                   4626: 
                   4627: tosfs.c:
                   4628: 
                   4629:        Streamlined garbage collection code, and also corrected a bug in
                   4630: 
                   4631:        which file indices used in directory searches could be garbage
                   4632: 
                   4633:        collected.
                   4634: 
                   4635: file.h, *fs.c:
                   4636: 
                   4637:        Add symlink and hard link functions.
                   4638: 
                   4639: pipefs.c:
                   4640: 
                   4641:        Make FIONWRITE work again (a line was accidentally deleted).
                   4642: 
                   4643:        Make sure that Fselect() will select any pipes that have been
                   4644: 
                   4645:        closed.
                   4646: 
                   4647: dossig.c:
                   4648: 
                   4649:        Put back the user id check in Pkill.
                   4650: 
                   4651: dos.c, proc.c:
                   4652: 
                   4653:        Make sure that the "euid" and "egid" fields are set with
                   4654: 
                   4655:        the Psetuid and Psetgid calls. Also, make sure the fields
                   4656: 
                   4657:        are reset after an exec.
                   4658: 
                   4659: mem.c:
                   4660: 
                   4661:        Make exec_region shrink the process 'mem' and 'addr' tables
                   4662: 
                   4663:        to the default again if extra regions had been allocated.
                   4664: 
                   4665: dosmem.c:
                   4666: 
                   4667:        Get rid of the magic number "100", and introduce a maximum user
                   4668: 
                   4669:        settable priority MAX_NICE so that the kernel can make sure
                   4670: 
                   4671:        that a process that needs to run (e.g. an aborted vfork) will
                   4672: 
                   4673:        run first by setting its priority to MAX_NICE+1.
                   4674: 
                   4675: proc.c:
                   4676: 
                   4677:        Make sure the initial process memory tables are zeroed.
                   4678: 
                   4679: proc.c:
                   4680: 
                   4681:        Adjust the process scheduling algorithm (yet again!). Also,
                   4682: 
                   4683:        rename "nice_count" to "curpri".
                   4684: 
                   4685: dosdir.c,dos.c:
                   4686: 
                   4687:        Added Dopendir, Dreaddir, Drewinddir, Dclosedir system calls.
                   4688: 
                   4689: *fs.c:
                   4690: 
                   4691:        Made readdir return a file index (inode number) if it's not
                   4692: 
                   4693:        doing a TOS mode search.
                   4694: 
                   4695: biosfs.c:
                   4696: 
                   4697:        PHYSCONS is such an ugly name; CONSOLE makes more sense.
                   4698: 
                   4699: 
                   4700: 
                   4701: PATCHLEVEL14::
                   4702: 
                   4703: 
                   4704: 
                   4705: mem.c:
                   4706: 
                   4707:        Allow the kernel to dynamically allocate memory region
                   4708: 
                   4709:        descriptors if it runs out; also, increase the number that
                   4710: 
                   4711:        it starts with by default.
                   4712: 
                   4713: util.c:
                   4714: 
                   4715:        Made it harmless to call kfree with a NULL argument.
                   4716: 
                   4717: proc.h,mem.c,dosmem.c,proc.c:
                   4718: 
                   4719:        Eliminate the 64 region per process limit, by making the "mem"
                   4720: 
                   4721:        and "addr" arrays dynamically allocated.
                   4722: 
                   4723: proc.c:
                   4724: 
                   4725:        Change the code for selecting which process to run next; if more
                   4726: 
                   4727:        than one process is on the ready queue, we use a per-process
                   4728: 
                   4729:        counter to prevent high priority processes from hogging all the
                   4730: 
                   4731:        time.
                   4732: 
                   4733: dosmem.c:
                   4734: 
                   4735:        Release a process' controlling terminal (by setting it's process
                   4736: 
                   4737:        group back to 0) if the process is a process group leader and
                   4738: 
                   4739:        is exiting.
                   4740: 
                   4741: dosfile.c,tty.c,*fs.c:
                   4742: 
                   4743:        Made do_open set terminals up correctly on open/close, and
                   4744: 
                   4745:        handle assigning process groups to them. Also, made the terminal's
                   4746: 
                   4747:        process group be set automatically on Fforce(-1,...).
                   4748: 
                   4749: main.c,timeout.c:
                   4750: 
                   4751:        Added AKP's code for better resolution of time usage.
                   4752: 
                   4753: DELETED FILES:
                   4754: 
                   4755:        xlate.c, xlate32.s, newdisk.s
                   4756: 
                   4757: everywhere:
                   4758: 
                   4759:        Removed all references to NEED_TRANSLATION. This is getting to be a
                   4760: 
                   4761:        pain to maintain, and nobody seems to actually use it.
                   4762: 
                   4763: *fs.c:
                   4764: 
                   4765:        Fixed the ENAMETOOLONG detection code in readdir (thanks, Steve!).
                   4766: 
                   4767: timeout.c:
                   4768: 
                   4769:        New function, nap, for processes that are in busy loops waiting for
                   4770: 
                   4771:        an event that probably won't happen for a while (e.g. waiting for
                   4772: 
                   4773:        the user to hit a key); use e.g. nap(60) to sleep for 60 milliseconds
                   4774: 
                   4775:        instead of yield().
                   4776: 
                   4777: mem.c:
                   4778: 
                   4779:        create_env() should use the value from the current process' basepage,
                   4780: 
                   4781:        since this may *not* be the same as the environment the process
                   4782: 
                   4783:        was actually started with
                   4784: 
                   4785: dosfile.c:
                   4786: 
                   4787:        Make Fcntl(fh, arg, F_SETFL) leave the file sharing mode alone as well
                   4788: 
                   4789:        as the read/write mode.
                   4790: 
                   4791: unifs.c:
                   4792: 
                   4793:        Change the name "fifo" to "pipe"; change "drva", "drvb" etc. into just
                   4794: 
                   4795:        "a", "b" etc.
                   4796: 
                   4797: dosmem.c:
                   4798: 
                   4799:        Make it possible to provide a name with Pexec mode 104. Provide a new
                   4800: 
                   4801:        mode 106 that starts a process in the background and automatically
                   4802: 
                   4803:        detaches the process TPA from the parent's memory.
                   4804: 
                   4805: 
                   4806: 
                   4807: PATCHLEVEL13::
                   4808: 
                   4809: 
                   4810: 
                   4811: biosfs.c:
                   4812: 
                   4813:        Made sure that tty_getchar() won't see (long) negative values
                   4814: 
                   4815:        returned from a successful read, by clearing the high bit
                   4816: 
                   4817:        of read values.
                   4818: 
                   4819: *fs.c,atarierr.h:
                   4820: 
                   4821:        Made file systems responsible for dealing with "." and "..";
                   4822: 
                   4823:        introduced a new (fake) EMOUNT error to indicate when ".." is
                   4824: 
                   4825:        found in a root directory (this is for the benefit of the
                   4826: 
                   4827:        unified file system code)
                   4828: 
                   4829: dosdir.c,filesys.c:
                   4830: 
                   4831:        Changes to allow for the unified file system.
                   4832: 
                   4833: unifs.c, makefile:
                   4834: 
                   4835:        New file, for a "unified" file system.
                   4836: 
                   4837: filesys.c, *fs.c:
                   4838: 
                   4839:        Renamed denyaccess() to denyshare().
                   4840: 
                   4841: dosdir.c:
                   4842: 
                   4843:        Changed getname() to work from the root down instead of from
                   4844: 
                   4845:        the directory up; this should work better for mounting and
                   4846: 
                   4847:        symbolic links.
                   4848: 
                   4849: dosdir.c:
                   4850: 
                   4851:        Moved the check for a drive specifier (A:\FOO) in Dsetpath to
                   4852: 
                   4853:        where it should have been, namely before any use of the drive.
                   4854: 
                   4855: biosfs.c,pipefs.c:
                   4856: 
                   4857:        In opendir, make sure the directory structure is properly
                   4858: 
                   4859:        initialized.
                   4860: 
                   4861: dos.c:
                   4862: 
                   4863:        Changed snice and srenice to pnice and prenice; also modified the
                   4864: 
                   4865:        return values to be 16 bit (for the normal case), and 32 bit
                   4866: 
                   4867:        negative for errors, so that low priority processes can be
                   4868: 
                   4869:        distinguished from errors.
                   4870: 
                   4871: debug*.c:
                   4872: 
                   4873:        The Bconstat() check for the printer should be applied to device
                   4874: 
                   4875:        0, not 1.
                   4876: 
                   4877: 
                   4878: 
                   4879: PATCHLEVEL12::
                   4880: 
                   4881: 
                   4882: 
                   4883: dosdir.c,filesys.c:
                   4884: 
                   4885:        Re-wrote Fsfirst/next to use opendir/readdir/closedir. Re-wrote
                   4886: 
                   4887:        the pat_match function to work correctly (at least, according
                   4888: 
                   4889:        to the TOS rules :-).
                   4890: 
                   4891: *fs.c, file.h:
                   4892: 
                   4893:        Added opendir/readdir/closedir calls to file systems to allow
                   4894: 
                   4895:        more general file systems; also changed getattr into getxattr
                   4896: 
                   4897:        (again, to allow file systems with extra goodies), setattr into
                   4898: 
                   4899:        chattr, and added chown and chmod calls. Deleted sfirst/snext
                   4900: 
                   4901:        file system entry points, and the Xsfirst/Xsnext system calls.
                   4902: 
                   4903: *fs.c,file.h,dosfile.c,dosdir.c:
                   4904: 
                   4905:        Changed file systems to have separate calls for reading/writing
                   4906: 
                   4907:        volume labels. Added checks to Fattrib and Fcreate to avoid creating
                   4908: 
                   4909:        files with bad attributes (e.g. FA_LABEL or FA_DIR and anything
                   4910: 
                   4911:        else).
                   4912: 
                   4913: main.c:
                   4914: 
                   4915:        Change the definition of tosvers so that TOS 1.0 corresponds
                   4916: 
                   4917:        to tosvers == 0x100, not tosvers == 0. Also, clean up the
                   4918: 
                   4919:        code for testing TOS versions.
                   4920: 
                   4921:        WARNING: This may break RAM TOS versions. I doubt it matters.
                   4922: 
                   4923: bios.c,main.c:
                   4924: 
                   4925:        Always set the kbshft variable, so that kbshift is more
                   4926: 
                   4927:        efficient.
                   4928: 
                   4929: dos.c:
                   4930: 
                   4931:        Eliminated the old code that allowed Super(-1L) to work (GEMDOS
                   4932: 
                   4933:        doesn't support this, so why should MiNT?)
                   4934: 
                   4935: dos.c:
                   4936: 
                   4937:        Added GEMDOS date and time routines, and made sure that
                   4938: 
                   4939:        datestamp and timestamp are initialized properly when
                   4940: 
                   4941:        MiNT is started.
                   4942: 
                   4943: mem.c:
                   4944: 
                   4945:        Increased the size of the buffer used for reading relocation
                   4946: 
                   4947:        information in load_region.
                   4948: 
                   4949: *fs.c, dosfile.c:
                   4950: 
                   4951:        Changed the filesystem getdev call to return a file cookie
                   4952: 
                   4953:        (this saves a call to lookup on every open).
                   4954: 
                   4955: *fs.c, filesys.c:
                   4956: 
                   4957:        Eliminated static variables, changed all routines that used to
                   4958: 
                   4959:        return pointers to cookies to take an extra argument (a pointer
                   4960: 
                   4961:        to the place to put the result).
                   4962: 
                   4963: tosfs.c:
                   4964: 
                   4965:        Turn O_COMPAT sharing mode into O_DENYNONE (after making other
                   4966: 
                   4967:        appropriate changes to the access modes).
                   4968: 
                   4969: debugold.c:
                   4970: 
                   4971:        Updated to reflect changes in debug.c.
                   4972: 
                   4973: debug.c:
                   4974: 
                   4975:        Added calls to va_end where appropriate.
                   4976: 
                   4977: debug.c:
                   4978: 
                   4979:        Before, hitting a key paused debugging output; now, debug_ws
                   4980: 
                   4981:        checks the device that output is going to, so that e.g. if it's
                   4982: 
                   4983:        going to the MIDI port, the output is paused when a character
                   4984: 
                   4985:        arrives on the MIDI port.
                   4986: 
                   4987: mem.c:
                   4988: 
                   4989:        Made exec_region use O_DENYNONE sharing mode instead of O_DENYW
                   4990: 
                   4991: 
                   4992: 
                   4993: PATCHLEVEL11::
                   4994: 
                   4995: 
                   4996: 
                   4997: dosfile.c:
                   4998: 
                   4999:        Forbid closing file handles < 0; this will prevent accidental
                   5000: 
                   5001:        destruction of the BIOS handles.
                   5002: 
                   5003: dosfile.c:
                   5004: 
                   5005:        Change Fbiosdev to be MIDI specific, rename it to Fmidipipe, and
                   5006: 
                   5007:        move it to dosfile.c. The semantics are a bit different, too;
                   5008: 
                   5009:        see the comments in dosfile.c.
                   5010: 
                   5011: bios.c:
                   5012: 
                   5013:        Really fix the MIDI output routines, this time. (sigh)
                   5014: 
                   5015: 
                   5016: 
                   5017: PATCHLEVEL10::
                   5018: 
                   5019: 
                   5020: 
                   5021: signal.c:
                   5022: 
                   5023:        Fixed a typo in the message printed when bombs occur. Also,
                   5024: 
                   5025:        removed the copying of data from the supervisor stack to the
                   5026: 
                   5027:        BIOS area -- this was causing very strange problems, and it's
                   5028: 
                   5029:        not clear that the info would be useful under MiNT anyway.
                   5030: 
                   5031:        Finally, all this is only supposed to happen for certain
                   5032: 
                   5033:        signals, not for any random killings.
                   5034: 
                   5035: 
                   5036: 
                   5037: PATCHLEVEL9::
                   5038: 
                   5039: 
                   5040: 
                   5041: file.h, *fs.c:
                   5042: 
                   5043:        Changed the definition of the DTA buffer to free up space for
                   5044: 
                   5045:        user/group id fields and an extended attributes field. Made
                   5046: 
                   5047:        sfirst/snext use the 'aux' field of the directory cookie
                   5048: 
                   5049:        as an index.
                   5050: 
                   5051: dos.c:
                   5052: 
                   5053:        Fixed Talarm() to return the number of seconds left before an
                   5054: 
                   5055:        alarm, not the number of milliseconds.
                   5056: 
                   5057: dosdir.c:
                   5058: 
                   5059:        New system calls, Xsfirst/Xsnext, for accessing file systems
                   5060: 
                   5061:        with long (>12 character) names.
                   5062: 
                   5063: signal.c:
                   5064: 
                   5065:        Fill in the BIOS post-mortem dump error correctly after
                   5066: 
                   5067:        bus errors, address errors, etc. Also, made the "bomb" replacement
                   5068: 
                   5069:        routine give the process basepage address and program counter,
                   5070: 
                   5071:        as suggested by AKP.
                   5072: 
                   5073: tosfs.c:
                   5074: 
                   5075:        Fixed the tos_lookup bug that was causing bus errors during file
                   5076: 
                   5077:        opens.
                   5078: 
                   5079: 
                   5080: 
                   5081: PATCHLEVEL8::
                   5082: 
                   5083: 
                   5084: 
                   5085: tosfs.c:
                   5086: 
                   5087:        Made opens with O_COMPAT sharing mode always open for both reading
                   5088: 
                   5089:        and writing; this is so broken TOS programs that write to read-only
                   5090: 
                   5091:        handles will continue to work.
                   5092: 
                   5093: file.h, tty.c:
                   5094: 
                   5095:        Added TIOCGWINSZ/TIOCSWINSZ and the appropriate window size
                   5096: 
                   5097:        fields to the tty structure to support them.
                   5098: 
                   5099: dossig.c:
                   5100: 
                   5101:        Remove user id checks (for now). Make it impossible to catch
                   5102: 
                   5103:        SIGSTOP.
                   5104: 
                   5105: bios.c:
                   5106: 
                   5107:        Fix so Bconout returns a value (it really should, at least for
                   5108: 
                   5109:        the printer).
                   5110: 
                   5111: mem.c:
                   5112: 
                   5113:        Don't context switch and retry alloc_region; file systems and some
                   5114: 
                   5115:        parts of the kernel aren't expecting the context switch, and besides
                   5116: 
                   5117:        the previous change makes this tactic less likely to be helpful.
                   5118: 
                   5119: mem.c:
                   5120: 
                   5121:        Don't allocate *all* of the memory to the basepage, leave some for
                   5122: 
                   5123:        the kernel and other programs.
                   5124: 
                   5125: pipefs.c:
                   5126: 
                   5127:        Add a check for broken pipes when a program is trying to write
                   5128: 
                   5129:        atomically.
                   5130: 
                   5131: dosmem.c:
                   5132: 
                   5133:        Block job control signals during a vfork instead of ignoring
                   5134: 
                   5135:        them; this will result in the "right" thing happening after
                   5136: 
                   5137:        the exec (since the blocked signals will then be unblocked).
                   5138: 
                   5139: tosfs.c:
                   5140: 
                   5141:        Eeek! Fixed a very serious bug in the garbage collection
                   5142: 
                   5143:        routines ("i" was used where "j" should have been in a loop:
                   5144: 
                   5145:        result: things could be garbage collected that shouldn't
                   5146: 
                   5147:        have been!)
                   5148: 
                   5149: procfs.c:
                   5150: 
                   5151:        changed the return value from "dfree" to more accurately indicate
                   5152: 
                   5153:        the free memory in the system, and to also provide information
                   5154: 
                   5155:        about the smallest unit of allocable memory (currently a longword)
                   5156: 
                   5157: *fs.c,dosfile.c,dosdir.c,filesys.c:
                   5158: 
                   5159:        instead of passing fcookies to file systems, pass pointers to
                   5160: 
                   5161:        them; this should slightly improve efficiency, and greatly
                   5162: 
                   5163:        improve portability (otherwise, compilers used to make
                   5164: 
                   5165:        installable file systems would have to have the same structure
                   5166: 
                   5167:        passing/return conventions as the one that compiled the kernel)
                   5168: 
                   5169: dos.c:
                   5170: 
                   5171:        new system call, Srenice(), to change priority of a different
                   5172: 
                   5173:        process
                   5174: 
                   5175: dos.c:
                   5176: 
                   5177:        change Fbiosdev() system call to take a pid argument
                   5178: 
                   5179: proc.h, dosfile.c:
                   5180: 
                   5181:        add per-file descriptor flags for things like "close on exec"
                   5182: 
                   5183: file.h, mem.c, *fs.c:
                   5184: 
                   5185:        new file open mode, O_EXEC, for the kernel to use in Pexec
                   5186: 
                   5187: rendez.c, dos.c:
                   5188: 
                   5189:        new file from AKP to implement a simple and fast message based
                   5190: 
                   5191:        IPC; the new system call is Pmsg. Also note that the syscall number
                   5192: 
                   5193:        of Pmsg is 0x125, which used to be used by Fbiosdev; Fbiosdev has
                   5194: 
                   5195:        been moved to 0x126.
                   5196: 
                   5197: filesys.c:
                   5198: 
                   5199:        applied Steve Henson's patches to improve path2cookie's handling of
                   5200: 
                   5201:        repeated slashes
                   5202: 
                   5203: proc.h:
                   5204: 
                   5205:        MAX_OPEN should be 32, not 20!
                   5206: 
                   5207: mem.c:
                   5208: 
                   5209:        Ignore "close on exec" flag for the standard handles (for some
                   5210: 
                   5211:        reason, bash manages to set these for 0,1,2; this is probably a bug
                   5212: 
                   5213:        in the port of bash, but on the other hand it's unlikely that
                   5214: 
                   5215:        anyone would really want to close the standard handles when doing
                   5216: 
                   5217:        an exec, anyway)
                   5218: 
                   5219: tty.c:
                   5220: 
                   5221:        Fixed RAW mode reads on terminals so that they're no longer
                   5222: 
                   5223:        terminated by '\r' or '\n' (and so that pty slaves aren't forced
                   5224: 
                   5225:        to read just 1 character at a time). Thanks to AKP for catching
                   5226: 
                   5227:        this.
                   5228: 
                   5229: 
                   5230: 
                   5231: PATCHLEVEL7::
                   5232: 
                   5233: 
                   5234: 
                   5235: *fs.c:
                   5236: 
                   5237:        Cleaned up the Dpathconf() return values to better reflect
                   5238: 
                   5239:        reality, and made the code a little easier to understand.
                   5240: 
                   5241: bios.c:
                   5242: 
                   5243:        Adjust bcostat() parameters so that V:\MIDI and V:\KBD call
                   5244: 
                   5245:        the right (wrong) device (BIOS devices 3 and 4 are mixed
                   5246: 
                   5247:        up for Bcostat).
                   5248: 
                   5249: dosmem.c:
                   5250: 
                   5251:        Made sure that Malloc(0L) always returns a NULL pointer.
                   5252: 
                   5253: dosfile.c:
                   5254: 
                   5255:        Made Fclose() of handles 0, 1, 2, and 3 restore the default
                   5256: 
                   5257:        mappings. (Apparently TOS _does_ do this, after all.)
                   5258: 
                   5259: bios.c:
                   5260: 
                   5261:        AHDI 3.1 added a new parameter to Rwabs; we now pass that
                   5262: 
                   5263:        along too.
                   5264: 
                   5265: timeout.c:
                   5266: 
                   5267:        Make canceltimeout() free the memory used by the time out
                   5268: 
                   5269:        descriptor. (another Fselect bug)
                   5270: 
                   5271: signal.h:
                   5272: 
                   5273:        Removed ABORT and ALARM from list of signals that are reported
                   5274: 
                   5275:        by the kernel.
                   5276: 
                   5277: proc.c:
                   5278: 
                   5279:        Moved checkalarms() to do_wakeup_things() so that short time outs
                   5280: 
                   5281:        will be properly recognized; this fixes a nasty bug in Fselect.
                   5282: 
                   5283: 
                   5284: 
                   5285: PATCHLEVEL6::
                   5286: 
                   5287: 
                   5288: 
                   5289: pipefs.c:
                   5290: 
                   5291:        Make writes of 1024 or fewer bytes atomic. Also, increase pipe
                   5292: 
                   5293:        buffer size to 4096.
                   5294: 
                   5295: tosfs.c:
                   5296: 
                   5297:        Make O_EXCL and O_TRUNC bits useful.
                   5298: 
                   5299: tosfs.c,pipefs.c,filesys.c:
                   5300: 
                   5301:        Fully implement file sharing modes for tosfs and pipefs. A new
                   5302: 
                   5303:        routine (denyaccess) is provided in filesys.c for checking
                   5304: 
                   5305:        file open modes and determining conflicts (if any).
                   5306: 
                   5307: pipefs.c:
                   5308: 
                   5309:        If a process writes on a broken pipe while ignoring SIGPIPE,
                   5310: 
                   5311:        the write now returns -1. (Thanks, Stephen)
                   5312: 
                   5313: debug.c, bios.c:
                   5314: 
                   5315:        Applied bammi's patches to PATCHLEVEL 5 to fix some typos.
                   5316: 
                   5317: 
                   5318: 
                   5319: PATCHLEVEL5::
                   5320: 
                   5321: 
                   5322: 
                   5323: debug.c, bios.c:
                   5324: 
                   5325:        Applied AKP's debugging output patches, to allow TRACE and
                   5326: 
                   5327:        DEBUG output to go to serial ports as well as the printer.
                   5328: 
                   5329: 
                   5330: 
                   5331: PATCHLEVEL4::
                   5332: 
                   5333: 
                   5334: 
                   5335: dos.c:
                   5336: 
                   5337:        NEW SYSTEM CALL: Fbiosdev() to control redirection of BIOS
                   5338: 
                   5339:        devices.
                   5340: 
                   5341: bios.c, proc.h:
                   5342: 
                   5343:        Added binput and boutput arrays to allow for per-process redirection
                   5344: 
                   5345:        of BIOS device input and output to GEMDOS file handles.
                   5346: 
                   5347: biosfs.c:
                   5348: 
                   5349:        Changed "mdi" to "midi".
                   5350: 
                   5351:        WARNING: this change could (I suppose) break existing code.
                   5352: 
                   5353: util.c:
                   5354: 
                   5355:        Added a umalloc() function to allocate memory in user space,
                   5356: 
                   5357:        and modified the various sfirst routines to use this to
                   5358: 
                   5359:        allocate space for patterns instead of kmalloc.
                   5360: 
                   5361: dosdir.c,file.h:
                   5362: 
                   5363:        Added an FS_CASESENSITIVE flag to control conversion of file
                   5364: 
                   5365:        names to upper case for TOS domain processes.
                   5366: 
                   5367: dosdir.c, *fs.c:
                   5368: 
                   5369:        Made sfirst/snext functions take an extra argument, the length
                   5370: 
                   5371:        of the file name field in the DTA buffer (so that we can provide
                   5372: 
                   5373:        Xsfirst/Xsnext functions that can work with longer names)
                   5374: 
                   5375: mem.c:
                   5376: 
                   5377:        Fixed exec_region so that the close-on-exec flag works.
                   5378: 
                   5379: filesys.c:
                   5380: 
                   5381:        Made path2cookie take the name of the place to store the last
                   5382: 
                   5383:        component of the path name as an argument (instead of always
                   5384: 
                   5385:        storing it in the global variable temp1).
                   5386: 
                   5387: biosfs.c:
                   5388: 
                   5389:        Added code for O_NDELAY on bios devices.
                   5390: 
                   5391: tosfs.c:
                   5392: 
                   5393:        Cleaned up garbage collection a bit -- I hope this fixes the
                   5394: 
                   5395:        problems with running out of indices.
                   5396: 
                   5397: filesys.c:
                   5398: 
                   5399:        Returned the special parsing code for CON:, AUX:, etc.
                   5400: 
                   5401: file.h:
                   5402: 
                   5403:        OOPS! The flock structure was missing an element (l_whence). It
                   5404: 
                   5405:        was added.
                   5406: 
                   5407:        WARNING: This change may break existing code.
                   5408: 
                   5409: util.c:
                   5410: 
                   5411:        Made kmalloc take a long parameter, just in case installable
                   5412: 
                   5413:        file systems need lots of memory.
                   5414: 
                   5415: file.h, atarierr.h, pipefs.c:
                   5416: 
                   5417:        Made file modes compatible with _FLK specification. Also
                   5418: 
                   5419:        added the ELOCKED and ENSLOCK errors to atarierr.h, and made
                   5420: 
                   5421:        pipefs.c use ELOCKED instead of EACCDN.
                   5422: 
                   5423:        WARNING: this *will* break existing programs. In particular, mgr
                   5424: 
                   5425:        no longer works :-( because O_NDELAY has changed. (this was
                   5426: 
                   5427:        temporarily patched)
                   5428: 
                   5429: dos.c,dosfile.c:
                   5430: 
                   5431:        Added Flock() system call.
                   5432: 
                   5433: mem.c:
                   5434: 
                   5435:        Made the initial user stack pointer low enough so that syscall.s
                   5436: 
                   5437:        won't run into the end of memory if the user makes a system call
                   5438: 
                   5439:        right away and doesn't push many parameters (the code in syscall
                   5440: 
                   5441:        always tries to copy a large chunk of the caller's stack).
                   5442: 
                   5443: dosmem.c:
                   5444: 
                   5445:        Made vfork'd processes ignore job control signals (thanks to
                   5446: 
                   5447:        Stephen for pointing out how some shells rely on BSD's similar
                   5448: 
                   5449:        behaviour).
                   5450: 
                   5451: 
                   5452: 
                   5453: PATCHLEVEL3::
                   5454: 
                   5455: 
                   5456: 
                   5457: dosfile.c, file.h, *fs.c, bios.c:
                   5458: 
                   5459:        Changed f_select to use the new timeout mechanism, and provided
                   5460: 
                   5461:        routines in device drivers to wake up selecting processes.
                   5462: 
                   5463: proc.h:
                   5464: 
                   5465:        New queue, SELECT_Q, for processes doing "select", to match above
                   5466: 
                   5467:        changes
                   5468: 
                   5469: dos.c:
                   5470: 
                   5471:        Changed t_alarm to use the new timeout mechanism.
                   5472: 
                   5473: timeout.c,proc.h:
                   5474: 
                   5475:        Added a new "timeout" mechanism, so that processes can specify
                   5476: 
                   5477:        an action to be taken when a counter expires.
                   5478: 
                   5479: various places:
                   5480: 
                   5481:        Cleaned up TRACE and DEBUG output
                   5482: 
                   5483: proc.c:
                   5484: 
                   5485:        Set current directory based on the TOS current directory
                   5486: 
                   5487:        when MiNT is starting up.
                   5488: 
                   5489: debug.c:
                   5490: 
                   5491:        Added AKP's "trace" mode patch
                   5492: 
                   5493: filesys.c:
                   5494: 
                   5495:        Replaced strcmp() for . and .. with direct comparisons, again
                   5496: 
                   5497:        per AKP.
                   5498: 
                   5499: tosfs.c:
                   5500: 
                   5501:        Improved search performance a bit (indicies are now allocated
                   5502: 
                   5503:        at the beginning of the list, instead of at the end)
                   5504: 
                   5505: main.c, version.h:
                   5506: 
                   5507:        Introduced PATCHLEVEL for alpha and beta test versions  
                   5508: 
                   5509: util.c:
                   5510: 
                   5511:        Made kmalloc() try the kernel memory region first for small
                   5512: 
                   5513:        regions, to cut down fragmentation of the user's memory space
                   5514: 
                   5515: proc.h:
                   5516: 
                   5517:        Made the system stacks bigger, to compensate for the bigger
                   5518: 
                   5519:        contexts now that there's FPU support
                   5520: 
                   5521: dosmem.c:
                   5522: 
                   5523:        Fixed bug with Pexec mode 6 (thanks again, AKP)
                   5524: 
                   5525: biosfs.c:
                   5526: 
                   5527:        Changed FD0 to STDIN, FD1 to STDOUT, etc.
                   5528: 
                   5529:        WARNING: this change could break existing code
                   5530: 
                   5531: filesys.c:
                   5532: 
                   5533:        '/' is no longer a directory separator for MiNT domain processes
                   5534: 
                   5535:        (few were using it, and it simplifies things to be able to
                   5536: 
                   5537:        assume '\' is the only such separator).
                   5538: 
                   5539:        WARNING: this change could break existing code
                   5540: 
                   5541: all over the place:
                   5542: 
                   5543:        Changed the way directories/files are stored. We now have
                   5544: 
                   5545:        "file cookies" for directories, instead of strings. We
                   5546: 
                   5547:        also now have two directories per drive per process
                   5548: 
                   5549:        (a root and current).
                   5550: 
                   5551: minixfs.c:
                   5552: 
                   5553:        Removed from the main compile, and MINIX_FS symbol was also
                   5554: 
                   5555:        removed -- this will be a loadable file system someday
                   5556: 
                   5557:        (soon, I hope).
                   5558: 
                   5559: various places:
                   5560: 
                   5561:        Added Alex Kiernan's patches to support compilation under
                   5562: 
                   5563:        Lattice C v5
                   5564: 
                   5565: proc.h, context.s:
                   5566: 
                   5567:        Added Alex Kiernan's FPU co-processor patches. WARNING: this
                   5568: 
                   5569:        changes the layout of the proc structure in memory, and so
                   5570: 
                   5571:        breaks "ps" and similar programs.
                   5572: 
                   5573: proc.c:
                   5574: 
                   5575:        Changed sleep() to take the wait condition as an argument; this
                   5576: 
                   5577:        means that fewer things need to know the internals of the
                   5578: 
                   5579:        PROC structure
                   5580: 
                   5581: various places:
                   5582: 
                   5583:        Added AKP's T_TOSTOP flag changes
                   5584: 
                   5585: minixfs.c:
                   5586: 
                   5587:        Changed the 8K buffer in do_change to a static variable; our
                   5588: 
                   5589:        stacks aren't *that* big!
                   5590: 
                   5591: intr.s:
                   5592: 
                   5593:        Fixed a typo that was causing serious problems with the bus
                   5594: 
                   5595:        error and other exception codes on the TT (thanks for
                   5596: 
                   5597:        catching this, Allan).
                   5598: 
                   5599: dosmem.c,signal.c:
                   5600: 
                   5601:        Corrected the GEMDOS termination vector code (the system stack
                   5602: 
                   5603:        was being corrupted if the user's code returned). Thanks to
                   5604: 
                   5605:        Julian Reschke for catching this error.
                   5606: 
                   5607: ===========================================================================
                   5608: 
                   5609: version 0.8
                   5610: 
                   5611: 
                   5612: 
                   5613: biosfs.c, pipefs.c:
                   5614: 
                   5615:        fix ^C and ^Y to send the signals to the whole process group,
                   5616: 
                   5617:        and also to make sure processes don't read these keys if
                   5618: 
                   5619:        they're turned into signals
                   5620: 
                   5621: intr.s,dossig.c:
                   5622: 
                   5623:        fix exception handlers to be more careful about the distinction
                   5624: 
                   5625:        between being in or out of the kernel
                   5626: 
                   5627: intr.s, syscall.s, main.c:
                   5628: 
                   5629:        make sure interrupts are off before changing any vectors
                   5630: 
                   5631: bios.c:
                   5632: 
                   5633:        fixed the annoying problems with CTRL-ALT-Fx sometimes leaving
                   5634: 
                   5635:        keys in the buffer
                   5636: 
                   5637: signal.c:
                   5638: 
                   5639:        forced p_sigreturn() with no signal pending to unwind the
                   5640: 
                   5641:        *whole* signal stack, in case there were multiple signals
                   5642: 
                   5643:        pending at the time the user did a longjmp() (or whatever
                   5644: 
                   5645:        prompted the Psigreturn())
                   5646: 
                   5647: dosmem.c:
                   5648: 
                   5649:        p_wait3 now supports the WUNTRACED bit; if this isn't set,
                   5650: 
                   5651:        processes stopped due to job control are *not* returned
                   5652: 
                   5653: dosmem.c:
                   5654: 
                   5655:        removed dLibs kludge -- some programs rely on p_parent being
                   5656: 
                   5657:        non-zero to tell them that they're not accessories
                   5658: 
                   5659: various places:
                   5660: 
                   5661:        cleaned up job control stuff to be more Unix like
                   5662: 
                   5663: mem.c,util.c:
                   5664: 
                   5665:        added a new memory map for the kernel -- this should ease
                   5666: 
                   5667:        the problems with programs grabbing all of available memory
                   5668: 
                   5669: mem.c,dosmem.c:
                   5670: 
                   5671:        incorporated Allan's bugfixes; alternative RAM should work now
                   5672: 
                   5673: signal.c, main.c, intr.s:
                   5674: 
                   5675:        integrated signals with normal exceptions, so that e.g.
                   5676: 
                   5677:        a bus error raises SIGBUS. This improves the survivability
                   5678: 
                   5679:        of the kernel, so that a bus error resulting from a bad
                   5680: 
                   5681:        system call parameter won't kill MiNT, just the offending
                   5682: 
                   5683:        process.
                   5684: 
                   5685: proc.c:
                   5686: 
                   5687:        kludge to let low priority processes run every so often, even
                   5688: 
                   5689:        in the presence of a high priority process that is ready to run
                   5690: 
                   5691: atarierr.h:
                   5692: 
                   5693:        ENMFIL is -49, not -47 -- so much for Abacus' docs :-)
                   5694: 
                   5695: procfs.c:
                   5696: 
                   5697:        changes to allow read/write from process space
                   5698: 
                   5699: minixfs.[ch]:
                   5700: 
                   5701:        changed lots of function parameter types to avoid promotion and
                   5702: 
                   5703:        prototype problems with 32 bit code
                   5704: 
                   5705: bios.c:
                   5706: 
                   5707:        changed IOREC to IOREC_T to avoid name conflicts with some osbind.h
                   5708: 
                   5709: biosfs.c:
                   5710: 
                   5711:        made mouse driver change the line A mouse position variables, so MGR
                   5712: 
                   5713:        will work with bigscrn and similar large screen emulators
                   5714: 
                   5715: minixfs.c:
                   5716: 
                   5717:        new version from Stephen, now supports floppies and other removable
                   5718: 
                   5719:        media
                   5720: 
                   5721: mem.c, dosmem.c, dos.c:
                   5722: 
                   5723:        added code to support new TT TOS calls Mxalloc and Maddalt, plus
                   5724: 
                   5725:        program flags for loading/mallocing in alternate memory
                   5726: 
                   5727: bios.c,biosfs.c,dosfile.c:
                   5728: 
                   5729:        changed so that bios handles 0 and 1 can be redirected just like
                   5730: 
                   5731:        handle 2 (via the new file handles -3 and -2 respectively; AUX:
                   5732: 
                   5733:        and PRN: now refer to these files, and RS232 and CENTR to the
                   5734: 
                   5735:        physical devices)
                   5736: 
                   5737: dosdir.c:
                   5738: 
                   5739:        Dsetdrv() fixed to return an error indication when one happens
                   5740: 
                   5741: dos.c:
                   5742: 
                   5743:        fixed Super() bug (thanks Stephen)
                   5744: 
                   5745: minixfs.c:
                   5746: 
                   5747:        incorporated changes to handle 1K sector sizes
                   5748: 
                   5749: 
                   5750: 
                   5751: =============================================================================
                   5752: 
                   5753: version 0.7
                   5754: 
                   5755: 
                   5756: 
                   5757: minixfs.c:
                   5758: 
                   5759:        new file, courtesy of Stephen N. Henson ([email protected])
                   5760: 
                   5761:        this is still "under construction"; see minixfs.doc for more details
                   5762: 
                   5763: bios.c:
                   5764: 
                   5765:        CTRL-ALT-UNDO now raises SIGQUIT, for the benefit of people with
                   5766: 
                   5767:        foreign ROMs (some have trouble with ^\)
                   5768: 
                   5769: filesys.c:
                   5770: 
                   5771:        changed pathname resolution code so that multiple slashes in a file
                   5772: 
                   5773:        name have the same effect as single slashes. POSIX mandates this,
                   5774: 
                   5775:        and some Unix programs expect it, too
                   5776: 
                   5777: dosmem.c:
                   5778: 
                   5779:        changed do_vfork() code so that the text segment of processes is
                   5780: 
                   5781:        *not* saved in a fork() if the process has separate text, data, and
                   5782: 
                   5783:        bss segments; this saves a fair bit of memory
                   5784: 
                   5785: proc.c:
                   5786: 
                   5787:        changed the process initialization code to better deal with job
                   5788: 
                   5789:        control; also changed handle 2 to be AUX: (as under TOS) rather
                   5790: 
                   5791:        than PRN:
                   5792: 
                   5793: bios.c:
                   5794: 
                   5795:        added CTRL-ALT-F5 (show memory usage) and CTRL-ALT-F6
                   5796: 
                   5797:        (show processes)
                   5798: 
                   5799: filesys.c:
                   5800: 
                   5801:        make explicit the fact the individual file names are limited to
                   5802: 
                   5803:        14 characters
                   5804: 
                   5805: everywhere:
                   5806: 
                   5807:        change FILENAME_MAX to PATH_MAX
                   5808: 
                   5809: mem.c:
                   5810: 
                   5811:        fixed up comments and debugging/trace info for load_region
                   5812: 
                   5813: dossig.c:
                   5814: 
                   5815:        NEW SYSTEM CALL: Psigpending() returns the set of signals that
                   5816: 
                   5817:        have been sent to the process, but not yet delivered.
                   5818: 
                   5819: dos.c, dosdir.c:
                   5820: 
                   5821:        NEW SYSTEM CALLS:
                   5822: 
                   5823:        Sysconf(n) returns information about the global limits of the
                   5824: 
                   5825:        currently running version of MiNT
                   5826: 
                   5827:        Dpathconf(name, n) returns information about the file system that
                   5828: 
                   5829:        the file "name" is located on
                   5830: 
                   5831: bios.c:
                   5832: 
                   5833:        allow CTRL-ALT-C, CTRL-ALT-\, and CTRL-ALT-Z to force a SIGINT,
                   5834: 
                   5835:        SIGQUIT, or SIGTSTP, respectively, even if the terminal is in raw
                   5836: 
                   5837:        mode
                   5838: 
                   5839: various places:
                   5840: 
                   5841:        call zero() instead of bzero()
                   5842: 
                   5843: context.s,intr.s:
                   5844: 
                   5845:        changes to make MiNT TT compatible. Thanks to Allan Pratt for this!
                   5846: 
                   5847: biosfs.c, tosfs.c, pipefs.c, procfs.c:
                   5848: 
                   5849:        fsfirst/fsnext return all upper case in TOS domain now, but
                   5850: 
                   5851:        lower case (or mixed) in MiNT domain; this is to try to wean
                   5852: 
                   5853:        programmers off of the habit of assuming everything is upper case
                   5854: 
                   5855:        (and converting accordingly)
                   5856: 
                   5857: biosfs.c:
                   5858: 
                   5859:        made mouse compatible with TOS ALT-cursor keys (the Y direction was
                   5860: 
                   5861:        wrong before)
                   5862: 
                   5863: intr.s:
                   5864: 
                   5865:        IPL 7 before reboot (thanks, Allan)
                   5866: 
                   5867: version.h, main.c:
                   5868: 
                   5869:        made version numbering a bit easier (big deal)
                   5870: 
                   5871: main.c:
                   5872: 
                   5873:        AARGH! The cookie jar stuff was plain wrong (the last cookie should
                   5874: 
                   5875:        have the total number of slots, not just the ones that are free).
                   5876: 
                   5877: main.c:
                   5878: 
                   5879:        pass current environment along to init.prg, instead of forcing an
                   5880: 
                   5881:        empty environment
                   5882: 
                   5883: signal.c:
                   5884: 
                   5885:        corrected killpg() bug (wasn't checking signals, so the current
                   5886: 
                   5887:        process didn't get the signal until later)
                   5888: 
                   5889: mem.c, dosmem.c:
                   5890: 
                   5891:        made sure that all sizes would always be rounded to the nearest
                   5892: 
                   5893:        longword. Just in case they aren't, Malloc(-1L) rounds down to the
                   5894: 
                   5895:         next smallest longword.
                   5896: 
                   5897: lots of places:
                   5898: 
                   5899:        memory handling was overhauled completely; kmalloc now allocates
                   5900: 
                   5901:        memory from the same space as do m_alloc and p_exec, so there is
                   5902: 
                   5903:        no artificial constraint on the number of processes
                   5904: 
                   5905: ===========================================================================
                   5906: 
                   5907: version 0.6
                   5908: 
                   5909: 
                   5910: 
                   5911: dos.c:
                   5912: 
                   5913:        added Talarm() and Pause() system calls
                   5914: 
                   5915: bios.c, tty.c, pipefs.c:
                   5916: 
                   5917:        added real tty structures that programs can manipulate
                   5918: 
                   5919: proc.c:
                   5920: 
                   5921:        added some sanity checks for things like stack overflow
                   5922: 
                   5923: signal.c:
                   5924: 
                   5925:        revamped signal handling so that Psigreturn() no longer needs an
                   5926: 
                   5927:        argument.
                   5928: 
                   5929: dosmem.c:
                   5930: 
                   5931:        made Pexec'ing processes immune to SIGINT, SIGHUP, and SIGTSTP
                   5932: 
                   5933: intr.s:
                   5934: 
                   5935:        fixed the Psigreturn race condition bug
                   5936: 
                   5937: biosfs.c, pipefs.c, filesys.c, util.c:
                   5938: 
                   5939:        added case-insensitive string comparison routine, and modified the
                   5940: 
                   5941:        file systems to use it
                   5942: 
                   5943: bios.c, console.c:
                   5944: 
                   5945:        changed return values of status calls from 1 to -1, to be TOS
                   5946: 
                   5947:        compatible
                   5948: 
                   5949: dos.c:
                   5950: 
                   5951:        added new calls to get resource usage, and set resource limits
                   5952: 
                   5953: dosfile.c:
                   5954: 
                   5955:        added new call, f_select
                   5956: 
                   5957: signal.c:
                   5958: 
                   5959:        changed so stopped processes always have a return code of 0177
                   5960: 
                   5961: biosfs.c:
                   5962: 
                   5963:        added a fake "third button" on the mouse (you get it by holding down
                   5964: 
                   5965:        a shift key and a mouse button)
                   5966: 
                   5967:        made mouse_read return at least 1 byte
                   5968: 
                   5969: bios.c, proc.c, biosfs.c:
                   5970: 
                   5971:        added code to check for CTRL-ALT-key combinations on every
                   5972: 
                   5973:        process switch; thus, debugging, rebooting, etc. do not require
                   5974: 
                   5975:        waiting for a read from the keyboard. Also, ^C sends a SIGINT
                   5976: 
                   5977:        immediately, and ^Z (SIGTSTP) and ^\ (SIGQUIT) take effect
                   5978: 
                   5979:        right away, too.
                   5980: 
                   5981:        CTRL-ALT-DEL supported for TOS < 1.4
                   5982: 
                   5983: 
                   5984: 
                   5985: =========================================================================
                   5986: 
                   5987: version 0.5
                   5988: 
                   5989: 
                   5990: 
                   5991: First publically released version (made available for FTP as a beta test)
                   5992: 
                   5993: 
                   5994: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.