--- tme/ChangeLog 2018/04/24 16:37:52 1.1.1.1 +++ tme/ChangeLog 2018/04/24 16:37:52 1.1.1.2 @@ -1,846 +1,1379 @@ -Sun May 18 00:07:59 2003 Matthew Fredette +Wed Oct 29 02:03:26 2003 Matthew Fredette + + * Release 0.2 out. - * Release 0.0 out. + * host/gtk/gtk-screen.c: Some quick changes for GTK 2 compatibility. - * configure.in: Changed the version number to 0.0; this is very alpha. - There are now fewer include directories under tme/; many - unnecessary headers that belonged to modules were removed. - - * bus/multibus/3c400.c: No longer include . - * bus/multibus/Makefile.am: Added library and module versioning. - * generic/Makefile.am: Added library and module versioning. - * host/bsd/Makefile.am: Added library and module versioning. - * host/bsd/bsd-bpf.c: Now include "bsd-impl.h" instead of . - * host/bsd/bsd-if.c: Now include "bsd-impl.h" instead of . - * host/bsd/bsd-impl.h: Added. - * host/posix/Makefile.am: Added library and module versioning. - * ic/Makefile.am: Added library and module versioning. - * ic/m68k/Makefile.am: Added library and module versioning. - * libtme/Makefile.am: Added library and module versioning. - * machine/sun/Makefile.am: Added library and module versioning. - * machine/sun/tme-sun-idprom.pl: Added. - * machine/sun2/Makefile.am: Added library and module versioning. - * machine/sun2/SUN2-MULTIBUS: Changed the extension on the PROM and IDPROM - files from .dat to .bin. - - * machine/sun2/SUN2-MULTIBUS: Changed the name of the PROM filename to match the documentation. - * tme/Makefile.am: Removed the host and bus include directories; they don't exist anymore. - * tmesh/Makefile.am: Added library and module versioning. - -Sat May 17 20:16:06 2003 Matthew Fredette - - * acinclude.m4: Added an RCS Id and a short comment. - * configure.in: Added an RCS Id, the copyright, and license. - Do a real path search for perl. - - * libtme/log-prf.c: Changes to silence gcc -Wuninitialized. - * libtme/module.c: Changes to silence gcc -Wuninitialized. - * machine/sun2/sun2-mainbus.c: Changes to silence gcc -Wuninitialized. +Sat Oct 25 17:08:02 2003 Matthew Fredette + + * ic/am9513.c ic/mm58167.c ic/z8530.c ic/z8530reg.h + ic/m68k/m68k-execute.c ic/m68k/m68k-insns.c ic/m68k/m68k-iset.txt + ic/m68k/m68k-misc.c ic/m68k/m68k-verify.c tmesh/tmesh-cmds.c + tmesh/tmesh-util.c: + + RCS Id, header comment, and license sweep. + +Thu Oct 16 03:02:11 2003 Matthew Fredette + + * configure.in: Now check for size_t. + Now make sure that defines BIOCSHDRCMPLT before deciding + that bpf support is present. + + * generic/bus.c generic/keyboard.c host/bsd/bsd-bpf.c + host/bsd/bsd-if.c host/gtk/gtk-display.h host/gtk/gtk-keyboard.c + host/posix/posix-tape.c ic/am9513.c ic/m68k/m68k-impl.h + libtme/log-prf.c machine/sun2/sun2-mmu.c scsi/scsi-cdb.c + scsi/scsi-tape.c serial/kb-sun.c serial/serial-kb.c + serial/serial-ms.c tme/generic/keyboard.h tme/scsi/scsi-device.h + tmesh/tmesh-cmds.c tmesh/tmesh.c: + + Fixed many small bugs caught by the gcc3 -Wall -Wuninitialized. + + * host/posix/posix-disk.c: Fixed various type problems found by gcc3. + + * scsi/acb4000.c (_tme_acb4000_cdb_bad): Fixed a bug where we set the + amount of valid sense to TRUE instead of to a byte count. + + * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Work around an aliasing + warning. + + * tme/common.h: Fixed a bug where tme_value64_set had a conditional + with two different result types. + When included by the implementation, now try to bring in standard + headers to get string and memory function prototypes. Added an + incomplete list of prototypes for when standard headers aren't + available. + +Mon Sep 29 11:42:56 2003 Matthew Fredette + + * generic/fb-xlat-auto.sh: Added many comments, clarified some obscure + code, and fixed a bug where unoptimized halving translators wouldn't + shift the source FIFOs by two pixels when they had to. + +Wed Sep 10 01:49:22 2003 Matthew Fredette + + * generic/fb-xlat-auto.sh: Fixed various bugs when the destination + FIFOs may not be aligned, and when doubling. These bugs were mostly + found by inspection, and the fixes haven't been tested. + +Mon Sep 01 14:58:57 2003 Matthew Fredette + + * configure.in: Changed the version number. + Now only build the bsd host modules on BSD-like systems. + + * generic/keyboard.c (_tme_keyboard_buffer_in0): Now examine any + keycode on the user's event to determine if an earlier press of a + different keysym from the same keycode has actually released. + + * host/gtk/gtk-display.h: Now keep a mapping from keysym to keycode, + for those keysyms that can only be generated by one keycode. + + * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_x11_new): + (_tme_gtk_keyboard_key_event): + (_tme_gtk_keyboard_new): Now keep a mapping from keysym to keycode, + for those keysyms that can only be generated by one keycode, and add + that keycode to key events. + + * host/posix/posix-tape.c: Some changes to silence gcc + -Wuninitialized. + + * host/posix/posix-tape.c (_tme_posix_tape_xfer1): When we hit the end + of the media, don't try to skip ahead to a nonexistent next segment. + + * libtme/hash.c (_tme_hash_lookup_internal): When the lookup succeeds, + be sure to return the handle the bucket. + + * libtme/log.c: Fixed many of the non-stdarg declarations of the + variable-argument functions. + + * machine/sun2/SUN2-MULTIBUS: Now set a fixed key rate on kbd0, to + work around a bug in NetBSD where only the first of simultaneously + received keycodes will be processed. + + * serial/serial-kb.c (_tme_serial_kb_callout): Cleaned up the code + that translates keyboard events into serial data, and added support + for rate-limiting. + (_tme_serial_kb_th_rate): Added. + (_tme_serial_kb_serial_read): + ((tme_serial_,kb,keyboard): Added support for rate-limiting. + + * serial/serial-kb.h: Added various members to control rate-limiting. + + * tme/generic/keyboard.h: A keyboard event for a keysym can now + include the related keycode. This is for handling the case of a key + release giving a different keysym than the key press did because + modifiers changed in between. + +Sat Aug 23 13:50:34 2003 Matthew Fredette + + * generic/Makefile.am: Be sure to distribute fb-xlat-auto.sh. + * generic/keyboard.c (_tme_keyboard_debug): + (tme_keyboard_buffer_new): Changes to support logging debug messages. + + * host/gtk/Makefile.am: + * serial/Makefile.am: + * tme/generic/Makefile.am: Added some headers that weren't getting + distributed. + + * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_new): Allow the keyboard + buffer to log messages using our log handle. + + * host/posix/posix-tape.c: Changes to silence various gcc warnings. + + * libtme/module.c: Added a hack to support older installed libltdls + that don't define lt_ptr. + + * libtme/threads-sjlj.c: Fixed uses of struct fd_set. + + * tme/common.h: Now include for the byteswapping + functions. + + * tme/generic/keyboard.h: Users can now give a log handle to the + keyboard buffer, for logging debug messages. + +Fri Aug 22 16:39:30 2003 Matthew Fredette + + * serial/serial-kb.c (tme_serial_,kb,keyboard): Give the element's log + handle to the keyboard buffer, to enable debugging. + +Tue Aug 12 23:00:40 2003 Matthew Fredette + + * machine/sun/Makefile.am: Now install sun-keyboards.txt and + my-sun-macros.txt. + + * machine/sun/my-sun-macros.txt: + * machine/sun/sun-keyboards.txt: Added. + + * machine/sun2/Makefile.am: Removed some old targets and dependencies. + + * machine/sun2/SUN2-MULTIBUS: Reorganized and added more comments. + As-is, this now represents the common case of local disk, no network. + +Fri Aug 08 13:33:45 2003 Matthew Fredette + + * tmesh/tmesh.c (main): Added support for the --noninteractive option. + Fixed a bug where we wouldn't report meaningful file and line number + information on early errors. + +Thu Aug 07 22:14:46 2003 Matthew Fredette + + * bus/multibus/sun-sc.c (_tme_sun_sc_bus_cycle_data_reg): Added. + (_tme_sun_sc_bus_cycle_data): + (_tme_sun_sc_bus_cycle_cmd_stat): Now use + _tme_sun_sc_bus_cycle_data_reg to run the bus cycle. + (_tme_sun_sc_tlb_fill): The data register can't allow fast reading. + + * host/posix/posix-disk.c (_tme_posix_disk_buffer_get): Now honor a + device's block size. + (tme_host_posix,disk): If the disk image is a character device, see if + it has a minimum block size. + + * host/posix/posix-tape.c (__tme_posix_tape_command): Fixed a bug + where an error return value wouldn't get returned. Fixed a bug where + a LOAD control would get called out even when an error occured during + loading. + + * scsi/emulexmt02.c: Replaced blocksize with block_size for + consistency. + (_tme_emulexmt02_cdb_block_limits): Added. + (tme_scsi,tape): Now handle the BLOCK LIMITS command. + + * scsi/scsi-cdb.c (tme_scsi_device_cdb_illegal): Added. + (_tme_scsi_device_make_inquiry_string): Added. + (tme_scsi_device_make_inquiry_data): Added. + (tme_scsi_device_cdb_inquiry): Removed. + + * scsi/scsi-device.c (tme_scsi_device_address_lun_aware): Always allow + an INQUIRY command, even for a LUN that isn't defined. + (tme_scsi_device_new): Set a NULL handler for the INQUIRY command by + default. + + * scsi/scsi-disk.c: Renamed the tme-scsi-2 disk type to tme-scsi-1, to + reflect that it's a SCSI-1 disk. + (tme_scsi_disk_cdb_inquiry): Added. + (tme_scsi_disk_cdb_mode_sense): + (tme_scsi_disk_cdb_start_stop): + (tme_scsi_disk_cdb_prevent_allow): + (tme_scsi_disk_cdb_read_capacity): Crudely implemented these commands. + (tme_scsi_disk_cdb_read1): + (tme_scsi_disk_cdb_write1): Implemented these commands. + (_tme_scsi_disk_control): Made public. + (_tme_scsi_disk_connection_break): Made public. + (_tme_scsi_disk_connection_make): Made public. + (_tme_scsi_disk_connections_new): Made public. + (tme_scsi,disk): Install the disk handler for the INQUIRY command. + + * scsi/scsi-tape.c (tme_scsi_tape_cdb_inquiry): Added. + (tme_scsi_tape_cdb_load_unload): + ((tme_scsi_tape_cdb_prevent_allow): Made these command handlers do + nothing, for now. + (tme_scsi,tape): Install the tape handler for the INQUIRY command. + + * tme/generic/disk.h: Define some disk controls. + + * tme/scsi/scsi-cdb.h: Define various macros, types, and prototypes + for generating INQUIRY response data. + + * tme/scsi/scsi-disk.h: Added some prototypes for some now-public + functions. + + * tme/scsi/scsi-tape.h: Added a prototype for + tme_scsi_tape_cdb_inquiry. + +Tue Aug 05 03:41:31 2003 Matthew Fredette + + * bus/multibus/sun-sc.c (_tme_sun_sc_scsi_cycle): If we're not + starting DMA, be sure to call out a wait-change cycle instead, + otherwise we can miss SCSI bus transitions. + + * generic/Makefile.am: Now compile tape.c + + * generic/tape.c host/posix/posix-tape.c scsi/emulexmt02.c + scsi/scsi-tape.c tme/generic/tape.h tme/scsi/scsi-tape.h: + + Added. + + * host/posix/Makefile.am: Now compile posix-tape.c. + + * ic/z8530.c (_tme_z8530_bus_cycle): Added support for the WR0 reset + Rx interrupt command. + + * ic/m68k/m68k-impl.h: Now always declare tme_m68k_verify_hook. + + * ic/m68k/m68k-insns-auto.sh: Fixed a bug in the V bit calculation in + the asl insns. + + * ic/m68k/m68k-misc.c (tme_m68k_verify_hook): Now always compile this + function. + + * ic/m68k/m68k-verify.c (_tme_m68k_verify_end): Ignore the T bits when + verifying %sr. + + * machine/sun2/SUN2-MULTIBUS: Updated. + + * scsi/Makefile.am: Now compile emulexmt02.c and scsi-tape.c. + + * scsi/acb4000.c (_tme_acb4000_address_lun): When marking a + nonextended sense as valid we now have to indicate how many bytes it + contains. + + * scsi/acb4000.c: + * tme/scsi/scsi-device.h: Fixed a comment. + + * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Now be more universal about + remembering the last SCSI bus state we called out to each connection, + and call out whenever that state changes and the connection wants a + callout. When a connection gives us an empty DMA sequence, instead of + aborting just immediately call out. When a connection is in a DMA + sequence and the bus gets reset, try to reset on behalf of the + connection. + + * scsi/scsi-cdb.c (tme_scsi_device_cdb_request_sense): Now require + that the valid marker for nonextended senses give the length of the + sense. + + * scsi/scsi-device.c (tme_scsi_device_target_phase): Now log up to 128 + bytes of output in various phases. + (_tme_scsi_device_cycle): Now log short transfers. + (tme_scsi_device_target_dsmf): Fixed a comment. + + * scsi/scsi-disk.c (_tme_scsi_disk_connections_new): Fixed a usage + string. + (tme_disk,new): Fixed a comment. + + * serial/ms-mssystems.c: Removed the 3-byte packet support, since it's + apparently only found on the Tadpole SPARCbooks. + + * serial/serial-ms.c (_tme_serial_ms_serial_config): Now store the + peer's serial configuration. + + * serial/serial-ms.h: Now store the peer's serial configuration. + + * tme/connection.h: Now define TME_CONNECTION_TAPE. + + * tme/generic/Makefile.am: Now install tape.h. + + * tme/scsi/Makefile.am: Now install scsi-tape.h. + +Thu Jul 31 19:03:16 2003 Matthew Fredette + + * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Fixed some uses of dma_in to + dma; caught by gcc -Wuninitialized. + + * tmesh/tmesh-cmds.c (_tmesh_command_log): Wrapped some otherwise + unused declarations in !TME_NO_LOG. + +Thu Jul 31 01:47:46 2003 Matthew Fredette + + * generic/Makefile.am: Now compile mouse.c. + + * generic/fb.c (tme_fb_xlat_best): Fixed a bug where we wouldn't + reject translation functions that don't match the question. + + * generic/keyboard.c: Fixed a comment. + + * generic/mouse.c host/gtk/gtk-mouse.c serial/ms-mssystems.c + serial/serial-ms.c serial/serial-ms.h tme/generic/mouse.h: + + Added. + + * host/gtk/Makefile.am: Now compile gtk-mouse.c. + + * host/gtk/gtk-display.c: + * host/gtk/gtk-display.h: + * host/gtk/gtk-keyboard.c: Many changes to add mouse support. + + * host/gtk/gtk-screen.c: Many changes to improve the user interface. + Now include a menu for changing the scaling factor. Fixed bugs with + respect to event masks, mostly by adding an event box. + + * ic/z8530.c (_tme_z8530_callout): Fixed a bug that caused us to never + check the callouts on channel B. + + * ic/m68k/m68k-insns.c (tme_m68k_reset): Added a crude implementation + of the reset instruction. + + * machine/sun2/SUN2-MULTIBUS: Updated. + + * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_signal): Instead of + aborting, just ignore the RESET signal from the CPU for now. + + * serial/Makefile.am: Now compile serial-ms.c and ms-mssystems.c. + + * tme/connection.h: Now define TME_CONNECTION_MOUSE. + +Tue Jul 29 18:33:14 2003 Matthew Fredette + + * Makefile.am: + * tme/Makefile.am: Added scsi to SUBDIRS. + + * configure.in: If long on the target is 64-bits, use it as our 64-bit + type. Substitute the scsi Makefiles. + + * bus/multibus/3c400.c (TME_3C400_CSR_PUT_3c400): Corrected a + tme_betoh_u16 into a tme_htobe_u16. + + * bus/multibus/Makefile.am: Now compile sun-sc.c. + + * bus/multibus/sun-sc.c generic/disk.c generic/scsi.c + host/posix/posix-disk.c scsi/Makefile.am scsi/acb4000.c + scsi/disk-tme.c scsi/scsi-bus.c scsi/scsi-cdb.c scsi/scsi-device.c + scsi/scsi-disk.c scsi/scsi-msg.c tme/generic/disk.h + tme/generic/scsi.h tme/scsi/Makefile.am tme/scsi/scsi-cdb.h + tme/scsi/scsi-device.h tme/scsi/scsi-disk.h tme/scsi/scsi-msg.h: + + Added. + + * generic/Makefile.am: Now compile disk.c and scsi.c. + + * generic/bus-device.c: + * generic/bus-el.c: Fixed a comment. + + * host/posix/Makefile.am: Now compile posix-disk.c. + + * host/posix/posix-memory.c: + * host/posix/posix-serial.c: Fixed comments. + + * ic/mm58167.c: Fixed many significant problems with this emulation, + most notably that the size of the chip was not calculated correctly at + all. We now report with microsecond resolution, since SunOS's probe + routine requires this. + + * ic/z8530.c (_tme_z8530_intack): Simplified and fixed bugs in how + variable interrupt vectors are computed. For now, since there's no + emulation of the IEI pin, we just behave as if it's always tied low, + so we never put any vector on the bus during a hard interrupt + acknowledge. + (_tme_z8530_bus_cycle): Now ignore all WR0 CRC reset commands. Now + support the WR0 transmitter reset command. Now support reads of RR10 + and RR14. + + * ic/m68k/m68k-insns-auto.sh: The movem instructions cannot fault when + the register mask is zero. Now that we generally have a 64-bit type + available, fixed various bugs in the 64-bit multiply and divide + instructions. + + * ic/m68k/m68k-insns.c (tme_m68k_movec): Now appropriately mask values + loaded into control registers. movec only has a long version, and + SunOS on the Sun-2 doesn't necessarily clear the remainder of the data + register it uses to load %sfc and %dfc. + + * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug + where the T bits weren't cleared. This bug was found by SunOS on the + sun2, which starts at least init in usermode with tracing enabled. + + * ic/m68k/m68k-verify.c (tme_m68k_verify_init): Now assume that the + CPU generates 28-bit addresses. SunOS 3 on the Sun-2 does this. + + * machine/sun/tme-sun-idprom.pl: Added support for the obscure + Roadrunner-MB1. + + * machine/sun2/sun2-bwtwo.c: Fixed various comments. + Because SunOS's probe routine fails otherwise, added support for the + entire 2KB page starting at the CSR to appear undecoded, i.e., to look + like the CSR repeated 1024 times. + + * machine/sun2/sun2-impl.h: Now define TME_SUN2_DVMA_SIZE_MBMEM and + TME_SUN2_DVMA_SIZE_VME. + Now make struct tme_sun2_bus_connection public, since the bus DVMA TLB + filler needs to know which bus it's filling for. + + * machine/sun2/sun2-mainbus.c (_tme_sun2_connections_new): When making + the connections for the mbmem or vme buses, be sure to set the last + address that we decode on the bus, for DVMA purposes. + + * machine/sun2/sun2-mmu.c (_tme_sun2_bus_tlb_fill): Fixed many bugs + involving filling TLB entries for bus's DVMA regions. + (_tme_sun2_mmu_pte_set): Added a missing protection. + + * tme/common.h: Added some crude support for 64-bit math, even for + compilers that offer no 64-bit type at all. + + * tme/connection.h: Now define TME_CONNECTION_SCSI and + TME_CONNECTION_DISK. + + * tme/generic/Makefile.am: Added more headers. + + * tme/generic/bus-device.h: Corrected a comment. + + * tme/generic/ic.h: Corrected the 64-bit support. + + * tmesh/tmesh-cmds.c (_tmesh_command_log): Added. + + * tmesh/tmesh-impl.h: Now define TMESH_COMMAND_LOG. + + * tmesh/tmesh-input.y: Added support for parsing the `log' command. + +Tue Jul 22 18:30:31 2003 Matthew Fredette + + * generic/fb-xlat-auto.sh: Changes to silence gcc -Wuninitialized. + * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_lookup): Changes to + silence gcc -Wuninitialized. + + * libtme/module.c (tme_module_open): Changes to silence gcc + -Wuninitialized. + + * libtme/threads-sjlj.c (tme_sjlj_dispatch): Declared some locals + volatile to silence gcc's setjmp-related warning. + +Fri Jun 27 21:30:37 2003 Matthew Fredette + + * Makefile.am: Added the serial directory to SUBDIRS. + * configure.in: Many changes to support framebuffer emulation and X11 + and gtk elements. Also added some serial elements support. + + * generic/Makefile.am: Now create fb-xlat-auto.c and build fb.c and + keyboard.c. + + * generic/bus-device.c: + * generic/bus-el.c: + * generic/bus.c: Although I hate doing this, various changes to + support a single bus connection connecting to a bus region sparsely. + + * generic/fb-xlat-auto.sh: Now declare src_bypb to include one more + extra line of data, to make a total of two. + Fixed a bug where translating and halving would really translate every + line twice. Now when we reach the end of a line we skip the next + line, to move to the next pair of lines. + + * generic/fb.c generic/keyboard.c host/gtk/Makefile.am + host/gtk/gtk-display.c host/gtk/gtk-display.h + host/gtk/gtk-keyboard.c host/gtk/gtk-screen.c libtme/hash.c + machine/sun2/sun2-bwtwo.c serial/Makefile.am serial/kb-sun.c + serial/serial-kb.c serial/serial-kb.h tme/hash.h tme/misc.h + tme/generic/fb.h tme/generic/keyboard.h: + + Added. + + * generic/keyboard.c: Disabled debug output. + + * host/Makefile.am: Added gtk to DIST_SUBDIRS. + + * ic/am9513.c (_tme_am9513_th_timer): Removed a newline from a log + statement. + + * ic/z8530.c (_tme_z8530_channel_reset): Fixed an incorrect reset + value for RR3. + (_tme_z8530_config): Simply ignore a peer's request to change the + serial configuration. + + * ic/m68k/m68k-execute.c: To fix a problem where m68k execution could + possibly never yield (by oscillating back and forth between fast and + slow execution, for example) we make sure that we never run more than + _tme_m68k_instruction_burst before checking for external interrupts + and yielding. + + * ic/m68k/m68k-impl.h: Now in addition to _tme_m68k_instruction_burst, + the maximum burst length, there is + _tme_m68k_instruction_burst_remaining, which is the maximum number of + instructions remaining in the current burst. + + * ic/m68k/m68k-iset-expand.pl: + * ic/m68k/m68k-opmap-make.pl: Made the RCS keywords, copyright and + license like other files. + + * ic/m68k/m68k-misc.c (tme_m68k_new): Now initialize the new + _tme_m68k_instruction_burst_remaining struct member. + + * libtme/Makefile.am: Now compile hash.c, and use the GTK CFLAGS. + + * libtme/misc.c (tme_misc_tokenize): + (tme_free_string_array): Added. + + * libtme/module.c (tme_module_open): Now use tme_misc_tokenize to + tokenize. + + * libtme/threads-sjlj.c: Although I hate doing this, many changes to + support using the GTK event loop. + + * machine/sun2/Makefile.am: Now build sun2-bwtwo.c. + + * machine/sun2/SUN2-MULTIBUS: Added commands to create a real physical + console. + + * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge + interrupts on the obmem bus too, since the bwtwo z8530s are there. + + * tme/Makefile.am: Now install misc.h and hash.h. + + * tme/common.h: Now define tme_letoh_u16() and tme_letoh_u32(x). + Declare tme_free_string_array(). + + * tme/connection.h: Add connection types for keyboards and + framebuffers. + + * tme/threads.h: Under _TME_HAVE_GTK, declare tme_threads_gtk_init. + + * tme/tme.h: Now include and . + + * tme/generic/Makefile.am: Now install fb.h and keyboard.h. + + * tme/generic/bus-device.h: + * tme/generic/bus.h: Changes to support a single bus connection + connecting to a bus region sparsely. + + * tmesh/Makefile.am: Now link with the GTK libraries. + +Fri Jun 27 01:37:57 2003 Matthew Fredette + + * generic/fb-xlat-auto.sh: Added. + +Thu Jun 26 13:16:12 2003 Matthew Fredette + + * tme/generic/ic.h: Fixed grammar in a comment. + +Sun May 18 02:40:56 2003 Matthew Fredette + + * configure.in: Changed the version number to 0.0; this is very alpha. + There are now fewer include directories under tme/; many unnecessary + headers that belonged to modules were removed. + + * bus/multibus/3c400.c: No longer include . + + * bus/multibus/Makefile.am generic/Makefile.am host/bsd/Makefile.am + host/posix/Makefile.am ic/Makefile.am ic/m68k/Makefile.am + libtme/Makefile.am machine/sun/Makefile.am machine/sun2/Makefile.am + tmesh/Makefile.am: + + Added library and module versioning. + + * host/bsd/bsd-bpf.c: + * host/bsd/bsd-if.c: Now include "bsd-impl.h" instead of + . + + * host/bsd/bsd-impl.h: + * machine/sun/tme-sun-idprom.pl: Added. + + * machine/sun2/SUN2-MULTIBUS: Changed the extension on the PROM and + IDPROM files from .dat to .bin. + + * machine/sun2/SUN2-MULTIBUS: Changed the name of the PROM filename to + match the documentation. + + * tme/Makefile.am: Removed the host and bus include directories; they + don't exist anymore. + +Sat May 17 20:34:07 2003 Matthew Fredette + + * acinclude.m4: Added an RCS Id and a short comment. + * configure.in: Added an RCS Id, the copyright, and license. Do a + real path search for perl. + + * libtme/log-prf.c: + * libtme/module.c: + * machine/sun2/sun2-mainbus.c: Changes to silence gcc -Wuninitialized. Fri May 16 21:48:16 2003 Matthew Fredette - * By far, this is the worst bulk commit I've ever done. - Many changes to simplify the element interface as much - as possible, to do modules better, and to do logging - better. Fixed a small number of actual bugs. Also - converted to modern autoconf and automake, because - the module support requires modern libtool. - Also added the main libtme, libtmesh, and tmesh itself. + * Makefile.am TODO acconfig.h configure.in modules bus/Makefile.am + bus/multibus/3c400.c bus/multibus/Makefile.am generic/Makefile.am + generic/bus-device.c generic/bus-el.c generic/bus.c + host/bsd/Makefile.am host/bsd/bsd-bpf.c host/posix/Makefile.am + host/posix/posix-memory.c host/posix/posix-serial.c ic/Makefile.am + ic/am9513.c ic/mm58167.c ic/z8530.c ic/m68k/Makefile.am + ic/m68k/m68010.c ic/m68k/m68k-impl.h ic/m68k/m68k-insns-auto.sh + ic/m68k/m68k-misc.c libtme/Makefile.am libtme/alloc.c + libtme/element.c libtme/log-prf.c libtme/log.c libtme/misc.c + libtme/module.c libtme/threads-sjlj.c machine/Makefile.am + machine/sun/Makefile.am machine/sun/sun-mmu.c + machine/sun2/Makefile.am machine/sun2/SUN2-MULTIBUS + machine/sun2/sun2-impl.h machine/sun2/sun2-mainbus.c + machine/sun2/sun2-mmu.c tme/Makefile.am tme/common.h + tme/connection.h tme/element.h tme/log.h tme/module.h tme/tme.h + tme/tmesh.h tme/generic/bus-device.h tme/generic/bus.h + tme/ic/am9513.h tme/ic/m68k.h tme/ic/mm58167.h tme/ic/z8530.h + tmesh/Makefile.am tmesh/tmesh-cmds.c tmesh/tmesh-impl.h + tmesh/tmesh-input.y tmesh/tmesh-util.c tmesh/tmesh.c: + + By far, this is the worst bulk commit I've ever done. Many changes + to simplify the element interface as much as possible, to do modules + better, and to do logging better. Fixed a small number of actual + bugs. Also converted to modern autoconf and automake, because the + module support requires modern libtool. Also added the main libtme, + libtmesh, and tmesh itself. + + * ic/m68k/m68k-verify.c: Now include . Fri May 16 17:50:17 2003 Matthew Fredette - * acinclude.m4 (AC_CHECK_ALIGNOF): Now takes only a size, in bits, to check the - alignment for. Before, it used to take a string of the form intN_t, - which wouldn't work on systems that don't define an intN_t type. - When cross-compiling, assume the target requires alignment equal - to the size. Now use AC_DEFINE_UNQUOTED's third argument to - specify the config.h.in comment. - (AC_CHECK_SHIFTMAX): Added. - (AC_SYS_SOCKADDR_SA_LEN): Now use AC_DEFINE_UNQUOTED's third - argument to specify the config.h.in comment. + * acinclude.m4 (AC_CHECK_ALIGNOF): Now takes only a size, in bits, to + check the alignment for. Before, it used to take a string of the form + intN_t, which wouldn't work on systems that don't define an intN_t + type. When cross-compiling, assume the target requires alignment + equal to the size. Now use AC_DEFINE_UNQUOTED's third argument to + specify the config.h.in comment. + (AC_CHECK_SHIFTMAX): Added. + (AC_SYS_SOCKADDR_SA_LEN): Now use AC_DEFINE_UNQUOTED's third argument + to specify the config.h.in comment. Thu May 15 15:52:08 2003 Matthew Fredette - * ic/m68k/m68k-insns-auto.sh: Fixed bugs in the shift and rotate insns, where we might try to - shift by an amount greater than the maximum meaningful shift for - a given size. - -Sat May 10 13:46:02 2003 Matthew Fredette - - * acinclude.m4 (AC_CHECK_ALIGNOF): Fixed a bug where this would stop on - the first misalignment, instead of continuing to find the - true minimum alignment. For example, this would have - found the minimum 32-bit alignment to be 4 instead of 2 - on a 68000 or 68010, stopping on the misaligned address 3. - - * configure.in: Some early distribution work. - * ic/Makefile.am: Some early distribution work. - * ic/m68k/Makefile.am: Some early distribution work. - * ic/m68k/m68k-insns-auto.sh: Fixed some bad macro and type name references. - * ic/m68k/m68k-insns-auto.sh: Handled the rename of the aligned and unaligned memory access - rwlocking macros, and use the new tme_memory_sequence_ rwlocking - macros. Generally made things a little easier to read, although - we do rely on the optimizer to do the right thing somewhat more. - - * ic/m68k/m68k-misc-auto.sh: Fixed some bad macro and type name references. - * ic/m68k/m68k-misc-auto.sh: Handled the rename of the aligned and unaligned memory access - rwlocking macros, and use the new tme_memory_sequence_ rwlocking - macros. Generally made things a little easier to read, although - we do rely on the optimizer to do the right thing somewhat more. - - * machine/Makefile.am: Some early distribution work. - * machine/sun2/Makefile.am: Some early distribution work. - * tme/Makefile.am: Some early distribution work. + * ic/m68k/m68k-insns-auto.sh: Fixed bugs in the shift and rotate + insns, where we might try to shift by an amount greater than the + maximum meaningful shift for a given size. + +Sat May 10 15:41:23 2003 Matthew Fredette + + * acinclude.m4 (AC_CHECK_ALIGNOF): Fixed a bug where this would stop + on the first misalignment, instead of continuing to find the true + minimum alignment. For example, this would have found the minimum + 32-bit alignment to be 4 instead of 2 on a 68000 or 68010, stopping on + the misaligned address 3. + + * configure.in ic/Makefile.am ic/m68k/Makefile.am machine/Makefile.am + machine/sun2/Makefile.am tme/Makefile.am: + + Some early distribution work. + + * ic/m68k/m68k-insns-auto.sh: + * ic/m68k/m68k-misc-auto.sh: Fixed some bad macro and type name + references. + + * ic/m68k/m68k-insns-auto.sh: + * ic/m68k/m68k-misc-auto.sh: Handled the rename of the aligned and + unaligned memory access rwlocking macros, and use the new + tme_memory_sequence_ rwlocking macros. Generally made things a little + easier to read, although we do rely on the optimizer to do the right + thing somewhat more. + * tme/threads.h: Renamed the memory-access locking functions to be - tme_memory_HOW_WHATlock, where HOW is aligned or - unaligned, and WHAT is rd or wr. - Now define the tme_memory_sequence_WHATlock macros, - used when doing a sequence of memory accesses that - must appear to be atomic. - Now define TME_SEQUENCE_ACCESS_NOT_COSTLIER as TRUE - if locking for a sequence and locking for an aligned - access have the same cost, else define it as FALSE. + tme_memory_HOW_WHATlock, where HOW is aligned or unaligned, and WHAT + is rd or wr. Now define the tme_memory_sequence_WHATlock macros, used + when doing a sequence of memory accesses that must appear to be + atomic. + Now define TME_SEQUENCE_ACCESS_NOT_COSTLIER as TRUE if locking for a + sequence and locking for an aligned access have the same cost, else + define it as FALSE. Sat May 10 00:31:32 2003 Matthew Fredette - * ic/m68k/m68k-insns-auto.sh: Overhauled the shift instructions to not use loops. + * ic/m68k/m68k-insns-auto.sh: Overhauled the shift instructions to not + use loops. + +Fri May 09 17:45:06 2003 Matthew Fredette + + * ic/m68k/m68k-execute.c: As an optimization, now require the + individual insn functions to use TME_M68K_INSN_CANFAULT if they may + fault, instead of figuring out every time if an insn can fault or not. + Check that insn functions have set it if they need it, and left it + unset if they do not need it. + + * ic/m68k/m68k-execute.c: Made some changes to somewhat optimize + certain effective address calculations. + + * ic/m68k/m68k-impl.h: Now define TME_M68K_INSN_CANFAULT. + + * ic/m68k/m68k-impl.h: Renumbered the TME_M68K_SIZE_ macros slightly + to enable an optimization on effective address + predecrement/postincrement calculation. Grew the memory transfer + function arrays to match. + Moved the generic IC data structure to the top of the m68k structure, + to enable register indexing to happen without an offset. + Removed _tme_m68k_areg_increment, it's no longer needed. + + * ic/m68k/m68k-insns-auto.sh: + * ic/m68k/m68k-insns.c: Now use TME_M68K_INSN_CANFAULT where it's + needed. Also fixed some random restarting bugs in some insns. -Fri May 09 16:32:06 2003 Matthew Fredette + * ic/m68k/m68k-misc.c: Removed _tme_m68k_areg_increment, it's no + longer needed. Grew the memory transfer function arrays to match the + renumbering of the TME_M68K_SIZE_ macros, and added some preprocessor + error checking on those macros. - * ic/m68k/m68k-execute.c: As an optimization, now require the individual insn functions - to use TME_M68K_INSN_CANFAULT if they may fault, instead of - figuring out every time if an insn can fault or not. Check - that insn functions have set it if they need it, and left it - unset if they do not need it. - - * ic/m68k/m68k-execute.c: Made some changes to somewhat optimize certain - effective address calculations. - - * ic/m68k/m68k-impl.h: Now define TME_M68K_INSN_CANFAULT. - * ic/m68k/m68k-impl.h: Renumbered the TME_M68K_SIZE_ macros slightly to enable an - optimization on effective address predecrement/postincrement - calculation. Grew the memory transfer function arrays to - match. - Moved the generic IC data structure to the top of the m68k - structure, to enable register indexing to happen without - an offset. - Removed _tme_m68k_areg_increment, it's no longer needed. - - * ic/m68k/m68k-insns-auto.sh: Now use TME_M68K_INSN_CANFAULT where it's needed. Also - fixed some random restarting bugs in some insns. - - * ic/m68k/m68k-insns.c: Now use TME_M68K_INSN_CANFAULT where it's needed. Also - fixed some random restarting bugs in some insns. - - * ic/m68k/m68k-misc.c: Removed _tme_m68k_areg_increment, it's no longer needed. - Grew the memory transfer function arrays to match the - renumbering of the TME_M68K_SIZE_ macros, and added some - preprocessor error checking on those macros. - -Fri May 09 13:12:01 2003 Matthew Fredette - - * bus/multibus/3c400.c: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * bus/multibus/3c400.c (_tme_3c400_callout): Make buffer status values have the minimum - Ethernet frame size. - - * generic/bus-device.c: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * generic/bus-el.c: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * generic/bus.c: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * host/posix/posix-memory.c: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * ic/am9513.c: Now include , in case TME_AM9513_TRACK_INT_RATE is - defined. - - * ic/am9513.c: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * ic/am9513.c: Under TME_AM9513_TRACK_INT_RATE, periodically report the - interrupt rates achieved by the various timers. - - * ic/mm58167.c: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * ic/z8530.c: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * machine/sun2/sun2-mmu.c (_tme_sun2_m68k_tlb_fill): Because supervisor and user accesses - go through different context registers, TLBs are generally only - ever valid for the supervisor or the user, but not both. Fixed - a bug where a TLB for a user-visible page would be marked as good - for the supervisor even if the mapping isn't the same in the - system context. - - * tme/generic/bus-device.h: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * tme/generic/bus.h: Bulk change to no longer require bus connections to have a - power-of-two width. This is largely a name change, renaming - address_mask to address_last, as nothing depended on the - address_mask being all-bits-one. - - * tme/generic/ethernet.h: Now define TME_ETHERNET_CRC_SIZE. - -Thu May 08 23:37:10 2003 Matthew Fredette - - * ic/m68k/m68k-insns-auto.sh: Fixed bugs, found by the verifier, in the SR and CCR immediate - instructions. - - * ic/m68k/m68k-verify.c: Now keep a short ring of PCs verified. - -Thu May 08 18:25:20 2003 Matthew Fredette - - * ic/z8530.c (_tme_z8530_intack): Changes to silence -Wuninitialized. - * ic/m68k/Makefile.am: No longer define _TME_M68K_OPW_OK. - * ic/m68k/m68k-execute.c: Changes to support verifying restarted instructions. - * ic/m68k/m68k-impl.h: Fixed the definitions of the dummy tme_m68k_verify_ macros. - * ic/m68k/m68k-impl.h: Now call tme_m68k_verify_end_branch inside TME_M68K_INSN_BRANCH. - Added a unique identifier member to the sequence structure. - Made a few functions take a const struct tme_m68k *. - Made changes to the verifier to support verifying restarted - instructions. - - * ic/m68k/m68k-insns-auto.sh: Fixed a bug found by the verifier, where the movem - instructions weren't following the EA discipline correctly - and so would transfer to the wrong addresses after a - restart. +Fri May 09 14:36:16 2003 Matthew Fredette - * ic/m68k/m68k-misc.c (tme_m68k_go_slow): Now take a const struct tme_m68k *. + * bus/multibus/3c400.c generic/bus-device.c generic/bus-el.c + generic/bus.c host/posix/posix-memory.c ic/am9513.c ic/mm58167.c + ic/z8530.c tme/generic/bus-device.h tme/generic/bus.h: + + Bulk change to no longer require bus connections to have a + power-of-two width. This is largely a name change, renaming + address_mask to address_last, as nothing depended on the + address_mask being all-bits-one. + + * bus/multibus/3c400.c (_tme_3c400_callout): Make buffer status values + have the minimum Ethernet frame size. + + * ic/am9513.c: Now include , in case + TME_AM9513_TRACK_INT_RATE is defined. + + * ic/am9513.c: Under TME_AM9513_TRACK_INT_RATE, periodically report + the interrupt rates achieved by the various timers. + + * machine/sun2/sun2-mmu.c (_tme_sun2_m68k_tlb_fill): Because + supervisor and user accesses go through different context registers, + TLBs are generally only ever valid for the supervisor or the user, but + not both. Fixed a bug where a TLB for a user-visible page would be + marked as good for the supervisor even if the mapping isn't the same + in the system context. + + * tme/generic/ethernet.h: Now define TME_ETHERNET_CRC_SIZE. + +Thu May 08 23:37:55 2003 Matthew Fredette + + * ic/m68k/m68k-insns-auto.sh: Fixed bugs, found by the verifier, in + the SR and CCR immediate instructions. + + * ic/m68k/m68k-verify.c: Now keep a short ring of PCs verified. + +Thu May 08 19:22:10 2003 Matthew Fredette + + * ic/z8530.c (_tme_z8530_intack): Changes to silence -Wuninitialized. + * ic/m68k/Makefile.am: No longer define _TME_M68K_OPW_OK. + * ic/m68k/m68k-execute.c: Changes to support verifying restarted + instructions. + + * ic/m68k/m68k-impl.h: Fixed the definitions of the dummy + tme_m68k_verify_ macros. + + * ic/m68k/m68k-impl.h: Now call tme_m68k_verify_end_branch inside + TME_M68K_INSN_BRANCH. Added a unique identifier member to the + sequence structure. Made a few functions take a const struct tme_m68k + *. Made changes to the verifier to support verifying restarted + instructions. + + * ic/m68k/m68k-insns-auto.sh: Fixed a bug found by the verifier, where + the movem instructions weren't following the EA discipline correctly + and so would transfer to the wrong addresses after a restart. + + * ic/m68k/m68k-misc.c (tme_m68k_go_slow): Now take a const struct + tme_m68k *. (tme_m68k_sequence_empty): - (tme_m68k_sequence_fill): Made the argument that's supposed - to be read-only const. Under _TME_M68K_VERIFY, save and - restore the sequence unique identifier. - - * ic/m68k/m68k-verify.c: Many changes to support verifying instructions that ended - only after they were restarted because of one or more bus - faults. + (tme_m68k_sequence_fill): Made the argument that's supposed to be + read-only const. Under _TME_M68K_VERIFY, save and restore the + sequence unique identifier. + + * ic/m68k/m68k-verify.c: Many changes to support verifying + instructions that ended only after they were restarted because of one + or more bus faults. Thu May 08 13:35:43 2003 Matthew Fredette - * ic/m68k/m68k-execute.c: Replaced _TME_M68K_OPW_OK bits with new _TME_M68K_VERIFY bits. - * ic/m68k/m68k-impl.h: Replaced _TME_M68K_OPW_OK bits with new _TME_M68K_VERIFY bits. - * ic/m68k/m68k-insns-auto.sh: In all memory access functions, added calls to the verifier. - Fixed a bug in the divide routines, found by the verifier - - the N flag in set based on the final small quotient, not on - the big one. - - * ic/m68k/m68k-misc-auto.sh: Now define TME_M68K_IREG32_COUNT. - * ic/m68k/m68k-misc.c: Replaced _TME_M68K_OPW_OK bits with new _TME_M68K_VERIFY bits. - * ic/m68k/m68k-verify.c: Added. + * ic/m68k/m68k-execute.c: + * ic/m68k/m68k-impl.h: + * ic/m68k/m68k-misc.c: Replaced _TME_M68K_OPW_OK bits with new + _TME_M68K_VERIFY bits. + + * ic/m68k/m68k-insns-auto.sh: In all memory access functions, added + calls to the verifier. Fixed a bug in the divide routines, found by + the verifier - the N flag in set based on the final small quotient, + not on the big one. + + * ic/m68k/m68k-misc-auto.sh: Now define TME_M68K_IREG32_COUNT. -Wed May 07 02:35:17 2003 Matthew Fredette + * ic/m68k/m68k-verify.c: Added. - * generic/bus-el.c (_tme_bus_connections_new): Store the final bus interrupt - signal number, not the raw ipl. +Wed May 07 02:37:05 2003 Matthew Fredette + + * generic/bus-el.c (_tme_bus_connections_new): Store the final bus + interrupt signal number, not the raw ipl. * ic/z8530.c: Although I hate doing this, too many changes to go into - detail. Much work to support interrupt driven operation. + detail. Much work to support interrupt driven operation. + + * ic/z8530reg.h: Added definitions for RR3. + + * ic/m68k/m68k-impl.h: Fixed a serious bug in the TME_M68K_FLAG_SR + definition that would zero part of the interrupt mask. + + * ic/m68k/m68k-insns-auto.sh: Fixed a bug where negx wasn't preserving + the Z flag if the result was zero. + + * machine/sun2/sun2-test.c (main): Fixed a bug where the zs0 ipl arg + was getting lost. - * ic/z8530reg.h: Added definitions for RR3. - * ic/m68k/m68k-impl.h: Fixed a serious bug in the TME_M68K_FLAG_SR definition - that would zero part of the interrupt mask. +Mon May 05 23:20:11 2003 Matthew Fredette - * ic/m68k/m68k-insns-auto.sh: Fixed a bug where negx wasn't preserving the Z flag if the - result was zero. + * TODO: Updated. - * machine/sun2/sun2-test.c (main): Fixed a bug where the zs0 ipl arg was getting lost. + * generic/serial.c (tme_serial_buffer_copyout): Fixed a bug where if + we were copying to a NULL buffer and the copyout wrapped in the ring + buffer, we would do pointer arithmetic on the NULL. -Mon May 05 23:08:13 2003 Matthew Fredette + * ic/m68k/m68010.c (_tme_m68010_rte): Fixed a bug where we forgot to + recover the group 0 function code and address for the cycle restart. + Fixed a bug where we wouldn't reset to extract our internal state from + the stack buffer. - * TODO: Updated. - * generic/serial.c (tme_serial_buffer_copyout): Fixed a bug where if we were - copying to a NULL buffer and the copyout wrapped in the - ring buffer, we would do pointer arithmetic on the NULL. + * ic/m68k/m68k-insns-auto.sh: Fixed several instructions that trap or + do trap-like things to update PC to be the PC of the following + instruction before trapping. + (tme_m68k_read_mem): Fixed a memcpy direction bug. - * ic/m68k/m68010.c (_tme_m68010_rte): Fixed a bug where we forgot to recover - the group 0 function code and address for the cycle restart. - Fixed a bug where we wouldn't reset to extract our internal - state from the stack buffer. + * ic/m68k/m68k-insns.c: Fixed several instructions that trap or do + trap-like things to update PC to be the PC of the following + instruction before trapping. - * ic/m68k/m68k-insns-auto.sh: Fixed several instructions that trap or do trap-like things - to update PC to be the PC of the following instruction before - trapping. - (tme_m68k_read_mem): Fixed a memcpy direction bug. + * libtme/threads-sjlj.c (tme_sjlj_cond_notify): Fixed a bug where we + would cancel a thread's wait condition instead of notifying the + thread. - * ic/m68k/m68k-insns.c: Fixed several instructions that trap or do trap-like things - to update PC to be the PC of the following instruction before - trapping. + * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Support the new + expansive MMU PTE protections. - * libtme/threads-sjlj.c (tme_sjlj_cond_notify): Fixed a bug where we would cancel - a thread's wait condition instead of notifying the thread. + * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge + soft interrupts. + (tme_machine_sun2_clock_new): Fixed a bug where we had the Timer 2 + output miswired. - * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Support the new expansive MMU PTE - protections. + * machine/sun2/sun2-mmu.c: Many changes to support the new full + understanding of sun2 PTE protections. - * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge soft interrupts. - (tme_machine_sun2_clock_new): Fixed a bug where we had the - Timer 2 output miswired. + * tme/machine/sun.h: Expanded on the generic PTE protections, to + support the more expressive sun2 protections. - * machine/sun2/sun2-mmu.c: Many changes to support the new full understanding of sun2 - PTE protections. +Sun May 04 22:46:12 2003 Matthew Fredette - * tme/machine/sun.h: Expanded on the generic PTE protections, to support the more - expressive sun2 protections. + * ic/am9513.c (_tme_am9513_counters_disarm): Added. + (_tme_am9513_th_timer): Try to avoid 32-bit integer overflow when + calculating the sleep time. + (_tme_am9513_bus_cycle): Now support the disarm timers command. -Sun May 04 22:26:01 2003 Matthew Fredette + * ic/mm58167.c: Changes to silence -Wuninitialized. - * ic/am9513.c (_tme_am9513_counters_disarm): Added. - (_tme_am9513_th_timer): Try to avoid 32-bit integer overflow - when calculating the sleep time. - (_tme_am9513_bus_cycle): Now support the disarm timers command. + * ic/mm58167.c: + * tme/ic/mm58167.h: Added. - * ic/mm58167.c: Changes to silence -Wuninitialized. - * ic/mm58167.c: Added. - * ic/z8530.c: Although I hate doing this, too much work to go into detail. - Did more groundwork for eventually generating interrupts. + * ic/z8530.c: Although I hate doing this, too much work to go into + detail. Did more groundwork for eventually generating interrupts. - * ic/m68k/m68k-execute.c: Now wrap the execute hook call in _TME_M68K_OPW_OK. - * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug where the new - ipl mask was put into the sr at the wrong position. + * ic/m68k/m68k-execute.c: Now wrap the execute hook call in + _TME_M68K_OPW_OK. - * machine/sun2/sun2-mainbus.c (tme_machine_sun2_tod_new): Added. - * machine/sun2/sun2-mmu.c (_tme_sun2_obbus_fault_handler): Removed. + * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug + where the new ipl mask was put into the sr at the wrong position. + + * machine/sun2/sun2-mainbus.c (tme_machine_sun2_tod_new): Added. + + * machine/sun2/sun2-mmu.c (_tme_sun2_obbus_fault_handler): Removed. (_tme_sun2_bus_fault_handler): (_tme_sun2_obio_fault_handler): - (_tme_sun2_obmem_fault_handler): Added. + (_tme_sun2_obmem_fault_handler): Added. (_tme_sun2_multibus_fault_handler): Now just call - _tme_sun2_bus_fault_handler. - (_tme_sun2_tlb_fill_mmu): Use the new bus-specific - fault handlers. - - * machine/sun2/sun2-test.c: Now create and connect the TOD chip. - * tme/ic/Makefile.am: Updated. - * tme/ic/mm58167.h: Added. + _tme_sun2_bus_fault_handler. + (_tme_sun2_tlb_fill_mmu): Use the new bus-specific fault handlers. + + * machine/sun2/sun2-test.c: Now create and connect the TOD chip. + + * tme/ic/Makefile.am: Updated. Sat May 03 19:27:07 2003 Matthew Fredette - * TODO: Updated. - * ic/m68k/m68k-execute.c: Fixed multiple bugs in the handling of brief EA extension words. - * ic/m68k/m68k-insns-auto.sh: Fixed a bug where subx and addx didn't take the (previous) X - flag into account when calculating flags. - - * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Now call _tme_sun2_ipl_check - whenever the enable register is written. - - * machine/sun2/sun2-impl.h: Added macros for the enable register bits. - * machine/sun2/sun2-mainbus.c (_tme_sun2_ipl_check): Added. - (_tme_sun2_bus_signal): Now call _tme_sun2_ipl_check to update - the ipl driven to the CPU. - -Fri May 02 17:10:58 2003 Matthew Fredette - - * TODO: Updated. - * acconfig.h: Added. - * acinclude.m4: Added. - * configure.in: Now check for minimum alignments. - Now check for various headers and other things needed by the BSD code. - - * bus/Makefile.am: Added support for new components. - * bus/multibus/3c400.c (_tme_3c400): Some changes to silence -Wuninitialized. - * bus/multibus/3c400.c: Added. - * bus/multibus/Makefile.am: Added. - * generic/Makefile.am: Added support for new components. - * generic/ethernet.c: Added. - * host/Makefile.am: Added support for new components. - * host/bsd/Makefile.am: Added. - * host/bsd/bsd-bpf.c: Added. - * host/bsd/bsd-if.c: Added. - * host/posix/posix-serial.c: Fixed some indentation, and one 0 to a TME_OK. + * TODO: Updated. + + * ic/m68k/m68k-execute.c: Fixed multiple bugs in the handling of brief + EA extension words. + + * ic/m68k/m68k-insns-auto.sh: Fixed a bug where subx and addx didn't + take the (previous) X flag into account when calculating flags. + + * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Now + call _tme_sun2_ipl_check whenever the enable register is written. + + * machine/sun2/sun2-impl.h: Added macros for the enable register bits. + + * machine/sun2/sun2-mainbus.c (_tme_sun2_ipl_check): Added. + (_tme_sun2_bus_signal): Now call _tme_sun2_ipl_check to update the ipl + driven to the CPU. + +Fri May 02 17:37:10 2003 Matthew Fredette + + * TODO: Updated. + + * acconfig.h acinclude.m4 bus/multibus/3c400.c + bus/multibus/Makefile.am generic/ethernet.c host/bsd/Makefile.am + host/bsd/bsd-bpf.c host/bsd/bsd-if.c tme/generic/ethernet.h: + + Added. + + * configure.in: Now check for minimum alignments. Now check for + various headers and other things needed by the BSD code. + + * bus/Makefile.am: + * generic/Makefile.am: + * host/Makefile.am: + * tme/generic/Makefile.am: Added support for new components. + + * bus/multibus/3c400.c (_tme_3c400): Some changes to silence + -Wuninitialized. + + * host/posix/posix-serial.c: Fixed some indentation, and one 0 to a + TME_OK. + * ic/am9513.c (_tme_am9513_counters_load): - (_tme_am9513_counters_arm): Added. - (_tme_am9513_th_timer): Try to avoid multiplication overflow - when calculating the number of basic ticks that have elapsed. - Try to handle armed and unarmed counters correctly. - (_tme_am9513_bus_cycle): Now load and arm counters correctly. - (tme_ic_am9513_new): Calculate the number of basic ticks in - a millisecond for the benefit of the timer thread. - - * ic/m68k/m68010.c (_tme_m68010_rte): tme_m68k_rte_finish no longer touches the - sequence at all, so before calling it make sure the sequence - is exactly what it's supposed to be. - - * ic/m68k/m68k-execute.c: In the fast executor, assert that the ITLB entry allows fast - reading for the current PC or that the PC is one greater than - the last address covered by the entry. Fixed the fast-fetch-failed - code to more correctly simulate a group 0 exception and associated - RTE. - - * ic/m68k/m68k-insns-auto.sh: Cleaned up and fixed the code generated for cmpm, addx, and subx. - At least, cmpm wasn't getting its address registers postincremented, - and addx and subx weren't treating the Z flag properly. - In the fetch insns, take the address to fetch from as an argument, - instead of using the real ic->tme_m68k_ireg_pc with tme_m68k_read + (_tme_am9513_counters_arm): Added. + (_tme_am9513_th_timer): Try to avoid multiplication overflow when + calculating the number of basic ticks that have elapsed. Try to + handle armed and unarmed counters correctly. + (_tme_am9513_bus_cycle): Now load and arm counters correctly. + (tme_ic_am9513_new): Calculate the number of basic ticks in a + millisecond for the benefit of the timer thread. + + * ic/m68k/m68010.c (_tme_m68010_rte): tme_m68k_rte_finish no longer + touches the sequence at all, so before calling it make sure the + sequence is exactly what it's supposed to be. + + * ic/m68k/m68k-execute.c: In the fast executor, assert that the ITLB + entry allows fast reading for the current PC or that the PC is one + greater than the last address covered by the entry. Fixed the + fast-fetch-failed code to more correctly simulate a group 0 exception + and associated RTE. + + * ic/m68k/m68k-insns-auto.sh: Cleaned up and fixed the code generated + for cmpm, addx, and subx. At least, cmpm wasn't getting its address + registers postincremented, and addx and subx weren't treating the Z + flag properly. In the fetch insns, take the address to fetch from as + an argument, instead of using the real ic->tme_m68k_ireg_pc with + tme_m68k_read (which could actually update it, if recovering from a group 0 exception!) - * ic/m68k/m68k-misc-auto.sh: The slow-executor fetch macros now call the fetch insns with the - PC to fetch from. + * ic/m68k/m68k-misc-auto.sh: The slow-executor fetch macros now call + the fetch insns with the PC to fetch from. - * ic/m68k/m68k-misc.c (tme_m68k_rte_finish): No longer do anything with the sequence - at all, just redispatch it. - (tme_m68k_sequence_fill): Now set the sequence next-transfer to - one, to force a restart in case later code doesn't. - (tme_m68k_insn_buffer_xfer): The insn buffer is kept in host - byte order, not big-endian byte order. - - * libtme/threads-sjlj.c: No longer track and relock a mutex that was held when - tme_sjlj_cond_wait_yield was called; the thread itself - will relock the mutex when it is restarted. - - * machine/sun2/Makefile.am: Now build and link against the Multibus and BSD libraries. - * machine/sun2/sun2-test.c (tme_memdup): Added. - (connect_elements): Now start the new convention of initializing - the new-connections lists to NULL and letting the new-connections - functions add elements incrementally. + * ic/m68k/m68k-misc.c (tme_m68k_rte_finish): No longer do anything + with the sequence at all, just redispatch it. + (tme_m68k_sequence_fill): Now set the sequence next-transfer to one, + to force a restart in case later code doesn't. + (tme_m68k_insn_buffer_xfer): The insn buffer is kept in host byte + order, not big-endian byte order. + + * libtme/threads-sjlj.c: No longer track and relock a mutex that was + held when tme_sjlj_cond_wait_yield was called; the thread itself will + relock the mutex when it is restarted. + + * machine/sun2/Makefile.am: Now build and link against the Multibus + and BSD libraries. + + * machine/sun2/sun2-test.c (tme_memdup): Added. + (connect_elements): Now start the new convention of initializing the + new-connections lists to NULL and letting the new-connections + functions add elements incrementally. (main): Now create the ec0 and bpf0 elements and add them to the - machine. + machine. - * tme/common.h: Added a macro for tme_dup and a prototype for tme_memdup. - * tme/connection.h: Now define TME_CONNECTION_ETHERNET. - * tme/threads.h: Fixed a bug where the tme_thread_write macro was defined to - be the read syscall. + * tme/common.h: Added a macro for tme_dup and a prototype for + tme_memdup. - * tme/generic/Makefile.am: Added support for new components. - * tme/generic/ethernet.h: Added. + * tme/connection.h: Now define TME_CONNECTION_ETHERNET. + + * tme/threads.h: Fixed a bug where the tme_thread_write macro was + defined to be the read syscall. Tue Apr 29 20:28:05 2003 Matthew Fredette - * AUTHORS: Added. - * COPYING: Added. - * NEWS: Added. - * README: Added. - * generic/bus-device.c: In all connections_new functions, add the new connection - possibilities to the list rooted at *_conns, instead of - always replacing the list. - - * generic/bus-el.c: In all connections_new functions, add the new connection - possibilities to the list rooted at *_conns, instead of - always replacing the list. - - * generic/bus-el.c: Changes to silence -Wuninitialized. - * generic/serial.c: Removed all instances of gen- in comments. - * host/posix/posix-memory.c: Changes to silence -Wuninitialized. - * host/posix/posix-serial.c: In all connections_new functions, add the new connection - possibilities to the list rooted at *_conns, instead of - always replacing the list. - - * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Fixed bugs in scanning the input - for various escape-like sequences, especially for the escaped - break signal. + * AUTHORS: + * COPYING: + * NEWS: + * README: Added. + + * generic/bus-device.c generic/bus-el.c host/posix/posix-serial.c + ic/z8530.c ic/m68k/m68k-misc.c machine/sun2/sun2-mainbus.c: + + In all connections_new functions, add the new connection + possibilities to the list rooted at *_conns, instead of always + replacing the list. + + * generic/bus-el.c host/posix/posix-memory.c ic/am9513.c + ic/m68k/m68k-execute.c ic/m68k/m68k-insns-auto.sh + ic/m68k/m68k-insns.c machine/sun2/sun2-mainbus.c: - * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Simplified the code that decides - to call out that we are readable. + Changes to silence -Wuninitialized. + + * generic/serial.c: + * tme/generic/serial.h: Removed all instances of gen- in comments. + + * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Fixed bugs + in scanning the input for various escape-like sequences, especially + for the escaped break signal. + + * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Simplified + the code that decides to call out that we are readable. (_tme_posix_serial_ctrl): Always try to call out reads if the - connection says it's readable, even if we already knew that. - (_tme_posix_serial_read): Fixed a bug where we would clear - everything *except* TME_SERIAL_CTRL_OK_READ, instead of clearing - only that bit. - (tme_host_posix_serial_new): Return EINVAL on bad arguments. - - * ic/Makefile.am: Now define DIST_SUBDIRS. - * ic/am9513.c: Changes to silence -Wuninitialized. - * ic/z8530.c: In all connections_new functions, add the new connection - possibilities to the list rooted at *_conns, instead of - always replacing the list. - - * ic/z8530.c (_tme_z8530_callout): Fixed a bug where we would use an uninitialized - chan variable to find WR9, which actually only exists in channel A - anyways. + connection says it's readable, even if we already knew that. + (_tme_posix_serial_read): Fixed a bug where we would clear everything + *except* TME_SERIAL_CTRL_OK_READ, instead of clearing only that bit. + (tme_host_posix_serial_new): Return EINVAL on bad arguments. + + * ic/Makefile.am: Now define DIST_SUBDIRS. + + * ic/z8530.c (_tme_z8530_callout): Fixed a bug where we would use an + uninitialized chan variable to find WR9, which actually only exists in + channel A anyways. (_tme_z8530_ctrl): Now always try to call out reads if the connection - says it's readable. + says it's readable. + + * libtme/threads-sjlj.c: Wrap all of the rwlock operations in + !TME_NO_DEBUG_LOCKS. + (tme_sjlj_threads_run): Changes to silence -Wuninitialized. - * ic/m68k/m68k-execute.c: Changes to silence -Wuninitialized. - * ic/m68k/m68k-insns-auto.sh: Changes to silence -Wuninitialized. - * ic/m68k/m68k-insns.c: Changes to silence -Wuninitialized. - * ic/m68k/m68k-misc.c: In all connections_new functions, add the new connection - possibilities to the list rooted at *_conns, instead of - always replacing the list. - - * libtme/threads-sjlj.c: Wrap all of the rwlock operations in !TME_NO_DEBUG_LOCKS. - (tme_sjlj_threads_run): Changes to silence -Wuninitialized. - - * machine/sun2/sun2-mainbus.c: In all connections_new functions, add the new connection - possibilities to the list rooted at *_conns, instead of - always replacing the list. - - * machine/sun2/sun2-mainbus.c: Changes to silence -Wuninitialized. - * tme/Makefile.am: Now install roughly the correct files into the correct place. - * tme/atomics.h: Fixed a bug where TME_ATOMIC_POINTER_TYPE was adding an extra *. - * tme/element.h: Fixed bugs in the TME_NO_LOG versions of TME_LOG_X and TME_LOG_FINISH. - * tme/generic/Makefile.am: Now install roughly the correct files into the correct place. - * tme/generic/serial.h: Removed all instances of gen- in comments. + * tme/Makefile.am: + * tme/generic/Makefile.am: Now install roughly the correct files into + the correct place. -Tue Apr 29 02:47:30 2003 Matthew Fredette + * tme/atomics.h: Fixed a bug where TME_ATOMIC_POINTER_TYPE was adding + an extra *. - * TODO: Updated. - * generic/bus-device.c: Support the new generic bus signal interface. + * tme/element.h: Fixed bugs in the TME_NO_LOG versions of TME_LOG_X + and TME_LOG_FINISH. + +Tue Apr 29 03:24:17 2003 Matthew Fredette + + * TODO: + * machine/sun2/sun2-test.c: Updated. + + * generic/bus-device.c: Support the new generic bus signal interface. (tme_bus_device_connection_score): (tme_bus_device_connection_make): - (tme_bus_device_connection_break): These are now public. + (tme_bus_device_connection_break): These are now public. - * generic/bus-el.c: Added support for the new generic bus signal interface. - (_tme_bus_line_raise): Removed. + * generic/bus-el.c: Added support for the new generic bus signal + interface. + (_tme_bus_line_raise): Removed. (_tme_bus_signal): - (_tme_bus_intack): Added. + (_tme_bus_intack): Added. - * generic/serial.c: Removed all uses of TME_ATOMIC. - (tme_serial_buffer_copyout): Fixed a bug where we would - overwrite data_flags with -1 early, resulting in our - returning no data. + * generic/serial.c: Removed all uses of TME_ATOMIC. + (tme_serial_buffer_copyout): Fixed a bug where we would overwrite + data_flags with -1 early, resulting in our returning no data. - * host/posix/posix-serial.c: Too much work to go into detail. Everything is at least - sketched out. + * host/posix/posix-serial.c: Too much work to go into detail. + Everything is at least sketched out. * ic/am9513.c (_tme_am9513_callout): - (_tme_am9513_th_timer): Added. - (_tme_am9513_bus_cycle): Now properly handle the - Clear Toggle Output command, and log it correctly. - Lock the new mutex on entry, call _tme_am9513_callout - if needed before exit, and unlock the mutex on exit. - (tme_ic_am9513_new): Start the new timer thread. + (_tme_am9513_th_timer): Added. + (_tme_am9513_bus_cycle): Now properly handle the Clear Toggle Output + command, and log it correctly. Lock the new mutex on entry, call + _tme_am9513_callout if needed before exit, and unlock the mutex on + exit. + (tme_ic_am9513_new): Start the new timer thread. * ic/z8530.c: Too many changes to go into detail. Highlights include - a real bus cycle handler, real channels, real serial - connections, real threads. Everything seems to be at - least sketched out. - - * ic/z8530reg.h: Added. - * ic/m68k/m68k-execute.c: Fixed a bug where we were using the return value of - tme_mutex_trylock as a truth value. - - * ic/m68k/m68k-misc.c: Changed to support the new generic bus signal interface - and the new m68k bus interrupt interface. - - * libtme/threads-sjlj.c (tme_sjlj_threads_run): Fixed a bug where we wouldn't lock - the mutex before returning from a condition wait. Fixed - a bug where we would block in select(2) instead of calling - it with a zero timeout. - (tme_sjlj_cond_wait_yield): Remember the mutex the thread - had locked so it can be relocked when the thread resumes. - (tme_sjlj_select_yield): Fixed bugs where we would treat - the nfds argument as the maximum fd, instead of the maximum - fd plus one. Fixed a bug where we couldn't handle NULL - descriptor sets. + a real bus cycle handler, real channels, real serial connections, real + threads. Everything seems to be at least sketched out. + + * ic/z8530reg.h: Added. + + * ic/m68k/m68k-execute.c: Fixed a bug where we were using the return + value of tme_mutex_trylock as a truth value. + + * ic/m68k/m68k-misc.c: Changed to support the new generic bus signal + interface and the new m68k bus interrupt interface. + + * libtme/threads-sjlj.c (tme_sjlj_threads_run): Fixed a bug where we + wouldn't lock the mutex before returning from a condition wait. Fixed + a bug where we would block in select(2) instead of calling it with a + zero timeout. + (tme_sjlj_cond_wait_yield): Remember the mutex the thread had locked + so it can be relocked when the thread resumes. + (tme_sjlj_select_yield): Fixed bugs where we would treat the nfds + argument as the maximum fd, instead of the maximum fd plus one. Fixed + a bug where we couldn't handle NULL descriptor sets. (tme_sjlj_read_yield): (tme_sjlj_write_yield): (tme_sjlj_read_yield): (tme_sjlj_rwlock_init): (tme_sjlj_rwlock_lock): - (tme_sjlj_rwlock_unlock): Added. + (tme_sjlj_rwlock_unlock): Added. - * machine/sun2/sun2-impl.h: Now track the interrupts asserted in the system, and the - last ipl asserted to the CPU. + * machine/sun2/sun2-impl.h: Now track the interrupts asserted in the + system, and the last ipl asserted to the CPU. * machine/sun2/sun2-mainbus.c (_tme_sun2_line_reset): (_tme_sun2_line_halt): - (_tme_sun2_line_interrupt): Removed. + (_tme_sun2_line_interrupt): Removed. (_tme_sun2_bus_signal): - (_tme_sun2_bus_intack): Added. - (_tme_sun2_power): Use the generic bus signal interface - to reset everything. - (tme_machine_sun2_clock_new): Store how the Am9513 output - pins are connected to bus interrupt lines. - - * machine/sun2/sun2-mmu.c (_tme_sun2_multibus_fault_handler): Added a hack to avoid - an mbmem bus error when accessed through virtual 0xffffffff, - which apparently happens in the PROM NMI routine when it - polls the keyboard, even if it didn't probe a keyboard. - - * machine/sun2/sun2-test.c: Updated. - * tme/element.h: Fixed various const to _tme_const. - * tme/threads.h: Redid the setjmp/longjmp rwlock operations. - Added various new function prototypes and macros. - - * tme/generic/bus-device.h: Support the new generic bus signal interface. - The tme_bus_device_connection_score, tme_bus_device_connection_make, - and tme_bus_device_connection_break functions are now public. - Fixed a const to _tme_const. - - * tme/generic/bus.h: Added the new generic bus signal and interrupt acknowledge - interfaces. Fixed various const to _tme_const. - - * tme/generic/serial.h: Now define TME_SERIAL_CTRL_OK_READ. - Removed the write method from a serial connection. All - data transfer happens with reads, with control signals - to indicate when reads are OK. - Removed the TME_ATOMIC use in struct tme_serial_buffer. + (_tme_sun2_bus_intack): Added. + (_tme_sun2_power): Use the generic bus signal interface to reset + everything. + (tme_machine_sun2_clock_new): Store how the Am9513 output pins are + connected to bus interrupt lines. + + * machine/sun2/sun2-mmu.c (_tme_sun2_multibus_fault_handler): Added a + hack to avoid an mbmem bus error when accessed through virtual + 0xffffffff, which apparently happens in the PROM NMI routine when it + polls the keyboard, even if it didn't probe a keyboard. + + * tme/element.h: Fixed various const to _tme_const. + + * tme/threads.h: Redid the setjmp/longjmp rwlock operations. Added + various new function prototypes and macros. + + * tme/generic/bus-device.h: Support the new generic bus signal + interface. The tme_bus_device_connection_score, + tme_bus_device_connection_make, and tme_bus_device_connection_break + functions are now public. Fixed a const to _tme_const. + + * tme/generic/bus.h: Added the new generic bus signal and interrupt + acknowledge interfaces. Fixed various const to _tme_const. + + * tme/generic/serial.h: Now define TME_SERIAL_CTRL_OK_READ. Removed + the write method from a serial connection. All data transfer happens + with reads, with control signals to indicate when reads are OK. + Removed the TME_ATOMIC use in struct tme_serial_buffer. (tme_serial_buffer_is_empty): - (tme_serial_buffer_is_full): Added. + (tme_serial_buffer_is_full): Added. + + * tme/ic/am9513.h: struct tme_am9513_socket now holds the basic clock + provided to the chip, and a mapping of its output pins to bus signals. + Fixed a const to _tme_const. + + * tme/ic/m68k.h: Now define some m68k IPL constant macros. Add the + new m68k bus interrupt method. Fixed various const to _tme_const. + + * tme/ic/z8530.h: Made the channel letters lowercase in structure + member names. Fixed a const to _tme_const. + +Sat Apr 26 21:46:16 2003 Matthew Fredette + + * Makefile.am TODO configure.in generic/Makefile.am + generic/bus-device.c generic/bus-el.c generic/bus.c generic/serial.c + host/posix/posix-memory.c host/posix/posix-serial.c ic/am9513.c + ic/z8530.c ic/i386/i386-decode.c ic/i386/i386-misc-auto-make.sh + ic/i386/i386-opmaps-make.sh ic/i386/i386-save.c + ic/i386/i386-uinsns-auto-make.sh ic/i386/i386-uinsns.c + ic/i386/i386.h tme/generic/Makefile.am tme/generic/bus-device.h + tme/generic/bus.h tme/generic/ic.h tme/generic/serial.h + tme/ic/am9513.h tme/ic/z8530.h: + + Added. + + * bus/Makefile.am host/posix/Makefile.am ic/m68k/Makefile.am + machine/Makefile.am machine/sun/Makefile.am machine/sun2/Makefile.am + machine/sun2/sun2-test.c: - * tme/ic/am9513.h: struct tme_am9513_socket now holds the basic clock provided - to the chip, and a mapping of its output pins to bus signals. - Fixed a const to _tme_const. - - * tme/ic/m68k.h: Now define some m68k IPL constant macros. - Add the new m68k bus interrupt method. - Fixed various const to _tme_const. - - * tme/ic/z8530.h: Made the channel letters lowercase in structure member names. - Fixed a const to _tme_const. - -Sat Apr 26 21:14:29 2003 Matthew Fredette - - * Makefile.am: Added. - * TODO: Added. - * configure.in: Added. - * bus/Makefile.am: Updated. - * bus/bus-device.c: Removed. - * bus/bus.c: Removed. - * generic/Makefile.am: Added. - * generic/bus-device.c: Added. - * generic/bus-el.c: Added. - * generic/bus.c: Added. - * generic/serial.c: Added. - * host/posix/Makefile.am: Updated. - * host/posix/memory.c: Renamed to posix-memory.c. - * host/posix/posix-memory.c: Added. - * host/posix/posix-serial.c: Added. - * ic/am9513.c: Added. - * ic/z8530.c: Added. - * ic/i386/i386-decode.c: Added. - * ic/i386/i386-misc-auto-make.sh: Added. - * ic/i386/i386-opmaps-make.sh: Added. - * ic/i386/i386-save.c: Added. - * ic/i386/i386-uinsns-auto-make.sh: Added. - * ic/i386/i386-uinsns.c: Added. - * ic/i386/i386.h: Added. - * ic/m68k/Makefile.am: Updated. - * ic/m68k/m68k-execute.c: Under _TME_M68K_EXECUTE_FAST, at the beginning of each - instruction we do have to check if our ITLB has been invalidated, - as it might have been by some random (control) memory cycle - we just did. - Fixed bugs in the predecrement and postincrement EA handlers. - - * ic/m68k/m68k-impl.h: Now include . - * ic/m68k/m68k-impl.h: Added support for logging. - * ic/m68k/m68k-insns-auto.sh: Fixed a serious movem bug where we would start at bit 1 - in the mask, and not bit 0. - In all memory transfer functions, log the transfer. - Made the bus cycle functions "work correctly". - Fixed bugs in the generated divide instructions. + Updated. - * ic/m68k/m68k-insns.c (tme_m68k_swap): Fixed a bug where this wouldn't work on - big-endian systems. + * bus/bus-device.c bus/bus.c tme/bus-device.h tme/bus.h tme/ic.h: + + Removed. + + * host/posix/memory.c: Renamed to posix-memory.c. + + * ic/m68k/m68k-execute.c: Under _TME_M68K_EXECUTE_FAST, at the + beginning of each instruction we do have to check if our ITLB has been + invalidated, as it might have been by some random (control) memory + cycle we just did. + Fixed bugs in the predecrement and postincrement EA handlers. + + * ic/m68k/m68k-impl.h: + * machine/sun2/sun2-impl.h: Now include . + + * ic/m68k/m68k-impl.h: Added support for logging. + + * ic/m68k/m68k-insns-auto.sh: Fixed a serious movem bug where we would + start at bit 1 in the mask, and not bit 0. + In all memory transfer functions, log the transfer. Made the bus + cycle functions "work correctly". Fixed bugs in the generated divide + instructions. + + * ic/m68k/m68k-insns.c (tme_m68k_swap): Fixed a bug where this + wouldn't work on big-endian systems. (tme_m68k_link): - (tme_m68k_unlk): Fixed serious bugs where we simply didn't - do what these instructions are supposed to do. + (tme_m68k_unlk): Fixed serious bugs where we simply didn't do what + these instructions are supposed to do. - * ic/m68k/m68k-iset.txt: On the 68010 and up, the move_from_sr and move_from_ccr - instructions don't read memory before writing it. - Fixed bugs in the encoding of the register bit-shifting - with a register count instructions. - - * ic/m68k/m68k-misc.c (tme_m68k_idle): Use the renamed tme_cond_wait_yield function. - (tme_m68k_new): Store the element in the IC. - (tme_m68k_go_slow): Use the TME_M68K_TLB_OK_FAST_READ to check - for a bad TLB entry. - (tme_m68k_exception_process): Don't insist on there being - exceptions to process. CPU-specific exception processors - may handle them all, yet still use this function to redispatch. - (_tme_m68k_execute_hook): Added. + * ic/m68k/m68k-iset.txt: On the 68010 and up, the move_from_sr and + move_from_ccr instructions don't read memory before writing it. Fixed + bugs in the encoding of the register bit-shifting with a register + count instructions. + + * ic/m68k/m68k-misc.c (tme_m68k_idle): Use the renamed + tme_cond_wait_yield function. + (tme_m68k_new): Store the element in the IC. + (tme_m68k_go_slow): Use the TME_M68K_TLB_OK_FAST_READ to check for a + bad TLB entry. + (tme_m68k_exception_process): Don't insist on there being exceptions + to process. CPU-specific exception processors may handle them all, + yet still use this function to redispatch. + (_tme_m68k_execute_hook): Added. * libtme/threads-sjlj.c (_tme_sjlj_then): (_tme_sjlj_timeout): (tme_sjlj_sleep_yield): - (tme_sjlj_select_yield): Added. - (tme_sjlj_threads_run): Cleaned up the threads dispatcher to - support threads waiting on classic select(2) fd sets, - (tme_sjlj_cond_wait_yield): Renamed from tme_sjlj_cond_wait. - (tme_sjlj_sleep): This function no longer yields. - - * machine/Makefile.am: Updated. - * machine/sun/Makefile.am: Updated. - * machine/sun/sun-mmu.c: Added some logging. - Disabled the explicit SEGINV support, for now. It appears that - the hardware MMU doesn't have a notion of an invalid PMEG. - Now call the post-MMU TLB fillers with the PTE struct and the - virtual address. - - * machine/sun2/Makefile.am: Updated. - * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Don't bother to fill the - segmap register unless this is a read. - - * machine/sun2/sun2-impl.h: Now include . - * machine/sun2/sun2-impl.h: Now include . - Added some support for logging. + (tme_sjlj_select_yield): Added. + (tme_sjlj_threads_run): Cleaned up the threads dispatcher to support + threads waiting on classic select(2) fd sets, + (tme_sjlj_cond_wait_yield): Renamed from tme_sjlj_cond_wait. + (tme_sjlj_sleep): This function no longer yields. + + * machine/sun/sun-mmu.c: Added some logging. + Disabled the explicit SEGINV support, for now. It appears that the + hardware MMU doesn't have a notion of an invalid PMEG. Now call the + post-MMU TLB fillers with the PTE struct and the virtual address. + + * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Don't + bother to fill the segmap register unless this is a read. - * machine/sun2/sun2-mainbus.c: Added some support for logging. + * machine/sun2/sun2-impl.h: Now include . Added + some support for logging. + + * machine/sun2/sun2-mainbus.c: Added some support for logging. (tme_machine_sun2_clock_new): - (tme_machine_sun2_zs_new): Added. + (tme_machine_sun2_zs_new): Added. * machine/sun2/sun2-mmu.c: Too much to go into detail. Highlights: - Added some logging support. - Made the bus error behavior more correct. On the sun2, - obio and obmem don't generate bus errors. Now the post-MMU - TLB filler takes the original PTE entry and the original - virtual address. - - * machine/sun2/sun2-test.c: Updated. - * tme/bus-device.h: Removed. - * tme/bus.h: Removed. - * tme/connection.h: Now define TME_CONNECTION_SERIAL. - * tme/element.h: Added logging support. - * tme/ic.h: Removed. + Added some logging support. + Made the bus error behavior more correct. On the sun2, obio and obmem + don't generate bus errors. Now the post-MMU TLB filler takes the + original PTE entry and the original virtual address. + + * tme/connection.h: Now define TME_CONNECTION_SERIAL. + + * tme/element.h: Added logging support. + * tme/ic.h: Now include - * tme/threads.h: Defined more of the tme threads API. - * tme/generic/Makefile.am: Added. - * tme/generic/bus-device.h: Added. - * tme/generic/bus.h: Added. - * tme/generic/ic.h: Added. - * tme/generic/serial.h: Added. - * tme/ic/am9513.h: Added. - * tme/ic/m68k.h: Now include . - * tme/ic/z8530.h: Added. - * tme/machine/sun.h: Added support for logging. - Changed the interface to pass the whole PTE struct to the post-MMU - TLB fillers. + + * tme/threads.h: Defined more of the tme threads API. + + * tme/ic/m68k.h: Now include . + + * tme/machine/sun.h: Added support for logging. + Changed the interface to pass the whole PTE struct to the post-MMU TLB + fillers. Sat Apr 26 14:44:07 2003 Matthew Fredette - * bus/bus.c (tme_bus_cycle_xfer): Fixed a bug where we used cycle_writer to - get the reader's port size. When indexing bus router arrays, we - have to subtract out the participant's least port lane, since - the arrays don't include information for lanes not connected - to the participant. - -Wed Apr 23 19:29:33 2003 Matthew Fredette - - * bus/Makefile.am: Added. - * bus/bus-device.c: Added. - * bus/bus.c: Added. - * host/Makefile.am: Added. - * host/posix/Makefile.am: Added. - * host/posix/memory.c: Added. - * ic/Makefile.am: Added. + * bus/bus.c (tme_bus_cycle_xfer): Fixed a bug where we used + cycle_writer to get the reader's port size. When indexing bus router + arrays, we have to subtract out the participant's least port lane, + since the arrays don't include information for lanes not connected to + the participant. + +Wed Apr 23 19:31:01 2003 Matthew Fredette + + * bus/Makefile.am bus/bus-device.c bus/bus.c host/Makefile.am + host/posix/Makefile.am host/posix/memory.c ic/Makefile.am + ic/m68k/m68k-impl.h libtme/Makefile.am libtme/threads-sjlj.c + machine/sun/Makefile.am machine/sun/sun-mmu.c + machine/sun2/Makefile.am machine/sun2/sun2-control.c + machine/sun2/sun2-impl.h machine/sun2/sun2-mainbus.c + machine/sun2/sun2-mmu.c machine/sun2/sun2-test.c tme/Makefile.am + tme/atomics.h tme/bus-device.h tme/bus.h tme/common.h + tme/connection.h tme/element.h tme/ic.h tme/threads.h + tme/ic/Makefile.am tme/ic/m68k.h tme/machine/Makefile.am + tme/machine/sun.h: + + Added. + * ic/m68k/m68010.c (_tme_m68010_exception): - (_tme_m68010_rte): Added. + (_tme_m68010_rte): Added. - * ic/m68k/m68k-bus-auto.sh: Now generates the combined input/output bus routers. - * ic/m68k/m68k-execute.c: Although I hate doing this, "too many changes to list." - * ic/m68k/m68k-impl.h: Added. - * ic/m68k/m68k-insns-auto.sh: Some minor copyright and cosmetic fixes. - Updated the bus cycle functions to support the latest - generic bus cycle idea. - - * ic/m68k/m68k-insns.c: Although I hate doing this, "too many changes to list." - * ic/m68k/m68k-iset-expand.pl: When the EA is an immediate, just emit the immediate information - and skip the EA information - we don't want to use the EA path - in this case. - - * ic/m68k/m68k-iset.txt: moveq is now its own insn. - * ic/m68k/m68k-misc-auto.sh: Copyright sweep. - * ic/m68k/m68k-misc.c: Although I hate doing this, "too many changes to list." - * ic/m68k/m68k-opmap-make.pl: Fixed some random bugs, and correctly handle the case where EA and - immediate operand must be undefined for a pattern, to avoid using - the EA and immediate operand in any root entry. - - * ic/m68k/m68k.h: Removed. - * libtme/Makefile.am: Added. - * libtme/threads-sjlj.c: Added. - * machine/sun/Makefile.am: Added. - * machine/sun/sun-mmu.c: Added. - * machine/sun2/Makefile.am: Added. - * machine/sun2/sun2-control.c: Added. - * machine/sun2/sun2-impl.h: Added. - * machine/sun2/sun2-mainbus.c: Added. - * machine/sun2/sun2-mmu.c: Added. - * machine/sun2/sun2-test.c: Added. - * tme/Makefile.am: Added. - * tme/atomics.h: Added. - * tme/bus-device.h: Added. - * tme/bus.h: Added. - * tme/common.h: Added. - * tme/connection.h: Added. - * tme/element.h: Added. - * tme/ic.h: Added. - * tme/threads.h: Added. - * tme/ic/Makefile.am: Added. - * tme/ic/m68k.h: Added. - * tme/machine/Makefile.am: Added. - * tme/machine/sun.h: Added. + * ic/m68k/m68k-bus-auto.sh: Now generates the combined input/output + bus routers. + + * ic/m68k/m68k-execute.c: + * ic/m68k/m68k-insns.c: + * ic/m68k/m68k-misc.c: Although I hate doing this, "too many changes + to list." + + * ic/m68k/m68k-insns-auto.sh: Some minor copyright and cosmetic fixes. + Updated the bus cycle functions to support the latest generic bus + cycle idea. + + * ic/m68k/m68k-iset-expand.pl: When the EA is an immediate, just emit + the immediate information and skip the EA information - we don't want + to use the EA path in this case. + + * ic/m68k/m68k-iset.txt: moveq is now its own insn. + + * ic/m68k/m68k-misc-auto.sh: Copyright sweep. + + * ic/m68k/m68k-opmap-make.pl: Fixed some random bugs, and correctly + handle the case where EA and immediate operand must be undefined for a + pattern, to avoid using the EA and immediate operand in any root + entry. + + * ic/m68k/m68k.h: Removed. Sun Apr 20 21:33:05 2003 Matthew Fredette - * ic/m68k/m68k-bus-auto.sh: Added. + * ic/m68k/m68k-bus-auto.sh: Added. Fri Apr 18 04:56:36 2003 Matthew Fredette - * ic/m68k/m68k-insns-auto.sh: Added support for generating the moveq32 insn. - Cleaned up and fixed some bugs in the bus cycle functions. + * ic/m68k/m68k-insns-auto.sh: Added support for generating the moveq32 + insn. Cleaned up and fixed some bugs in the bus cycle functions. - * ic/m68k/m68k-misc-auto.sh: Cleaned up the set of registers that we define. - Added better locking support to the instruction fetch macros. + * ic/m68k/m68k-misc-auto.sh: Cleaned up the set of registers that we + define. Added better locking support to the instruction fetch macros. Tue Apr 15 13:32:37 2003 Matthew Fredette - * ic/m68k/m68k-insns-auto.sh: Unfortunately, too much work to list in detail. Improved the - arithmetic function flag-setting code to compile well on i386 - with gcc -O2. Added many special-purpose memory read and write - functions, and finally introduced the general bus-cycle read - and write functions. Added many new instructions, including - multiply and divide. + * ic/m68k/m68k-insns-auto.sh: Unfortunately, too much work to list in + detail. Improved the arithmetic function flag-setting code to compile + well on i386 with gcc -O2. Added many special-purpose memory read and + write functions, and finally introduced the general bus-cycle read and + write functions. Added many new instructions, including multiply and + divide. Sat Apr 05 18:47:38 2003 Matthew Fredette - * machine/Makefile.am: Added. + * machine/Makefile.am: Added. -Tue Apr 01 20:13:07 2003 Matthew Fredette +Tue Apr 01 20:13:40 2003 Matthew Fredette - * ic/m68k/Makefile.am: Build decoders for the 68000, 68010, and 68020. - * ic/m68k/m68k-iset-expand.pl: Added a very basic preprocessor to support generating - different instruction sets for different CPUs. - Now whenever an instruction wants the EA, its operand - is eax.32 even if the known EA is address register indirect. + * ic/m68k/Makefile.am: Build decoders for the 68000, 68010, and 68020. + * ic/m68k/m68k-iset-expand.pl: Added a very basic preprocessor to + support generating different instruction sets for different CPUs. Now + whenever an instruction wants the EA, its operand is eax.32 even if + the known EA is address register indirect. - * ic/m68k/m68k-iset.txt: This should be the complete integer instruction set for the - 68000, 68010, 68020, and 68030. + * ic/m68k/m68k-iset.txt: This should be the complete integer + instruction set for the 68000, 68010, 68020, and 68030. - * ic/m68k/m68k-opmap-make.pl: Added comments, and reworked to support compiling instruction - sets for different CPUs together, reusing submaps and opcode - maps whenever possible. + * ic/m68k/m68k-opmap-make.pl: Added comments, and reworked to support + compiling instruction sets for different CPUs together, reusing + submaps and opcode maps whenever possible. - * ic/m68k/m68k.h: Before the -impl.h split. + * ic/m68k/m68k.h: Before the -impl.h split. Sun Mar 30 22:04:15 2003 Matthew Fredette - * ic/m68k/Makefile.am: Added. - * ic/m68k/m68010.c: Added. - * ic/m68k/m68k-execute.c: Added. - * ic/m68k/m68k-insns-auto.sh: Added. - * ic/m68k/m68k-insns.c: Added. - * ic/m68k/m68k-iset-expand.pl: Added. - * ic/m68k/m68k-iset.txt: Added. - * ic/m68k/m68k-misc-auto.sh: Added. - * ic/m68k/m68k-misc.c: Added. - * ic/m68k/m68k-opmap-make.pl: Added. - * ic/m68k/m68k.h: Added. - -Sun Mar 30 22:04:15 2000 Matthew Fredette + * ic/m68k/Makefile.am ic/m68k/m68010.c ic/m68k/m68k-execute.c + ic/m68k/m68k-insns-auto.sh ic/m68k/m68k-insns.c + ic/m68k/m68k-iset-expand.pl ic/m68k/m68k-iset.txt + ic/m68k/m68k-misc-auto.sh ic/m68k/m68k-misc.c + ic/m68k/m68k-opmap-make.pl ic/m68k/m68k.h: - * Dummy entry. + Added.