Annotation of tme/ChangeLog, revision 1.1.1.3

1.1.1.3 ! root        1: Sun May 15 01:24:11 2005  Matthew Fredette  <[email protected]>
        !             2: 
        !             3:        * Release 0.4 out.
        !             4: 
        !             5:        * configure.in: Fixed a bug where StaticGray, StaticColor, and
        !             6:        PseudoColor visuals would be considered indexed.  This would cause the
        !             7:        translation functions to incorrectly try to map intensities into pixel
        !             8:        subfields. 
        !             9: 
        !            10: Sat May 14 22:28:29 2005  Matthew Fredette  <[email protected]>
        !            11: 
        !            12:        * TODO: Updated. 
        !            13: 
        !            14:        * acinclude.m4 (AC_CHECK_FUNC_LONG): Added. 
        !            15: 
        !            16:        * configure.in: Now check for sys/bswap.h, bswap16(), and bswap32(). 
        !            17:        Now check for isinff(). 
        !            18:        Instead of taking a set of host display formats in the environment
        !            19:        variable TME_DISPLAYS, now take the configure argument
        !            20:        --with-tme-host-displays.  When debugging is disabled, to get best
        !            21:        performance now define macros that preprocess out a lot of debugging
        !            22:        code.  Debugging now defaults to disabled. 
        !            23: 
        !            24:        * generic/float.c [!HAVE_ISINFF] (isinff): Added. 
        !            25: 
        !            26:        * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Now initially
        !            27:        try to allocate new colors.  For any colors that fail, try to allocate
        !            28:        best-match colors.  Warn if even best-match colors could not be
        !            29:        allocated. 
        !            30: 
        !            31:        * ic/ieee754/ieee754-misc.c: Declare more single- and double-precision
        !            32:        constants. 
        !            33: 
        !            34:        * tme/common.h: Now include <sys/bswap.h> for the byteswapping
        !            35:        functions.  When the host is big-endian, try to use bswap16() and
        !            36:        bswap32() for byteswapping functions, otherwise define them.  Now
        !            37:        define little-endian conversion functions on big-endian hosts. 
        !            38: 
        !            39:        * tme/generic/float.h: Corrected some HAVE_ macros to _TME_HAVE_
        !            40:        macros.  Now include float.h and limits.h.  Added a prototype for
        !            41:        isinff(). 
        !            42: 
        !            43: Sat May 14 19:18:42 2005  Matthew Fredette  <[email protected]>
        !            44: 
        !            45:        * generic/fb-xlat-auto.sh: Fixed a bug in the initialization of
        !            46:        dst_masks_default, that was causing incorrect halving translation on
        !            47:        PseudoColor hosts. 
        !            48: 
        !            49:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_lookup): Fixed a bug in
        !            50:        the warning message when a keysym can't be generated by the host
        !            51:        keyboard. 
        !            52: 
        !            53:        * ic/ieee754/Makefile.am: Added -lm to libtme_ieee754_la_LDFLAGS. 
        !            54: 
        !            55:        * ic/m68k/m68k-opmap-dump.c:
        !            56:        * machine/sun3/sun3-carrera-eeprom.txt: Added. 
        !            57: 
        !            58:        * ic/m68k/m68k-opmap-make.pl: The previous opcode map functions were
        !            59:        too big (or complicated?) to be compiled in a reasonable amount of
        !            60:        time on slower machines.  Now compress the functions down by
        !            61:        initializing similar roots close to each other, and in groups whenever
        !            62:        possible.  This cuts down on the amount of params[] refilling and
        !            63:        function calls, and decreases the size of m68k-opmap.c by almost half. 
        !            64: 
        !            65:        * machine/sun3/Makefile.am: Added sun3-carrera-eeprom.txt to
        !            66:        examples_DATA. 
        !            67: 
        !            68:        * serial/serial-kb.c (_tme_serial_kb_connection_make): When a keyboard
        !            69:        macro can't be parsed, instead of aborting, just log a complaint. 
        !            70: 
        !            71: Sat May 14 01:43:33 2005  Matthew Fredette  <[email protected]>
        !            72: 
        !            73:        * acinclude.m4 (AC_CHECK_FLOAT_FORMAT): Fixed a tme_uint16_t, which
        !            74:        was causing failures on big-endian systems. 
        !            75: 
        !            76:        * ic/ieee754/softfloat-tme.c: Swapped some declarations that were with
        !            77:        the wrong comments. 
        !            78: 
        !            79:        * tme/ic/ieee754.h: Declare more single- and double-precision
        !            80:        constants. 
        !            81: 
        !            82: Wed May 11 00:15:42 2005  Matthew Fredette  <[email protected]>
        !            83: 
        !            84:        * dist/softfloat/softfloat/bits64/softfloat-macros (add192):
        !            85:        (sub192): Fixed some gcc3 signed/unsigned comparison warnings. 
        !            86: 
        !            87:        * dist/softfloat/softfloat/bits64/softfloat.c (roundAndPackFloatx80):
        !            88:        Fixed a gcc3 signed/unsigned comparison warning. 
        !            89: 
        !            90:        * ic/i825x6.c (_tme_i825x6_callout_ru):
        !            91:        (_tme_i825x6_callout): Fixed some gcc3 signed/unsigned comparison
        !            92:        warnings. 
        !            93: 
        !            94:        * ic/ieee754/ieee754-misc-auto.sh: Fixed a gcc3 signed/unsigned
        !            95:        comparison warning. 
        !            96: 
        !            97:        * machine/sun3/sun3-mainbus.c (_tme_sun3_bus_intack): Make signal
        !            98:        unsigned, to fix gcc3 signed/unsigned comparison warnings. 
        !            99: 
        !           100:        * tme/generic/float.h (tme_float_is_negative): Fixed all conditional
        !           101:        arms to be conditional expressions, to keep the type of the whole
        !           102:        expression int. 
        !           103: 
        !           104: Tue May 10 11:15:26 2005  Matthew Fredette  <[email protected]>
        !           105: 
        !           106:        * machine/sun3/SUN3-CARRERA: Disable obie0 by default. 
        !           107: 
        !           108: Tue May 10 00:38:19 2005  Matthew Fredette  <[email protected]>
        !           109: 
        !           110:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_attach): Connect the
        !           111:        key_press and key_release events with gtk_signal_connect_after, so we
        !           112:        can stop the event from propagating up to parents, where a GtkWindow
        !           113:        parent will do strange things with arrow key presses. 
        !           114: 
        !           115:        * ic/isil7170.c (_tme_isil7170_bus_cycle): Fixed an off-by-one bug in
        !           116:        the month register. 
        !           117: 
        !           118:        * machine/sun3/SUN3-CARRERA: Disable the serial console by default. 
        !           119: 
        !           120: Mon May 09 02:01:02 2005  Matthew Fredette  <[email protected]>
        !           121: 
        !           122:        * machine/sun/sun-cgtwo.c (_tme_suncg2_bus_cycle_regs): Wrap the
        !           123:        rasterop register log in #ifndef TME_NO_LOG, since the rasterop
        !           124:        register names array doesn't exist otherwise. 
        !           125: 
        !           126: Mon May 09 01:59:03 2005  Matthew Fredette  <[email protected]>
        !           127: 
        !           128:        * generic/ethernet.c (tme_ethernet_chunks_copy): Fixed a bug where the
        !           129:        size of the destination buffer would get loaded with the size of the
        !           130:        source buffer. 
        !           131: 
        !           132:        * generic/fb.c (_tme_fb_xlat_colors_get_set): Fixed a bug where the
        !           133:        number of colors allocated wasn't being saved. 
        !           134: 
        !           135:        * ic/i825x6.c (_tme_i825x6_fbl_refill): Now tolerate a Receive Buffer
        !           136:        with zero size. 
        !           137:        (_tme_i825x6_callout_ru): Initialize rbd_size early, since its value
        !           138:        is decreased early when a fake receive buffer is made from the RFD
        !           139:        Ethernet header space. 
        !           140: 
        !           141: Sat Apr 30 15:22:25 2005  Matthew Fredette  <[email protected]>
        !           142: 
        !           143:        * configure.in: Now determine the default display depth with xwininfo
        !           144:        -root, assuming that the root window is at the default depth.  If the
        !           145:        depth is greater than one, also determine the visual class and any
        !           146:        subfield masks, and include this information in the destination image
        !           147:        key.  Add support for color framebuffer images on the sun3. 
        !           148: 
        !           149:        * generic/bus.c (_tme_bus_cycle_xfer_resp_least_lane):
        !           150:        (tme_bus_cycle_xfer_reg): Added. 
        !           151: 
        !           152:        * generic/fb-xlat-auto.sh: Added support for color source and
        !           153:        destination images. 
        !           154: 
        !           155:        * generic/fb.c (tme_fb_xlat_best):
        !           156:        (tme_fb_xlat_is_optimal): Now consider source image class, mapping
        !           157:        type, mapping size, and subfield masks, and destination image mapping
        !           158:        type and subfield masks. 
        !           159:        (_tme_fb_xlat_colors_get_set):
        !           160:        (tme_fb_xlat_colors_get):
        !           161:        (tme_fb_xlat_colors_set): Added. 
        !           162: 
        !           163:        * host/gtk/gtk-display.h: Removed the monochrome invert mask from
        !           164:        struct tme_gtk_display.  Inversion is now specified by the
        !           165:        framebuffer. 
        !           166: 
        !           167:        * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Added color
        !           168:        support.  Now we determine the destination image class, mapping, and
        !           169:        any subfield masks.  We choose a translation function based on image
        !           170:        classes, mappings, and subfield masks, and allocate colors on behalf
        !           171:        of the translation function. 
        !           172: 
        !           173:        * ic/m68k/m68020.c (_tme_m68020_exception): Fixed a bug where a 32-bit
        !           174:        fetch wasn't marking the B stage as faulted. 
        !           175: 
        !           176:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed a bug with
        !           177:        the instruction buffer.  Before, when the slow executor would take a
        !           178:        fault in the middle of a 32-bit instruction fetch, the successfully
        !           179:        fetched first 16 bits wouldn't get put in the instruction buffer by
        !           180:        the fault processing, because a fetch was only accounted for once it
        !           181:        fully succeeded.  When the fetch was resumed, the first 16 bits was
        !           182:        lost.  Now, a slow executor fetch is accounted for before it begins,
        !           183:        which guarantees that any partially fetched instruction makes it into
        !           184:        the instruction buffer. 
        !           185: 
        !           186:        * ic/m68k/m68k-misc-auto.sh: Now, we update the instruction buffer
        !           187:        fetch total and sizes values before we do the actual fetch, because we
        !           188:        may transfer a few bytes and then fault.  Without this, those few
        !           189:        bytes wouldn't get saved in the exception stack frame by
        !           190:        tme_m68k_insn_buffer_xfer(), because it wouldn't know about the fetch. 
        !           191:        Later, when the instruction would be resumed, tme_m68k_fetch32() won't
        !           192:        refetch them, because it knows they've already been fetched and thinks
        !           193:        they're still in the instruction buffer. 
        !           194: 
        !           195:        * machine/sun/Makefile.am: Now build sun-cgtwo.c for
        !           196:        libtme_machine_sun.la. 
        !           197: 
        !           198:        * machine/sun/sun-bwtwo.c (_tme_sunbw2_connections_new): Fill in the
        !           199:        new parts of the struct tme_fb_connection. 
        !           200:        (tme_sun_bwtwo): Fixed a bug in the argument processing. 
        !           201: 
        !           202:        * machine/sun/sun-cgtwo.c: Added. 
        !           203: 
        !           204:        * machine/sun2/SUN2-MULTIBUS: Since the Emulex emulation changed
        !           205:        slightly, make sure that NetBSD will still probe this as an Emulex. 
        !           206: 
        !           207:        * machine/sun3/SUN3-CARRERA: Added support for the cgthree board. 
        !           208: 
        !           209:        * machine/sun3/sun3-mainbus.c (tme_machine_sun3,cgtwo): Added. 
        !           210: 
        !           211:        * machine/sun3/sun3-mmu.c (_tme_sun3_tlb_fill_mmu): Temporarily work
        !           212:        around a bug in NetBSD/sun3 where the cgtwo is mapped at the wrong
        !           213:        physical address. 
        !           214: 
        !           215:        * tme/generic/bus.h: Added a prototype for tme_bus_cycle_xfer_reg(). 
        !           216: 
        !           217:        * tme/generic/fb.h: Added macros for the different image classes,
        !           218:        mapping types, and default subfield masks.  Also added macros for the
        !           219:        "any" subfield mask, and for the mask of the maximum index value. 
        !           220:        Expanded struct tme_fb_connection and struct tme_fb_xlat to include
        !           221:        image class, subfield masks, and mapping information.  Added
        !           222:        prototypes for tme_fb_xlat_colors_get() and tme_fb_xlat_colors_set(). 
        !           223: 
        !           224:        * tme/machine/sun.h: Added a prototype for tme_sun_cgtwo(). 
        !           225: 
        !           226: Wed Mar 23 12:42:56 2005  Matthew Fredette  <[email protected]>
        !           227: 
        !           228:        * ic/ieee754/ieee754-ops-auto.sh: Now emit ops for log, log10, and
        !           229:        exp. 
        !           230: 
        !           231:        * ic/m68k/m68010.c: TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68010): Now
        !           232:        call tme_m68k_opcodes_init_m68010() to initialize the opcode table. 
        !           233: 
        !           234:        * ic/m68k/m68020.c: TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68020): Now
        !           235:        call tme_m68k_opcodes_init_m68020() to initialize the opcode table. 
        !           236: 
        !           237:        * ic/m68k/m6888x.c (tme_m68k_fbcc): Fixed a bug in calculating the
        !           238:        target PC; the displacement is always added to the original PC plus
        !           239:        two.  Now always take a 32-bit displacement as a proper operand. 
        !           240: 
        !           241:        * ic/m68k/m68k-execute.c: Simplified how instructions are decoded and
        !           242:        executed.  Now, the first 16-bit instruction word is used to directly
        !           243:        index an array of 32-bit integers, each of which gives the
        !           244:        instruction's function number, the function's arguments, immediate
        !           245:        fetching and EA calculation information, and a single
        !           246:        special-operation escape bit.  Only two types of immediate fetches are
        !           247:        supported: a 16-bit fetch, sign-extended to 32 bits, and a 32-bit
        !           248:        fetch.  All of this speeds things up dramatically. 
        !           249:        [_TME_M68K_STATS]: Keep statistics on executed instructions. 
        !           250: 
        !           251:        * ic/m68k/m68k-impl.h: Removed TME_M68K_SIZE_SUBMAP_X,
        !           252:        TME_M68K_SIZE_16U8, TME_M68K_SIZE_16S32, TME_M68K_OPNUM_SUBMAP_X,
        !           253:        TME_M68K_OPNUM_UNDEF, and the list of special opcodes, all of which
        !           254:        were used only in the old opcode maps. 
        !           255:        Added macros for the decoded instruction parameters in the new opcode
        !           256:        maps. 
        !           257:        Removed the data structures used by the old opcode maps.  The EA
        !           258:        register is now a proper IC register.  Added statistics to struct
        !           259:        tme_m68k.  Removed the declarations of the small immediate arrays. 
        !           260:        The small immediates are now proper IC registers.  Added declarations
        !           261:        of the different CPUs' opcode maps and their initialization functions,
        !           262:        and the instruction function array.  Added declarations for
        !           263:        tme_m68k_bccl(), tme_m68k_bsrl(), tme_m68k_divl() and tme_m68k_mull(). 
        !           264: 
        !           265:        * ic/m68k/m68k-insns.c (tme_m68k_bccl):
        !           266:        (tme_m68k_bsrl):
        !           267:        (tme_m68k_link):
        !           268:        (tme_m68k_rtd): Now that the opcode map supports 16-bit immediates
        !           269:        sign-extended to 32 bits, always take a proper 32-bit operand. 
        !           270: 
        !           271:        * ic/m68k/m68k-iset.txt: Now that the opcode map supports 16-bit
        !           272:        immediates sign-extended to 32 bits again, make rtd and the 16-bit
        !           273:        versions of link, bsr, bcc, and fbcc take this kind of immediate. 
        !           274: 
        !           275:        * ic/m68k/m68k-misc.c (tme_m68k_exception): Now log a message when a
        !           276:        double fault causes a processor halt. 
        !           277: 
        !           278:        * ic/m68k/m68k-opmap-make.pl: The initial rewrite of the opcode map
        !           279:        generation resulted in an enormous opcode map source file, and,
        !           280:        because the instruction function pointers were in the map entries
        !           281:        directly, an opcode map array that wasn't 64-bit friendly. 
        !           282:        Now, the instruction function pointers are in a small separate array
        !           283:        which is indexed by eight bits in the 32-bit opcode parameter
        !           284:        information, which is all that remains in the opcode map.  To make
        !           285:        room for these eight bits, the first EA mode and reg fields are not
        !           286:        stored (and are instead are swapped in by the instruction executer
        !           287:        after the instruction function has been fetched), and the special
        !           288:        operation field has been reduced to a single bit.  To shrink the
        !           289:        opcode map sources, we take advantage of the fact that each of the
        !           290:        1024 aligned sets of 64 opcodes (a "root") uses one of a small number
        !           291:        of patterns to initialize itself (for m68000 through m68020, there are
        !           292:        only 37 such patterns), and we generate a function to initialize the
        !           293:        parameters in that pattern.  Also, each CPU uses the previous CPU's
        !           294:        opcode initialization function to initialize the bulk of its opcode
        !           295:        map, making changes only as needed. 
        !           296:        All of this has reduced the size of the opcode map source file
        !           297:        dramatically. 
        !           298:        Also, support for 16-bit immediates, sign-extended to 32 bits, has
        !           299:        been added again. 
        !           300: 
        !           301: Tue Mar 15 02:56:58 2005  Matthew Fredette  <[email protected]>
        !           302: 
        !           303:        * ic/m68k/m6888x.c (tme_m68k_fbcc): All 16-bit immediates are now
        !           304:        sign-extended to 32-bits in a fixed immediate register. 
        !           305: 
        !           306:        * ic/m68k/m68k-insns.c (_tme_m68k_bcc):
        !           307:        (tme_m68k_bccl):
        !           308:        (_tme_m68k_bsr):
        !           309:        (tme_m68k_bsrl): Added. 
        !           310:        (tme_m68k_bcc): Now just use _tme_m68k_bcc. 
        !           311:        (tme_m68k_bsr): Now just use _tme_m68k_bsr. 
        !           312:        (tme_m68k_link): Now handle the 16-bit variant explicitly. 
        !           313:        (tme_m68k_rtd): Now handle our 16-bit argument correctly. 
        !           314:        (tme_m68k_mull):
        !           315:        (tme_m68k_divl): Added. 
        !           316: 
        !           317: Thu Mar 10 13:29:42 2005  Matthew Fredette  <[email protected]>
        !           318: 
        !           319:        * ic/m68k/m68010.c: Now define _TME_M68K_EXECUTE_OPMAP to
        !           320:        tme_m68k_opcodes_m68010 when compiling the executors. 
        !           321:        TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68010): No longer call
        !           322:        _tme_m68010_decoder_map_init(). 
        !           323: 
        !           324:        * ic/m68k/m68020.c: Now define _TME_M68K_EXECUTE_OPMAP to
        !           325:        tme_m68k_opcodes_m68020 when compiling the executors. 
        !           326:        TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68020): No longer call
        !           327:        _tme_m68020_decoder_map_init(). 
        !           328: 
        !           329:        * ic/m68k/m68k-insns-auto.sh: cas2 now gets its specop2 as a 16-bit
        !           330:        operand.  moves now must do its own memory cycles, and EA
        !           331:        postincrement and predecrement. 
        !           332:        Now track memory statistics in the memory functions. 
        !           333: 
        !           334:        * ic/m68k/m68k-iset.txt: Many simplifications, and some expansions, to
        !           335:        enable faster instruction dispatching.  Eliminated all specops except
        !           336:        for specop16 and fpgen, eliminated the #16S32 immediate type (all
        !           337:        16-bit immediates are now sign-expanded to 32 bits), and bcc and bsr
        !           338:        are now expanded (multiple iset lines may expand to the same pattern,
        !           339:        with the first one winning, but also with a system of * understood by
        !           340:        m68k-opmap-make.pl to count the correct number of duplicates). 
        !           341: 
        !           342:        * ic/m68k/m68k-misc-auto.sh: Now define a 96-bit register for
        !           343:        immediates.  Now define registers for the constants zero through
        !           344:        eight. 
        !           345: 
        !           346:        * ic/m68k/m68k-misc.c: Removed the small immediates arrays. 
        !           347:        (_tme_m68k_connection_break): Now return zero, to silence a warning
        !           348:        (?). 
        !           349:        (tme_m68k_new): Increased the instruction burst size to 200.  This
        !           350:        dramatically improves performance.  Now initialize the small
        !           351:        immediates. 
        !           352:        (tme_m68k_redispatch): Count redispatch statistics. 
        !           353:        (tme_m68k_tlb_fill): Count TLB fill statistics. 
        !           354:        (tme_m68k_dump): No longer display the specop2 value. 
        !           355: 
        !           356:        * ic/m68k/m68k-opmap-make.pl (operand_final): Removed. 
        !           357: 
        !           358:        * ic/m68k/m68k-opmap-make.pl: Rewritten to support much faster
        !           359:        dispatching of instructions.  Now each CPU gets an independent
        !           360:        64K-entry array, indexed by first instruction word, that yields a
        !           361:        function pointer and 32 bits of parameter information.  This
        !           362:        information includes struct tme_m68k-relative offsets for the
        !           363:        function's operands, EA and immediate fetching information, and specop
        !           364:        information. 
        !           365: 
        !           366: Fri Feb 18 04:12:55 2005  Matthew Fredette  <[email protected]>
        !           367: 
        !           368:        * bus/multibus/sun-mie.c (_tme_sun_mie_tlb_set_allocate): Atomic
        !           369:        variable changes. 
        !           370:        (_tme_sun_mie_tlb_fill): Don't invalidate a TLB entry if it happens to
        !           371:        be the same as the one we're filling. 
        !           372: 
        !           373:        * bus/multibus/sun-sc.c (_tme_sun_sc_bus_cycle_dma): Fixed a bug where
        !           374:        we would do 16-bit accesses in 8-bit mode. 
        !           375:        (_tme_sun_sc_intack): Added. 
        !           376:        (_tme_sun_sc_cycle_new):
        !           377:        (_tme_sun_sc_callout):
        !           378:        (_tme_sun_sc_bus_cycle_data_reg):
        !           379:        (_tme_sun_sc_bus_cycle_icr):
        !           380:        (_tme_sun_sc_scsi_cycle): Mostly mechanical changes to support the new
        !           381:        events/actions SCSI bus interface. 
        !           382:        (_tme_sun_sc_connection_make_scsi): No longer get any predefined SCSI
        !           383:        sequences. 
        !           384:        (_tme_sun_sc_connections_new): No longer provide a predefined SCSI
        !           385:        sequence function. 
        !           386:        (tme_bus_multibus,sun_sc): Added support for the "vme" argument. 
        !           387: 
        !           388:        * generic/fb-xlat-auto.sh: Fixed a serious bug where we would decide
        !           389:        that FIFOs are always aligned, even when the FIFO's bits per pixel
        !           390:        value isn't known at compile time. 
        !           391:        Fixed a bug where xlat_run would get decremented during every loop
        !           392:        iteration, instead of only after every translated source 32-bit word. 
        !           393:        When the loop isn't unrolled for source pixels, this causes xlat_run
        !           394:        to go negative too early, which can stop translation. 
        !           395: 
        !           396:        * generic/scsi.c (tme_scsi_connection_score): No longer score based on
        !           397:        a predefined SCSI sequence function. 
        !           398: 
        !           399:        * ic/m68k/Makefile.am: Now build the m6888x support, which depends on
        !           400:        the ieee754 support. 
        !           401: 
        !           402:        * ic/m68k/m68k-impl.h:
        !           403:        * tme/ic/m68k.h: Added m6888x support. 
        !           404: 
        !           405:        * ic/m68k/m68k-iset.txt: Added the floating-point instructions. 
        !           406: 
        !           407:        * ic/m68k/m68k-misc.c (_tme_m6888x_enable): Added. 
        !           408:        (_tme_m68k_connection_score): A bus must not provide an m6888x enable
        !           409:        function. 
        !           410:        (_tme_m68k_connections_new): A m68k provides an m6888x enable
        !           411:        function. 
        !           412:        (tme_m68k_new): Now pass FPU arguments to tme_m68k_fpu_new(), and
        !           413:        display the FPU usage with tme_m68k_fpu_usage(). 
        !           414:        (tme_m68k_do_reset): Reset any FPU. 
        !           415: 
        !           416:        * machine/sun2/SUN2-MULTIBUS: Make the bpf attachment for ie0 delay
        !           417:        packets slightly.  This works around a sleep/wakeup race condition in
        !           418:        the NetBSD kernel RARP code. 
        !           419:        Changed the type of the bwtwo from obmem to multibus, since the bwtwo
        !           420:        implementation is now common to all sun machines. 
        !           421: 
        !           422:        * machine/sun3/SUN3-CARRERA: Now define an unknown-compliance m68881. 
        !           423:        Now use the revision 3.0 ROM. 
        !           424:        Increased the size of the VME bus to the full 4GB.  Commented out the
        !           425:        sc0 attachment, in favor of the new si0 attachment. 
        !           426:        To support stock NetBSD 1.6*, make the Emulex tape respond to INQUIRY
        !           427:        commands in a normal way. 
        !           428: 
        !           429:        * machine/sun3/sun3-control.c (_tme_sun3_control_cycle_handler): Call
        !           430:        out changes to the FPU and DVMA enable bits.  Silently ignore an
        !           431:        attempt to enable the Sun FPA. 
        !           432: 
        !           433:        * machine/sun3/sun3-impl.h: Now track the active DVMA TLBs, so that
        !           434:        they can be invalidated when DVMA is enabled or disabled.  Atomic
        !           435:        variable fixes, and a prototype for _tme_sun3_mmu_sdvma_change(). 
        !           436: 
        !           437:        * machine/sun3/sun3-mmu.c (_tme_sun3_cycle_dummy):
        !           438:        (_tme_sun3_sdvma_disabled):
        !           439:        (_tme_sun3_mmu_sdvma_change): Added. 
        !           440:        (_tme_sun3_bus_tlb_fill): Now track TLB entries filled for DVMA space. 
        !           441:        Entries that are filled while DVMA is disabled generate a VME bus
        !           442:        fault.  For now, bus cycles to unmapped DVMA addresses are ignored. 
        !           443:        (_tme_sun3_tlb_fill_mmu): Apparently the magic obio mapping of the
        !           444:        PROM works over a PROM-sized region starting at 0x100000.  Made some
        !           445:        changes to silence -Wuninitialized. 
        !           446:        (_tme_sun3_mmu_tlb_set_allocate): Atomic variable changes. 
        !           447: 
        !           448:        * scsi/scsi-bus.c: Replaced the idea of a SCSI sequence with the much
        !           449:        simpler idea of a bus agent waiting for one or more SCSI events to
        !           450:        happen, then taking one or more SCSI actions. 
        !           451:        (_tme_scsi_bus_callout): Now call out the events triggered and actions
        !           452:        taken to the connection. 
        !           453:        (_tme_scsi_bus_cycle): Now take the events to wait on and the actions
        !           454:        to take from the connection.  A connection waits until one of its
        !           455:        events triggers, then some part of its actions are taken.  There is
        !           456:        now support for half and full SCSI bus arbitration, and reselection. 
        !           457:        (_tme_scsi_bus_sequence_get): Removed. 
        !           458:        (_tme_scsi_bus_connection_score):
        !           459:        (_tme_scsi_bus_connections_new): We can't provide a predefined
        !           460:        sequence function any more, or score a connection based on one. 
        !           461: 
        !           462:        * scsi/scsi-device.c (_tme_scsi_device_callout):
        !           463:        (_tme_scsi_device_cycle): More or less mechanical changes to support
        !           464:        the new events/actions SCSI bus interface.  Fixed a bug where we would
        !           465:        go past the end of the message dispatch array for IDENTIFY messages. 
        !           466:        (tme_scsi_device_connections_new): Removed the predefined SCSI
        !           467:        sequence member assignment. 
        !           468: 
        !           469:        * scsi/scsi-tape.c (tme_scsi_tape_cdb_inquiry): It looks like
        !           470:        nonexistent LUNs are reported as "unsupported", and not "not present". 
        !           471:        Now identify as a SCSI-1 device, and be sure not to return more data
        !           472:        than the initiator requested. 
        !           473: 
        !           474:        * tme/common.h: Now declare _tme_volatile. 
        !           475:        Added some missing parentheses to _TME_FIELD_DEPOSIT().  Fixed a bug
        !           476:        in the definition of the tme_value64_uint32s[] member of union
        !           477:        tme_value64. 
        !           478:        Added definitions for tme_value64_imul() and tme_value64_idiv(). 
        !           479: 
        !           480:        * tme/generic/Makefile.am: Now install float.h. 
        !           481: 
        !           482:        * tme/generic/bus.h: Now define TME_BUS_SIGNAL_DRQ and
        !           483:        TME_BUS_SIGNAL_DACK. 
        !           484: 
        !           485:        * tme/generic/scsi.h: Now define TME_SCSI_ID_SELECTED() and
        !           486:        TME_SCSI_ID_RESELECTED(), to determine if an ID is being selected or
        !           487:        reselected.  Replaced the idea of a SCSI sequence with the much
        !           488:        simpler idea of a bus agent waiting for one or more SCSI events to
        !           489:        happen, then taking one or more SCSI actions. 
        !           490: 
        !           491:        * tme/ic/Makefile.am: Now install i825x6.h and ieee754.h. 
        !           492: 
        !           493:        * tme/machine/sun.h: Added a prototype for tme_sun_si(). 
        !           494: 
        !           495:        * tme/scsi/scsi-device.h: Removed the old predefined SCSI sequences
        !           496:        from struct scsi_device. 
        !           497: 
        !           498:        * tme/scsi/scsi-msg.h: Now define TME_SCSI_MSG_IDENTIFY_LUN_MASK, for
        !           499:        getting the LUN out of an IDENTIFY message. 
        !           500: 
        !           501:        * tmesh/tmesh-input.y: Now define YYMAXDEPTH, to silence -Wundef. 
        !           502: 
        !           503: Thu Feb 17 13:42:44 2005  Matthew Fredette  <[email protected]>
        !           504: 
        !           505:        * Makefile.am: Added tools/ to SUBDIRS, and dist/ to EXTRA_DIST. 
        !           506:        Added a dist-hook target to clean the CVS directories out of dist/. 
        !           507: 
        !           508:        * acinclude.m4 (AC_CHECK_FLOAT_FORMAT):
        !           509:        (AC_CHECK_FLOAT_LIMITS): Added. 
        !           510: 
        !           511:        * configure.in: Bumped version to 0.4. 
        !           512:        Now check for limits.h and float.h.  Check for volatile, float,
        !           513:        double, and long double, and the signal handler type. 
        !           514:        Added ieee754 and ncr5380 to the list of sun3 ICs.  When using gcc,
        !           515:        now use -Wundef when compiling with warnings, and set the no strict
        !           516:        aliasing flag.  Add the floating point format configuration to
        !           517:        tmeconfig.h. 
        !           518: 
        !           519:        * generic/Makefile.am: Now build float.c and float-auto.c, and include
        !           520:        float-auto.sh and float-auto.c in the distribution. 
        !           521: 
        !           522:        * generic/bus-el.c generic/bus.c machine/sun/sun-mmu.c
        !           523:          machine/sun/sun-obie.c machine/sun2/sun2-impl.h
        !           524:          machine/sun2/sun2-mmu.c tme/atomics.h tme/generic/bus.h
        !           525:          tme/machine/sun.h:
        !           526: 
        !           527:          Cleaned up atomic variables.  Now atomic variables declared with
        !           528:          TME_ATOMIC and TME_ATOMIC_POINTER_TYPE are volatile.  To do this
        !           529:          right, TME_ATOMIC_POINTER_TYPE changed to take just the base type
        !           530:          pointed to, so there has been some fallout. 
        !           531: 
        !           532:        * generic/float-auto.sh generic/float.c ic/ncr5380.c
        !           533:          ic/ieee754/Makefile.am ic/ieee754/ieee754-misc-auto.sh
        !           534:          ic/ieee754/ieee754-misc.c ic/ieee754/ieee754-ops-auto.sh
        !           535:          ic/ieee754/ieee754-precision.sh ic/ieee754/softfloat-tme.c
        !           536:          ic/ieee754/softfloat-tme.h ic/m68k/m6888x-auto.sh ic/m68k/m6888x.c
        !           537:          machine/sun/sun-si.c tme/generic/float.h tme/ic/ieee754.h
        !           538:          tools/Makefile.am:
        !           539: 
        !           540:          Added. 
        !           541: 
        !           542:        * host/posix/posix-disk.c (tme_host_posix,disk): Only probe for the
        !           543:        block size if the device is a character device.  If we have mmap
        !           544:        support, the block size for all devices must be some multiple of the
        !           545:        page size - this fixes a bug where we would try to mmap()
        !           546:        non-page-sized regions at non-page boundaries. 
        !           547: 
        !           548:        * ic/Makefile.am: Added ieee754 to the list of distribution
        !           549:        subdirectories.  Now build ncr5380.c. 
        !           550:        Added i825x6reg.h to the list of i825x6 sources. 
        !           551: 
        !           552:        * ic/m68k/m68020.c (_tme_m68020_exception):
        !           553:        (_tme_m68020_rte): Fixed bugs in the handling of bus fault frames for
        !           554:        instruction fetches.  Previously, we would always fault on stage B,
        !           555:        and only on stage C for a 32-bit fetch.  This was supposed to be the
        !           556:        other way around.  Also, an address error doesn't set a fault bit,
        !           557:        only a rerun bit. 
        !           558: 
        !           559:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed some bugs
        !           560:        caught by gcc -Wuninitialized. 
        !           561: 
        !           562:        * ic/m68k/m68k-opmap-make.pl: Fixed a bug where the illegal opcode
        !           563:        wouldn't get the 'illegal' specop. 
        !           564: 
        !           565:        * libtme/threads-sjlj.c [HAVE_GTK]: Define G_ENABLE_DEBUG if it isn't
        !           566:        defined, to silence -Wundef. 
        !           567: 
        !           568:        * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Fixed a serious bug
        !           569:        where any page marked as modified was given out as writable, even if
        !           570:        it wasn't marked as writable.  SunOS likes to set page table entries
        !           571:        that are modified, but not writable, and this bug was preventing
        !           572:        proper copy-on-write behavior. 
        !           573: 
        !           574:        * machine/sun2/Makefile.am: No longer build sun2-bwtwo.c. 
        !           575: 
        !           576:        * machine/sun2/sun2-bwtwo.c: Removed. 
        !           577: 
        !           578:        * machine/sun2/sun2-mainbus.c (_tme_sun2_connections_new): Fixed bugs
        !           579:        in forming the list of free buses. 
        !           580:        (tme_machine_sun2,zs): Now use the standard Sun z8530 socket
        !           581:        definition. 
        !           582:        (tme_machine_sun2,bwtwo): Added. 
        !           583: 
        !           584:        * machine/sun3/sun3-mainbus.c (_tme_sun3_bus_signal): Apparently,
        !           585:        SunOS likes to set both the level 5 and level 7 clock interrupt enable
        !           586:        bits.  The level 5 bit seems to take precedence. 
        !           587:        (_tme_sun3_connection_score): Insist on a m68020 or better. 
        !           588:        (tme_machine_sun3,si): Added. 
        !           589: 
        !           590:        * scsi/emulexmt02.c (_tme_emulexmt02_cdb_request_sense): Fixed a bug
        !           591:        where we weren't putting the Emulex error code in the sense. 
        !           592:        (_tme_emulexmt02_cdb_inquiry): Added a hack to make this tape usable
        !           593:        to install SunOS 4.1.1. 
        !           594:        (tme_scsi_tape_emulexmt02_init): If the user specified a vendor of
        !           595:        EMULEX, use the normal INQUIRY CDB handling, instead of returning the
        !           596:        useless Emulex INQUIRY data.  Now return an illegal command for a
        !           597:        RESERVE CDB. 
        !           598: 
        !           599: Thu Feb 17 02:14:57 2005  Matthew Fredette  <[email protected]>
        !           600: 
        !           601:        * ic/m68k/m68k-insns.c (tme_m68k_bfffo): Fixed a bug where we were
        !           602:        using ffs(), which finds the least significant bit set, and not the
        !           603:        most significant bit set.  Now find the most significant bit set. 
        !           604: 
        !           605:        * ic/m68k/m68k-verify.c (_tme_m68k_verify_end): Added better support
        !           606:        for verifying bitfield instructions.  Don't try to verify
        !           607:        floating-point instructions. 
        !           608:        (tme_m68k_verify_end_branch): Now leave the m68k structure unchanged. 
        !           609: 
        !           610:        * machine/sun/Makefile.am: Added sun-fb.h and sun-si.c to the sources
        !           611:        list.  Added tme-sun-eeprom.pl to the distribution. 
        !           612: 
        !           613: Wed Jan 26 13:13:29 2005  Matthew Fredette  <[email protected]>
        !           614: 
        !           615:        * host/gtk/gtk-display.h: If G_ENABLE_DEBUG isn't defined, define it
        !           616:        to zero.  Some GTK installations apparently require this. 
        !           617: 
        !           618:        * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Allocate a
        !           619:        GdkImage with the extra scanlines needed to hold the overtranslation
        !           620:        that the automatically generated functions do. 
        !           621: 
        !           622:        * ic/isil7170.c: Include <time.h> and not <sys/types.h> to get struct
        !           623:        tm. 
        !           624: 
        !           625:        * ic/m68k/m68020.c (_tme_m68020_exception): Store the memory Z buffer. 
        !           626:        (_tme_m68020_rte): Restore the memory Z buffer. 
        !           627: 
        !           628:        * libtme/module.c (tme_module_open): Fixed a bug where were freeing
        !           629:        the tokens array twice. 
        !           630: 
        !           631:        * scsi/scsi-msg.c (tme_scsi_device_msg_identify): Now set the
        !           632:        addressed LUN. 
        !           633: 
        !           634: Sun Jan 16 01:24:37 2005  Matthew Fredette  <[email protected]>
        !           635: 
        !           636:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Added support for
        !           637:        executing floating-point general instructions. 
        !           638: 
        !           639: Fri Jan 14 12:27:41 2005  Matthew Fredette  <[email protected]>
        !           640: 
        !           641:        * dist/softfloat/processors/386-GCC.h
        !           642:          dist/softfloat/processors/SPARC-GCC.h
        !           643:          dist/softfloat/softfloat/README.txt
        !           644:          dist/softfloat/softfloat/SoftFloat-history.txt
        !           645:          dist/softfloat/softfloat/SoftFloat-source.txt
        !           646:          dist/softfloat/softfloat/SoftFloat.txt
        !           647:          dist/softfloat/softfloat/timesoftfloat.txt
        !           648:          dist/softfloat/softfloat/bits32/softfloat-macros
        !           649:          dist/softfloat/softfloat/bits32/softfloat.c
        !           650:          dist/softfloat/softfloat/bits32/timesoftfloat.c
        !           651:          dist/softfloat/softfloat/bits32/386-Win32-GCC/Makefile
        !           652:          dist/softfloat/softfloat/bits32/386-Win32-GCC/milieu.h
        !           653:          dist/softfloat/softfloat/bits32/386-Win32-GCC/softfloat-specialize
        !           654:          dist/softfloat/softfloat/bits32/386-Win32-GCC/softfloat.h
        !           655:          dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/Makefile
        !           656:          dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/milieu.h
        !           657:          dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/softfloat-specialize
        !           658:          dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/softfloat.h
        !           659:          dist/softfloat/softfloat/bits32/templates/Makefile
        !           660:          dist/softfloat/softfloat/bits32/templates/milieu.h
        !           661:          dist/softfloat/softfloat/bits32/templates/softfloat-specialize
        !           662:          dist/softfloat/softfloat/bits32/templates/softfloat.h
        !           663:          dist/softfloat/softfloat/bits64/softfloat-macros
        !           664:          dist/softfloat/softfloat/bits64/softfloat.c
        !           665:          dist/softfloat/softfloat/bits64/timesoftfloat.c
        !           666:          dist/softfloat/softfloat/bits64/386-Win32-GCC/Makefile
        !           667:          dist/softfloat/softfloat/bits64/386-Win32-GCC/milieu.h
        !           668:          dist/softfloat/softfloat/bits64/386-Win32-GCC/softfloat-specialize
        !           669:          dist/softfloat/softfloat/bits64/386-Win32-GCC/softfloat.h
        !           670:          dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/Makefile
        !           671:          dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/milieu.h
        !           672:          dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/softfloat-specialize
        !           673:          dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/softfloat.h
        !           674:          dist/softfloat/softfloat/bits64/templates/Makefile
        !           675:          dist/softfloat/softfloat/bits64/templates/milieu.h
        !           676:          dist/softfloat/softfloat/bits64/templates/softfloat-specialize
        !           677:          dist/softfloat/softfloat/bits64/templates/softfloat.h:
        !           678: 
        !           679:          Import of SoftFloat Release 2b. 
        !           680: 
        !           681:        * dist/softfloat/softfloat/bits32/softfloat.c:
        !           682:        * dist/softfloat/softfloat/bits64/softfloat.c: Added the tme/softfloat
        !           683:        glue and removed some unused variables. 
        !           684: 
        !           685: Fri Jan 14 11:44:18 2005  Matthew Fredette  <[email protected]>
        !           686: 
        !           687:        * machine/sun/tme-sun-eeprom.pl: Make selftest-#megs default to zero. 
        !           688:        * tools/tme-binary-struct.pl.in: When standard input is a terminal, we
        !           689:        don't read any input. 
        !           690: 
        !           691: Thu Aug 19 12:27:24 2004  Matthew Fredette  <[email protected]>
        !           692: 
        !           693:        * TODO: Updated. 
        !           694: 
        !           695:        * acinclude.m4 (AC_CHECK_SHIFTSIGNED): Added. 
        !           696: 
        !           697:        * configure.in: Use AC_CHECK_SHIFTSIGNED() to see if right shifts of
        !           698:        signed integrals preserve sign. 
        !           699:        Added support for sun3 systems. 
        !           700: 
        !           701:        * generic/bus-el.c (_tme_bus_intack): If a device doesn't acknowledge
        !           702:        interrupts, return any user-specified vector on the bus connection
        !           703:        before falling back to the undefined vector. 
        !           704:        (_tme_bus_connections_new): Now allow the user to specify a vector on
        !           705:        the bus connection. 
        !           706:        (tme_generic,bus): Added a hack that allows the user to specify a 4GB
        !           707:        bus on a 32-bit system. 
        !           708: 
        !           709:        * ic/Makefile.am: Now build tme_ic_isil7170.la. 
        !           710: 
        !           711:        * ic/i825x6.c (_tme_i825x6_callout_cu): Added a missing break
        !           712:        statement to a switch arm. 
        !           713: 
        !           714:        * ic/isil7170.c ic/m68k/m68020.c machine/sun/sun-bwtwo.c
        !           715:          machine/sun/sun-fb.c machine/sun/sun-fb.h machine/sun/sun-obie.c
        !           716:          machine/sun/tme-sun-eeprom.pl machine/sun3/Makefile.am
        !           717:          machine/sun3/SUN3-CARRERA machine/sun3/sun3-control.c
        !           718:          machine/sun3/sun3-impl.h machine/sun3/sun3-mainbus.c
        !           719:          machine/sun3/sun3-mmu.c tme/ic/isil7170.h
        !           720:          tools/tme-binary-struct.pl.in:
        !           721: 
        !           722:          Added. 
        !           723: 
        !           724:        * ic/m68k/Makefile.am: Removed an inadvertent m68k-verify.c from
        !           725:        tme_ic_m68k_la_SOURCES. 
        !           726: 
        !           727:        * ic/m68k/Makefile.am: Now compile m68020.c. 
        !           728: 
        !           729:        * ic/m68k/m68k-misc.c (tme_m68000_exception_process):
        !           730:        (tme_m68020_exception_process): For illegal instruction exceptions,
        !           731:        now use the line A or line F vector as appropriate. 
        !           732:        (tme_m68k_rte_start): Added some TME_M68K_SEQUENCE_RESTARTING
        !           733:        protection. 
        !           734: 
        !           735:        * libtme/threads-sjlj.c: Removed the unused
        !           736:        tme_sjlj_thread_cond_notified field from the thread structure. 
        !           737:        (tme_sjlj_thread_create): Initialize the thread's linkage in the
        !           738:        timeout list. 
        !           739: 
        !           740:        * machine/Makefile.am: Added the sun3 directory to DIST_SUBDIRS. 
        !           741: 
        !           742:        * machine/sun/Makefile.am: Now build sun-bwtwo.c, sun-fb.c, and
        !           743:        sun-obie.c for libtme_machine_sun.la. 
        !           744:        Now make the tme-sun-eeprom script. 
        !           745: 
        !           746:        * machine/sun/sun-keyboards.txt: Added a map for the type 3 keyboard. 
        !           747: 
        !           748:        * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Don't invalidate the
        !           749:        old TLB entry if it happens to be the same one we're filling. 
        !           750: 
        !           751:        * tme/common.h: Now define TME_FIELD_MASK_EXTRACTU and the internal
        !           752:        _TME_FIELD_MASK_FACTOR, for extracting field values using a mask. 
        !           753: 
        !           754:        * tme/generic/bus.h: Now define TME_BUS_CYCLE_SYNCHRONOUS_EVENT.  Now
        !           755:        track a single interrupt vector for a connection, for those
        !           756:        connections that only use a single, nonprogrammable vector. 
        !           757: 
        !           758:        * tme/ic/Makefile.am: Now install isil7170.h. 
        !           759: 
        !           760:        * tme/machine/sun.h: To allow for more code sharing, now define
        !           761:        TME_SUN_Z8530_SIZE and TME_SUN_Z8530_SOCKET_INIT.  Added prototypes
        !           762:        for tme_sun_obie() and tme_sun_bwtwo(). 
        !           763: 
        !           764: Wed Aug 11 12:30:28 2004  Matthew Fredette  <[email protected]>
        !           765: 
        !           766:        * ic/m68k/m68010.c: Removed GROUPn_ from the TME_M68K_EXCEPTION_ macro
        !           767:        names, since those group numbers applied to only the 68000 and 68010. 
        !           768:        Also added the new TME_M68K_VECTOR_ macros. 
        !           769: 
        !           770:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed problems with
        !           771:        the way that tracing is handled, to enable support for 68020 tracing
        !           772:        and its new trace exception frame format.  Fixed a bug in the code
        !           773:        that detects a 32-bit branch.  Fixed a bug in decoding the divul and
        !           774:        mulul extension words.  Added missing declarations for some variables
        !           775:        used in 68020 effective address calculation. 
        !           776: 
        !           777:        * ic/m68k/m68k-impl.h: Replaced TME_M68K_FLAG_T with TME_M68K_FLAG_T0
        !           778:        and TME_M68K_FLAG_T1, and use them wherever possible.  Removed the
        !           779:        GROUPn_ from the TME_M68K_EXCEPTION_ macros, since the original group
        !           780:        numbers were specific to the 68000 and 68010.  Added more exception
        !           781:        frame format identifier macros.  Added new macros for the exception
        !           782:        vectors. 
        !           783:        (TME_M68K_INSN_BRANCH):
        !           784:        (TME_M68K_INSN_CHANGE_SR): Improved tracing support. 
        !           785: 
        !           786:        * ic/m68k/m68k-insns-auto.sh: The old asr expansion (which was the
        !           787:        same as the lsr expansion, but with a signed operand and result) had
        !           788:        bugs and also required that right shifts of a signed operand be
        !           789:        arithmetic.  Added a new expansion that fixes these problems. 
        !           790:        Removed the _GROUPn from the TME_M68K_EXCEPTION_ macro names, since
        !           791:        the group numbers were specific to the 68000 and 68010.  Also added
        !           792:        the new TME_M68K_VECTOR_ macros. 
        !           793:        In the bus-cycle functions, recognize the
        !           794:        TME_BUS_CYCLE_SYNCHRONOUS_EVENT pseudo-error, and make it force the
        !           795:        executer to check external events before executing the next
        !           796:        instruction. 
        !           797: 
        !           798:        * ic/m68k/m68k-insns.c: Removed the _GROUPn from the
        !           799:        TME_M68K_EXCEPTION_ macro names, since the group numbers were specific
        !           800:        to the 68000 and 68010.  Also added the new TME_M68K_VECTOR_ macros. 
        !           801:        Where applicable, store the current PC as the last PC before setting
        !           802:        the next PC as the current PC.  This supports format 2 exception
        !           803:        frames, which stack the address of the instruction that caused the
        !           804:        exception. 
        !           805:        (tme_m68k_movec): Added support for the 68020 control registers. 
        !           806: 
        !           807:        * ic/m68k/m68k-misc-auto.sh: Create registers for the next program
        !           808:        counter, the 68020 cacr and caar, and the always-zero register. 
        !           809: 
        !           810:        * ic/m68k/m68k-misc.c: Removed the _GROUPn from the
        !           811:        TME_M68K_EXCEPTION_ macro names, since the group numbers were specific
        !           812:        to the 68000 and 68010.  Also added the new TME_M68K_VECTOR_ macros. 
        !           813:        (_tme_m68k_bus_interrupt):
        !           814:        (tme_m68k_external_check): Implement a system that prevents NMI from
        !           815:        being repeatedly accepted.  If the interrupt priority mask is already
        !           816:        seven, only accept an NMI on a transition from deasserted to asserted. 
        !           817:        (tme_m68k_new): Now set the mask of T bits used by the processor. 
        !           818:        (tme_m68k_do_reset): Now clear the E and F bits in the 68020 cacr. 
        !           819:        Fixed a bug where we loaded the initial SSP and PC from supervisor
        !           820:        data space instead of the correct supervisor program space. 
        !           821:        (tme_m68k_change_sr): Only recognize the M bit on a 68020 or greater,
        !           822:        and fixed bugs in the selection of the correct stack pointer control
        !           823:        register. 
        !           824:        (tme_m68k_exception_process): Renamed to tme_m68000_exception_process,
        !           825:        since the grouping and priority it implements are specific to the
        !           826:        68000 and 68010. 
        !           827:        (tme_m68020_exception_process): Added. 
        !           828:        (tme_m68k_bitfield_offset): Simplified the bitfield byte offset
        !           829:        calculation for negative bit offsets. 
        !           830:        (tme_m68k_bitfield_width): Don't bother masking a bitfield width that
        !           831:        was encoded in the instruction; it can't be greater than 31. 
        !           832:        (_tme_m68k_bitfield_read): If the bitfield is in memory, note that the
        !           833:        current instruction can fault.  Fixed bugs where we assumed that
        !           834:        TME_BIT(32) is zero mod 2^32, when it may be 1 because of shift
        !           835:        limiting, which would cause us to fail to mask and/or sign-extend a
        !           836:        32-bit bitfield value correctly. 
        !           837:        (tme_m68k_bitfield_write_unsigned): Fixed a bug where we wouldn't mask
        !           838:        the value we were given before setting the flags.  Fixed bugs where we
        !           839:        assumed that TME_BIT(32) is zero mod 2^32, when it may be 1 because of
        !           840:        shift limiting.  If the bitfield is in memory, note that the current
        !           841:        instruction can fault. 
        !           842: 
        !           843:        * ic/m68k/m68k-verify.c (tme_m68k_verify_mem_any): Fixed a bug where
        !           844:        we wouldn't properly verify transfers of endianless data. 
        !           845:        (tme_m68k_verify_init): Now set up a full 32-bit address space. 
        !           846:        (_tme_m68k_verify_end): Store %a7 back in its proper stack pointer
        !           847:        control register, so we can verify changes to the control registers. 
        !           848:        Ignore extra verifier memory reads on bitfield instructions; the
        !           849:        verifier bitfield implementation often reads addresses not covered by
        !           850:        the bitfield. 
        !           851: 
        !           852: Mon May 17 11:57:01 2004  Matthew Fredette  <[email protected]>
        !           853: 
        !           854:        * host/bsd/bsd-bpf.c: Added support for the "delay" option, which
        !           855:        delays all incoming packets for a user-specified number of
        !           856:        microseconds. 
        !           857:        (_tme_bsd_bpf_read): Fixed a bug where a TME_ETHERNET_READ_PEEK read
        !           858:        would discard the read packet. 
        !           859: 
        !           860: Fri May 14 00:56:19 2004  Matthew Fredette  <[email protected]>
        !           861: 
        !           862:        * host/bsd/bsd-bpf.c: Removed the unused tme_bsd_bpf_cond_writer
        !           863:        structure member. 
        !           864:        (tme_host_bsd,bpf): Fixed a bug where we weren't initializing the
        !           865:        tme_bsd_bpf_conf_reader condition. 
        !           866: 
        !           867: Tue May 11 12:03:36 2004  Matthew Fredette  <[email protected]>
        !           868: 
        !           869:        * ic/i825x6.c: Added some logging. 
        !           870:        (_tme_i825x6_callout_ru): Don't set the B bit in RFD status fields. 
        !           871: 
        !           872:        * libtme/misc.c (_tme_misc_number_parse): Some changes to silence gcc
        !           873:        -Wuninitialized. 
        !           874: 
        !           875: Tue May 04 01:17:27 2004  Matthew Fredette  <[email protected]>
        !           876: 
        !           877:        * bus/multibus/sun-mie.c:
        !           878:        * ic/i825x6.c:
        !           879:        * ic/i825x6reg.h:
        !           880:        * tme/ic/i825x6.h: Added. 
        !           881: 
        !           882:        * machine/sun2/SUN2-MULTIBUS: Added commands to create ie0. 
        !           883: 
        !           884: Fri Apr 30 12:11:36 2004  Matthew Fredette  <[email protected]>
        !           885: 
        !           886:        * bus/multibus/3c400.c bus/multibus/sun-sc.c generic/bus-el.c
        !           887:          ic/am9513.c ic/z8530.c ic/m68k/m68k-insns.c ic/m68k/m68k-misc.c
        !           888:          machine/sun2/sun2-mainbus.c tme/generic/bus.h:
        !           889: 
        !           890:          Reworked bus signals in several ways: Added the notion of the bus
        !           891:          signals set.  Every bus should support multiple device-specific bus
        !           892:          signals sets, added by elements connecting to the bus.  This enables
        !           893:          elements to pass these device-specific bus signals to each other. 
        !           894:          Now bus signals are only specified as either asserted or negated,
        !           895:          and devices almost never signal edges.  For devices that only drive
        !           896:          signals either high or low, you can exclusive-or
        !           897:          TME_BUS_SIGNAL_LEVEL_ASSERTED with either TME_BUS_SIGNAL_LEVEL_HIGH
        !           898:          or TME_BUS_SIGNAL_LEVEL_LOW as appropriate, and provide that to the
        !           899:          device such that the device only needs to exclusive-or that with the
        !           900:          signal level to get the right asserted or negated level.  Also
        !           901:          expanded the number of generic bits in a signal value, and improved
        !           902:          the set of macros used to compose and decompose signal values. 
        !           903: 
        !           904:        * bus/multibus/sun-sc.c generic/bus.c ic/m68k/m68k-misc.c
        !           905:          machine/sun/sun-mmu.c tme/generic/bus.h:
        !           906: 
        !           907:          Made changes to the TLB protocol, to better support reentrant
        !           908:          devices.  Now, a TLB entry passed to a fill function is expected to
        !           909:          be local on the stack, and it "reserves" the real, backing TLB entry
        !           910:          in the device's state.  This prevents the case where a device tries
        !           911:          to fill the same backing TLB entry at the same time in two or more
        !           912:          threads.  TLB fill functions for devices that need to invalidate
        !           913:          outstanding TLBs always invalidate the backing TLB entry.  After a
        !           914:          TLB fill has finished, the caller checks its reservation on the
        !           915:          real, backing TLB, and copies the local TLB back if the reservation
        !           916:          has not been broken.  Devices that want to use a TLB entry
        !           917:          immediately after the fill function returns must use the local TLB,
        !           918:          since it cannot have been invalidated yet.  Also made fixes to TLB
        !           919:          entry users that avoid rereading fields that are destroyed by
        !           920:          invalidation, after the device has committed to using the TLB entry,
        !           921:          since invalidation can happen at any time.  Also made the TLB
        !           922:          tme_bus_tlb_emulator_off_read member const. 
        !           923: 
        !           924:        * generic/Makefile.am:
        !           925:        * generic/bus-device.c:
        !           926:        * tme/generic/bus-device.h: Added generic bus-device support for real
        !           927:        bus interfaces and bus-mastering. 
        !           928: 
        !           929: Fri Apr 30 01:46:01 2004  Matthew Fredette  <[email protected]>
        !           930: 
        !           931:        * TODO: Updated. 
        !           932: 
        !           933:        * configure.in: Added the i825x6 to the list of ICs for the sun2. 
        !           934: 
        !           935:        * bus/multibus/Makefile.am: Now compile sun-mie.c. 
        !           936: 
        !           937:        * ic/Makefile.am: Now build tme_ic_i825x6.la. 
        !           938: 
        !           939:        * tme/common.h: Added the TME_X_VERSION versioning macros.  Simplified
        !           940:        the definition of TME_RANGES_OVERLAP. 
        !           941: 
        !           942:        * tme/generic/ethernet.h: Now define TME_ETHERNET_LENGTH_SIZE and
        !           943:        TME_ETHERNET_HEADER_SIZE. 
        !           944: 
        !           945:        * tme/ic/m68k.h: Removed the ancient tme_m68k_tlb_bus_wrlock_on_read
        !           946:        macro. 
        !           947: 
        !           948: Sun Mar 28 23:38:28 2004  Matthew Fredette  <[email protected]>
        !           949: 
        !           950:        * generic/bus-device-auto.sh: Added. 
        !           951: 
        !           952: Fri Feb 20 12:42:11 2004  Matthew Fredette  <[email protected]>
        !           953: 
        !           954:        * ic/m68k/m68k-execute.c [_TME_M68K_EXECUTE_FAST]: Make the fast
        !           955:        emulator load pointers const. 
        !           956: 
        !           957: Fri Jan 09 03:42:48 2004  Matthew Fredette  <[email protected]>
        !           958: 
        !           959:        * generic/bus-el.c ic/am9513.c ic/m68k/m68k-misc.c
        !           960:          machine/sun2/sun2-mainbus.c tme/generic/bus.h:
        !           961: 
        !           962:          Increased the possible number of signal flag bits. 
        !           963:          (TME_BUS_SIGNAL_WHICH): Renamed to TME_BUS_SIGNAL_INDEX, all callers
        !           964:          changed, and added a new macro with the same old name that simply
        !           965:          masks off the signal flag bits. 
        !           966:          (TME_BUS_SIGNAL_WHICH_INT): Renamed to TME_BUS_SIGNAL_INDEX_INT, all
        !           967:          callers changed. 
        !           968: 
        !           969:        * generic/bus.c (tme_bus_addr_parse_any): Now use
        !           970:        tme_misc_unumber_parse_any(). 
        !           971: 
        !           972:        * generic/disk.c (tme_disk_dimension_parse): Now use
        !           973:        tme_misc_unumber_parse(). 
        !           974: 
        !           975:        * generic/fb-xlat-auto.sh: No longer emit some pixel-doubling code in
        !           976:        optimized translation functions for formats for 24 or more bits per
        !           977:        pixel, because that code would expand to shifts of more than 32 bits,
        !           978:        tripping gcc -Werror. 
        !           979: 
        !           980:        * host/gtk/gtk-screen.c (_tme_gtk_gdkimage_bipp): Fixed a bug where
        !           981:        this would fail when bipp > depth, which is common on deep
        !           982:        framebuffers. 
        !           983: 
        !           984:        * libtme/misc.c (_tme_misc_number_parse):
        !           985:        (tme_misc_unumber_parse_any):
        !           986:        (tme_misc_number_parse_any):
        !           987:        (tme_misc_unumber_parse):
        !           988:        (tme_misc_number_parse): Added. 
        !           989: 
        !           990:        * tme/misc.h: Added prototypes for tme_misc_unumber_parse_any,
        !           991:        tme_misc_number_parse_any, tme_misc_unumber_parse, and
        !           992:        tme_misc_number_parse. 
        !           993: 
1.1.1.2   root      994: Wed Oct 29 02:03:26 2003  Matthew Fredette  <[email protected].>
                    995:  
                    996:        * Release 0.2 out.
1.1       root      997: 
1.1.1.2   root      998:        * host/gtk/gtk-screen.c: Some quick changes for GTK 2 compatibility. 
1.1       root      999: 
1.1.1.2   root     1000: Sat Oct 25 17:08:02 2003  Matthew Fredette  <[email protected]>
                   1001: 
                   1002:        * ic/am9513.c ic/mm58167.c ic/z8530.c ic/z8530reg.h
                   1003:          ic/m68k/m68k-execute.c ic/m68k/m68k-insns.c ic/m68k/m68k-iset.txt
                   1004:          ic/m68k/m68k-misc.c ic/m68k/m68k-verify.c tmesh/tmesh-cmds.c
                   1005:          tmesh/tmesh-util.c:
                   1006: 
                   1007:          RCS Id, header comment, and license sweep. 
                   1008: 
                   1009: Thu Oct 16 03:02:11 2003  Matthew Fredette  <[email protected]>
                   1010: 
                   1011:        * configure.in: Now check for size_t. 
                   1012:        Now make sure that <net/bpf.h> defines BIOCSHDRCMPLT before deciding
                   1013:        that bpf support is present. 
                   1014: 
                   1015:        * generic/bus.c generic/keyboard.c host/bsd/bsd-bpf.c
                   1016:          host/bsd/bsd-if.c host/gtk/gtk-display.h host/gtk/gtk-keyboard.c
                   1017:          host/posix/posix-tape.c ic/am9513.c ic/m68k/m68k-impl.h
                   1018:          libtme/log-prf.c machine/sun2/sun2-mmu.c scsi/scsi-cdb.c
                   1019:          scsi/scsi-tape.c serial/kb-sun.c serial/serial-kb.c
                   1020:          serial/serial-ms.c tme/generic/keyboard.h tme/scsi/scsi-device.h
                   1021:          tmesh/tmesh-cmds.c tmesh/tmesh.c:
                   1022: 
                   1023:          Fixed many small bugs caught by the gcc3 -Wall -Wuninitialized. 
                   1024: 
                   1025:        * host/posix/posix-disk.c: Fixed various type problems found by gcc3. 
                   1026: 
                   1027:        * scsi/acb4000.c (_tme_acb4000_cdb_bad): Fixed a bug where we set the
                   1028:        amount of valid sense to TRUE instead of to a byte count. 
                   1029: 
                   1030:        * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Work around an aliasing
                   1031:        warning. 
                   1032: 
                   1033:        * tme/common.h: Fixed a bug where tme_value64_set had a conditional
                   1034:        with two different result types. 
                   1035:        When included by the implementation, now try to bring in standard
                   1036:        headers to get string and memory function prototypes.  Added an
                   1037:        incomplete list of prototypes for when standard headers aren't
                   1038:        available. 
                   1039: 
                   1040: Mon Sep 29 11:42:56 2003  Matthew Fredette  <[email protected]>
                   1041: 
                   1042:        * generic/fb-xlat-auto.sh: Added many comments, clarified some obscure
                   1043:        code, and fixed a bug where unoptimized halving translators wouldn't
                   1044:        shift the source FIFOs by two pixels when they had to. 
                   1045: 
                   1046: Wed Sep 10 01:49:22 2003  Matthew Fredette  <[email protected]>
                   1047: 
                   1048:        * generic/fb-xlat-auto.sh: Fixed various bugs when the destination
                   1049:        FIFOs may not be aligned, and when doubling.  These bugs were mostly
                   1050:        found by inspection, and the fixes haven't been tested. 
                   1051: 
                   1052: Mon Sep 01 14:58:57 2003  Matthew Fredette  <[email protected]>
                   1053: 
                   1054:        * configure.in: Changed the version number. 
                   1055:        Now only build the bsd host modules on BSD-like systems. 
                   1056: 
                   1057:        * generic/keyboard.c (_tme_keyboard_buffer_in0): Now examine any
                   1058:        keycode on the user's event to determine if an earlier press of a
                   1059:        different keysym from the same keycode has actually released. 
                   1060: 
                   1061:        * host/gtk/gtk-display.h: Now keep a mapping from keysym to keycode,
                   1062:        for those keysyms that can only be generated by one keycode. 
                   1063: 
                   1064:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_x11_new):
                   1065:        (_tme_gtk_keyboard_key_event):
                   1066:        (_tme_gtk_keyboard_new): Now keep a mapping from keysym to keycode,
                   1067:        for those keysyms that can only be generated by one keycode, and add
                   1068:        that keycode to key events. 
                   1069: 
                   1070:        * host/posix/posix-tape.c: Some changes to silence gcc
                   1071:        -Wuninitialized. 
                   1072: 
                   1073:        * host/posix/posix-tape.c (_tme_posix_tape_xfer1): When we hit the end
                   1074:        of the media, don't try to skip ahead to a nonexistent next segment. 
                   1075: 
                   1076:        * libtme/hash.c (_tme_hash_lookup_internal): When the lookup succeeds,
                   1077:        be sure to return the handle the bucket. 
                   1078: 
                   1079:        * libtme/log.c: Fixed many of the non-stdarg declarations of the
                   1080:        variable-argument functions. 
                   1081: 
                   1082:        * machine/sun2/SUN2-MULTIBUS: Now set a fixed key rate on kbd0, to
                   1083:        work around a bug in NetBSD where only the first of simultaneously
                   1084:        received keycodes will be processed. 
                   1085: 
                   1086:        * serial/serial-kb.c (_tme_serial_kb_callout): Cleaned up the code
                   1087:        that translates keyboard events into serial data, and added support
                   1088:        for rate-limiting. 
                   1089:        (_tme_serial_kb_th_rate): Added. 
                   1090:        (_tme_serial_kb_serial_read):
                   1091:        ((tme_serial_,kb,keyboard): Added support for rate-limiting. 
                   1092: 
                   1093:        * serial/serial-kb.h: Added various members to control rate-limiting. 
                   1094: 
                   1095:        * tme/generic/keyboard.h: A keyboard event for a keysym can now
                   1096:        include the related keycode.  This is for handling the case of a key
                   1097:        release giving a different keysym than the key press did because
                   1098:        modifiers changed in between. 
                   1099: 
                   1100: Sat Aug 23 13:50:34 2003  Matthew Fredette  <[email protected]>
                   1101: 
                   1102:        * generic/Makefile.am: Be sure to distribute fb-xlat-auto.sh. 
                   1103:        * generic/keyboard.c (_tme_keyboard_debug):
                   1104:        (tme_keyboard_buffer_new): Changes to support logging debug messages. 
                   1105: 
                   1106:        * host/gtk/Makefile.am:
                   1107:        * serial/Makefile.am:
                   1108:        * tme/generic/Makefile.am: Added some headers that weren't getting
                   1109:        distributed. 
                   1110: 
                   1111:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_new): Allow the keyboard
                   1112:        buffer to log messages using our log handle. 
                   1113: 
                   1114:        * host/posix/posix-tape.c: Changes to silence various gcc warnings. 
                   1115: 
                   1116:        * libtme/module.c: Added a hack to support older installed libltdls
                   1117:        that don't define lt_ptr. 
                   1118: 
                   1119:        * libtme/threads-sjlj.c: Fixed uses of struct fd_set. 
                   1120: 
                   1121:        * tme/common.h: Now include <netinet/in.h> for the byteswapping
                   1122:        functions. 
                   1123: 
                   1124:        * tme/generic/keyboard.h: Users can now give a log handle to the
                   1125:        keyboard buffer, for logging debug messages. 
                   1126: 
                   1127: Fri Aug 22 16:39:30 2003  Matthew Fredette  <[email protected]>
                   1128: 
                   1129:        * serial/serial-kb.c (tme_serial_,kb,keyboard): Give the element's log
                   1130:        handle to the keyboard buffer, to enable debugging. 
                   1131: 
                   1132: Tue Aug 12 23:00:40 2003  Matthew Fredette  <[email protected]>
                   1133: 
                   1134:        * machine/sun/Makefile.am: Now install sun-keyboards.txt and
                   1135:        my-sun-macros.txt. 
                   1136: 
                   1137:        * machine/sun/my-sun-macros.txt:
                   1138:        * machine/sun/sun-keyboards.txt: Added. 
                   1139: 
                   1140:        * machine/sun2/Makefile.am: Removed some old targets and dependencies. 
                   1141: 
                   1142:        * machine/sun2/SUN2-MULTIBUS: Reorganized and added more comments. 
                   1143:        As-is, this now represents the common case of local disk, no network. 
                   1144: 
                   1145: Fri Aug 08 13:33:45 2003  Matthew Fredette  <[email protected]>
                   1146: 
                   1147:        * tmesh/tmesh.c (main): Added support for the --noninteractive option. 
                   1148:        Fixed a bug where we wouldn't report meaningful file and line number
                   1149:        information on early errors. 
                   1150: 
                   1151: Thu Aug 07 22:14:46 2003  Matthew Fredette  <[email protected]>
                   1152: 
                   1153:        * bus/multibus/sun-sc.c (_tme_sun_sc_bus_cycle_data_reg): Added. 
                   1154:        (_tme_sun_sc_bus_cycle_data):
                   1155:        (_tme_sun_sc_bus_cycle_cmd_stat): Now use
                   1156:        _tme_sun_sc_bus_cycle_data_reg to run the bus cycle. 
                   1157:        (_tme_sun_sc_tlb_fill): The data register can't allow fast reading. 
                   1158: 
                   1159:        * host/posix/posix-disk.c (_tme_posix_disk_buffer_get): Now honor a
                   1160:        device's block size. 
                   1161:        (tme_host_posix,disk): If the disk image is a character device, see if
                   1162:        it has a minimum block size. 
                   1163: 
                   1164:        * host/posix/posix-tape.c (__tme_posix_tape_command): Fixed a bug
                   1165:        where an error return value wouldn't get returned.  Fixed a bug where
                   1166:        a LOAD control would get called out even when an error occured during
                   1167:        loading. 
                   1168: 
                   1169:        * scsi/emulexmt02.c: Replaced blocksize with block_size for
                   1170:        consistency. 
                   1171:        (_tme_emulexmt02_cdb_block_limits): Added. 
                   1172:        (tme_scsi,tape): Now handle the BLOCK LIMITS command. 
                   1173: 
                   1174:        * scsi/scsi-cdb.c (tme_scsi_device_cdb_illegal): Added. 
                   1175:        (_tme_scsi_device_make_inquiry_string): Added. 
                   1176:        (tme_scsi_device_make_inquiry_data): Added. 
                   1177:        (tme_scsi_device_cdb_inquiry): Removed. 
                   1178: 
                   1179:        * scsi/scsi-device.c (tme_scsi_device_address_lun_aware): Always allow
                   1180:        an INQUIRY command, even for a LUN that isn't defined. 
                   1181:        (tme_scsi_device_new): Set a NULL handler for the INQUIRY command by
                   1182:        default. 
                   1183: 
                   1184:        * scsi/scsi-disk.c: Renamed the tme-scsi-2 disk type to tme-scsi-1, to
                   1185:        reflect that it's a SCSI-1 disk. 
                   1186:        (tme_scsi_disk_cdb_inquiry): Added. 
                   1187:        (tme_scsi_disk_cdb_mode_sense):
                   1188:        (tme_scsi_disk_cdb_start_stop):
                   1189:        (tme_scsi_disk_cdb_prevent_allow):
                   1190:        (tme_scsi_disk_cdb_read_capacity): Crudely implemented these commands. 
                   1191:        (tme_scsi_disk_cdb_read1):
                   1192:        (tme_scsi_disk_cdb_write1): Implemented these commands. 
                   1193:        (_tme_scsi_disk_control): Made public. 
                   1194:        (_tme_scsi_disk_connection_break): Made public. 
                   1195:        (_tme_scsi_disk_connection_make): Made public. 
                   1196:        (_tme_scsi_disk_connections_new): Made public. 
                   1197:        (tme_scsi,disk): Install the disk handler for the INQUIRY command. 
                   1198: 
                   1199:        * scsi/scsi-tape.c (tme_scsi_tape_cdb_inquiry): Added. 
                   1200:        (tme_scsi_tape_cdb_load_unload):
                   1201:        ((tme_scsi_tape_cdb_prevent_allow): Made these command handlers do
                   1202:        nothing, for now. 
                   1203:        (tme_scsi,tape): Install the tape handler for the INQUIRY command. 
                   1204: 
                   1205:        * tme/generic/disk.h: Define some disk controls. 
                   1206: 
                   1207:        * tme/scsi/scsi-cdb.h: Define various macros, types, and prototypes
                   1208:        for generating INQUIRY response data. 
                   1209: 
                   1210:        * tme/scsi/scsi-disk.h: Added some prototypes for some now-public
                   1211:        functions. 
                   1212: 
                   1213:        * tme/scsi/scsi-tape.h: Added a prototype for
                   1214:        tme_scsi_tape_cdb_inquiry. 
                   1215: 
                   1216: Tue Aug 05 03:41:31 2003  Matthew Fredette  <[email protected]>
                   1217: 
                   1218:        * bus/multibus/sun-sc.c (_tme_sun_sc_scsi_cycle): If we're not
                   1219:        starting DMA, be sure to call out a wait-change cycle instead,
                   1220:        otherwise we can miss SCSI bus transitions. 
                   1221: 
                   1222:        * generic/Makefile.am: Now compile tape.c
                   1223: 
                   1224:        * generic/tape.c host/posix/posix-tape.c scsi/emulexmt02.c
                   1225:          scsi/scsi-tape.c tme/generic/tape.h tme/scsi/scsi-tape.h:
                   1226: 
                   1227:          Added. 
                   1228: 
                   1229:        * host/posix/Makefile.am: Now compile posix-tape.c. 
                   1230: 
                   1231:        * ic/z8530.c (_tme_z8530_bus_cycle): Added support for the WR0 reset
                   1232:        Rx interrupt command. 
                   1233: 
                   1234:        * ic/m68k/m68k-impl.h: Now always declare tme_m68k_verify_hook. 
                   1235: 
                   1236:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug in the V bit calculation in
                   1237:        the asl insns. 
                   1238: 
                   1239:        * ic/m68k/m68k-misc.c (tme_m68k_verify_hook): Now always compile this
                   1240:        function. 
                   1241: 
                   1242:        * ic/m68k/m68k-verify.c (_tme_m68k_verify_end): Ignore the T bits when
                   1243:        verifying %sr. 
                   1244: 
                   1245:        * machine/sun2/SUN2-MULTIBUS: Updated. 
                   1246: 
                   1247:        * scsi/Makefile.am: Now compile emulexmt02.c and scsi-tape.c. 
                   1248: 
                   1249:        * scsi/acb4000.c (_tme_acb4000_address_lun): When marking a
                   1250:        nonextended sense as valid we now have to indicate how many bytes it
                   1251:        contains. 
                   1252: 
                   1253:        * scsi/acb4000.c:
                   1254:        * tme/scsi/scsi-device.h: Fixed a comment. 
                   1255: 
                   1256:        * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Now be more universal about
                   1257:        remembering the last SCSI bus state we called out to each connection,
                   1258:        and call out whenever that state changes and the connection wants a
                   1259:        callout.  When a connection gives us an empty DMA sequence, instead of
                   1260:        aborting just immediately call out.  When a connection is in a DMA
                   1261:        sequence and the bus gets reset, try to reset on behalf of the
                   1262:        connection. 
                   1263: 
                   1264:        * scsi/scsi-cdb.c (tme_scsi_device_cdb_request_sense): Now require
                   1265:        that the valid marker for nonextended senses give the length of the
                   1266:        sense. 
                   1267: 
                   1268:        * scsi/scsi-device.c (tme_scsi_device_target_phase): Now log up to 128
                   1269:        bytes of output in various phases. 
                   1270:        (_tme_scsi_device_cycle): Now log short transfers. 
                   1271:        (tme_scsi_device_target_dsmf): Fixed a comment. 
                   1272: 
                   1273:        * scsi/scsi-disk.c (_tme_scsi_disk_connections_new): Fixed a usage
                   1274:        string. 
                   1275:        (tme_disk,new): Fixed a comment. 
                   1276: 
                   1277:        * serial/ms-mssystems.c: Removed the 3-byte packet support, since it's
                   1278:        apparently only found on the Tadpole SPARCbooks. 
                   1279: 
                   1280:        * serial/serial-ms.c (_tme_serial_ms_serial_config): Now store the
                   1281:        peer's serial configuration. 
                   1282: 
                   1283:        * serial/serial-ms.h: Now store the peer's serial configuration. 
                   1284: 
                   1285:        * tme/connection.h: Now define TME_CONNECTION_TAPE. 
                   1286: 
                   1287:        * tme/generic/Makefile.am: Now install tape.h. 
                   1288: 
                   1289:        * tme/scsi/Makefile.am: Now install scsi-tape.h. 
                   1290: 
                   1291: Thu Jul 31 19:03:16 2003  Matthew Fredette  <[email protected]>
                   1292: 
                   1293:        * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Fixed some uses of dma_in to
                   1294:        dma; caught by gcc -Wuninitialized. 
                   1295: 
                   1296:        * tmesh/tmesh-cmds.c (_tmesh_command_log): Wrapped some otherwise
                   1297:        unused declarations in !TME_NO_LOG. 
                   1298: 
                   1299: Thu Jul 31 01:47:46 2003  Matthew Fredette  <[email protected]>
                   1300: 
                   1301:        * generic/Makefile.am: Now compile mouse.c. 
                   1302: 
                   1303:        * generic/fb.c (tme_fb_xlat_best): Fixed a bug where we wouldn't
                   1304:        reject translation functions that don't match the question. 
                   1305: 
                   1306:        * generic/keyboard.c: Fixed a comment. 
                   1307: 
                   1308:        * generic/mouse.c host/gtk/gtk-mouse.c serial/ms-mssystems.c
                   1309:          serial/serial-ms.c serial/serial-ms.h tme/generic/mouse.h:
                   1310: 
                   1311:          Added. 
                   1312: 
                   1313:        * host/gtk/Makefile.am: Now compile gtk-mouse.c. 
                   1314: 
                   1315:        * host/gtk/gtk-display.c:
                   1316:        * host/gtk/gtk-display.h:
                   1317:        * host/gtk/gtk-keyboard.c: Many changes to add mouse support. 
                   1318: 
                   1319:        * host/gtk/gtk-screen.c: Many changes to improve the user interface. 
                   1320:        Now include a menu for changing the scaling factor.  Fixed bugs with
                   1321:        respect to event masks, mostly by adding an event box. 
                   1322: 
                   1323:        * ic/z8530.c (_tme_z8530_callout): Fixed a bug that caused us to never
                   1324:        check the callouts on channel B. 
                   1325: 
                   1326:        * ic/m68k/m68k-insns.c (tme_m68k_reset): Added a crude implementation
                   1327:        of the reset instruction. 
                   1328: 
                   1329:        * machine/sun2/SUN2-MULTIBUS: Updated. 
                   1330: 
                   1331:        * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_signal): Instead of
                   1332:        aborting, just ignore the RESET signal from the CPU for now. 
                   1333: 
                   1334:        * serial/Makefile.am: Now compile serial-ms.c and ms-mssystems.c. 
                   1335: 
                   1336:        * tme/connection.h: Now define TME_CONNECTION_MOUSE. 
                   1337: 
                   1338: Tue Jul 29 18:33:14 2003  Matthew Fredette  <[email protected]>
                   1339: 
                   1340:        * Makefile.am:
                   1341:        * tme/Makefile.am: Added scsi to SUBDIRS. 
                   1342: 
                   1343:        * configure.in: If long on the target is 64-bits, use it as our 64-bit
                   1344:        type.  Substitute the scsi Makefiles. 
                   1345: 
                   1346:        * bus/multibus/3c400.c (TME_3C400_CSR_PUT_3c400): Corrected a
                   1347:        tme_betoh_u16 into a tme_htobe_u16. 
                   1348: 
                   1349:        * bus/multibus/Makefile.am: Now compile sun-sc.c. 
                   1350: 
                   1351:        * bus/multibus/sun-sc.c generic/disk.c generic/scsi.c
                   1352:          host/posix/posix-disk.c scsi/Makefile.am scsi/acb4000.c
                   1353:          scsi/disk-tme.c scsi/scsi-bus.c scsi/scsi-cdb.c scsi/scsi-device.c
                   1354:          scsi/scsi-disk.c scsi/scsi-msg.c tme/generic/disk.h
                   1355:          tme/generic/scsi.h tme/scsi/Makefile.am tme/scsi/scsi-cdb.h
                   1356:          tme/scsi/scsi-device.h tme/scsi/scsi-disk.h tme/scsi/scsi-msg.h:
                   1357: 
                   1358:          Added. 
                   1359: 
                   1360:        * generic/Makefile.am: Now compile disk.c and scsi.c. 
                   1361: 
                   1362:        * generic/bus-device.c:
                   1363:        * generic/bus-el.c: Fixed a comment. 
                   1364: 
                   1365:        * host/posix/Makefile.am: Now compile posix-disk.c. 
                   1366: 
                   1367:        * host/posix/posix-memory.c:
                   1368:        * host/posix/posix-serial.c: Fixed comments. 
                   1369: 
                   1370:        * ic/mm58167.c: Fixed many significant problems with this emulation,
                   1371:        most notably that the size of the chip was not calculated correctly at
                   1372:        all.  We now report with microsecond resolution, since SunOS's probe
                   1373:        routine requires this. 
                   1374: 
                   1375:        * ic/z8530.c (_tme_z8530_intack): Simplified and fixed bugs in how
                   1376:        variable interrupt vectors are computed.  For now, since there's no
                   1377:        emulation of the IEI pin, we just behave as if it's always tied low,
                   1378:        so we never put any vector on the bus during a hard interrupt
                   1379:        acknowledge. 
                   1380:        (_tme_z8530_bus_cycle): Now ignore all WR0 CRC reset commands.  Now
                   1381:        support the WR0 transmitter reset command.  Now support reads of RR10
                   1382:        and RR14. 
                   1383: 
                   1384:        * ic/m68k/m68k-insns-auto.sh: The movem instructions cannot fault when
                   1385:        the register mask is zero.  Now that we generally have a 64-bit type
                   1386:        available, fixed various bugs in the 64-bit multiply and divide
                   1387:        instructions. 
                   1388: 
                   1389:        * ic/m68k/m68k-insns.c (tme_m68k_movec): Now appropriately mask values
                   1390:        loaded into control registers.  movec only has a long version, and
                   1391:        SunOS on the Sun-2 doesn't necessarily clear the remainder of the data
                   1392:        register it uses to load %sfc and %dfc. 
                   1393: 
                   1394:        * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug
                   1395:        where the T bits weren't cleared.  This bug was found by SunOS on the
                   1396:        sun2, which starts at least init in usermode with tracing enabled. 
                   1397: 
                   1398:        * ic/m68k/m68k-verify.c (tme_m68k_verify_init): Now assume that the
                   1399:        CPU generates 28-bit addresses.  SunOS 3 on the Sun-2 does this. 
                   1400: 
                   1401:        * machine/sun/tme-sun-idprom.pl: Added support for the obscure
                   1402:        Roadrunner-MB1. 
                   1403: 
                   1404:        * machine/sun2/sun2-bwtwo.c: Fixed various comments. 
                   1405:        Because SunOS's probe routine fails otherwise, added support for the
                   1406:        entire 2KB page starting at the CSR to appear undecoded, i.e., to look
                   1407:        like the CSR repeated 1024 times. 
                   1408: 
                   1409:        * machine/sun2/sun2-impl.h: Now define TME_SUN2_DVMA_SIZE_MBMEM and
                   1410:        TME_SUN2_DVMA_SIZE_VME. 
                   1411:        Now make struct tme_sun2_bus_connection public, since the bus DVMA TLB
                   1412:        filler needs to know which bus it's filling for. 
                   1413: 
                   1414:        * machine/sun2/sun2-mainbus.c (_tme_sun2_connections_new): When making
                   1415:        the connections for the mbmem or vme buses, be sure to set the last
                   1416:        address that we decode on the bus, for DVMA purposes. 
                   1417: 
                   1418:        * machine/sun2/sun2-mmu.c (_tme_sun2_bus_tlb_fill): Fixed many bugs
                   1419:        involving filling TLB entries for bus's DVMA regions. 
                   1420:        (_tme_sun2_mmu_pte_set): Added a missing protection. 
                   1421: 
                   1422:        * tme/common.h: Added some crude support for 64-bit math, even for
                   1423:        compilers that offer no 64-bit type at all. 
                   1424: 
                   1425:        * tme/connection.h: Now define TME_CONNECTION_SCSI and
                   1426:        TME_CONNECTION_DISK. 
                   1427: 
                   1428:        * tme/generic/Makefile.am: Added more headers. 
                   1429: 
                   1430:        * tme/generic/bus-device.h: Corrected a comment. 
                   1431: 
                   1432:        * tme/generic/ic.h: Corrected the 64-bit support. 
                   1433: 
                   1434:        * tmesh/tmesh-cmds.c (_tmesh_command_log): Added. 
                   1435: 
                   1436:        * tmesh/tmesh-impl.h: Now define TMESH_COMMAND_LOG. 
                   1437: 
                   1438:        * tmesh/tmesh-input.y: Added support for parsing the `log' command. 
                   1439: 
                   1440: Tue Jul 22 18:30:31 2003  Matthew Fredette  <[email protected]>
                   1441: 
                   1442:        * generic/fb-xlat-auto.sh: Changes to silence gcc -Wuninitialized. 
                   1443:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_lookup): Changes to
                   1444:        silence gcc -Wuninitialized. 
                   1445: 
                   1446:        * libtme/module.c (tme_module_open): Changes to silence gcc
                   1447:        -Wuninitialized. 
                   1448: 
                   1449:        * libtme/threads-sjlj.c (tme_sjlj_dispatch): Declared some locals
                   1450:        volatile to silence gcc's setjmp-related warning. 
                   1451: 
                   1452: Fri Jun 27 21:30:37 2003  Matthew Fredette  <[email protected]>
                   1453: 
                   1454:        * Makefile.am: Added the serial directory to SUBDIRS. 
                   1455:        * configure.in: Many changes to support framebuffer emulation and X11
                   1456:        and gtk elements.  Also added some serial elements support. 
                   1457: 
                   1458:        * generic/Makefile.am: Now create fb-xlat-auto.c and build fb.c and
                   1459:        keyboard.c. 
                   1460: 
                   1461:        * generic/bus-device.c:
                   1462:        * generic/bus-el.c:
                   1463:        * generic/bus.c: Although I hate doing this, various changes to
                   1464:        support a single bus connection connecting to a bus region sparsely. 
                   1465: 
                   1466:        * generic/fb-xlat-auto.sh: Now declare src_bypb to include one more
                   1467:        extra line of data, to make a total of two. 
                   1468:        Fixed a bug where translating and halving would really translate every
                   1469:        line twice.  Now when we reach the end of a line we skip the next
                   1470:        line, to move to the next pair of lines. 
                   1471: 
                   1472:        * generic/fb.c generic/keyboard.c host/gtk/Makefile.am
                   1473:          host/gtk/gtk-display.c host/gtk/gtk-display.h
                   1474:          host/gtk/gtk-keyboard.c host/gtk/gtk-screen.c libtme/hash.c
                   1475:          machine/sun2/sun2-bwtwo.c serial/Makefile.am serial/kb-sun.c
                   1476:          serial/serial-kb.c serial/serial-kb.h tme/hash.h tme/misc.h
                   1477:          tme/generic/fb.h tme/generic/keyboard.h:
                   1478: 
                   1479:          Added. 
                   1480: 
                   1481:        * generic/keyboard.c: Disabled debug output. 
                   1482: 
                   1483:        * host/Makefile.am: Added gtk to DIST_SUBDIRS. 
                   1484: 
                   1485:        * ic/am9513.c (_tme_am9513_th_timer): Removed a newline from a log
                   1486:        statement. 
                   1487: 
                   1488:        * ic/z8530.c (_tme_z8530_channel_reset): Fixed an incorrect reset
                   1489:        value for RR3. 
                   1490:        (_tme_z8530_config): Simply ignore a peer's request to change the
                   1491:        serial configuration. 
                   1492: 
                   1493:        * ic/m68k/m68k-execute.c: To fix a problem where m68k execution could
                   1494:        possibly never yield (by oscillating back and forth between fast and
                   1495:        slow execution, for example) we make sure that we never run more than
                   1496:        _tme_m68k_instruction_burst before checking for external interrupts
                   1497:        and yielding. 
                   1498: 
                   1499:        * ic/m68k/m68k-impl.h: Now in addition to _tme_m68k_instruction_burst,
                   1500:        the maximum burst length, there is
                   1501:        _tme_m68k_instruction_burst_remaining, which is the maximum number of
                   1502:        instructions remaining in the current burst. 
                   1503: 
                   1504:        * ic/m68k/m68k-iset-expand.pl:
                   1505:        * ic/m68k/m68k-opmap-make.pl: Made the RCS keywords, copyright and
                   1506:        license like other files. 
                   1507: 
                   1508:        * ic/m68k/m68k-misc.c (tme_m68k_new): Now initialize the new
                   1509:        _tme_m68k_instruction_burst_remaining struct member. 
                   1510: 
                   1511:        * libtme/Makefile.am: Now compile hash.c, and use the GTK CFLAGS. 
                   1512: 
                   1513:        * libtme/misc.c (tme_misc_tokenize):
                   1514:        (tme_free_string_array): Added. 
                   1515: 
                   1516:        * libtme/module.c (tme_module_open): Now use tme_misc_tokenize to
                   1517:        tokenize. 
                   1518: 
                   1519:        * libtme/threads-sjlj.c: Although I hate doing this, many changes to
                   1520:        support using the GTK event loop. 
                   1521: 
                   1522:        * machine/sun2/Makefile.am: Now build sun2-bwtwo.c. 
                   1523: 
                   1524:        * machine/sun2/SUN2-MULTIBUS: Added commands to create a real physical
                   1525:        console. 
                   1526: 
                   1527:        * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge
                   1528:        interrupts on the obmem bus too, since the bwtwo z8530s are there. 
                   1529: 
                   1530:        * tme/Makefile.am: Now install misc.h and hash.h. 
                   1531: 
                   1532:        * tme/common.h: Now define tme_letoh_u16() and tme_letoh_u32(x). 
                   1533:        Declare tme_free_string_array(). 
                   1534: 
                   1535:        * tme/connection.h: Add connection types for keyboards and
                   1536:        framebuffers. 
                   1537: 
                   1538:        * tme/threads.h: Under _TME_HAVE_GTK, declare tme_threads_gtk_init. 
                   1539: 
                   1540:        * tme/tme.h: Now include <tme/hash.h> and <tme/misc.h>. 
                   1541: 
                   1542:        * tme/generic/Makefile.am: Now install fb.h and keyboard.h. 
                   1543: 
                   1544:        * tme/generic/bus-device.h:
                   1545:        * tme/generic/bus.h: Changes to support a single bus connection
                   1546:        connecting to a bus region sparsely. 
                   1547: 
                   1548:        * tmesh/Makefile.am: Now link with the GTK libraries. 
                   1549: 
                   1550: Fri Jun 27 01:37:57 2003  Matthew Fredette  <[email protected]>
                   1551: 
                   1552:        * generic/fb-xlat-auto.sh: Added. 
                   1553: 
                   1554: Thu Jun 26 13:16:12 2003  Matthew Fredette  <[email protected]>
                   1555: 
                   1556:        * tme/generic/ic.h: Fixed grammar in a comment. 
                   1557: 
                   1558: Sun May 18 02:40:56 2003  Matthew Fredette  <[email protected]>
                   1559: 
                   1560:        * configure.in: Changed the version number to 0.0; this is very alpha. 
                   1561:        There are now fewer include directories under tme/; many unnecessary
                   1562:        headers that belonged to modules were removed. 
                   1563: 
                   1564:        * bus/multibus/3c400.c: No longer include <tme/bus/multibus/3c400.h>. 
                   1565: 
                   1566:        * bus/multibus/Makefile.am generic/Makefile.am host/bsd/Makefile.am
                   1567:          host/posix/Makefile.am ic/Makefile.am ic/m68k/Makefile.am
                   1568:          libtme/Makefile.am machine/sun/Makefile.am machine/sun2/Makefile.am
                   1569:          tmesh/Makefile.am:
                   1570: 
                   1571:          Added library and module versioning. 
                   1572: 
                   1573:        * host/bsd/bsd-bpf.c:
                   1574:        * host/bsd/bsd-if.c: Now include "bsd-impl.h" instead of
                   1575:        <tme/host/bsd.h>. 
                   1576: 
                   1577:        * host/bsd/bsd-impl.h:
                   1578:        * machine/sun/tme-sun-idprom.pl: Added. 
                   1579: 
                   1580:        * machine/sun2/SUN2-MULTIBUS: Changed the extension on the PROM and
                   1581:        IDPROM files from .dat to .bin. 
                   1582: 
                   1583:        * machine/sun2/SUN2-MULTIBUS: Changed the name of the PROM filename to
                   1584:        match the documentation. 
                   1585: 
                   1586:        * tme/Makefile.am: Removed the host and bus include directories; they
                   1587:        don't exist anymore. 
                   1588: 
                   1589: Sat May 17 20:34:07 2003  Matthew Fredette  <[email protected]>
                   1590: 
                   1591:        * acinclude.m4: Added an RCS Id and a short comment. 
                   1592:        * configure.in: Added an RCS Id, the copyright, and license.  Do a
                   1593:        real path search for perl. 
                   1594: 
                   1595:        * libtme/log-prf.c:
                   1596:        * libtme/module.c:
                   1597:        * machine/sun2/sun2-mainbus.c: Changes to silence gcc -Wuninitialized. 
1.1       root     1598: 
                   1599: Fri May 16 21:48:16 2003  Matthew Fredette  <[email protected]>
                   1600: 
1.1.1.2   root     1601:        * Makefile.am TODO acconfig.h configure.in modules bus/Makefile.am
                   1602:          bus/multibus/3c400.c bus/multibus/Makefile.am generic/Makefile.am
                   1603:          generic/bus-device.c generic/bus-el.c generic/bus.c
                   1604:          host/bsd/Makefile.am host/bsd/bsd-bpf.c host/posix/Makefile.am
                   1605:          host/posix/posix-memory.c host/posix/posix-serial.c ic/Makefile.am
                   1606:          ic/am9513.c ic/mm58167.c ic/z8530.c ic/m68k/Makefile.am
                   1607:          ic/m68k/m68010.c ic/m68k/m68k-impl.h ic/m68k/m68k-insns-auto.sh
                   1608:          ic/m68k/m68k-misc.c libtme/Makefile.am libtme/alloc.c
                   1609:          libtme/element.c libtme/log-prf.c libtme/log.c libtme/misc.c
                   1610:          libtme/module.c libtme/threads-sjlj.c machine/Makefile.am
                   1611:          machine/sun/Makefile.am machine/sun/sun-mmu.c
                   1612:          machine/sun2/Makefile.am machine/sun2/SUN2-MULTIBUS
                   1613:          machine/sun2/sun2-impl.h machine/sun2/sun2-mainbus.c
                   1614:          machine/sun2/sun2-mmu.c tme/Makefile.am tme/common.h
                   1615:          tme/connection.h tme/element.h tme/log.h tme/module.h tme/tme.h
                   1616:          tme/tmesh.h tme/generic/bus-device.h tme/generic/bus.h
                   1617:          tme/ic/am9513.h tme/ic/m68k.h tme/ic/mm58167.h tme/ic/z8530.h
                   1618:          tmesh/Makefile.am tmesh/tmesh-cmds.c tmesh/tmesh-impl.h
                   1619:          tmesh/tmesh-input.y tmesh/tmesh-util.c tmesh/tmesh.c:
                   1620: 
                   1621:          By far, this is the worst bulk commit I've ever done.  Many changes
                   1622:          to simplify the element interface as much as possible, to do modules
                   1623:          better, and to do logging better.  Fixed a small number of actual
                   1624:          bugs.  Also converted to modern autoconf and automake, because the
                   1625:          module support requires modern libtool.  Also added the main libtme,
                   1626:          libtmesh, and tmesh itself. 
                   1627: 
                   1628:        * ic/m68k/m68k-verify.c: Now include <stdio.h>. 
1.1       root     1629: 
                   1630: Fri May 16 17:50:17 2003  Matthew Fredette  <[email protected]>
                   1631: 
1.1.1.2   root     1632:        * acinclude.m4 (AC_CHECK_ALIGNOF): Now takes only a size, in bits, to
                   1633:        check the alignment for.  Before, it used to take a string of the form
                   1634:        intN_t, which wouldn't work on systems that don't define an intN_t
                   1635:        type.  When cross-compiling, assume the target requires alignment
                   1636:        equal to the size.  Now use AC_DEFINE_UNQUOTED's third argument to
                   1637:        specify the config.h.in comment. 
                   1638:        (AC_CHECK_SHIFTMAX): Added. 
                   1639:        (AC_SYS_SOCKADDR_SA_LEN): Now use AC_DEFINE_UNQUOTED's third argument
                   1640:        to specify the config.h.in comment. 
1.1       root     1641: 
                   1642: Thu May 15 15:52:08 2003  Matthew Fredette  <[email protected]>
                   1643: 
1.1.1.2   root     1644:        * ic/m68k/m68k-insns-auto.sh: Fixed bugs in the shift and rotate
                   1645:        insns, where we might try to shift by an amount greater than the
                   1646:        maximum meaningful shift for a given size. 
                   1647: 
                   1648: Sat May 10 15:41:23 2003  Matthew Fredette  <[email protected]>
                   1649: 
                   1650:        * acinclude.m4 (AC_CHECK_ALIGNOF): Fixed a bug where this would stop
                   1651:        on the first misalignment, instead of continuing to find the true
                   1652:        minimum alignment.  For example, this would have found the minimum
                   1653:        32-bit alignment to be 4 instead of 2 on a 68000 or 68010, stopping on
                   1654:        the misaligned address 3. 
                   1655: 
                   1656:        * configure.in ic/Makefile.am ic/m68k/Makefile.am machine/Makefile.am
                   1657:          machine/sun2/Makefile.am tme/Makefile.am:
                   1658: 
                   1659:          Some early distribution work. 
                   1660: 
                   1661:        * ic/m68k/m68k-insns-auto.sh:
                   1662:        * ic/m68k/m68k-misc-auto.sh: Fixed some bad macro and type name
                   1663:        references. 
                   1664: 
                   1665:        * ic/m68k/m68k-insns-auto.sh:
                   1666:        * ic/m68k/m68k-misc-auto.sh: Handled the rename of the aligned and
                   1667:        unaligned memory access rwlocking macros, and use the new
                   1668:        tme_memory_sequence_ rwlocking macros.  Generally made things a little
                   1669:        easier to read, although we do rely on the optimizer to do the right
                   1670:        thing somewhat more. 
                   1671: 
1.1       root     1672:        * tme/threads.h: Renamed the memory-access locking functions to be
1.1.1.2   root     1673:        tme_memory_HOW_WHATlock, where HOW is aligned or unaligned, and WHAT
                   1674:        is rd or wr.  Now define the tme_memory_sequence_WHATlock macros, used
                   1675:        when doing a sequence of memory accesses that must appear to be
                   1676:        atomic. 
                   1677:        Now define TME_SEQUENCE_ACCESS_NOT_COSTLIER as TRUE if locking for a
                   1678:        sequence and locking for an aligned access have the same cost, else
                   1679:        define it as FALSE. 
1.1       root     1680: 
                   1681: Sat May 10 00:31:32 2003  Matthew Fredette  <[email protected]>
                   1682: 
1.1.1.2   root     1683:        * ic/m68k/m68k-insns-auto.sh: Overhauled the shift instructions to not
                   1684:        use loops. 
                   1685: 
                   1686: Fri May 09 17:45:06 2003  Matthew Fredette  <[email protected]>
                   1687: 
                   1688:        * ic/m68k/m68k-execute.c: As an optimization, now require the
                   1689:        individual insn functions to use TME_M68K_INSN_CANFAULT if they may
                   1690:        fault, instead of figuring out every time if an insn can fault or not. 
                   1691:        Check that insn functions have set it if they need it, and left it
                   1692:        unset if they do not need it. 
                   1693: 
                   1694:        * ic/m68k/m68k-execute.c: Made some changes to somewhat optimize
                   1695:        certain effective address calculations. 
                   1696: 
                   1697:        * ic/m68k/m68k-impl.h: Now define TME_M68K_INSN_CANFAULT. 
                   1698: 
                   1699:        * ic/m68k/m68k-impl.h: Renumbered the TME_M68K_SIZE_ macros slightly
                   1700:        to enable an optimization on effective address
                   1701:        predecrement/postincrement calculation.  Grew the memory transfer
                   1702:        function arrays to match. 
                   1703:        Moved the generic IC data structure to the top of the m68k structure,
                   1704:        to enable register indexing to happen without an offset. 
                   1705:        Removed _tme_m68k_areg_increment, it's no longer needed. 
                   1706: 
                   1707:        * ic/m68k/m68k-insns-auto.sh:
                   1708:        * ic/m68k/m68k-insns.c: Now use TME_M68K_INSN_CANFAULT where it's
                   1709:        needed.  Also fixed some random restarting bugs in some insns. 
1.1       root     1710: 
1.1.1.2   root     1711:        * ic/m68k/m68k-misc.c: Removed _tme_m68k_areg_increment, it's no
                   1712:        longer needed.  Grew the memory transfer function arrays to match the
                   1713:        renumbering of the TME_M68K_SIZE_ macros, and added some preprocessor
                   1714:        error checking on those macros. 
1.1       root     1715: 
1.1.1.2   root     1716: Fri May 09 14:36:16 2003  Matthew Fredette  <[email protected]>
1.1       root     1717: 
1.1.1.2   root     1718:        * bus/multibus/3c400.c generic/bus-device.c generic/bus-el.c
                   1719:          generic/bus.c host/posix/posix-memory.c ic/am9513.c ic/mm58167.c
                   1720:          ic/z8530.c tme/generic/bus-device.h tme/generic/bus.h:
                   1721: 
                   1722:          Bulk change to no longer require bus connections to have a
                   1723:          power-of-two width.  This is largely a name change, renaming
                   1724:          address_mask to address_last, as nothing depended on the
                   1725:          address_mask being all-bits-one. 
                   1726: 
                   1727:        * bus/multibus/3c400.c (_tme_3c400_callout): Make buffer status values
                   1728:        have the minimum Ethernet frame size. 
                   1729: 
                   1730:        * ic/am9513.c: Now include <stdio.h>, in case
                   1731:        TME_AM9513_TRACK_INT_RATE is defined. 
                   1732: 
                   1733:        * ic/am9513.c: Under TME_AM9513_TRACK_INT_RATE, periodically report
                   1734:        the interrupt rates achieved by the various timers. 
                   1735: 
                   1736:        * machine/sun2/sun2-mmu.c (_tme_sun2_m68k_tlb_fill): Because
                   1737:        supervisor and user accesses go through different context registers,
                   1738:        TLBs are generally only ever valid for the supervisor or the user, but
                   1739:        not both.  Fixed a bug where a TLB for a user-visible page would be
                   1740:        marked as good for the supervisor even if the mapping isn't the same
                   1741:        in the system context. 
                   1742: 
                   1743:        * tme/generic/ethernet.h: Now define TME_ETHERNET_CRC_SIZE. 
                   1744: 
                   1745: Thu May 08 23:37:55 2003  Matthew Fredette  <[email protected]>
                   1746: 
                   1747:        * ic/m68k/m68k-insns-auto.sh: Fixed bugs, found by the verifier, in
                   1748:        the SR and CCR immediate instructions. 
                   1749: 
                   1750:        * ic/m68k/m68k-verify.c: Now keep a short ring of PCs verified. 
                   1751: 
                   1752: Thu May 08 19:22:10 2003  Matthew Fredette  <[email protected]>
                   1753: 
                   1754:        * ic/z8530.c (_tme_z8530_intack): Changes to silence -Wuninitialized. 
                   1755:        * ic/m68k/Makefile.am: No longer define _TME_M68K_OPW_OK. 
                   1756:        * ic/m68k/m68k-execute.c: Changes to support verifying restarted
                   1757:        instructions. 
                   1758: 
                   1759:        * ic/m68k/m68k-impl.h: Fixed the definitions of the dummy
                   1760:        tme_m68k_verify_ macros. 
                   1761: 
                   1762:        * ic/m68k/m68k-impl.h: Now call tme_m68k_verify_end_branch inside
                   1763:        TME_M68K_INSN_BRANCH.  Added a unique identifier member to the
                   1764:        sequence structure.  Made a few functions take a const struct tme_m68k
                   1765:        *.  Made changes to the verifier to support verifying restarted
                   1766:        instructions. 
                   1767: 
                   1768:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug found by the verifier, where
                   1769:        the movem instructions weren't following the EA discipline correctly
                   1770:        and so would transfer to the wrong addresses after a restart. 
                   1771: 
                   1772:        * ic/m68k/m68k-misc.c (tme_m68k_go_slow): Now take a const struct
                   1773:        tme_m68k *. 
1.1       root     1774:        (tme_m68k_sequence_empty):
1.1.1.2   root     1775:        (tme_m68k_sequence_fill): Made the argument that's supposed to be
                   1776:        read-only const.  Under _TME_M68K_VERIFY, save and restore the
                   1777:        sequence unique identifier. 
                   1778: 
                   1779:        * ic/m68k/m68k-verify.c: Many changes to support verifying
                   1780:        instructions that ended only after they were restarted because of one
                   1781:        or more bus faults. 
1.1       root     1782: 
                   1783: Thu May 08 13:35:43 2003  Matthew Fredette  <[email protected]>
                   1784: 
1.1.1.2   root     1785:        * ic/m68k/m68k-execute.c:
                   1786:        * ic/m68k/m68k-impl.h:
                   1787:        * ic/m68k/m68k-misc.c: Replaced _TME_M68K_OPW_OK bits with new
                   1788:        _TME_M68K_VERIFY bits. 
                   1789: 
                   1790:        * ic/m68k/m68k-insns-auto.sh: In all memory access functions, added
                   1791:        calls to the verifier.  Fixed a bug in the divide routines, found by
                   1792:        the verifier - the N flag in set based on the final small quotient,
                   1793:        not on the big one. 
                   1794: 
                   1795:        * ic/m68k/m68k-misc-auto.sh: Now define TME_M68K_IREG32_COUNT. 
1.1       root     1796: 
1.1.1.2   root     1797:        * ic/m68k/m68k-verify.c: Added. 
1.1       root     1798: 
1.1.1.2   root     1799: Wed May 07 02:37:05 2003  Matthew Fredette  <[email protected]>
                   1800: 
                   1801:        * generic/bus-el.c (_tme_bus_connections_new): Store the final bus
                   1802:        interrupt signal number, not the raw ipl. 
1.1       root     1803: 
                   1804:        * ic/z8530.c: Although I hate doing this, too many changes to go into
1.1.1.2   root     1805:        detail.  Much work to support interrupt driven operation. 
                   1806: 
                   1807:        * ic/z8530reg.h: Added definitions for RR3. 
                   1808: 
                   1809:        * ic/m68k/m68k-impl.h: Fixed a serious bug in the TME_M68K_FLAG_SR
                   1810:        definition that would zero part of the interrupt mask. 
                   1811: 
                   1812:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug where negx wasn't preserving
                   1813:        the Z flag if the result was zero. 
                   1814: 
                   1815:        * machine/sun2/sun2-test.c (main): Fixed a bug where the zs0 ipl arg
                   1816:        was getting lost. 
1.1       root     1817: 
1.1.1.2   root     1818: Mon May 05 23:20:11 2003  Matthew Fredette  <[email protected]>
1.1       root     1819: 
1.1.1.2   root     1820:        * TODO: Updated. 
1.1       root     1821: 
1.1.1.2   root     1822:        * generic/serial.c (tme_serial_buffer_copyout): Fixed a bug where if
                   1823:        we were copying to a NULL buffer and the copyout wrapped in the ring
                   1824:        buffer, we would do pointer arithmetic on the NULL. 
1.1       root     1825: 
1.1.1.2   root     1826:        * ic/m68k/m68010.c (_tme_m68010_rte): Fixed a bug where we forgot to
                   1827:        recover the group 0 function code and address for the cycle restart. 
                   1828:        Fixed a bug where we wouldn't reset to extract our internal state from
                   1829:        the stack buffer. 
1.1       root     1830: 
1.1.1.2   root     1831:        * ic/m68k/m68k-insns-auto.sh: Fixed several instructions that trap or
                   1832:        do trap-like things to update PC to be the PC of the following
                   1833:        instruction before trapping. 
                   1834:        (tme_m68k_read_mem): Fixed a memcpy direction bug. 
1.1       root     1835: 
1.1.1.2   root     1836:        * ic/m68k/m68k-insns.c: Fixed several instructions that trap or do
                   1837:        trap-like things to update PC to be the PC of the following
                   1838:        instruction before trapping. 
1.1       root     1839: 
1.1.1.2   root     1840:        * libtme/threads-sjlj.c (tme_sjlj_cond_notify): Fixed a bug where we
                   1841:        would cancel a thread's wait condition instead of notifying the
                   1842:        thread. 
1.1       root     1843: 
1.1.1.2   root     1844:        * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Support the new
                   1845:        expansive MMU PTE protections. 
1.1       root     1846: 
1.1.1.2   root     1847:        * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge
                   1848:        soft interrupts. 
                   1849:        (tme_machine_sun2_clock_new): Fixed a bug where we had the Timer 2
                   1850:        output miswired. 
1.1       root     1851: 
1.1.1.2   root     1852:        * machine/sun2/sun2-mmu.c: Many changes to support the new full
                   1853:        understanding of sun2 PTE protections. 
1.1       root     1854: 
1.1.1.2   root     1855:        * tme/machine/sun.h: Expanded on the generic PTE protections, to
                   1856:        support the more expressive sun2 protections. 
1.1       root     1857: 
1.1.1.2   root     1858: Sun May 04 22:46:12 2003  Matthew Fredette  <[email protected]>
1.1       root     1859: 
1.1.1.2   root     1860:        * ic/am9513.c (_tme_am9513_counters_disarm): Added. 
                   1861:        (_tme_am9513_th_timer): Try to avoid 32-bit integer overflow when
                   1862:        calculating the sleep time. 
                   1863:        (_tme_am9513_bus_cycle): Now support the disarm timers command. 
1.1       root     1864: 
1.1.1.2   root     1865:        * ic/mm58167.c: Changes to silence -Wuninitialized. 
1.1       root     1866: 
1.1.1.2   root     1867:        * ic/mm58167.c:
                   1868:        * tme/ic/mm58167.h: Added. 
1.1       root     1869: 
1.1.1.2   root     1870:        * ic/z8530.c: Although I hate doing this, too much work to go into
                   1871:        detail.  Did more groundwork for eventually generating interrupts. 
1.1       root     1872: 
1.1.1.2   root     1873:        * ic/m68k/m68k-execute.c: Now wrap the execute hook call in
                   1874:        _TME_M68K_OPW_OK. 
1.1       root     1875: 
1.1.1.2   root     1876:        * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug
                   1877:        where the new ipl mask was put into the sr at the wrong position. 
                   1878: 
                   1879:        * machine/sun2/sun2-mainbus.c (tme_machine_sun2_tod_new): Added. 
                   1880: 
                   1881:        * machine/sun2/sun2-mmu.c (_tme_sun2_obbus_fault_handler): Removed. 
1.1       root     1882:        (_tme_sun2_bus_fault_handler):
                   1883:        (_tme_sun2_obio_fault_handler):
1.1.1.2   root     1884:        (_tme_sun2_obmem_fault_handler): Added. 
1.1       root     1885:        (_tme_sun2_multibus_fault_handler): Now just call
1.1.1.2   root     1886:        _tme_sun2_bus_fault_handler. 
                   1887:        (_tme_sun2_tlb_fill_mmu): Use the new bus-specific fault handlers. 
                   1888: 
                   1889:        * machine/sun2/sun2-test.c: Now create and connect the TOD chip. 
                   1890: 
                   1891:        * tme/ic/Makefile.am: Updated. 
1.1       root     1892: 
                   1893: Sat May 03 19:27:07 2003  Matthew Fredette  <[email protected]>
                   1894: 
1.1.1.2   root     1895:        * TODO: Updated. 
                   1896: 
                   1897:        * ic/m68k/m68k-execute.c: Fixed multiple bugs in the handling of brief
                   1898:        EA extension words. 
                   1899: 
                   1900:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug where subx and addx didn't
                   1901:        take the (previous) X flag into account when calculating flags. 
                   1902: 
                   1903:        * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Now
                   1904:        call _tme_sun2_ipl_check whenever the enable register is written. 
                   1905: 
                   1906:        * machine/sun2/sun2-impl.h: Added macros for the enable register bits. 
                   1907: 
                   1908:        * machine/sun2/sun2-mainbus.c (_tme_sun2_ipl_check): Added. 
                   1909:        (_tme_sun2_bus_signal): Now call _tme_sun2_ipl_check to update the ipl
                   1910:        driven to the CPU. 
                   1911: 
                   1912: Fri May 02 17:37:10 2003  Matthew Fredette  <[email protected]>
                   1913: 
                   1914:        * TODO: Updated. 
                   1915: 
                   1916:        * acconfig.h acinclude.m4 bus/multibus/3c400.c
                   1917:          bus/multibus/Makefile.am generic/ethernet.c host/bsd/Makefile.am
                   1918:          host/bsd/bsd-bpf.c host/bsd/bsd-if.c tme/generic/ethernet.h:
                   1919: 
                   1920:          Added. 
                   1921: 
                   1922:        * configure.in: Now check for minimum alignments.  Now check for
                   1923:        various headers and other things needed by the BSD code. 
                   1924: 
                   1925:        * bus/Makefile.am:
                   1926:        * generic/Makefile.am:
                   1927:        * host/Makefile.am:
                   1928:        * tme/generic/Makefile.am: Added support for new components. 
                   1929: 
                   1930:        * bus/multibus/3c400.c (_tme_3c400): Some changes to silence
                   1931:        -Wuninitialized. 
                   1932: 
                   1933:        * host/posix/posix-serial.c: Fixed some indentation, and one 0 to a
                   1934:        TME_OK. 
                   1935: 
1.1       root     1936:        * ic/am9513.c (_tme_am9513_counters_load):
1.1.1.2   root     1937:        (_tme_am9513_counters_arm): Added. 
                   1938:        (_tme_am9513_th_timer): Try to avoid multiplication overflow when
                   1939:        calculating the number of basic ticks that have elapsed.  Try to
                   1940:        handle armed and unarmed counters correctly. 
                   1941:        (_tme_am9513_bus_cycle): Now load and arm counters correctly. 
                   1942:        (tme_ic_am9513_new): Calculate the number of basic ticks in a
                   1943:        millisecond for the benefit of the timer thread. 
                   1944: 
                   1945:        * ic/m68k/m68010.c (_tme_m68010_rte): tme_m68k_rte_finish no longer
                   1946:        touches the sequence at all, so before calling it make sure the
                   1947:        sequence is exactly what it's supposed to be. 
                   1948: 
                   1949:        * ic/m68k/m68k-execute.c: In the fast executor, assert that the ITLB
                   1950:        entry allows fast reading for the current PC or that the PC is one
                   1951:        greater than the last address covered by the entry.  Fixed the
                   1952:        fast-fetch-failed code to more correctly simulate a group 0 exception
                   1953:        and associated RTE. 
                   1954: 
                   1955:        * ic/m68k/m68k-insns-auto.sh: Cleaned up and fixed the code generated
                   1956:        for cmpm, addx, and subx.  At least, cmpm wasn't getting its address
                   1957:        registers postincremented, and addx and subx weren't treating the Z
                   1958:        flag properly.  In the fetch insns, take the address to fetch from as
                   1959:        an argument, instead of using the real ic->tme_m68k_ireg_pc with
                   1960:        tme_m68k_read
1.1       root     1961:        (which could actually update it, if recovering from a group 0
                   1962:        exception!)
                   1963: 
1.1.1.2   root     1964:        * ic/m68k/m68k-misc-auto.sh: The slow-executor fetch macros now call
                   1965:        the fetch insns with the PC to fetch from. 
1.1       root     1966: 
1.1.1.2   root     1967:        * ic/m68k/m68k-misc.c (tme_m68k_rte_finish): No longer do anything
                   1968:        with the sequence at all, just redispatch it. 
                   1969:        (tme_m68k_sequence_fill): Now set the sequence next-transfer to one,
                   1970:        to force a restart in case later code doesn't. 
                   1971:        (tme_m68k_insn_buffer_xfer): The insn buffer is kept in host byte
                   1972:        order, not big-endian byte order. 
                   1973: 
                   1974:        * libtme/threads-sjlj.c: No longer track and relock a mutex that was
                   1975:        held when tme_sjlj_cond_wait_yield was called; the thread itself will
                   1976:        relock the mutex when it is restarted. 
                   1977: 
                   1978:        * machine/sun2/Makefile.am: Now build and link against the Multibus
                   1979:        and BSD libraries. 
                   1980: 
                   1981:        * machine/sun2/sun2-test.c (tme_memdup): Added. 
                   1982:        (connect_elements): Now start the new convention of initializing the
                   1983:        new-connections lists to NULL and letting the new-connections
                   1984:        functions add elements incrementally. 
1.1       root     1985:        (main): Now create the ec0 and bpf0 elements and add them to the
1.1.1.2   root     1986:        machine. 
1.1       root     1987: 
1.1.1.2   root     1988:        * tme/common.h: Added a macro for tme_dup and a prototype for
                   1989:        tme_memdup. 
1.1       root     1990: 
1.1.1.2   root     1991:        * tme/connection.h: Now define TME_CONNECTION_ETHERNET. 
                   1992: 
                   1993:        * tme/threads.h: Fixed a bug where the tme_thread_write macro was
                   1994:        defined to be the read syscall. 
1.1       root     1995: 
                   1996: Tue Apr 29 20:28:05 2003  Matthew Fredette  <[email protected]>
                   1997: 
1.1.1.2   root     1998:        * AUTHORS:
                   1999:        * COPYING:
                   2000:        * NEWS:
                   2001:        * README: Added. 
                   2002: 
                   2003:        * generic/bus-device.c generic/bus-el.c host/posix/posix-serial.c
                   2004:          ic/z8530.c ic/m68k/m68k-misc.c machine/sun2/sun2-mainbus.c:
                   2005: 
                   2006:          In all connections_new functions, add the new connection
                   2007:          possibilities to the list rooted at *_conns, instead of always
                   2008:          replacing the list. 
                   2009: 
                   2010:        * generic/bus-el.c host/posix/posix-memory.c ic/am9513.c
                   2011:          ic/m68k/m68k-execute.c ic/m68k/m68k-insns-auto.sh
                   2012:          ic/m68k/m68k-insns.c machine/sun2/sun2-mainbus.c:
1.1       root     2013: 
1.1.1.2   root     2014:          Changes to silence -Wuninitialized. 
                   2015: 
                   2016:        * generic/serial.c:
                   2017:        * tme/generic/serial.h: Removed all instances of gen- in comments. 
                   2018: 
                   2019:        * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Fixed bugs
                   2020:        in scanning the input for various escape-like sequences, especially
                   2021:        for the escaped break signal. 
                   2022: 
                   2023:        * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Simplified
                   2024:        the code that decides to call out that we are readable. 
1.1       root     2025:        (_tme_posix_serial_ctrl): Always try to call out reads if the
1.1.1.2   root     2026:        connection says it's readable, even if we already knew that. 
                   2027:        (_tme_posix_serial_read): Fixed a bug where we would clear everything
                   2028:        *except* TME_SERIAL_CTRL_OK_READ, instead of clearing only that bit. 
                   2029:        (tme_host_posix_serial_new): Return EINVAL on bad arguments. 
                   2030: 
                   2031:        * ic/Makefile.am: Now define DIST_SUBDIRS. 
                   2032: 
                   2033:        * ic/z8530.c (_tme_z8530_callout): Fixed a bug where we would use an
                   2034:        uninitialized chan variable to find WR9, which actually only exists in
                   2035:        channel A anyways. 
1.1       root     2036:        (_tme_z8530_ctrl): Now always try to call out reads if the connection
1.1.1.2   root     2037:        says it's readable. 
                   2038: 
                   2039:        * libtme/threads-sjlj.c: Wrap all of the rwlock operations in
                   2040:        !TME_NO_DEBUG_LOCKS. 
                   2041:        (tme_sjlj_threads_run): Changes to silence -Wuninitialized. 
1.1       root     2042: 
1.1.1.2   root     2043:        * tme/Makefile.am:
                   2044:        * tme/generic/Makefile.am: Now install roughly the correct files into
                   2045:        the correct place. 
1.1       root     2046: 
1.1.1.2   root     2047:        * tme/atomics.h: Fixed a bug where TME_ATOMIC_POINTER_TYPE was adding
                   2048:        an extra *. 
1.1       root     2049: 
1.1.1.2   root     2050:        * tme/element.h: Fixed bugs in the TME_NO_LOG versions of TME_LOG_X
                   2051:        and TME_LOG_FINISH. 
                   2052: 
                   2053: Tue Apr 29 03:24:17 2003  Matthew Fredette  <[email protected]>
                   2054: 
                   2055:        * TODO:
                   2056:        * machine/sun2/sun2-test.c: Updated. 
                   2057: 
                   2058:        * generic/bus-device.c: Support the new generic bus signal interface. 
1.1       root     2059:        (tme_bus_device_connection_score):
                   2060:        (tme_bus_device_connection_make):
1.1.1.2   root     2061:        (tme_bus_device_connection_break): These are now public. 
1.1       root     2062: 
1.1.1.2   root     2063:        * generic/bus-el.c: Added support for the new generic bus signal
                   2064:        interface. 
                   2065:        (_tme_bus_line_raise): Removed. 
1.1       root     2066:        (_tme_bus_signal):
1.1.1.2   root     2067:        (_tme_bus_intack): Added. 
1.1       root     2068: 
1.1.1.2   root     2069:        * generic/serial.c: Removed all uses of TME_ATOMIC. 
                   2070:        (tme_serial_buffer_copyout): Fixed a bug where we would overwrite
                   2071:        data_flags with -1 early, resulting in our returning no data. 
1.1       root     2072: 
1.1.1.2   root     2073:        * host/posix/posix-serial.c: Too much work to go into detail. 
                   2074:        Everything is at least sketched out. 
1.1       root     2075: 
                   2076:        * ic/am9513.c (_tme_am9513_callout):
1.1.1.2   root     2077:        (_tme_am9513_th_timer): Added. 
                   2078:        (_tme_am9513_bus_cycle): Now properly handle the Clear Toggle Output
                   2079:        command, and log it correctly.  Lock the new mutex on entry, call
                   2080:        _tme_am9513_callout if needed before exit, and unlock the mutex on
                   2081:        exit. 
                   2082:        (tme_ic_am9513_new): Start the new timer thread. 
1.1       root     2083: 
                   2084:        * ic/z8530.c: Too many changes to go into detail.  Highlights include
1.1.1.2   root     2085:        a real bus cycle handler, real channels, real serial connections, real
                   2086:        threads.  Everything seems to be at least sketched out. 
                   2087: 
                   2088:        * ic/z8530reg.h: Added. 
                   2089: 
                   2090:        * ic/m68k/m68k-execute.c: Fixed a bug where we were using the return
                   2091:        value of tme_mutex_trylock as a truth value. 
                   2092: 
                   2093:        * ic/m68k/m68k-misc.c: Changed to support the new generic bus signal
                   2094:        interface and the new m68k bus interrupt interface. 
                   2095: 
                   2096:        * libtme/threads-sjlj.c (tme_sjlj_threads_run): Fixed a bug where we
                   2097:        wouldn't lock the mutex before returning from a condition wait.  Fixed
                   2098:        a bug where we would block in select(2) instead of calling it with a
                   2099:        zero timeout. 
                   2100:        (tme_sjlj_cond_wait_yield): Remember the mutex the thread had locked
                   2101:        so it can be relocked when the thread resumes. 
                   2102:        (tme_sjlj_select_yield): Fixed bugs where we would treat the nfds
                   2103:        argument as the maximum fd, instead of the maximum fd plus one.  Fixed
                   2104:        a bug where we couldn't handle NULL descriptor sets. 
1.1       root     2105:        (tme_sjlj_read_yield):
                   2106:        (tme_sjlj_write_yield):
                   2107:        (tme_sjlj_read_yield):
                   2108:        (tme_sjlj_rwlock_init):
                   2109:        (tme_sjlj_rwlock_lock):
1.1.1.2   root     2110:        (tme_sjlj_rwlock_unlock): Added. 
1.1       root     2111: 
1.1.1.2   root     2112:        * machine/sun2/sun2-impl.h: Now track the interrupts asserted in the
                   2113:        system, and the last ipl asserted to the CPU. 
1.1       root     2114: 
                   2115:        * machine/sun2/sun2-mainbus.c (_tme_sun2_line_reset):
                   2116:        (_tme_sun2_line_halt):
1.1.1.2   root     2117:        (_tme_sun2_line_interrupt): Removed. 
1.1       root     2118:        (_tme_sun2_bus_signal):
1.1.1.2   root     2119:        (_tme_sun2_bus_intack): Added. 
                   2120:        (_tme_sun2_power): Use the generic bus signal interface to reset
                   2121:        everything. 
                   2122:        (tme_machine_sun2_clock_new): Store how the Am9513 output pins are
                   2123:        connected to bus interrupt lines. 
                   2124: 
                   2125:        * machine/sun2/sun2-mmu.c (_tme_sun2_multibus_fault_handler): Added a
                   2126:        hack to avoid an mbmem bus error when accessed through virtual
                   2127:        0xffffffff, which apparently happens in the PROM NMI routine when it
                   2128:        polls the keyboard, even if it didn't probe a keyboard. 
                   2129: 
                   2130:        * tme/element.h: Fixed various const to _tme_const. 
                   2131: 
                   2132:        * tme/threads.h: Redid the setjmp/longjmp rwlock operations.  Added
                   2133:        various new function prototypes and macros. 
                   2134: 
                   2135:        * tme/generic/bus-device.h: Support the new generic bus signal
                   2136:        interface.  The tme_bus_device_connection_score,
                   2137:        tme_bus_device_connection_make, and tme_bus_device_connection_break
                   2138:        functions are now public.  Fixed a const to _tme_const. 
                   2139: 
                   2140:        * tme/generic/bus.h: Added the new generic bus signal and interrupt
                   2141:        acknowledge interfaces.  Fixed various const to _tme_const. 
                   2142: 
                   2143:        * tme/generic/serial.h: Now define TME_SERIAL_CTRL_OK_READ.  Removed
                   2144:        the write method from a serial connection.  All data transfer happens
                   2145:        with reads, with control signals to indicate when reads are OK. 
                   2146:        Removed the TME_ATOMIC use in struct tme_serial_buffer. 
1.1       root     2147:        (tme_serial_buffer_is_empty):
1.1.1.2   root     2148:        (tme_serial_buffer_is_full): Added. 
                   2149: 
                   2150:        * tme/ic/am9513.h: struct tme_am9513_socket now holds the basic clock
                   2151:        provided to the chip, and a mapping of its output pins to bus signals. 
                   2152:        Fixed a const to _tme_const. 
                   2153: 
                   2154:        * tme/ic/m68k.h: Now define some m68k IPL constant macros.  Add the
                   2155:        new m68k bus interrupt method.  Fixed various const to _tme_const. 
                   2156: 
                   2157:        * tme/ic/z8530.h: Made the channel letters lowercase in structure
                   2158:        member names.  Fixed a const to _tme_const. 
                   2159: 
                   2160: Sat Apr 26 21:46:16 2003  Matthew Fredette  <[email protected]>
                   2161: 
                   2162:        * Makefile.am TODO configure.in generic/Makefile.am
                   2163:          generic/bus-device.c generic/bus-el.c generic/bus.c generic/serial.c
                   2164:          host/posix/posix-memory.c host/posix/posix-serial.c ic/am9513.c
                   2165:          ic/z8530.c ic/i386/i386-decode.c ic/i386/i386-misc-auto-make.sh
                   2166:          ic/i386/i386-opmaps-make.sh ic/i386/i386-save.c
                   2167:          ic/i386/i386-uinsns-auto-make.sh ic/i386/i386-uinsns.c
                   2168:          ic/i386/i386.h tme/generic/Makefile.am tme/generic/bus-device.h
                   2169:          tme/generic/bus.h tme/generic/ic.h tme/generic/serial.h
                   2170:          tme/ic/am9513.h tme/ic/z8530.h:
                   2171: 
                   2172:          Added. 
                   2173: 
                   2174:        * bus/Makefile.am host/posix/Makefile.am ic/m68k/Makefile.am
                   2175:          machine/Makefile.am machine/sun/Makefile.am machine/sun2/Makefile.am
                   2176:          machine/sun2/sun2-test.c:
1.1       root     2177: 
1.1.1.2   root     2178:          Updated. 
1.1       root     2179: 
1.1.1.2   root     2180:        * bus/bus-device.c bus/bus.c tme/bus-device.h tme/bus.h tme/ic.h:
                   2181: 
                   2182:          Removed. 
                   2183: 
                   2184:        * host/posix/memory.c: Renamed to posix-memory.c. 
                   2185: 
                   2186:        * ic/m68k/m68k-execute.c: Under _TME_M68K_EXECUTE_FAST, at the
                   2187:        beginning of each instruction we do have to check if our ITLB has been
                   2188:        invalidated, as it might have been by some random (control) memory
                   2189:        cycle we just did. 
                   2190:        Fixed bugs in the predecrement and postincrement EA handlers. 
                   2191: 
                   2192:        * ic/m68k/m68k-impl.h:
                   2193:        * machine/sun2/sun2-impl.h: Now include <tme/generic/ic.h>. 
                   2194: 
                   2195:        * ic/m68k/m68k-impl.h: Added support for logging. 
                   2196: 
                   2197:        * ic/m68k/m68k-insns-auto.sh: Fixed a serious movem bug where we would
                   2198:        start at bit 1 in the mask, and not bit 0. 
                   2199:        In all memory transfer functions, log the transfer.  Made the bus
                   2200:        cycle functions "work correctly".  Fixed bugs in the generated divide
                   2201:        instructions. 
                   2202: 
                   2203:        * ic/m68k/m68k-insns.c (tme_m68k_swap): Fixed a bug where this
                   2204:        wouldn't work on big-endian systems. 
1.1       root     2205:        (tme_m68k_link):
1.1.1.2   root     2206:        (tme_m68k_unlk): Fixed serious bugs where we simply didn't do what
                   2207:        these instructions are supposed to do. 
1.1       root     2208: 
1.1.1.2   root     2209:        * ic/m68k/m68k-iset.txt: On the 68010 and up, the move_from_sr and
                   2210:        move_from_ccr instructions don't read memory before writing it.  Fixed
                   2211:        bugs in the encoding of the register bit-shifting with a register
                   2212:        count instructions. 
                   2213: 
                   2214:        * ic/m68k/m68k-misc.c (tme_m68k_idle): Use the renamed
                   2215:        tme_cond_wait_yield function. 
                   2216:        (tme_m68k_new): Store the element in the IC. 
                   2217:        (tme_m68k_go_slow): Use the TME_M68K_TLB_OK_FAST_READ to check for a
                   2218:        bad TLB entry. 
                   2219:        (tme_m68k_exception_process): Don't insist on there being exceptions
                   2220:        to process.  CPU-specific exception processors may handle them all,
                   2221:        yet still use this function to redispatch. 
                   2222:        (_tme_m68k_execute_hook): Added. 
1.1       root     2223: 
                   2224:        * libtme/threads-sjlj.c (_tme_sjlj_then):
                   2225:        (_tme_sjlj_timeout):
                   2226:        (tme_sjlj_sleep_yield):
1.1.1.2   root     2227:        (tme_sjlj_select_yield): Added. 
                   2228:        (tme_sjlj_threads_run): Cleaned up the threads dispatcher to support
                   2229:        threads waiting on classic select(2) fd sets,
                   2230:        (tme_sjlj_cond_wait_yield): Renamed from tme_sjlj_cond_wait. 
                   2231:        (tme_sjlj_sleep): This function no longer yields. 
                   2232: 
                   2233:        * machine/sun/sun-mmu.c: Added some logging. 
                   2234:        Disabled the explicit SEGINV support, for now.  It appears that the
                   2235:        hardware MMU doesn't have a notion of an invalid PMEG.  Now call the
                   2236:        post-MMU TLB fillers with the PTE struct and the virtual address. 
                   2237: 
                   2238:        * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Don't
                   2239:        bother to fill the segmap register unless this is a read. 
1.1       root     2240: 
1.1.1.2   root     2241:        * machine/sun2/sun2-impl.h: Now include <tme/generic/bus.h>.  Added
                   2242:        some support for logging. 
                   2243: 
                   2244:        * machine/sun2/sun2-mainbus.c: Added some support for logging. 
1.1       root     2245:        (tme_machine_sun2_clock_new):
1.1.1.2   root     2246:        (tme_machine_sun2_zs_new): Added. 
1.1       root     2247: 
                   2248:        * machine/sun2/sun2-mmu.c: Too much to go into detail.  Highlights:
1.1.1.2   root     2249:        Added some logging support. 
                   2250:        Made the bus error behavior more correct.  On the sun2, obio and obmem
                   2251:        don't generate bus errors.  Now the post-MMU TLB filler takes the
                   2252:        original PTE entry and the original virtual address. 
                   2253: 
                   2254:        * tme/connection.h: Now define TME_CONNECTION_SERIAL. 
                   2255: 
                   2256:        * tme/element.h: Added logging support. 
                   2257: 
1.1       root     2258:        * tme/ic.h: Now include <tme/generic/bus.h>
1.1.1.2   root     2259: 
                   2260:        * tme/threads.h: Defined more of the tme threads API. 
                   2261: 
                   2262:        * tme/ic/m68k.h: Now include <tme/generic/bus.h>. 
                   2263: 
                   2264:        * tme/machine/sun.h: Added support for logging. 
                   2265:        Changed the interface to pass the whole PTE struct to the post-MMU TLB
                   2266:        fillers. 
1.1       root     2267: 
                   2268: Sat Apr 26 14:44:07 2003  Matthew Fredette  <[email protected]>
                   2269: 
1.1.1.2   root     2270:        * bus/bus.c (tme_bus_cycle_xfer): Fixed a bug where we used
                   2271:        cycle_writer to get the reader's port size.  When indexing bus router
                   2272:        arrays, we have to subtract out the participant's least port lane,
                   2273:        since the arrays don't include information for lanes not connected to
                   2274:        the participant. 
                   2275: 
                   2276: Wed Apr 23 19:31:01 2003  Matthew Fredette  <[email protected]>
                   2277: 
                   2278:        * bus/Makefile.am bus/bus-device.c bus/bus.c host/Makefile.am
                   2279:          host/posix/Makefile.am host/posix/memory.c ic/Makefile.am
                   2280:          ic/m68k/m68k-impl.h libtme/Makefile.am libtme/threads-sjlj.c
                   2281:          machine/sun/Makefile.am machine/sun/sun-mmu.c
                   2282:          machine/sun2/Makefile.am machine/sun2/sun2-control.c
                   2283:          machine/sun2/sun2-impl.h machine/sun2/sun2-mainbus.c
                   2284:          machine/sun2/sun2-mmu.c machine/sun2/sun2-test.c tme/Makefile.am
                   2285:          tme/atomics.h tme/bus-device.h tme/bus.h tme/common.h
                   2286:          tme/connection.h tme/element.h tme/ic.h tme/threads.h
                   2287:          tme/ic/Makefile.am tme/ic/m68k.h tme/machine/Makefile.am
                   2288:          tme/machine/sun.h:
                   2289: 
                   2290:          Added. 
                   2291: 
1.1       root     2292:        * ic/m68k/m68010.c (_tme_m68010_exception):
1.1.1.2   root     2293:        (_tme_m68010_rte): Added. 
1.1       root     2294: 
1.1.1.2   root     2295:        * ic/m68k/m68k-bus-auto.sh: Now generates the combined input/output
                   2296:        bus routers. 
                   2297: 
                   2298:        * ic/m68k/m68k-execute.c:
                   2299:        * ic/m68k/m68k-insns.c:
                   2300:        * ic/m68k/m68k-misc.c: Although I hate doing this, "too many changes
                   2301:        to list."
                   2302: 
                   2303:        * ic/m68k/m68k-insns-auto.sh: Some minor copyright and cosmetic fixes. 
                   2304:        Updated the bus cycle functions to support the latest generic bus
                   2305:        cycle idea. 
                   2306: 
                   2307:        * ic/m68k/m68k-iset-expand.pl: When the EA is an immediate, just emit
                   2308:        the immediate information and skip the EA information - we don't want
                   2309:        to use the EA path in this case. 
                   2310: 
                   2311:        * ic/m68k/m68k-iset.txt: moveq is now its own insn. 
                   2312: 
                   2313:        * ic/m68k/m68k-misc-auto.sh: Copyright sweep. 
                   2314: 
                   2315:        * ic/m68k/m68k-opmap-make.pl: Fixed some random bugs, and correctly
                   2316:        handle the case where EA and immediate operand must be undefined for a
                   2317:        pattern, to avoid using the EA and immediate operand in any root
                   2318:        entry. 
                   2319: 
                   2320:        * ic/m68k/m68k.h: Removed. 
1.1       root     2321: 
                   2322: Sun Apr 20 21:33:05 2003  Matthew Fredette  <[email protected]>
                   2323: 
1.1.1.2   root     2324:        * ic/m68k/m68k-bus-auto.sh: Added. 
1.1       root     2325: 
                   2326: Fri Apr 18 04:56:36 2003  Matthew Fredette  <[email protected]>
                   2327: 
1.1.1.2   root     2328:        * ic/m68k/m68k-insns-auto.sh: Added support for generating the moveq32
                   2329:        insn.  Cleaned up and fixed some bugs in the bus cycle functions. 
1.1       root     2330: 
1.1.1.2   root     2331:        * ic/m68k/m68k-misc-auto.sh: Cleaned up the set of registers that we
                   2332:        define.  Added better locking support to the instruction fetch macros. 
1.1       root     2333: 
                   2334: Tue Apr 15 13:32:37 2003  Matthew Fredette  <[email protected]>
                   2335: 
1.1.1.2   root     2336:        * ic/m68k/m68k-insns-auto.sh: Unfortunately, too much work to list in
                   2337:        detail.  Improved the arithmetic function flag-setting code to compile
                   2338:        well on i386 with gcc -O2.  Added many special-purpose memory read and
                   2339:        write functions, and finally introduced the general bus-cycle read and
                   2340:        write functions.  Added many new instructions, including multiply and
                   2341:        divide. 
1.1       root     2342: 
                   2343: Sat Apr 05 18:47:38 2003  Matthew Fredette  <[email protected]>
                   2344: 
1.1.1.2   root     2345:        * machine/Makefile.am: Added. 
1.1       root     2346: 
1.1.1.2   root     2347: Tue Apr 01 20:13:40 2003  Matthew Fredette  <[email protected]>
1.1       root     2348: 
1.1.1.2   root     2349:        * ic/m68k/Makefile.am: Build decoders for the 68000, 68010, and 68020. 
                   2350:        * ic/m68k/m68k-iset-expand.pl: Added a very basic preprocessor to
                   2351:        support generating different instruction sets for different CPUs.  Now
                   2352:        whenever an instruction wants the EA, its operand is eax.32 even if
                   2353:        the known EA is address register indirect. 
1.1       root     2354: 
1.1.1.2   root     2355:        * ic/m68k/m68k-iset.txt: This should be the complete integer
                   2356:        instruction set for the 68000, 68010, 68020, and 68030. 
1.1       root     2357: 
1.1.1.2   root     2358:        * ic/m68k/m68k-opmap-make.pl: Added comments, and reworked to support
                   2359:        compiling instruction sets for different CPUs together, reusing
                   2360:        submaps and opcode maps whenever possible. 
1.1       root     2361: 
1.1.1.2   root     2362:        * ic/m68k/m68k.h: Before the -impl.h split. 
1.1       root     2363: 
                   2364: Sun Mar 30 22:04:15 2003  Matthew Fredette  <[email protected]>
                   2365: 
1.1.1.2   root     2366:        * ic/m68k/Makefile.am ic/m68k/m68010.c ic/m68k/m68k-execute.c
                   2367:          ic/m68k/m68k-insns-auto.sh ic/m68k/m68k-insns.c
                   2368:          ic/m68k/m68k-iset-expand.pl ic/m68k/m68k-iset.txt
                   2369:          ic/m68k/m68k-misc-auto.sh ic/m68k/m68k-misc.c
                   2370:          ic/m68k/m68k-opmap-make.pl ic/m68k/m68k.h:
1.1       root     2371: 
1.1.1.2   root     2372:          Added. 

unix.superglobalmegacorp.com

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