diff --git a/BasiliskII/ChangeLog b/BasiliskII/ChangeLog index f2efd2f9..6f76b9b0 100644 --- a/BasiliskII/ChangeLog +++ b/BasiliskII/ChangeLog @@ -1,4 +1,13 @@ V0.8 (snapshot) - + - Unix: runs natively on NetBSD/m68k + - Unix: compiles without pthreads, but without serial/ethernet/audio + support + - Unix: "--without-mon" configure option now works + - Unix/video_x.cpp: DGA and SHM are only tried on local X11 displays + - Unix/video_x.cpp: re-integrated old window update method; frameskip=0 + ("Dynamic") selects new method, other values select old method + - Unix/prefs_editor_unix.cpp: new "Input" pane, containing keycode + and mouse wheel options - AmigaOS: added support for CyberGraphX [Jürgen Lachmann] - audio.cpp: audio_data is cleared on reset [Lauri Pesonen] - prefs.cpp: empty string prefs items could be written to prefs file @@ -6,7 +15,6 @@ V0.8 (snapshot) - - clip_*.cpp: added prefs item "noclipconversion" for turning off charset conversion of text clips (only CR->LF gets translated), [Toshimitsu Tanaka] - - Unix: "--without-mon" configure option now works V0.8 (snapshot) - 14.Mar.2000 - Unix/video_x.cpp: new window refresh code [Samuel Lander] diff --git a/BasiliskII/INSTALL b/BasiliskII/INSTALL index 4edf9967..8fe6e287 100644 --- a/BasiliskII/INSTALL +++ b/BasiliskII/INSTALL @@ -23,9 +23,10 @@ BeOS: Basilisk II cannot do Mac Classic emulation. Unix: - You need X11R6, pthreads support and GNU make. To use the GUI preferences - editor, you also need GTK+ version 1.2 or better. On Linux, you need - glibc 2.0 or better. + You need X11R6 and a "make" utility with the VPATH feature (e.g. GNU make). + For serial, ethernet and audio support, you need pthreads. To use the GUI + preferences editor, you also need GTK+ version 1.2 or better. On Linux, you + need glibc 2.0 or better. AmigaOS: You need at least a 68020 and AmigaOS 3.0 or better. To get the GUI @@ -89,6 +90,44 @@ Unix: turns on massive interprocedural optimization, and makes for much better performance." + ATTENTION NetBSD/m68k USERS: + If you want to run Basilisk II natively (i.e. without CPU emulation), you + must NOT use a pthreads library. User-level threads libraries such as PTL + interfere with the signal handlers installed by Basilisk II and kernel- + level threads are not supported by NetBSD, so you will have to live without + pthreads (and thus, without serial/ethernet/audio support). + + ATTENTION NetBSD/mac68k USERS: + Current (as of July 2000) versions of the NetBSD/mac68k kernel have a bug + that not only prevents Basilisk II from running properly but seems to even + cause kernel panics under certain conditions! Apply the following patch to + /sys/arch/mac68k/mac68k/macromasm.s, recompile and re-install the kernel + and reboot before using Basilisk II: + + --- macromasm.s.orig Wed Jul 5 19:29:01 2000 + +++ macromasm.s Wed Jul 5 19:12:34 2000 + @@ -37,6 +37,8 @@ + + #include "opt_adb.h" + #include "assym.h" + +#include + +#include + + + /* Define this symbol as global with (v) value */ + @@ -437,8 +439,9 @@ + movw sp@(FR_HW + 4), d0 | retrieve status register + andw #PSL_S, d0 | supervisor state? + bne Lalnosup | branch if supervisor + - jbsr _mrg_aline_user | user a-line trap + - bra Lalrts + + addql #4, sp | pop frame ptr + + movql #T_ILLINST, d0 | user-mode fault + + jra _ASM_LABEL(fault) + Lalnosup: + #define FR_PC (FR_HW+2) + movl sp@(FR_PC + 4), a0 | retrieve PC + AmigaOS: If you have a binary distribution of Basilisk II for AmigaOS, there is an executable included. You must also have the "PrepareEmul" utility installed diff --git a/BasiliskII/README b/BasiliskII/README index 1b3efc14..70c120d9 100644 --- a/BasiliskII/README +++ b/BasiliskII/README @@ -22,7 +22,8 @@ distributed under the GNU General Public License. Basilisk II has currently been ported to the following systems: - BeOS R4 (PowerPC and x86) - - Unix (tested under Linux, Solaris 2.5, FreeBSD 3.x and IRIX 6.5) + - Unix (tested under Linux, Solaris 2.5, FreeBSD 3.x, NetBSD 1.4.2 and + IRIX 6.5) - AmigaOS 3.x - Windows NT 4.0 (mostly works under Windows 95/98, too) @@ -41,7 +42,8 @@ Some features of Basilisk II: - Serial drivers - SCSI Manager (old-style) emulation - Emulates extended ADB keyboard and 3-button mouse - - Uses UAE 68k emulation or (under AmigaOS) real 68k processor + - Uses UAE 68k emulation or (under AmigaOS and NetBSD/m68k) real 68k + processor The emulator is not yet complete. See the file "TODO" for a list of unimplemented stuff. @@ -414,7 +416,9 @@ frameskip For refreshed graphics modes (usually window modes), this specifies how many frames to skip after drawing one frame. Higher values make the video display more responsive but require more processing power. - The default is "8". + The default is "8". Under Unix/X11, a value of "0" selects a "dynamic" + update mode that cuts the display into rectangles and updates each + rectangle individually, depending on display changes. modelid @@ -476,6 +480,18 @@ Unix: is /usr/local/share/BasiliskII/fbdevices. A sample file is included with Basilisk II. + mousewheelmode + + If you have a mouse with a wheel, this option specifies whether moving + the wheel will be reported to the MacOS as "Page up/down" (mode 0) or + "Cursor up/down" (mode 1) keys. + + mousewheellines + + If "mousewheelmode" is set to mode 1 (Cursor up/down), this option sets + the number of key events sent to MacOS for each wheel movement (the + number of lines to scroll). + AmigaOS: sound diff --git a/BasiliskII/TECH b/BasiliskII/TECH index 95666a1c..9156e3b3 100644 --- a/BasiliskII/TECH +++ b/BasiliskII/TECH @@ -105,11 +105,11 @@ and EMULATED_68K defines in "sysdeps.h"): priviledged instructions, mostly for interrupt control). So either the whole emulator has to be run in supervisor mode (which usually is not possible on multitasking systems) or priviledged instructions have - to be trapped and emulated. The Amiga version of Basilisk II uses the - latter approach (it is possible to run supervisor mode tasks under - the AmigaOS multitasking kernel (ShapeShifter does this) but it - requires modifying the task switcher and makes the emulator more - unstable). + to be trapped and emulated. The Amiga and NetBSD/m68k versions of + Basilisk II use the latter approach (it is possible to run supervisor + mode tasks under the AmigaOS multitasking kernel (ShapeShifter does + this) but it requires modifying the Exec task switcher and makes the + emulator more unstable). c) On multitasking systems, interrupts can usually not be handled as on a real Mac (or with the UAE CPU). The interrupt levels of the host will not be the same as on a Mac, and the operating systems might not diff --git a/BasiliskII/TODO b/BasiliskII/TODO index 48c40452..b8d8bdf4 100644 --- a/BasiliskII/TODO +++ b/BasiliskII/TODO @@ -2,7 +2,8 @@ Bugs: - System 7.1 with Quadra900 ModelID (1MB ROM): 0x108 gets strange value - Strange things happen when the Mac ROM is lower in memory than the RAM - Something still seems to be wrong with the UAE FPU (Calculator and scroll - bars in MacOS 8 don't work properly) + bars in MacOS 8 don't work properly), Lauri has fixed this and it has to + be integrated into the main sources General: - Sony: rdVerify, Tag Buffer, DskErr @@ -48,3 +49,4 @@ Unix: - ESD is also available on Solaris - open /dev/dsp with O_NONBLOCK? - serial_unix.cpp: provide a way to pipe input/output to programs +- NetBSD/m68k: FPU support diff --git a/BasiliskII/src/include/user_strings.h b/BasiliskII/src/include/user_strings.h index 0032c6ff..c98bbab2 100644 --- a/BasiliskII/src/include/user_strings.h +++ b/BasiliskII/src/include/user_strings.h @@ -122,6 +122,7 @@ enum { STR_REF_15HZ_LAB, STR_REF_30HZ_LAB, STR_REF_60HZ_LAB, + STR_REF_DYNAMIC_LAB, STR_DISPLAY_X_CTRL, STR_DISPLAY_Y_CTRL, STR_SIZE_384_LAB, diff --git a/BasiliskII/src/user_strings.cpp b/BasiliskII/src/user_strings.cpp index 03599c0f..ecf734bf 100644 --- a/BasiliskII/src/user_strings.cpp +++ b/BasiliskII/src/user_strings.cpp @@ -137,6 +137,7 @@ user_string_def common_strings[] = { {STR_REF_15HZ_LAB, "15 Hz"}, {STR_REF_30HZ_LAB, "30 Hz"}, {STR_REF_60HZ_LAB, "60 Hz"}, + {STR_REF_DYNAMIC_LAB, "Dynamic"}, {STR_DISPLAY_X_CTRL, "Width"}, {STR_DISPLAY_Y_CTRL, "Height"}, {STR_SIZE_384_LAB, "384"},