1Changelog for GXemul:
2---------------------
3
420030829	Skeleton. ELF stuff. Some instructions.
520030830	Simple test programs using +-*/^|&%, function calls,
6		loops, and stuff like that work.
720030903	Adding more instructions, fixing some bugs.
820030907	Making adding of memory mapped devices easier, although
9		the framework isn't built for speed.
10		Adding a -q switch to turn of debug output.
1120030911	Trying to fix some bugs. Minor changes. Some COP0
12		registers are now meaningful.
1320030919	Making APs (non-bootstrap cpus) available via a simple
14		'mp' device. Implementing ll/lld and sc/scd (for atomic
15		memory updates, needed by MP operating systems).
1620030923	Minor updates: more instructions (divu, mulu, lwu,
17		perhaps some more), and opcode usage statistics.
1820030924	If the next instruction is nullified (for 'branch
19		likely' type of instructions), counters for delays etc
20		are now decreased as they should.
21		Adding some comments.
22		Adding instructions: movz, movn.
23		Adding a simple mandelbrot test to mipstest.c.
2420030925	Adding instructions: bltzl, bgezl, lh, lhu, sh, mfc*,
25		mtc*.
26		Adding a dummy instructions: sync, cache.
27		Adding minimal DECstation PROM functionality: printf()
28		and getsysid() callback functions.
29		Beginning work on address translation.
3020030927	Adding some more cop0 functionality (tlb stuff).
31		Adding mc146818 real-time clock. (Skeleton stuff.)
3220030928	Adding a dc7085 serial console device (dummy, but enough
33		to output chars to the screen). NetBSD uses this for
34		the MIPSMATE 5100.
3520030929	Working on the TLB stuff.
36		Adding instructions: srlv, tlbwr, tlbr, tlbp, eret.
3720030930	Trying to find a bug which causes NetBSD to bug out, but
38		it is really hard.
39		Adding some a.out support (for loading an old
40		OpenBSD 2.8/pmax kernel image).
41		Adding instructions: lwc*, ldc*, swc1 and swc3.
42		Beginning to add special code to handle the differences
43		between R4000 (the default emulation) and R2000/R3000.
4420031001	Symbol listings produced by 'nm -S' can be used to
45		show symbolic names for addresses. (-S)
4620031002	Fixing the i/d fake cache for R2000/R3000. It's still
47		just an ugly hack, though.
48		Fixing minor bugs to make the 3100 emulation use the
49		dc device (serial console) correctly. So far, 5100 and
50		3100 are the only ones that get far enough to print
51		stuff, when booting NetBSD.
5220031004	Adding skeleton Cobalt machine emulation (-E).
53		Adding a dummy ns16550 serial controller, used by the
54		Cobalt machine emulation.
5520031006	Adding unaligned load/store instructions (lwl, lwr,
56		ldl, ldr, swl, swr, sdl, sdr), although they are not
57		tested yet.
58		Fixed a "data modified on freelist" bug when running
59		NetBSD/cobalt: setting the top bit of the index register
60		when a tlbp fails (as the R4000 manual says) isn't
61		sufficient, I had to clear the low bits as well.
62		Adding break and syscall instructions, but they are not
63		tested yet.
64		Adding a 'gt' device, faking a PCI bus, for the Cobalt
65		emulation.
6620031008	Adding initial support for HPCmips (-F), a framebuffer
67		device using X11. NetBSD/hpcmips can output pixels to
68		the framebuffer, but that's about it.
6920031009	Fixing the NetBSD/pmax bug: the "0/tftp/netbsd" style
70		bootstring was only passed correctly in the bootinfo
71		block, it needs to be passed as argv[0] as well.
72		Adding instructions: mtlo, mthi.
73		Rearrangning the source tree layout.
74		Adding console input functionality. The NetBSD/cobalt
75		kernel's ddb can now be interacted with.
7620031010	Adding experimental (semi-useless) -t option, to show
77		a function call tree while a program runs.
78		Linux/cobalt now prints a few messages, but then hangs
79		at "Calibrating delay loop..." unless an ugly hack is
80		used (setting a word of memory at 0x801e472c to non-zero).
8120031013	Adding a framebuffer device used in DECstation 3100;
82		VFB01 for mono is implemented so far, not yet the
83		VFB02 (color) variant.  Rewriting the framebuffer
84		device so that it is usable by both HPCmips and DECstation
85		emulation.
8620031014	Minor fixes. Everything should compile and run ok
87		both with and without X11.
8820031015	Adding support for ECOFF binary images; text, data,
89		and symbols are loaded. (Playing around with ultrixboot
90		and ultrix kernels.)
9120031016	The DECstation argv,argc stuff must be at 0xa0000000,
92		not 0x80000000, or Ultrix kernels complain.
93		Adding R2000/R3000 'rfe' instruction.
94		Implementing more R2K/R3K tlb specific stuff, so that
95		NetBSD boots and uses the tlb correctly, but much of
96		it is ugly. (Needs to be separated in a cleaner way.)
97		ECOFF symbols sizes are now calculated, so that offsets
98		within symbols are usable.
9920031017	DECstation bootstrings now automatically include the
100		correct name of the kernel that is booting.
101		Ultrix boots a bit.
10220031018	ELF symbols are now read automatically from the binary.
103		-t trace looks a bit better (string arguments are shown).
104		Trying to get initial R5900 stuff working (the 128-bit
105		CPU used in Playstation 2).
106		Fixing a minor bug to make the VFB02 (color framebuffer)
107		device work better, but it is still just 256 grayscales,
108		not real color. Ultrix can now use the framebuffer (it
109		calls it PMAX-CFB).
110		A machine can now consist of CPUs of different types.
111		Adding instructions: daddi, mov_xxx, mult_xx. The xxx
112		instructions are not documented MIPS64 instructions,
113		but NetBSD/playstation2 uses them. Perhaps VR5432
114		instructions?
115		Adding sign-extension to 32-bit mult.
116		Adding Playstation 2 devices: dmac (DMA controller),
117		gs (Graphic something?), and gif (graphics something
118		else, which has access to the PS2's framebuffer).
119		NetBSD/playstation2 works a bit, and prints a few
120		bootup messages.
12120031020	The cpu_type field of the cpu struct now contains
122		usable values in a much better form than before. This
123		simplifies adding of new CPU types.
12420031021	Fixing an interrupt related bug: pc_last was used, but
125		for interrupts this was incorrect. Fixed now.
126		Fixing a load/store related bug: if a load into a
127		register was aborted due to an exception, the register
128		was still modified.
129		The mc146818 rtc now reads its time from the system's
130		time() function.
131		Fixing another exception bug: if loading an instruction
132		caused an exception, something bogus happened as the
133		emulator tried to execute the instruction anyway. This
134		has been fixed now.
13520031023	Adding a quick hack which skips "while (reg --) ;"
136		kind of loops.
137		NetBSD/pmax suddenly reached userland (!), but only
138		once and attempts to repeat it have failed. I believe
139		it is problems with my interrupt handling system.
14020031024	Adding 8-bit color palette support to the framebuffer.
141		Connecting the pmax vdac device to the framebuffer's
142		rgb palette.
143		Fixing a bug in the dc device, so that console input
144		is possible; interaction with NetBSD/pmax's built-in
145		kernel debugger works now.
146		Symbol sizes for file formats where symbol size isn't
147		included are now calculated regardless of file format.
148		Physical memory space can now be smaller than 64 bits,
149		improving emulation speed a bit.
150		Doing other minor performance enhancements by moving
151		around some statements in critical parts of the code.
15220031025	Minor changes to the dc device.
15320031026	Adding support for reading symbols directly from
154		a.out files. (Works with OpenBSD/pmax binaries.)
155		Hardware devices may now register "tick functions" at
156		specific cycle intervals in a generic fashion.
157		All four channels of the dc serial controller device
158		should now work; playing around with keyboard scan
159		code generation when using the DECstation framebuffer.
160		Making various (speed) improvements to the framebuffer
161		device.
16220031027	Playing around with the sii SCSI controller.
16320031028	Minor fixes.
164		Adding an SGI emulation mode (-G), and some ARCBIOS
165		stuff, which SGIs seem to use.
166		Adding getbitmap() to the DEC prom emulation layer,
167		so some more -D x models become more usable.
168		Adding a dummy 'ssc' serial console device for
169		DECsystem 5400 emulation.
170		Playing around with TURBOchannel stuff.
17120031030	Minor fixes.
172		Adding the sub instruction. (Not tested yet?)
173		Sign-extending the results of multu, addi,addiu,
174		add,addu,sub,subu,mfcZ.
175		Adding a colorplanemask device for DECstation 3100.
176		Fixed the NetBSD/pmax bug: I had forgotten to reset
177		asid_match to 0 between tlb entry checks. :-)  Now
178		userland runs nicely...
17920031031	Fixing more bugs:  unaligned load/store could fail
180		because of an exception, but registers could be "half
181		updated". This has been fixed now.  (As a result,
182		NetBSD/pmax can now run with any of r2000,r3000,r4000,
183		r4400, or r5000.)
184		Adding some R5K and R10000 stuff.  (Note: R5K is NOT
185		R5000. Weird.)
186		Adding dummy serial console (scc) for MAXINE.
187		MAXINE also works with framebuffer, but there is no
188		color palette yet (only black and white output).
18920031101	Moving code chunks around to increase performance by
190		a few percent.
191		The opcode statistics option (-s) now shows opcode
192		names, and not just numbers. :-)
193		Fixing the bug which caused NetBSD/pmax to refuse
194		input in serial console mode, but not in keyboard/
195		framebuffer mode: the osconsole environment variable
196		wasn't set correctly.
197		Adding DEC PROM getchar() call.
198		The transmitter scanner of the dc device now scans
199		all four channels at once, for each tick, so serial
200		output is (approximately) 4 times faster.
20120031103	Adding a dummy BT459 vdac device, which does nothing
202		but allows a PMAG-BA turbochannel graphics card to be
203		used as framebuffer.
204		Several DECstation machines (-D 2, 3, and 4) can now
205		use TURBOchannel option card framebuffers as console,
206		for output. (Keyboard input is still not implemented
207		for those models.)  Only PMAG-AA (1280x1024x8) and
208		PMAG-BA (1024x864x8), both using BT459 vdac, have
209		been tested so far.
210		Modifying the X11 routines so that several framebuffer
211		windows now can be used simultaneously (if several
212		graphics option cards are to be emulated concurrently).
21320031104	DEC MIPSMATE 5100 (KN230) interrupts are shared
214		between devices. I've added an ugly hack to allow
215		that to work, which makes it possible to boot NetBSD
216		into userland with serial console.
21720031106	Removing the -S (symbol) option, as symbol files can
218		now be given in any order together with other file
219		names to be loaded.
220		cookin tipped me about using (int64_t) (int32_t)
221		casts instead of manually sign-extending values.
222		Casting sometimes increases performance, sometimes
223		decreases. It's tricky.
224		Importing mips64emul into CVS.
22520031107	Adding a generic ARC emulation mode.
226		Increasing performance of the framebuffer by not
227		updating it (or the XImage) if a write to the
228		framebuffer contains exactly what is already in it.
229		(This improves scrolling speed and initialization.)
230		Adding initial MIPS16 support.
231		Adding initial disk image support (-d command line
232		option), but this will not be used until I get some
233		kind of SCSI-controller emulation working.
23420031108	Adding the first MIPS16 instructions: "move y,X",
235		"ld y,D(x)", and "daddiu S,K" (but the last one
236		doesn't work yet).
237		Fixing the console environment variable for
238		Enough of the 'asc' controller is now implemented
239		to let NetBSD get past scsi disk detection when
240		no disk images are used.
241		DECstation machine type 2; both serial console and
242		graphical console work now.
243		Other X-windows bit-depths than 24 bits work now,
244		but colors are still not correct in non-24 bit modes.
245		Keypresses in X framebuffer windows are now
246		translated into console keypresses. (Normal keys, but
247		not cursor keys or other special keys.)
24820031111	Adding support for X11 using non-24-bit output.
24920031120	Adding X11 mouse event to emulated mouse event
250		translation, but it's not tested yet.
251		Trying to get more of the SCSI controller emulation
252		to work.
25320031124	Raw binaries can now be loaded into memory.
25420031204	Adding srec binary support.
25520031220	Adding some super-ugly arcbios emulation code.
256		Making some progress on the SGI and ARC machine
257		emulations.
25820031222	SGI and ARC progress. Multiple CPUs are now added to
259		the arcbios component tree (although NetBSD cannot
260		actually use more than one).
26120031228	Adding 'crime' and 'macepci' fake devices for SGI
262		emulation.
263		Finally implementing the cop0 'compare' register.
264		Improvements to the ns16550 device, but it is still
265		incomplete.
266		SGI userland is now reached, but interaction is broken
267		(due to the buggy ns16550).
26820031229	Adding some more instructions: teq, dsllv
269		Adding a Nintendo 64 emulation mode (skeleton).
270		Adding R4300 and R12000 to the cpu list.
27120031230	Adding bltzal, bltzall, bgezal, bgezall (not really
272		tested yet).
273		Fixing the 16550 serial controller device (by not
274		supporting fifo, so in fact it emulates a 16450
275		instead).  This causes NetBSD/sgimips to run nicely
276		into userland, sysinst, and so on.
277		Some ARC/RD94 interrupts seem to work ok now, but
278		i/o interrupts are still not correctly implemented.
279		NetBSD/arc userland is reached and can be interacted
280		with, but there's no sysinst (?).
28120040103	Trying to get some Irix stuff to work, but it's hard.
282		Fixing some Cobalt/linux problems.
28320040104	Adding a dummy 8250 device, so that Linux/sgimips can output
284		console messages.
285		Adding dmultu. (The same as dmult, so I'm not sure it's correct.
286		Perhaps dmultu is correct and dmult is wrong...)
287		Fixing a bug in unaligned load/stores of 64-bit values (a cast
288		was needed).
289		Linux/sgimips in 64-bit works a bit more than before.
290		Adding simple (polled) input functionality to dev_zs.
291		Making some progress on SGI-IP22 (IP32 still works best,
292		though).
293		Fixing the mc146818 clock device in ARC/NEC and SGI emulation
294		modes, the year field was not correct.
295		Adding a fake 'pref' instruction (lwc3).
29620040106	Separating out memory.h from misc.h.
297		Refactoring of a lot of small code fragments.
298		The PCI bus device is now shared between Cobalt, SGI, and ARC.
299		Support for RAM mirroring (dev_ram.c, not really tested yet).
300		Ugly hack to select the largest of ELF string symbol tables,
301		if there are more than one.
302		Memory hole fix for ARCBIOS, and a fix for very large (>= 4GB)
303		amounts of emulated RAM.
304		TGA (DEC 21030) PCI graphics device. NetBSD/arc can boot with
305		this card and use it as a framebuffer console.
30620040107	Adding a fix (partly incorrect) to daddi, to allow Linux/sgimips
307		to boot in 64-bit mode.
30820040108	Fixing a sll/nop bug (rd==0 for nop, not sa==0 as before).
30920040109	Trying to get an SGI-IP32 PROM image to boot.
31020040110	Faking R10000 cache things.
311		The PROM image boots, although it takes almost forever for it
312		to realize that there is no keyboard.
313		The 'gbe' SGI-IP32 graphics device works enough to display the
314		Linux framebuffer penguin in the upper left corner :-)
31520040111	-p and -P addresses can now be given as symbol names, not just
316		numeric values.
317		Experimenting with adding a PCIIDE (dev_wdc) controller to the
318		Cobalt emulation.
31920040120	Adding src/bintrans.c. No code yet, but this is a place for
320		ideas to be written down.
321		Increasing performance a little bit by inlining the check for
322		interrupts (which occurs for every instruction).
32320040124	Experimenting with pure userland (syscall) emulation.
32420040127	Fixes for compiling under Solaris.
32520040206	Some bintrans experiments.
32620040209	Adding some simple Ultrix userland emulation syscalls.
32720040211	Adding decprom_dump_txt_to_bin.c to the experiments/ dir.
328		Adding a section to doc/ on how to use DECstation PROM dumps.
329		Adding a hello world example to doc/ as well.
33020040218	TURBOchannel slots that are empty now return a DBE exception,
331		so that Ultrix and DECstation PROMs don't complain about
332		broken TURBOchannel ROMs.
333		Working some more on the machine-dependant interrupt stuff.
33420040219	Trying out some Linux/DECstation kernels (semi-successfully).
33520040222	YES! I finally found the bug that caused Linux/SGI-IP32 to only
336		work on Alpha, not on 32-bit machines.  It was a shift left,
337		probably done using 6 bits on alpha, 5 bits on 32-bit machines.
33820040223	Some minimal DEC KN5800 progress; Ultrix prints some boot
339		messages, detects 16 XMI R3000 cpus, and get a NULL panic.
340		It's all fake, though, the CPUs don't actually work.
341		Still, better than nothing :-)
34220040225	An Ultrix OSF1 kernel with a ramdisk now boots :-)  (It was
343		a problem with ultrixboot not giving the same arguments as
344		NetBSD's boot program.)
34520040225(later)	Fixing a bug in the DECstation dc serial device; digits 0-9
346		were translated to numeric keypad 0-9, not the normal 0-9.
347		(This caused Ultrix to print escape sequences instead of
348		digits.)
34920040226	Some progress on machine-dependant interrupt delivery
350		for -D7 (Maxine) and -D4, and some more 'scc' serial
351		controller featuers are implemented (but no interrupts/
352		dma/keyboard/mouse stuff yet).
35320040228	Progress on the scc controller; -D4 works in both serial
354		console mode and with keyboard (graphical console), but no
355		mouse yet.
35620040301	SGI mace interrupts are now done using the new machine-
357		independant interrupt system.
35820040303	Fixing an R5900 bug; the lowest 6 bits have special meaning
359		for coprocessor functions, not just 5 bits as on non-R5900
360		CPUs. (This fixes a bug which caused NetBSD to crash.)
36120040304	Adding enough (fake) DMA capabilities to the ioasic device
362		to allow Ultrix to print boot messages in the -D3, -D4,
363		and -D7 modes, and also print graphical console messages
364		in -D4 and -D7 modes.
365		-D11 (DEC5500) polled getchar added (to the 'ssc' device).
366		Adding the 'madd' instruction (including R5900 weird stuff).
36720040304(later)	Playstation 2's GIF can now copy 640x16 pixel chunks, allowing
368		NetBSD to scroll up the framebuffer.  The cursor also works
369		better now.
370		Playstation 2 bootinfo RTC data should now be passed correctly
371		to the running kernel.
372		DECstation rtc year should be either 72 or 73, anything else
373		will cause Ultrix to give a warning about invalid year.
37420040306	Combining playstation2's dmac, interrupt, and timer devices
375		into one (ps2_stuff).
376		Adding some R5900 instructions: mfsa, mtsa, pmfhi, pmflo, por,
377		lq, and sq.  (Most of them are just guesses, though.)
378		Implementing my own XImage putpixel routine, which can be
379		inlined... significantly faster than normal XPutPixel. :-)
38020040307	Implementing the basic functionality of a "PMAG-CA" pixelstamp
381		accellerated framebuffer device. Works with NetBSD and
382		Ultrix, but no cursor or color support.
38320040308	PMAG-CA, -DA, and -FA pixelstamps seem to work now.
384		Adding a hack to allow a pmax/mach kernel to be loaded (it's
385		a COFF file with 0 (!) sections).
386		Initial test of bt459 + framebuffer cursor support.
38720040309	Fixes/updates of dev_dec5800 and dev_ssc (and dev_decxmi) allow
388		a KN5800 Ultrix-OSF1-ramdisk kernel to boot all the way into
389		userland and be interacted with.
390		The bt459 cursor should now look semi-nice, but it is still
391		a bit fake.
39220040310	Moving the DEC CCA stuff from src/machine.c into a separate
393		device file (devices/dev_deccca.c).
394		An ugly hack added to allow some more OSF/1 kernels (almost
395		a.out, but without many of the header fields) to load.
39620040314	Adding PMAG-JA and PMAG-RO (1280x1024 x 8-bit) TURBOchannel
397		graphics devices. They work in Ultrix, but only monochrome
398		and no cursor, because there are no ramdacs or such yet.
39920040315	Pixelstamp solid fill now supports colors other than just
400		zero-fill.
401		Adding a (new) regression test skeleton.
40220040321	Some really minor updates.
40320040323	Fixes to allow SGI-IP20 and IP22 to work a bit better
404		(aliased memory), and adding "private" firmware-like vectors
405		to arcbios emul. An IP22 Irix kernel gets far enough to
406		print an assertion warning (and then double panics). :-)
40720040324	Adding a generalization hack to the SCC serial controller
408		to work with SGI-IP19 (in addition to DECstations).
409		Adding the 'sdc1' instruction.
410		Some progress on various SGI emulation modes.
41120040325	Minor updates.
41220040326	Fixed a 'madd' bug (r5900). NetBSD/playstation2 now reaches
413		userland correctly.  And a simple fix which allows NetBSD
414		timer interrupts to be triggered; NetBSD uses T_MODE_CMPE
415		(compare), while Linux uses _OVFE (overflow).
41620040328	Linux on Playstation 2 boots a bit. The Playstation 2
417		graphics controller has been extended to work better with
418		NetBSD, and to include some Linux support as well.
419		Some interrupt handling enhancements on Playstation 2,
420		needed for Linux' dma.
421		128-bit loads and stores (lq and sq) are allowed, although
422		the top half of quadwords are not modified by other
423		instructions. (Linux uses lq and sq.)
424		Big-endian X Windows servers now display correct rgb color,
425		not bgr as before.
42620040330	Some minor updates to the documentation.
42720040401	Adding a dummy ps2 OHCI device.
42820040402	Progress on the asc SCSI controller.
42920040406	Hack to allow ./configure, make to work on HP-UX B.11.00
430		on HPPA-RISC, gcc 3.3.2. (Does not work with HP's cc.)
431		More progress on the asc SCSI controller. Fixing INQUIRY,
432		adding READ_CAPACITY, adding READ. Works a bit with NetBSD
433		and some (but not all) Ultrix kernels, on DECstation type 2.
434		Adding WRITE, SYNCRONIZE_CACHE.
435		Mounting disks works in NetBSD :-)  It is a bit buggy,
436		though. Or something else is buggy.
43720040407	The bug is triggered by gunzip during NetBSD/pmax install.
43820040408	Fixing a bug (non-nul-terminated string) which caused X11
439		cursors to not display on Solaris.
440		Unnecessary X11 redraws are skipped (removes some weird
441		delays that existed before), and cursors are redrawn on
442		window exposure. (The cursor functionality has been moved
443		from dev_fb.c to x11.c.)
44420040411	Fixing the DC7085 device so that Ultrix doesn't behave weird
445		if both tx and rx interrupts occur at the same time.
446		More advancements on the asc SCSI controller.
447		More disk image filename prefixes are now recognized; c (for
448		CD-ROM, as before), d for disk, b for boot device, r for
449		read-only, and 0-7 for scsi id.
450		Mounting disks works in Ultrix. Installing to disk usually
451		crashes for various reasons, but an OSF/1 install gets
452		relatively far (similar to the NetBSD/pmax install).
45320040412	Trying to find the bug.
45420040415	Finally found and fixed the bug; SCSI reads and writes
455		(actually, any data in or data out) can be split up into
456		multiple DMA transfers. That stuff was only partially
457		implemented, and the part that was implemented was buggy.
458		It works now. NetBSD/pmax and Ultrix 4.3 seems to like
459		the SCSI stuff enough to install almost all the way.
46020040415 (more)	Adding a hack which allows a host's cdrom device to be used as
461		a cdrom device inside the emulator, eg /dev/cd0c.
462		Making the cycle counter int64_t instead of long, as a 'long'
463		overflows too easily on 32-bit machines. (The bug is still
464		there, though.)
465		I've now verified that a full NetBSD/pmax install can be done.
466		If using a PMAG-AA graphics board, startx brings up X :-)
467		mips64emul can be compiled inside NetBSD inside mips64emul,
468		and it can run NetBSD in that environment. (I'm getting
469		dizzy... :-)
47020040417	Moving some coprocessor stuff from cpu.c to coproc.c.
47120040424	Adding a BT455 vdac for PMAG-AA. Black and white are now
472		rendered correctly in Xpmax.
473		Adding colormap support to the BT459 device, for PMAG-BA.
47420040425	Fixing a buffer length bug, which caused an Ultrix 4.5
475		install to bug out on an i386 host.
47620040429	FPU experiments.
47720040502	More FPU experiments.
478		Speedup for exception debug messages:  in quiet mode, debug
479		messages were still evaluated, which took a relatively
480		large amount of time.
48120040503	Most FPU stuff fixed, but there is at least one known bug
482		left; ps axu in NetBSD triggers it (ps loops forever).
48320040504	A default install of Ultrix 4.5 succeeded! It boots up with
484		a graphical login.
485		Fixing the keyboard repetition bug (a lk201 "up" (release)
486		scancode is now sent after every key).
48720040505	Both CR and LF now produce the same lk201 scancode, so that
488		pressing 'enter' works as expected in Ultrix.
48920040506	Adding a vaddr to paddr translation cache, causing a speedup
490		of perhaps 50% or more.
49120040507	Fixing PMAG-BA color for Ultrix. (Ultrix relies on interrupts
492		coming from the TURBOchannel slot to update the palette.)
49320040508	Fixing cursor positioning for PMAG-BA.
49420040511	Prints current nr of instructions per seconds, not only
495		average, when using -N.
49620040515	Some more bintrans experiments.
49720040606	Adding ARCBIOS GetReadStatus() and Read().
498		Adding some instructions: tlt, tltu, tge, tgeu, tne.
49920040607	Adding the dsub instruction.
500		Some minimal progress on SGI-IP30 emulation.
501		Applying a patch from Juli Mallett to src/file.c (I'm not
502		sure yet if it breaks or fixes anything).
503		Some minor fixes for SGI-IP22 (such as faked board revision
504		numbers).
50520040608	ll/sc should now fail if any unrelated load/store occurs.
506		Minor changes to the configure script.
507		Adding some ifdefs around code which is not often used
508		(the mfhi/mflo delay, and the last_used TLB experimental
509		code); this might cause a tiny speedup.
51020040609	Minor fixes.
51120040610	Various minor SGI fixes (64-bit ARCS stuff, progress on the
512		CRIME/MACE interrupt system, and some other random things).
51320040611	More crime/mace progress, and some more work on pckbc.
514		KN5800 progress: adding a XMI->BI adapter device; a disk
515		controller is detected (but it is just a dummy so far).
51620040612	Adding "dev_unreadable", which simplifies making memory
517		areas unreadable. (NetBSD on SGI-IP22 no longer detects
518		non-existant hpc1 and hpc2 busses.)
519		Implementing rudimentary support for IP22 "local0" and
520		"local1" interrupts, and "mappable" local interrupts.
521		Some progress on the WDSC SCSI controller on IP22, enough
522		to let NetBSD get past the disk detection and enter
523		userland!  :-)
524		The zs (zilog serial) device now works well enough to let
525		NetBSD/sgimips be interacted with on IP22. :-)  (Though
526		it is very ugly and hardcoded.)
52720040613	IP32 didn't work last night, because there were too many
528		tick functions registered. That has been increased now.
529		Trying out NetBSD/sgimips 2.0 beta kernels. There are some
530		differences compared to 1.6.2, which I'm trying to solve.
531		Interrupt fixes for IP32: _serial and _misc are different.
532		Separation of IP22 (Full-house) and IP24 (Guiness).
53320040614	Modifying the memory layout for IP20,22,24,26 (RAM is now
534		offset by 128MB, leaving room for EISA registers and such),
535		and moving around some code chunks. This is not well
536		tested yet, but seems to work.
537		Moving parts of the tiny translation cache, as suggested
538		by Juli Mallett.  It seems that the speedup isn't as
539		apparent as it was a few weeks ago, though. :-(
540		Speedups due to not translating addresses into symbol
541		names unless the symbol name is actually printed.
542		Added support for loading old big-endian (Irix) ECOFF
543		kernels (0x60 0x01 as the first two bytes).
54420040615 (late)	Adding enough SGI IP20 (Indigo) support to let NetBSD 2.0
545		enter userland :-)  No interrupt specifics are implemented
546		yet, so it hangs while doing terminal output.
54720040618	Experimenting with the WDSC SCSI controller for IP20,22,24.
54820040620	Adding a program which converts SGI prom dumps from text
549		capture to binary, and some hacks to try to make such an
550		IP22 PROM to work better in the emulator.
55120040621	Removing the Nintendo 64 emulation mode, as it is too
552		uninteresting to support.
553		Adding SCSI tape device support (read-only, so far).
554		Fixing a bug which caused the cursor to be corrupted if new
555		data was written to the framebuffer, but the cursor wasn't
556		moved.
55720040622(early)	Finally! Making progress on the SCSI tape stuff; when going
558		past the end of a file, automagically switch to the beginning
559		of the next.
56020040622(late)	Trying to track down the last SCSI tape bugs.
561		Removing _all_ dynamic binary translation code (bintrans),
562		starting from scratch again.
56320040623(early)	Performing a general code cleanup (comments, fixing stuff
564		that led to compiler warnings, ...).
565		Disabling MIPS16 support by default, and making it a
566		configure time option to enable it (--mips16). This gives
567		a few percent speed increase overall.
568		Increasing performance by assuming that instruction loads
569		(reading from memory) will be at the same page as the last
570		load.  (Several percent speedup.)
571		Moving the list of kernels that can be found on the net from
572		README to doc/.
57320040624	Finally! I found and fixed the bug which caused 'ps', 'top',
574		'xclock', and other programs in NetBSD/pmax to behave weird.
575		Increasing performance by a few percent by running as many
576		instructions in a row as possible, before checking for
577		hardware ticks.
578		When booting from SCSI tapes on DECstation, the bootstring
579		now contains 'tz' instead of 'rz'.
580		Adding a second ARC machine mode, "Acer PICA-61", -A2.
581		Disabling the support for "instruction delays" by default
582		(it has to be enabled manually in misc.h now, but is never
583		used anywhere anyway).
584		Other minor optimizations (moving around stuff in the
585		cpu struct in misc.h, and caching cpu->pc in cpu.c).
586		Separating the tiny translation cache into two, one for
587		code and one for data. This gives a few percent speed
588		increase.
58920040625(early)	I think now is a good time for a "feature freeze",
590		to let the code stabilize and then make some kind of
591		first release.
59220040625(later)	Adding a -v (verbose) command line option. If -v is not
593		specified, the emulator goes into -q (quiet) mode just before
594		it starts to execute MIPS code.
59520040627	The configure script now adds -fomit-frame-pointer to the
596		compile flags if the $CC seems to be able to handle that.
597		Found and fixed a serious interrupt bug in BT459 (Ultrix'
598		behaviour required a hack, which was incorrect), so
599		performance for machines using the PMAG-BA framebuffer is
600		now improved.
601		For X11 bitdepths other than 8 or 24, a warning message
602		is printed at startup.
603		A number of other minor fixes, optimizations, updated
604		comments and so on.
605		Adding a BUGS file, a list of known bugs.
606		Adding a minimal man page, doc/mips64emul.1.
60720040628	Hacks for faking the existance of a second level cache
608		(ARCBIOS and other places).
609		An important fix for dc7085: tx interrupts should happen
610		before rx interrupts, not the other way around as it was
611		before. (This speeds up NetBSD boot on DECstation, and
612		fixes a bug which Ultrix triggered on heavy keyboard input.)
613		A couple of other minor fixes.
614		Framebuffer fix: there was a bug which caused the rightmost/
615		bottom pixel to sometimes not be updated, when running in
616		scaledown mode. This is now fixed.
617		Adding a small program which removes "zero holes" from
618		harddisk image files.
61920040629	More minor fixes.
62020040629(later)	Adding -A3 (NEC RISCstation 2200) (this is similar to
621		the 2250 model that NetBSD/arc can already boot all the
622		way into userland and be interacted with), and -A4
623		(Deskstation Tyne).
624		Some more minor fixes.
62520040630	Adding support for 15 and 16 bits X11 framebuffers,
626		and converting from XYPixmap to ZPixmap (this fixes the
627		problem of updates appearing in "layers" on some X
628		servers).
629		The pixels in the mouse cursor (for BT459) are now colored
630		as the emulated OS sets them, although no transparency
631		masking is done on the edges of the cursor yet. (In plain
632		English:  the mouse cursor is no longer just a white solid
633		square, you can actually see the mouse cursor image
634		on the white square.)
635
636==============  RELEASE 0.1  ==============
637
63820040701	The -j option now takes a name, the of the kernel as passed
639		on to the bootloader.  ("netbsd" is the default name.)
640		Adding support to load bootstrap code directly from a disk
641		image, for DECstation.  Both NetBSD/pmax and Ultrix boot
642		straight of a disk image now, with no need to supply a
643		kernel filename on the command line.  (Ultrix still needs
644		-j vmunix, though, to boot from /vmunix instead of /netbsd.)
64520040702	Minor bugfix (some new untested code for X11 keypresses was
646		incorrect).
64720040702(later)	Adding an ugly hack for CDROMs in FreeBSD; if an fread() isn't
648		done at a 2048-byte aligned offset, it will fail. The hack
649		tries to read at 2048-byte aligned offsets and move around
650		buffers to make it work.
651		Adding video off (screen blanking) support to BT459.
652
653==============  RELEASE 0.1.1  ==============
654
65520040702(later)	Cleanup to remove compiler warnings (Compaq's cc, Solaris' cc,
656		and gcc 3.3.3/3.3.4 in Linux), mostly by putting ULL on large
657		numeric constants.
658		Better support for scaledown of BT459 cursors, but still not
659		color-averaging.
660		Beginning the work on adding better memory latency support
661		(instruction delays), enabled by the --delays configure option.
66220040703	Modifications to the configure script so that a config.h file
663		is created, containing things that were passed along as
664		-Dxxx on each cc command line before.
665		More work on instruction latency support; trying to separate
666		the concepts of nr of cycles and nr of instructions.
66720040704	Working on R2000/R3000 caches.
668		Adding a '--caches' option to the configure script.
669		Various small optimizations.
670		R3000 caches finally work. (I know that there is at least one
671		bug, regarding interrupt response.)
67220040705	Working on the 'le' device, and on a generic (device
673		independant) networking framework. le can transmit and receive
674		packets, and the network framework fakes ARP responses from a
675		fake gateway machine (at a fixed ip address, 10.0.0.254).
676		Adding a '-c' command line option, which makes emulated_hz
677		automatically adjust itself to the current number of emulated
678		cycles per host CPU second (measured at regular intervals).
67920040707	Removing the '-c' option again, and making it the default
680		behaviour of the emulator to automatically adjust clock
681		interrupts to runtime speed (as long as it is above 1 MHz).
682		(This can be overridden by specifying a static clock rate with
683		the -I option.)
684		Updating the doc/ stuff a bit.
685		Generalization of the DECstation bootblock loading, to work
686		with Sprite/pmax. Lots of other minor modifications to make
687		Sprite work, such as adding support for DECstation "jump table"
688		PROM functions, in addition to the old callback functions.
689		Sprite boots from a disk image, starting the kernel if the
690		argument "-j vmsprite" is used, but it seems to not like the
691		DBE exceptions caused by reading empty TURBOchannel slots. :-/
69220040708	Minor changes and perhaps some tiny speed improvements.
693		The Lance chip is (apparently) supposed to set the length of
694		received packets to len+4. (I've not found this in any
695		documentation, but this is what NetBSD expects.) So now, ICMP
696		echo replies work :-)  UDP works in the outgoing direction,
697		in the incoming direction, tcpdump can see the packets but they
698		seem to be ignored anyway. (Weird.)
699		Adding a separate virtual-address-to-host-page translation
700		cache, 1-entry for loads, 1-entry for stores. (For now, it
701		only works on R4000 as there are conflicts with cache usage
702		on R3000).
703		Changing the lower clock speed bound from 1 MHz to 1.5 MHz.
70420040709	Incoming UDP checksums were wrong, but are now set to zero
705		and NetBSD inside the emulator now accepts the packets (eg.
706		nameserver responses).  Host lookups and even tftp file
707		transfers (using UDP) work now :-)
708		Adding a section on Networking to the Technical documentation,
709		and a preliminary NetBSD/pmax install instruction for network
710		installs to the User documentation.
711		Some updates to the man page.
71220040709(later)	Fix to the TURBOchannel code to allow Sprite to get past the
713		card detection. Seems to still work with Ultrix and NetBSD.
714		This also makes Linux/DECstation properly recognize both the
715		Lance controller and the SCSI controller. Linux 2.4.26 from
716		Debian boots nicely in framebuffer mode :-)
71720040710	Some bits in the KN02 CSR that were supposed to be readonly
718		weren't. That has been fixed, and this allows Linux/DECstation
719		to get past SCSI detection. :-)
720		Minor updates to the ASC controller, which makes Linux and
721		OpenBSD/pmax like the controller enough to be able to access
722		SCSI devices. OpenBSD/pmax boots from a disk image for the
723		first time. :-)  Linux detects SCSI disks, but I have no
724		bootable Linux diskimage to test this with.
725		Updating the doc/ to include instructions on how to install
726		OpenBSD/pmax onto a disk image.
727		Naively added a PMAGB-BA (1280x1024x8) in hopes that it would
728		basically be a PMAG-BA (1024x864x8) in higher resolution,
729		but it didn't work that way. I'll have to look into this later.
730		Adding a -o option, useful for selecting '-s' (single user
731		mode) during OpenBSD install and other things.
732		After a lot of debugging, a serious bug related to the tiny
733		cache was found; Linux just changes the ASID and returns when
734		switching between processes in some occasions without actually
735		_writing_ to the TLB, and I had forgotten to invalidate the
736		tiny cache on such a change.
73720040711(early)	I've been trying to repeat the OpenBSD install from yesterday,
738		but appart from the first initial install (which was
739		successful), I've only been able to do one more. Several
740		attempts have failed with a filesystem panic in the middle
741		of install. I'm not sure why.
74220040711	I found the "bug": wget downloaded the simpleroot28.fs.gz file
743		as read-only, and gunzip preserved those flags. Thus, OpenBSD's
744		installer crashed as it didn't get its writes through to the
745		disk.
746		Parts of the 1280x1024x8 PMAGB-BA graphics card has been
747		implemented, it works (unaccelerated) in NetBSD and OpenBSD,
748		but Ultrix does not seem to like it.
749		Cleaned up the BT459 cursor offset stuff a bit.
750		Trying to make the emulated mouse coordinates follow the host's
751		mouse' coordinates (for lk201, DECstation), by
752		"de-accelerating" the data sent to the emulated OS.
75320040711(later)	Fix so that Sprite detects the PMAG-BA correctly.
754		Adding some stuff about NFS via UDP to the documentation.
755		Fixed the 'update flag' for seconds, so now Sprite doesn't
756		crash because of timer-related issues anymore.
757		Fixing KN02 interrupt masks a bit more, to make Sprite not
758		crash. Sprite now runs quite well.
75920040712	Working on IP/UDP fragementation issues. Incoming UDP packets
760		from the outside world can now be broken up into fragments
761		for the guest OS. (This allows, for example, OpenBSD/pmax to
762		be installed via nfs.)  Outgoing fragmented packets are NOT
763		yet handled.
764		Linux doesn't use 64-bit file offsets by default, which is
765		needed when using large disk images (more than 2GB), so the
766		configure script has now been modified to add necessary
767		compiler flags for Linux.
76820040713	Trying out some minor optimizations.
769		Refreshing the UDP implementation in src/net.c a little.
77020040714	Updating the documentation a little on how to experiment
771		with a Debian Linux install kernel for DECstations.
772		A 'mini.iso' Linux image for DECstation has different fields
773		at offsets 0x10 and 0x14, so I'm guessing that the first is
774		the load address and the second is the initial PC value.
775		Hopefully this doesn't break anything.
776		Some initial TCP hacks, but not much is working yet.
777		Some updates for IP30:  The load/store 1-entry cache didn't
778		work too well with IP30 memory, so it's only turned on for
779		"MMU4K" now. (This needs to be fixed some better way.)
780		Adding a hack which allows Linux/Octane to use ARC write()
781		and getchild() on IP30. Linux uses ARCBIOS_SPB_SIGNATURE as a
782		64-bit field, it was 32-bit before.
783		Making ugly hacks to the arcbios emulation to semi-support
784		64-bit equivalents of 32-bit structures.
78520040716	Minor fixes to the configure script (and a few other places)
786		to make the sources compile out-of-the-box on HP-UX (ia64
787		and HPPA), old OpenBSD/pmax (inside the emulator itself), and
788		Tru64 (OSF/1) on Alpha.
789		A couple of other minor fixes.
79020040717	A little TCP progress; OpenBSD/pmax likes my SYN+ACK replies,
791		and tries to send out data, but NetBSD/pmax just drops the
792		SYN+ACK packets.
793		Trial-and-error led me to change the 64-bit ARCS component
794		struct again (Linux/IP30 likes it now). I'm not sure about all
795		of the offsets yet, but some things seem to work.
796		More 64-bit ARCS updates (memory descriptors etc).
797		Better memory offset fix for IP30, similar to how I did it for
798		IP22 etc. (Hopefully this doesn't break anything else.)
799		Adding a MardiGras graphics controller skeleton for SGI-IP30
800		(dev_sgi_mardigras.c).
801		Thanks to Stanislaw Skowronek for dual-licensing mgras.h.
802		Finally rewrote get_symbol_name() to O(log n) instead of O(n)
803		(Stanislaw's Linux kernel had so many symbols that tracing
804		with the old get_symbol_name() was unbareably slow).
805		Removing all of the experimental tlbmod tag optimization code
806		(the 1-entry load/store cache), as it causes more trouble than
807		the performance gain was worth.
80820040718	The MardiGras device works well enough to let Linux draw the
809		SGI logo and output text.
810		A bunch of other minor changes.
81120040719	Trying to move out all of the instruction_trace stuff from the
812		main cpu loop (for two reasons: a little performance gain,
813		and to make it easier to add a GUI later on).
81420040720	Finally found and fixed the ethernet/tcp bug. The hardware
815		address is comprised of 6 bytes, where the _first_ byte should
816		have a zero as the lowest bit, not the last byte. (This causes
817		NetBSD and Linux running in the emulator to accept my SYN+ACK
818		packets.)
819		Getting the first nameserver address from /etc/resolv.conf.
820		(This is not used yet, but could be useful if/when I add
821		internal DHCP support.)
822		Working more on the TCP stuff; TCP seems to be almost working,
823		the only immediate problem left is that the guest OS gets
824		stuck in the closing and last-ack states, when it shouldn't.
825		It is now possible to install NetBSD and OpenBSD via ftp. :-)
82620040721	Trying to fix the last-ack bug, by sending an RST after the
827		end of a connection. (Probably not a correct fix, but seems
828		to work?)
829		Adding a my_fseek() function, which works like fseek() but
830		with off_t instead of long, so that large disk images can
831		be used on systems where long is 32 bits.
83220040722	Trying to fix some more TCP related bugs.
83320040725	Changing the inlined asm statement in bintrans_alpha.c into
834		a call to a hardcoded array of bytes that do the same thing
835		(an instruction cache invalidation). This allows the same
836		invalidation code to be used regardless of compiler.
837		Some other minor changes.
83820040726	Minor updates. The configure script is now more verbose.
839		A Debian/IP22 Linux tftp boot kernel requires ARCS memory to
840		be FreeMemory, not FreeContiguous. (This should still work with
841		other SGI and ARC OSes.)
842		Fix for ARCS write(), so it returns good write count and
843		success result (0).
844		Some hacks to the IP22 memory controller, to fake 72MB RAM
845		in bank 0.
846		The IP22 Debian kernel reaches userland (ramdisk) when run
847		with -G24 -M72 -CR4400, if a special hack is done to the
848		zs device.
84920040730	Removing mgras.h, as I'm not sure a file dual-licensed this way
850		would work. (Dual-licensing as two separate files would work
851		though.)
852		Preparing for the upcoming release (0.2).
85320040801	Fixing the 512 vs 2048 cdrom sector size bug; I hadn't
854		implemented the mode select SCSI command. (It still isn't
855		really implemented.)
856		A bug which crashes the emulator is triggered when run with
857		new NetBSD 2.0_BETA snapshots on a Linux/i386 host. I'm not
858		sure why.
859		UDP packets sent to the gateway (at 10.0.0.254) are now
860		forwarded to the machine that the host uses as its nameserver.
861		Some other minor fixes.
862
863==============  RELEASE 0.2  ==============
864
86520040803	A post-3.5 OpenBSD/sgimips kernel snapshot with ramdisk seems
866		to boot fine in the emulator, all the way to userland, and
867		can be interacted with.
868		Adding a -y option, used to set how many (random) instructions
869		to run from each CPU at max (useful for SMP instruction
870		interleave experiments).
871		Importing a 8x16 console font from FreeBSD (vt220l.816).
872		Adding a skeleton for a 80x25 text console device (dev_vga),
873		useful for some ARC modes. (Character output is possible, but
874		no cursor yet.)
875		Adding a dev_zero device (returns zeroes on read).
876		OpenBSD/arc 2.3 can get all the way to userland with -A4 (if
877		the wdc devices are commented out) but bugs out there, probably
878		because of interrupt issues.
879		Adding a -A5 ARC emulation mode (Microsoft-Jazz, "MIPS Magnum")
880		which NetBSD seems to like. No interrupt specifics yet, so
881		it hangs while waiting for SCSI.
88220040804	Some dev_mp updates.
883		The -y switch has to do with number of cycles, not number
884		of instructions; variable names have been changed to reflect
885		this.
88620040805	Minor updates. Adding some more CPU types/names, but they
887		are probably bogus.
888		Adding a MeshCube emulation mode. Just a skeleton so far, but
889		enough to let a Linux kernel print some boot messages.
890		Adding the 'deret' instruction.
89120040806	Adding include/impactsr-bsd.h (a newer version of what was in
892		mgras.h before, and this time with only a BSD-style license),
893		but it is not used yet.
89420040810	Some Au1500 updates.
89520040811	Adding the 'clz', 'clo', 'dclz', and 'dclo' special2 (MIPS32
896		and MIPS64) instructions.
897		More Au1500 updates.
89820040812	Using fseeko(), when it is available.
899		Other minor updates.
900		Adding a NetGear WG602 emulation mode skeleton (-g); after
901		a lot of trial and error, a Linux kernel (WG602_V1715.img)
902		gets all the way to userland, but hangs there.
90320040818	Adding signal handlers to better cope with CTRL-Z and CTRL-C.
904		Adding a simple interactive single-step debugger which is
905		activated by CTRL-C. (Commands so far: continue, dump, help,
906		itrace, quit, registers, step, trace, version)
90720040818(later)	Adding a 'tlbdump' debugger command, and some other minor
908		fixes.
90920040819	Minor updates. Adding an 'unassemble' debugger command.
91020040822	Minor updates to the regression testing framework.
91120040824	Minor updates based on feedback from Alec Voropay
912		(configure script updates for Cygwin and documentation).
91320040826	Minor updates.
914		Adding a cursor to the VGA text console device.
915		Changing all old 11:22:..55:66 ethernet macs to 10:20..60,
916		still hardcoded though.
91720040828	Minor updates.
91820040829	mips64emul is 1 year old today :-)
91920040901	tests/README now lists "all" MIPS opcodes. This list should
920		be updated whenever a new opcode is implemented, or when a
921		regression test is added. (A combination of instructions from
922		the TX79 manual, the GNU assembler, and the MIPS64 manual).
923		Hopefully I haven't missed too many.
924		Adding a section on regression testing to doc/technical.html.
92520040902	Finally beginning the work on separating out the stuff from
926		main.c into a "struct emul". Very time-consuming.
927		Some minor fixes for LL/SC on R10000.
92820040905	Moving more stuff from main.c into struct emul. Unfortunately,
929		it seems that this causes a slowdown of the emulator.
930		Userland emulation is now only used if --userland is used
931		when running configure.
932		Modifying src/symbol.c to not use global variables.
93320040906	Minor update.
93420040914	Using $COPTIM when detecting which compiler flags to use in
935		the configure script. (This makes sure that combinations of
936		flags should work.)
937		There'll probably be a 0.2.1 release some time soon, but I'll
938		do some more clean-up first.
939		Minor update to the detection of ECOFF files, but I don't like
940		it; sometimes the endianness of the magic value seems to be
941		swapped, but it doesn't have to do with endianness of the
942		actual data?
94320040916	Minor updates. Adding an Example section to the manpage, but
944		as I'm not really familiar with manpage formatting, it will
945		need to be rewritten later.
94620040917	Finally making the coprocessor instructions disassemblable
947		even when not running.
948		Doing some testing for the 0.2.1 release.
949
950==============  RELEASE 0.2.1  ==============
951
95220040923	Updating the documentation about how to (try to) install
953		Debian GNU/Linux.
95420040924	Some more updates to the documentation.
95520040925	Adding overflow stuff to 'add' and 'sub'.
95620040926	Minor updates: possibly a fix to 'sltiu' (the imm value
957		should be treated as signed, and then converted to unsigned,
958		according to the MIPS64 manual), and removing the
959		'last_was_rfe' stuff (again).
960		OpenBSD/arc used speed-hack jumps with other deltas than just
961		+/- 1 (it used -3 iirc), so the jump speedhack should now
962		support any delta. Also adding bgtzl and blezl as possible
963		instructions for the speed-hack jumps. (This needs to be
964		tested more.)
96520040928	Minor updates. Some ARC stuff ("arcdiag" runs now).
966		cpu_register_dump() now also dumps coprocessor registers.
96720040929	More ARC updates. Making the code look a tiny bit nicer
968		than before. "arcdiag.ip22" works for -G22 (SGI-IP22).
969		Apparently the overflow support in the 'add' instruction
970		was incorrect, so I disabled it.
97120041002	Trying to install Ultrix in the emulator, but the installer
972		crashes; found (and fixed) the bug rather quickly: the "fix"
973		I implemented a few days ago for the 'sub' instruction
974		(according to the MIPS64 manual) caused the bug.
97520041004	Changing the behaviour of the -j command line option. The
976		default is now "" (or taken from the last filename given on
977		the command line), not "netbsd". In practice, this doesn't
978		change much, except that -j netbsd.pmax is no longer needed
979		when installing NetBSD.
980		Adding a COMPILE_DATE string to config.h.
98120041007	Adding a NEC RISCserver 4200 model (-A6), and some more
982		updates to the ARC component tree generator.
98320041008	The 'll' instruction should be signed, not unsigned as before.
984		This (and some other minor fixes) causes Irix on SGI-IP32 (O2)
985		to actually boot far enough to print its first boot messages :)
986		Working on some new dynamic bintrans code. Enough is now
987		implemented so that the 'nop' instruction is translated
988		and there is support for Alpha, i386 and UltraSparc backends,
989		but performance is about 50% worse than when running without
990		bintrans. (This is as expected, though.)
99120041009	Minor updates to the documentation.
992		Using mprotect() to make sure that the code created dynamically
993		by the bintrans subsystem is allowed to be executed. (This
994		affects newer OpenBSD systems, and possibly others.)
995		The translated code chunks now only get one argument passed to
996		them, the (struct cpu *) of the current cpu.
99720041010	Hack to dev_le.c which makes Ultrix accept the initialization
998		of the LANCE controller. (This goes against the LANCE
999		documentation though.)
1000		In src/net.c, a fix for Ultrix (which seems to send larger
1001		ethernet packets than the actual TCP/IP contents). The hack to
1002		dev_le.c and this fix is enough to let Ultrix access the
1003		Internet.
1004		For DECstation, when booting without a disk image (or when
1005		"-O" is used on the command line), use "tftp" instead of "rzX"
1006		for the boot string.
100720041011	Adding cache size variables to the emul struct, so that these
1008		can be set on a per-machine basis (or potentially manually
1009		on the command line).
101020041012	Mach/PMAX now passes the LK201 keyboard self-test (although
1011		the keyboard ID is still bogus).
101220041013	Minor updates.
1013		Hacks to the ASC SCSI controller for Mach/PMAX, hopefully this
1014		will not break support for other OSes.
101520041014	Minor fix to src/emul.c for reading bootblocks at the end of
1016		a disk or cdrom image (thanks to Alexandru Lazar for making me
1017		aware of this).
1018		Adding "gets()" to src/dec_prom.c.
1019		Working a bit on ARC stuff. Importing pica.h from NetBSD.
1020		Minor updates to the ARC component tree for PICA-61.
1021		Adding a dev_jazz.c (mostly for PICA-61).
1022		Renaming dev_jazz.c into dev_pica.c. Working on PICA timer
1023		and interrupt specifics.
102420041016	Adding some dummy entries to lk201.c to reduce debug output.
1025		Some bintrans updates (don't run in delay slots or nullified
1026		slots, read directly from host memory and not via memory_rw(),
1027		try mmap() before malloc() at startup, and many other minor
1028		updates).
1029		Adding bintrans_mips.c for 64-bit MIPS hosts, but it is not
1030		used yet.
103120041017	Minor updates.
103220041018	Update to dev_mc146818 to allow Mach to boot a bit further.
1033		The "hardware random" in dev_mp.c now returns up to 64 bits
1034		of random.
103520041019	Minor updates to the way cache sizes are used throughout the
1036		code. Should be mostly ok for R[234]x00.
1037		src/file.c now loads files using NO_EXCEPTIONS. Whether this
1038		is good or bad, I'm not sure.
103920041020	Adding a Linksys WRT54G emulation skeleton (-H).
104020041021	Minor updates.
1041		R1[024]000 cache size bits in the config register should now
1042		be ok.
1043		Trying to make dev_asc.c work better with PICA.
1044		More work on PICA interrupts (but they are broken now).
104520041022	Generalizing the dev_vga text console device so that it can be
1046		used in other resolutions than just 80x25. Works with
1047		OpenBSD/arc.
1048		emul->boot_string_argument is now empty by default (except
1049		for DECstation modes, where it is "-a").
1050		Speedup of dev_ram by using mmap() instead of malloc().
1051		Using mmap() in memory.c as well, which reduces memory usage
1052		when emulating large memory sizes if the memory isn't actually
1053		written to.
105420041023	Minor updates.
105520041024	Updates to the PC-style keyboard controller, used by PICA.
1056		Updates to the PICA (Jazz) interrupt system. Both NetBSD/arc
1057		and OpenBSD/arc now reach userland with PICA emulation, and
1058		can be interacted with (there are a few programs on the
1059		INSTALL kernel ramdisks). In the case of OpenBSD, a VGA text
1060		console and PC-style keyboard controller is used, NetBSD
1061		runs on serial console.
1062		Adding a framework for DMA transfer for the ASC SCSI
1063		controller.
1064		Implementing a R4030 DMA controller for PICA, enough to let
1065		OpenBSD/arc and NetBSD/arc be installed on an emulated
1066		Pica. :-)
1067		Updates to the documentation.
106820041025	Working on ISA interrupts for PICA.
1069		Adding an Olivetti M700 emulation mode (-A7).
1070		Better separation of PICA and M700 stuff (which I accidentally
1071		mixed up before, I thought the M700 Linux kernel would
1072		also work on PICA because it almost booted).
1073		Writing a skeleton G364 framebuffer for M700, enough to show
1074		the Linux penguin and some text, although scrolling isn't
1075		correctly implemented yet.
1076		Adding a dummy SONIC (ethernet) device, dev_sn, for PICA.
1077		Fixing the passing of OSLOADOPTIONS for ARC, the default is
1078		now "-aN" which works fine with OpenBSD/arc and NetBSD/arc.
107920041027	Minor updates.
108020041029	Adding a Sony NeWS "newsmips" emulation mode skeleton (-f).
1081		Found and fixed a bug which prevented Linux/IP32 from running
1082		(the speed-hack-jump-optimization fix I made a few weeks ago
1083		was buggy).
1084		Adding the trunc.w.fmt and trunc.l.fmt instructions, although
1085		the are probably not really tested yet.
1086		Changes to how floating point values are handled in
1087		src/coproc.c, but right now it is probably very unstable.
108820041101	I had accidentally removed the instructions on how to install
1089		Ultrix from doc/index.html. They are back now.
1090		Adding a -Z option, which makes it easier to run dual- or
1091		tripple-head with Ultrix. (Default nr of graphics cards
1092		without -X is 0, with -X is 1.)
1093		Minor update which makes it possible to switch to the left
1094		monitor when running tripple-head, not just right as before.
1095		When using more than one framebuffer window, and the host's
1096		mouse cursor is in a different window than the emulated mouse
1097		cursor, the emulated mouse will now try to move "very far",
1098		so that it in practice changes screen.
1099		Running Ultrix with dual- and tripple-head now feels really
1100		great.
110120041101(later)	OpenBSD/arc and Linux/Olivetti-M700 don't both work at the
1102		same time with the speed-hack stuff. So, from now on, you
1103		need to add -J for Linux, and add nothing for openbsd.
110420041102	Minor update for OSF/1 V4.0 (include sys/time.h in src/net.c
1105		and add -D_POSIX_PII_SOCKET to the C compiler flags).
110620041103	Minor updates for the release.
1107		For some reason, Mach/PMAX caused the emulator to bug out on
1108		SunOS/sparc64 (compiled in 64-bit mode); a minor update/hack
1109		to dev_asc fixed this.
1110
1111==============  RELEASE 0.2.2  ==============
1112
111320041103	Minor updates.
111420041104	Minor updates.
111520041105	Running with different framebuffer windows on different X11
1116		displays works now (even with different bit depths and
1117		endiannesses on different displays). A new command line option
1118		(-z) adds DISPLAYs that should be used.
1119		Update regarding how DECstation BT459 cursors are used;
1120		transparency :-) and some other bug fixes.
112120041106	More bt459 updates. The cursor color seems to be correct for
1122		NetBSD, OpenBSD, Ultrix, and Sprite.
1123		Some minor bintrans updates (redesigning some things).
112420041107	More bintrans updates (probably broken for non-Alpha targets).
1125		Moving doc/mips64emul.1 to man/.
112620041108	Some updates.
112720041109	More updates. Bintrans experiments mostly.
112820041110	Some minor bintrans updates.
112920041111	Minor updates.
113020041112	A little rewrite of the bintrans system (again :-), this time
1131		a lot more naïve and non-optimizing, in order to support delay
1132		slots in a much simpler way.
1133		Ultrix 4.5 boots into a usable desktop on my home machine in
1134		3min 28sec, compared to 6-8 minutes without bintrans.
113520041113	Some minor bintrans updates.
113620041114	More bintrans updates. Ultrix now boots in exactly 3 minutes
1137		on my home machine.
113820041115	More bintrans updates.
113920041116	Bintrans updates.
114020041117	Working on dev_dec_ioasic and related issues.
1141		Adding support for letting translated code access devices in
1142		some cases (such as framebuffers).
114320041118	Moving some MIPS registers into Alpha registers, which gives
1144		a speed improvement.
1145		Beginning to write an i386 bintrans backend. Skeleton stuff
1146		works, lui, jr/jalr, addiu/daddiu/andi/ori/xori, j/jal,
1147		addu/daddu/subu/xor/or/nor/and.
114820041119	dsubu/sll/srl/sra, rfe,mfc0,dmfc0, beq,bne, delayed branches.
1149		Some load/store (but not for bigendian emulation yet.)
1150		Time to reach Ultrix 4.5's graphical login on a 2.8 GHz Xeon
1151		host is now down to 20 seconds!
1152		Adding bgez, bltz, bgtz, and blez to the i386 backend.
115320041120	Minor updates (bintrans related mostly).
1154		Time to reach Ultrix login on the Xeon is now 11 seconds.
1155		Adding 'mult', 'multu' and a some parts of mtc0 to the Alpha
1156		backend.
1157		The transparency updates to the X11 cursor support made the
1158		OpenBSD/arc cursor disappear; that has been fixed now.
1159		Unfortunately, something with Acer Pica emulation is broken
1160		when bintrans is enabled.
116120041121	Making tlbwr, tlbwi, tlbp, tlbr callable directly from
1162		translated code.
1163		Adding sltiu, slti, slt, and sltu to the i386 backend.
116420041122	More bintrans updates.
1165		With the Alpha backend, the status and entryhi registers
1166		can (in some cases) be written without exiting to the main
1167		loop. Ultrix boot time until a usable desktop is reached
1168		is about 1 min 35 seconds on the 533 MHz pca56.
1169		Adding srlv, srav, and sllv to the i386 backend.
117020041123	Removing the special handling of high physical addresses for
1171		DECstation emulation from the main memory handling code, and
1172		replacing it with a mirror device instead. (This results in
1173		a tiny increase in performance, and cleaner code.)
1174		Various minor updates.
117520041124	Ripping out _all_ bintrans load/store code, because I have
1176		a new idea I'd like to try out.
1177		A total rewrite of the load/store system. It works when
1178		emulating 32-bit MIPS, but not for 64-bit code yet.
1179		Some minor updates to the dev_fb, but no speed improvement.
1180		Making the 'le' ethernet device' SRAM work with bintrans.
118120041125	Various updates.
1182		Adding a little "bootup logo" to the framebuffer.
1183		There is now one translate_address() for R3000-style MMUs,
1184		and one for the other types. (This gives a tiny speed
1185		improvement.)
118620041126	Minor updates, bintrans.
1187		Fixing the bug which caused OpenBSD/arc (R4000) to bug out;
1188		it was introduced between the 7:th and 10:th of November
1189		when moving up the check for interrupts to above the code
1190		which runs bintrans code, in src/cpu.c.
1191		Adding movn and movz to the Alpha bintrans backend.
119220041127	Various minor updates.
119320041128	Making the R2000/R3000 caches work with bintrans, even in
1194		isolated mode. (Not true cache emulation, but it works with
1195		NetBSD/pmax, OpenBSD/pmax, and Ultrix.)
1196		Making the default cache size for R3000 4KB instr, 4 KB data;
1197		a real R3000 could have 64KB each, but emulated OSes run
1198		faster when they think the cache is smaller :-)
1199		Updates to the i386 backend: the nr of executed instructions
1200		is now placed in ebp at all times, and some support for
1201		mtc0 similar to how it is done in the Alpha backend has been
1202		added. A full NetBSD/pmax 1.6.2 install can now be done in
1203		5 minutes 35 seconds, on a 2.8 GHz Xeon host (with -bD2 -M20).
1204		Adding mult and multu to the i386 bintrans backend.
1205		Reducing the number of malloc/free calls used by the
1206		diskimage subsystem.
120720041129	Minor updates to the Alpha bintrans backend.
120820041130	Trying to fix the bug which prevents Linux from working
1209		with bintrans. It _seems_ to work now. (Pages could in some
1210		cases be written to after they were translated, but that
1211		has been fixed now.)
1212		A couple of other minor fixes.
1213		Minor updates to the Alpha backend (directly using Alpha
1214		registers in some cases, instead of loading into temporaries).
1215		Updates to the i386 backend (special hacks for 32-bit
1216		MIPS emulation, which are fast on i386, for example only
1217		updating half of the pc register).
121820041201	More updates to the i386 backend, similar to those yesterday.
1219		Preparing for release 0.2.3.
1220		Adding a generic load/store mechanism, which is used when the
1221		32-bit optimized version cannot be used (for R4000 etc).
1222
1223==============  RELEASE 0.2.3  ==============
1224
122520041202	If ALWAYS_SIGNEXTEND_32 is defined in misc.h, and an
1226		incorrectly extended register is detected, the emulator now
1227		exits instead of continues.
1228		Removing the LAST_USED_TLB_EXPERIMENT stuff.
1229		Minor updates to work better with Windows NT's ARCINST.EXE;
1230		printing 0x9b via arcbios becomes ESC + '[', and the ARC
1231		memory descriptor stuff has been generalized a bit more.
1232		Adding arbios hacks for Open(), Seek(), GetRelativeTime(),
1233		and Read() to allow WinNT's SETUPLDR to read the filesystem
1234		on the diskimage used for booting.
123520041203	Adding a terminal emulation layer which converts arcbios
1236		stdout writes to "VGA text console" cell characters. Seems
1237		to work with Windows NT and arcdiag.
1238		Adding a 8x8 font to dev_vga.
1239		Adding more ARC components to the component tree (for PICA
1240		emulation).
124120041204	Minor updates.
1242		More updates to dev_vga. Adding a 8x10 font.
1243		Adding a hack so that the framebuffer logo is visible at
1244		startup with dev_vga. (It disappears at the first scroll.)
1245		A minor fix for a bug which was triggered when running
1246		dual- or tripple-head, on 2 or 3 actual X11 displays.
124720041205	Fixing a bintrans bug.
1248		Some other minor updates (some of them bintrans related).
124920041206	Moving the web page to http://gavare.se.
1250		Adding a hack for mmap() which supports anonymous mapping
1251		using /dev/zero, but not using MAP_ANON{,YMOUS}.
1252		Separating out opcodes.h, cop0.h, and cpu_types.h from misc.h.
125320041207	Minor bintrans update. (In some cases, it isn't necessary
1254		to return to the main loop, when translating from a new page.)
1255		Some other minor i386 bintrans backend optimizations.
1256		And some other minor updates.
1257		i386 backend update: the lowest 32 bits of the pc register
1258		are now placed in an i386 register.
125920041208	Adding GetConfigurationData() and some support for config
1260		data, to src/arcbios.c.
1261		Adding a bogus 0xbd SCSI command (used by Windows NT). It is
1262		not listed in http://www.danbbs.dk/~dino/SCSI/SCSI2-D.html.
1263		If the framebuffer cursor contains more than 1 color, then
1264		the host's X11 cursor disappears. (Nice for DECstation
1265		emulation with emulated X.)
1266		For ARC and SGI emulation, if an exception occurs before an
1267		exception handler is installed, the emulator now exits
1268		nicely (as suggested by Alec Voropay).
1269		A couple of minor updates to the ARCBIOS emulation subsystem.
1270		The single step debugger is now automatically entered when
1271		all CPUs have stopped running, unless there was a clean
1272		shutdown of some kind (PROM halt() call, or similar).
1273		Adding a -V option for starting up in a paused state, into
1274		the single-step debugger.
1275		Adding a note about 'mmon' to the documentation
1276		(http://www.brouhaha.com/~eric/software/mmon/).
127720041209	Fixes to devices/console.c which makes cursor keys and such
1278		a bit more reliable.
1279		ARCBIOS hack/update which creates memory descriptors _after_
1280		loading the executable. (Seems to work with OpenBSD/arc,
1281		NetBSD/arc, arcdiag, IRIX, NetBSD/sgimips, OpenBSD/sgi, and
1282		some Windows NT executables.)
1283		ARCBIOS support for cursor keys (ESC + '[' ==> 0x9b).
1284		A bintrans update (for 32-bit emulation) which speeds up
1285		jumps between pages, if code is already translated.
1286		Changing the default bintrans cache from 20 to 24 MB.
128720041210	Optimizing unaligned load/stores a little bit in src/cpu.c.
1288		Omiting the check for nr of executed bintrans instructions
1289		on some forward jumps.
1290		Adding the 'syscall' and 'break' instructions to the
1291		bintrans backends.
1292		Allowing more bits of the status register to be written to
1293		from within inside translated code, on R3000.
1294		Getting rid of the final pixel when hiding the host's mouse
1295		cursor.
1296		store_buf() now copies data 8 or 4 bytes at a time, when
1297		possible. (This speeds up emulated ROM disk reads, etc.)
1298		Tiny bug fix: coprocessor unusable exceptions are now also
1299		generated (for coproc 1..3) even when in kernel mode, if the
1300		coprocessors are not enabled. This allows a Debian installation
1301		to proceed further than before. (It's still very unstable,
1302		though.)
130320041212	Updating doc/index.html with better Debian installation
1304		instructions.
1305		If SLOWSERIALINTERRUPTS is defined at compile time, interrupts
1306		from the dc7085 device will not come as often as they normally
1307		do. This makes Debian seem more stable.
1308		Decreasing the bintrans cache to 20 MB again.
1309		Updating some files in preparation for a 0.2.4 release.
131020041213	Updating the docs on how to install NetBSD 2.0/pmax, and also
1311		some updates to the section on installing Debian.
1312		32-bit bintrans backend optimization: don't inline large
1313		chunks of code, such as general jumps.
131420041214	Minor fix for coproc unusable for R4000 (it's the PC that,
1315		matters, not the KSU bits).
1316		Separating out the debugger from emul.c into debugger.c.
1317		Rewriting parts of the debugger.
1318		Removing the -U command line option, as it wasn't really
1319		useful. Also removing the -P option.
1320		Renaming all instances of dumppoint to breakpoint, as that
1321		is what it really is.
1322		When a breakpoint is reached, the single-step debugger is
1323		entered, instead of just turning on instruction trace.
1324		Adding a 'breakpoints' debugger command.
1325		Better fix for coproc unusable on R4000: the KSU bits matter,
1326		but the ERL and EXL bits override that.
1327		Fix which allows Debian to boot directly from a disk image
1328		(with DELO). (It reads multiple separate areas from disk.)
1329		Update to the SLOWSERIALINTERRUPTS stuff, making it even
1330		slower.
1331		Fixes based on feedback from Alec Voropay (-Q with ARC
1332		emulation skips the setup of arcbios data structures in
1333		memory, and no sign-extension _after_ writing a 32-bit
1334		value to a 64-bit coproc 0 register).
1335		Adding a 'devices' command to the debugger.
1336		The 'registers' and 'tlbdump' commands now take an optional
1337		argument (a cpu id).
1338		Adding rudimentary tab-completion and cursor key stuff to
1339		debugger_readline().
1340		Adding some more debugger commands: 'bintrans' and 'machine'.
134120041215	Adding a 'devstate' command; implementing a skeleton for a
1342		state function for the bt459 device.
1343		Implementing yet another variant of the SLOWSERIALINTERRUPTS
1344		stuff.
1345		Implementing more of the different exception offsets (taking
1346		CAUSE_IV and STATUS_BEV into account).
1347		hpc_bootinfo should now be correctly filled on big-endian
1348		hosts.
1349		Always shift left by 12, not by pageshift, to get physical
1350		addresses on MMU4K etc. (Thanks to Alec Voropay for noticing
1351		this.)
135220041216	The KN02's CSR can now be read from bintranslated code.
1353		Adding a dummy dev_sgi_mec.
135420041217	The default framebuffer and model settings for -F (hpcmips)
1355		should now be almost like Cassiopeia E-500.
1356		Changing -DSLOWSERIALINTERRUPTS into a command line option, -U.
135720041218	Continuing a little bit on the mec controller.
1358		Removing lots of #include <math.h> that weren't really used.
135920041219	Fixing stuff that broke because of the pageshift bugfix.
1360		Adding an argument to the s (step) debugger command, for doing
1361		more than 1 step at a time.
1362		ARCBIOS components representing disk images are now created
1363		to actually match the disk images in use, and some other
1364		arcbios-related updates; adding a dummy GetComponent().
1365		Adding a 'lookup' command to the debugger, for symbol lookups.
1366		Adding a "NEC Express RISCserver" mode (NEC-R96, -A8).
1367		Adding a dummy ARCBIOS GetFileInformation(), GetTime(), and
1368		SetEnvironmentVariable().
136920041220	Improved command line editing (including command history)
1370		in the debugger.
1371		Separating some more .h files from each other, and fixing
1372		some Solaris compiler warnings.
137320041221	Minor updates.
137420041222	Minor updates; hpcmips (BE300, VR41xx) stuff.
1375		The 'register' debugger command is now 'reg', and it can
1376		be used to modify registers, not just read them.
1377		The syntax for hpcmips (-F) is now -F xx, where xx is a
1378		machine model identifier. (1 = BE300.)
137920041223	Some really minor updates.
138020041226	Minor updates to doc/index.html (NetBSD 1.6.2 -> 2.0, and
1381		some other rearrangements).
1382		Many updates to the debugger (better register manipulation,
1383		breakpoint manipulation, and other updates).
1384		Fix to dev_cons.c to allow the regression tests to work again.
1385		The configure script now tries to detect the presence of a
1386		MIPS cross compiler. (Used by "make regtest".)
1387		Regression tests are now run both with and without bintrans.
138820041227	Some hacks to the VR41xx code to allow Linux for BE300 to
1389		get far enough to show the penguin on the framebuffer.
139020041228	Merging dev_kn01_csr.c and dev_vdac.c into dev_kn01.c.
139120041229	Various updates to the debugger (nicer tlb output and other
1392		things).
1393		Some floating point fixes in src/coproc.c (mov is not
1394		an arithmetic instruction), and in src/cpu.c (ldcX/sdcX in
1395		32-bit mode uses register pairs).
1396		'-O' now also affects the bootstring for SGI and ARC emulation.
1397		Bintrans updates (slightly faster 32-bit load/store on alpha).
1398		Updates to the i386 backend too, but no real speed improvement.
139920041230	Cleaning up parts of the 64-bit virtual-to-physical code for
1400		R10000, and per-machine default TLB entries can now be set
1401		for SGI and ARC machines.
1402		Fix: SGI-IP27 is ARC64, not ARCS.
140320050101	Minor updates.
140420050102	Minor updates.
1405		Fixing a 32-bit 'addu' bug in the bintrans backends.
1406		Allowing fast load/stores even in 64-bit bintrans mode, if
1407		the top 32 bits are either 0x00000000 or 0xffffffff (for Alpha
1408		only).
1409		Re-enabling ctc0/cfc0 (but what do they do?).
1410		Adding beql, bnel, blezl, and bgtzl to the Alpha backend.
141120050103	Adding fast 32-bit load/store for 64-bit mode emulation to
1412		the i386 backend too (similar to the Alpha code). Not really
1413		tested yet, though.
1414		Adding an incomplete regression test case for lwl/lwr/ldl/ldr.
1415		Playing around with bintranslated lwl and lwr for Alpha.
141620040104	Changing many occurances of pica to jazz.
1417		Various other updates.
141820050105	Fixing some more bintrans bugs (both Alpha and i386).
1419		Unaligned stores that cause tlb refill exceptions should now
1420		cause TLBS exceptions, not TLBL.
1421		Adding experimental swl and swr to the Alpha backend.
1422		Adding lwl, lwr, swl, and swr to the i386 backend.
142320050106	Adding another hpcmips model (Casio E-105, -F2), and doing
1424		some updates to the VR41xx code. NetBSD/hpcmips prints some
1425		boot messages.
142620050108	Minor updates.
142720050109	dev_dec5500_ioboard.c and dev_sgec.c => dev_kn220.c.
1428		dev_crime.c, _mace.c, and _macepci.c => dev_sgi_ip32.c.
1429		Also adding dev_sgi_mec, _ust, and _mte into dev_sgi_ip32.c.
1430		A slight license change. Still revised BSD-style, though.
1431		memory_v2p.c is now included separately for MMU10K and
1432		MMU8K.
1433		Fixing a NS16550 bug, triggered by NetBSD 2.0, but not 1.6.2.
1434		Refreshing the UltraSPARC bintrans backend skeleton.
1435		Merging dev_decbi, _deccca, and _decxmi into dev_dec5800.c.
1436		Sparc backend instructions done so far: mthi/mtlo/mfhi/mflo,
1437		lui, addu, daddu, subu, dsubu, and, or, nor, xor, sll, dsll,
1438		srl, and sra.
1439		Adding more sparc backend instructions: addiu, daddiu, xori,
1440		ori, andi, srlv, srav, sllv, slt, sltu, slti, sltiu.
144120050110	Changing the default bintrans cache to 16 MB, and some other
1442		minor updates.
1443		Adding div and divu to the i386 backend (but not Alpha yet).
1444		More work on ARCBIOS emulation.
1445		Trying to find a bug which affects Linux on Playstation 2 in
1446		bintrans mode.
144720050111	Moving around some Playstation 2 stuff, but I haven't found
1448		the bug yet. It is triggered by load/stores.
1449		More ARCBIOS updates, enough to let Windows NT partition
1450		disks in some rudimentary fashion.
145120050112	Testing for release 0.2.4.
1452		Fixes to suppress compiler warnings.
1453
1454==============  RELEASE 0.2.4  ==============
1455
145620050113	Minor updates.
145720050114	Fix to the Alpha bintrans backend to allow compilation with
1458		old versions of gcc (2.95.4).
1459
1460==============  RELEASE 0.2.4.1  ==============
1461
146220050115	Various updates and fixes: some IP32 stuff, the debugger,
1463		ns16550 loopback tx isn't transmitted out anymore, ...
1464		Removing old/broken R10000 cache hacks, which weren't really
1465		used.
146620050116	Minor updates to the documentation on using PROM images.
1467		Adding ARCBIOS function 0x100 (used by IRIX when returning
1468		from main, but undocumented).
1469		MC146818 updates (mostly SGI-related).
1470		ARCS64 updates (testing with an OpenBSD snapshot in IP27
1471		mode). This causes Linux/IP30 to not work. Maybe IP27 and
1472		IP30 differ, even though both are 64-bit?
1473		Removing some nonsensical ARCS64 code from machine.c.
1474		Better handling of 128MB and 512MB memory offsets used by
1475		various SGI models.
1476		Trying to revert the ARCS64 changes (OpenBSD/sgi does
1477		seem to be aware of 64-bit vs 32-bit data structures in
1478		_some_ places, but not all), to make Linux/IP30 work again.
1479		Adding "power off" capability to the RTC, as used on IP32
1480		(and possibly IP30 and others).
1481		Some IP30 updates.
148220050117	Debugger updates (symbolic register names instead of just rX,
1483		and using %08x instead of %016llx when emulating 32-bit CPUs
1484		in more places than before).
1485		Removing the dummy sgi_nasid and sgi_cpuinfo devices.
1486		Also using symbolic names for coprocessor 0 registers.
1487		Adding DEV_MP_MEMORY to dev_mp.c.
1488		Adding a 'put' command to the debugger.
1489		ARCBIOS function 0x100 used by IRIX seems to _NOT_ be a
1490		ReturnFromMain(), but something else undocumented.
1491		The count and compare registers are now 32-bit in all
1492		places, as they should be. (This causes, among other things,
1493		OpenBSD/sgi to not hang randomly in userspace anymore.)
1494		On breakpoints, the debugger is now entered _at_ the
1495		instruction at the breakpoint, not after it.
1496		Some cursor keys now work when inputed via X.
1497		Refreshing the MC146818 device a bit more.
149820050118	Trying to add some support for less-than-4KB virtual pages,
1499		used by at least VR4131. Thanks to Alexander Yurchenko for
1500		noticing this. (I'm assuming for now that all R41xx work
1501		this way, which is not necessarily true.) It doesn't really
1502		work yet though.
1503		Renicing the "loading files" messages and other things
1504		displayed during startup.
1505		Changing the disassembly output of ori, xori, and andi to
1506		unsigned hex immediate, instead of decimal (as suggested
1507		by Alec Voropay).
1508		configure-script update for HP-UX, and switching from using
1509		inet_aton() to inet_pton() (as suggested by Nils Weller).
1510		Also adding -lnsl on Solaris, if required by inet_pton().
1511		Lots of minor R4100-related updates.
151220050119	Correcting the R4100 config register in src/coproc.c, and
1513		a minor update to dev_vr41xx.
1514		Finally began a redesign/remodelling/cleanup that I have had
1515		in mind for quite some time... moving many things that were
1516		in struct emul into a new struct machine.
1517		Userland emulation now works with bintrans.
1518		Refreshing the LANCE controller (dev_le.c).
1519		Fixing the LK201 keyboard id.
152020050120	Continuing on the remodelling/cleanup.
1521		Fixing the SCSI bug (which was triggered sometimes by
1522		NetBSD 2.0/pmax on Linux/i386 hosts).
1523		Adding a speed-limit hack to the mc146818 device when running
1524		in DECstation mode (limiting to emulated 30 MHz clock, so
1525		that Ultrix doesn't freak out).
1526		Adding an ugly workaround for the floating-point bug which
1527		is triggered when running NetBSD/pmax 2.0 on an Alpha host.
1528		The count/compare interrupt will not be triggered now, if
1529		the compare register is left untouched.
1530		Many, many other fixes...
153120050121	Continuing the remodelling/cleanup. (Mostly working on the
1532		network stack, and on moving towards multiple emulations
1533		with multiple machines per emulation.)
1534		Fixbug: not clearing lowest parts of lo0 and hi on tlbr
1535		(seems to increase performance when emulating Linux?).
153620050122	Continuing the remodelling/cleanup.
1537		Linux on DECstation uses a non-used part of the RTC registers
1538		for the year value; this is supported now, so Linux thinks
1539		it is 2005 and not 2000.
1540		Began hacking on something to reply to Debian's DHCP requests,
1541		but it's not working yet.
154220050123	Continuing the remodelling/cleanup.
154320050124	Continuing the remodelling/cleanup.
1544		Converting the dev_vga charcell memory to support direct
1545		bintrans access (similar to how dev_fb works), and fixing a
1546		couple of bintrans bugs in the process.
1547		The emulator now compiles under OpenBSD/arc 2.3 without
1548		crashing (mostly due to the bintrans fixes, but also some
1549		minor updates to the configure script).
155020050125	Continuing the remodelling/cleanup.
1551		The '-a' option was missing in the Hello World example in the
1552		documentation. (Thanks to Soohyun Cho for noticing this.)
155320050126	Continuing the remodelling/cleanup. Moving around stuff in
1554		the header files, etc. Adding a '-K' command line option, which
1555		forces the debugger to be entered at the exit of a simulation,
1556		regardless of failure or success. Beginning to work on the
1557		config file parser.
1558		Splitting doc/index.html into experiments.html, guestoses.html,
1559		intro.html, and misc.html.
1560		Updating the man page and adding a skeleton section about the
1561		configure files to doc/misc.html.
156220050127	Minor documentation updates.
156320050128	Continuing the remodelling/cleanup, mostly working on the
1564		config file parser (adding a couple of machine words, enough
1565		to run simple emulations, and adding support for multi-line
1566		comments using tuborgs).
1567		Removing some command line options for the least working
1568		emulation modes (-e, -f, -g, -E, -H), adding new -E and -e
1569		options for selecting machine type.
1570		Moving global variables from src/x11.c into struct machine (a
1571		bit buggy, but it seems to almost work).
157220050129	Removing the Playstation 2 mode (-B) and hpcmips modes (-F)
1573		from the command line as well.
1574		Changing the -T command line option from meaning "trace on bad
1575		address" to meaning "enter the single-step debugger on bad
1576		address".
1577		More updates to the configuration file parser (nested tuborg
1578		comments, more options, ...).
1579		Making -s a global setting, not just affecting one machine.
1580		Trying to fix the X11 event stuff... but it's so ugly that it
1581		must be rewritten later.
1582		Continuing the multi-emul cleanup.
1583		Bugfixes and other updates to dev_vga.
158420050130	Continuing the remodelling/cleanup. Finally moving out the
1585		MIPS dependant stuff of the cpu struct into its own struct.
1586		Renaming cpu.c to cpu_mips.c, and cpu_common.c to cpu.c.
1587		Adding a dummy cpu_ppc.c.
1588		Removing the UltraSPARC bintrans backend.
1589		Many other minor updates.
1590		src/file.c should now be free from MIPS-dependancies.
159120050131	Continuing a little bit more on src/file.c. PPC ELFs can now
1592		be loaded, it seems.
1593		Continuing on src/cpu_ppc.c.
1594		'mips' is undefined by the configure script, if it is defined
1595		by default. (Fixes build on at least OpenBSD/arc and
1596		NetBSD/arc, where gcc defines 'mips'.)
1597		A couple of other minor fixes.
1598		Removing the "Changing framebuffer resolution" section from
1599		doc/misc.h (because it's buggy and not very useful anway).
1600		Adding a mystrtoull(), used on systems where there is no
1601		strtoull() in libc.
1602		Adding 'add_x11_display' to the configure file parser
1603		(corresponding to the -z command line option).
1604		Continuing the multi-emul machine cleanup.
160520050201	Minor updates (man page, RELEASE, README).
1606		Continuing the cleanup.
1607		Adding a 'name' field to the emul struct, and adding a command
1608		to the debugger ("focus") to make it possible to switch focus
1609		to different machines (in different emuls).
1610		Beginning to work on the PPC disassembler etc. Hello World
1611		for linux-ppc64 can be disassembled :-)
161220050202	Adding a hack for reading symbols from Microsoft's variant of
1613		COFF files.
1614		Adding a dummy cpu_sparc.c and include/cpu_sparc.h.
1615		Cleaning up more to support multiple cpu families.
1616		Various other minor updates.
1617		Fixing another old-gcc-on-Alpha problem.
161820050203	Bintrans cache size is now variable, settable by a new
1619		configuration file option 'bintrans_size'.
1620		The debugger can now theoretically call disassembler functions
1621		for cpu families with non-fixed instruction word length.
1622		Working more on the mec controller. It now works well enough
1623		to let both NetBSD/sgimips and OpenBSD/sgi connect to the
1624		outside world using ftp :-)
1625		Continuing on the cleanup of the networking subsystem.
162620050204	Continuing the cleanup.
1627		Working on a way to use separate xterms for serial ports and
1628		other console input, when emulating multiple machines (or one
1629		machine with multiple serial lines active).
163020050205	Minor documentation updates.
163120050206	Moving console.c from devices/ to src/, and continuing the
1632		work on using separate windows for each serial console.
1633		Trying to get OpenBSD/sgi to boot with root-on-nfs on an
1634		emulated NetBSD/pmax server, but no success in setting up
1635		the server yet.
163620050207	Continuing on the console cleanup.
1637		Adding a 'start_paused' configuration file option, and a
1638		'pause' command to the debugger.
163920050208	Everything now builds with --withoutmips.
1640		Continuing on the documentation on how to run OpenBSD/sgi, but
1641		no actual success yet.
1642		sizeof => (int)sizeof in the configure script (as suggested by
1643		Nils Weller).
164420050209	Adding a check for -lm to the configure script.
1645		Continuing on the cleanup: trying to make memory_rw non-MIPS
1646		dependant.
1647		Trying to make a better fix for the cdrom-block-size problems
1648		on FreeBSD. (It now works with a Windows NT 4.0 cdrom in my
1649		drive.)
1650		Began a clean-up of the userland subsystem.
165120050210	Continuing the userland cleanup.
1652		IBM's Hello World example for Linux/PPC64 runs fine now.
165320050211	Continuing the cleanup. Removing the --userland configure
1654		option (because support for userland is always included now).
1655		Working more on getting OpenBSD/sgi to boot with root on
1656		nfs. (Booting with the ramdisk kernel, and mounting root via
1657		nfs works, but not yet from the generic kernel.)
1658		Major update to the manpage.
1659		Removing the -G command line option (SGI modes).
166020050212	Updating the documentation (experimental devices: dev_cons
1661		and dev_mp, better hello.c, and some other things).
166220050213	Some minor fixes: documentation, 80 columns in some source
1663		files, better configure script options.
1664		Adding some more PPC instructions.
1665		Added a NOFPU flag to the MIPS cpu flags, so that executing
1666		FPU instructions on for example VR4xxx will fail (as suggested
1667		by Alexander Yurchenko).
166820050214	Implementing more PPC instructions.
1669		Adding dev_pmppc.
167020050215	Continuing the work on PPC emulation. Adding a (mostly non-
1671		working) NetBSD/powerpc userland mode, a (buggy)
1672		show_trace_tree thing (simliar to the MIPS version).
167320050216	Continuing...
167420050218	Continuing the clean-up. (Merging the devices and devstate
1675		debugger commands, more 80-column cleanup, some documentation
1676		updates, ...).
167720050219	Removing the -D, -A, and -a command line options. Updating the
1678		documentation, in preparation for the next release.
1679		Adding interrupt stuff to dev_cons.
1680		Single-stepping now looks/works better with bintrans enabled.
1681		Beginning the first phase of release testing; various minor
1682		updates to make everything build cleanly on Solaris.
168320050220	Continuing testing for the release...
1684
1685==============  RELEASE 0.3  ==============
1686
168720050221	Minor updates. Some more clean-up.
1688		Beginning on the new device registry stuff.
168920050222	Continuing on the device stuff, and doing various other kinds
1690		of clean-up.
1691		Adding a dummy BeBox mode.
1692		Making the pc register common for all cpu families.
1693		Adding some more PPC instructions and fixing some bugs.
169420050223	Continuing on the BeBox stuff, and adding more instructions.
1695		Adding an ns16550 to the VR4131 emulation (which is probably
1696		a close enough fake to the VR4131's SIU unit).
169720050224	Minor updates. Adding dummy PReP, macppc, and DB64360 modes.
1698		Continuing on the device registry rewrite.
169920050225	Continuing on the device stuff.
170020050226	Continuing more on the device rewrite.
1701		Separating the "testmips" machine into testmips and baremips
1702		(and similarly with the ppc machine).
1703		Redesigning the device registry again :-)
1704		Adding a "device" command to the config file parser.
1705		Adding "device add" and "device remove" to the debugger.
1706		Removing pcidevs.h, because it was almost unused.
170720050228	Correcting the Sprite disk image url in the documentation.
170820050301	Adding an URISC cpu emulation mode (single-opcode machine).
170920050303	Adding some files to the experiments directory (rssb_as.c,
1710		rssb_as.README, urisc_test.s).
1711		Continuing on the device stuff.
171220050304	Minor documentation update. Also, the SPARC, PPC, and URISC
1713		modes are now enabled by default in the configure script.
1714		Some minor PPC updates (adding a VGA device to the bebox
1715		emulation mode).
171620050305	Moving the static i386 bintrans runchunk code snippet (and the
1717		others) to be dynamically generated. (This allows the code to
1718		compile on i386 with old gcc.)
1719		Loading PPC64 ELFs now sets R2 to the TOC base.
1720		Changing the name of the emulator from mips64emul to GXemul.
1721		Splitting out the configuration file part of the documentation
1722		into its own file (configfiles.html).
172320050306	Some really minor documentation updates.
1724		Adding a -D command line option (for "fully deterministic"
1725		behaviour).
172620050308	Minor PPC updates. Adding a dummy OpenFirmware emulation layer.
172720050309	Adding a hack for systems without inet_pton (such as Cygwin in
1728		Windows) as suggested by Soohyun Cho. (And updating the
1729		configure script too.)
1730		Adding a dummy HPPA cpu family.
1731		Some more OpenFirmware updates.
1732		Faster loading of badly aligned ELF regions.
173320050311	Minor updates. Adding a dummy "NEC MobilePro 780" hpcmips
1734		machine mode; disabling direct bintrans access to framebuffers
1735		that are not 4K page aligned.
173620050312	Adding an ugly KIU hack to the VR41xx device (which enables
1737		NetBSD/hpcmips MobilePro 780 keyboard input).
173820050313	Adding a dummy "pcic" device (a pcmcia card controller).
1739		Adding a dummy Alpha cpu emulation mode.
1740		Fixing a strcmp length bug (thanks to Alexander Yurchenko for
1741		noticing the bug).
174220050314	Some minor bintrans-related updates in preparation for a new
1743		bintrans subsystem: command line option -b now means "old
1744		bintrans", -B means "disable bintrans", and using no option at
1745		all selects "new bintrans".
1746		Better generation of MAC addresses when emulating multiple
1747		machines and/or NICs.
1748		Minor documentation updates (regarding configuration files).
174920050315	Adding dummy standby, suspend, and hibernate MIPS opcodes.
1750		RTC interrupt hack for VR4121 (hpcmips).
1751		Enough of the pcic is now emulated to let NetBSD/hpcmips detect
1752		a PCMCIA harddisk controller card (but there is no support for
1753		ISA/PCMCIA interrupts yet).
1754		Adding preliminary instructions on how to install
1755		NetBSD/hpcmips.
1756		Continuing the attempt to get harddisks working with interrupts
1757		(pcic, wdc on hpcmips).
175820050318	Minor updates. (Fixing disassembly of MIPS bgtz etc.,
1759		continuing on the device cleanup, ...)
176020050319	Minor updates.
176120050320	Minor updates.
176220050322	Various minor updates.
176320050323	Some more minor updates.
176420050328	VR41xx-related updates (keyboard stuff: the space key and
1765		shifted and ctrled keys are now working in userland (ie
1766		NetBSD/hpcmips' ramdisk installer).
1767		Also adding simple cursor key support to the VR41xx kiu.
176820050329	Some progress on the wdc.
1769		Updating the documentation of how to (possibly) install
1770		NetBSD/hpcmips, once it is working.
1771		Adding delays before wdc interrupts; this allows NetBSD
1772		2.0/hpcmips to be successfully installed!
1773		Mirroring physical addresses 0x8....... to 0x00000000 on
1774		hpcmips; this makes it possible to run X11 inside
1775		NetBSD/hpcmips :-)
1776		Updating the documentation regarding NetBSD/hpcmips.
1777		Fixing 16-bit vs 15-bit color in dev_fb.
177820050330	Print a warning when the user attempts to load a gzipped
1779		file. (Thanks to Juan RP for making me aware of this "bug".)
178020050331	Importing aic7xxx_reg.h from NetBSD.
1781		Adding a "-x" command line option, which forces xterms for
1782		each emulated serial port to always be opened.
1783		Adding a MobilePro 770 mode (same as 780, but different
1784		framebuffer address which allows bintrans = fast scrolling),
1785		and a MobilePro 800 (with 800x600 pixels framebuffer :-).
178620050401	Minor updates.
178720050402	Minor updates. (The standby and suspend instructions are
1788		bintransed as NOPs, and some minor documentation updates.)
178920050403	Adding an Agenda VR3 mode, and playing around with a Linux
1790		kernel image, but not much success yet.
1791		Changing BIFB_D16_FFFF -> BIFB_D16_0000 for the hpcmips
1792		framebuffers, causing NetBSD to boot with correct colors.
1793		New syntax for loading raw files: loadaddr:skiplen:
1794		initialpc:filename. (This is necessary to boot the Linux VR3
1795		kernels.)
1796		The Linux VR3 kernel boots in both serial console mode and
1797		using the framebuffer, but it panics relatively early.
179820050404	Continuing on the AHC, and some other minor updates.
179920050405	Adding a note in doc/experimental.html about "root1.2.6.cramfs"
1800		(thanks to Alec Voropay for noticing that it wasn't part
1801		of root1.2.6.kernel-8.00).
1802		Also adding a note about another cramfs image.
1803		-o options are now added to the command line passed to the
1804		Linux kernel, when emulating the VR3.
1805		Adding a MobilePro 880 mode, and a dummy IBM WorkPad Z50 mode.
180620050406	Connecting the VR3 serial controller to irq 9 (Linux calls this
1807		irq 17), and some other interrupt-related cleanups.
1808		Reducing the memory overhead per bintranslated page. (Hopefully
1809		this makes things faster, or at least not slower...)
181020050407	Some more cleanup regarding command line argument passing for
1811		the hpcmips modes.
1812		Playing with Linux kernels for MobilePro 770 and 800; they get
1813		as far as mounting a root filesystem, but then crash.
1814		Doing some testing for the next release.
1815
1816==============  RELEASE 0.3.1  ==============
1817
181820050408	Some minor updates to the wdc. Linux now doesn't complain
1819		anymore if a disk is non-present.
182020050409	Various minor fixes (a bintrans bug, and some other things).
1821		The wdc seems to work with Playstation2 emulation, but there
1822		is a _long_ annoying delay when disks are detected.
1823		Fixing a really important bintrans bug (when devices and RAM
1824		are mixed within 4KB pages), which was triggered with
1825		NetBSD/playstation2 kernels.
182620050410	Adding a dummy dev_ps2_ether (just so that NetBSD doesn't
1827		complain as much during bootup).
1828		Symbols starting with '$' are now ignored.
1829		Renaming dev_ps2_ohci.c to dev_ohci.c, etc.
183020050411	Moving the bintrans-cache-isolation check from cpu_mips.c to
1831		cpu_mips_coproc.c. (I thought this would give a speedup, but
1832		it's not noticable.)
1833		Better playstation2 sbus interrupt code.
1834		Skip ahead many ticks if the count register is read manually.
1835		(This increases the speed of delay-loops that simply read
1836		the count register.)
183720050412	Updates to the playstation2 timer/interrupt code.
1838		Some other minor updates.
183920050413	NetBSD/cobalt runs from a disk image :-) including userland;
1840		updating the documentation on how to install NetBSD/cobalt
1841		using NetBSD/pmax (!).
1842		Some minor bintrans updates (no real speed improvement) and
1843		other minor updates (playstation2 now uses the -o options).
184420050414	Adding a dummy x86 (and AMD64) mode.
184520050415	Adding some (32-bit and 16-bit) x86 instructions.
1846		Adding some initial support for non-SCSI, non-IDE floppy
1847		images. (The x86 mode can boot from these, more or less.)
1848		Moving the devices/ and include/ directories to src/devices/
1849		and src/include/, respectively.
185020050416	Continuing on the x86 stuff. (Adding pc_bios.c and some simple
1851		support for software interrupts in 16-bit mode.)
185220050417	Ripping out most of the x86 instruction decoding stuff, trying
1853		to rewrite it in a cleaner way.
1854		Disabling some of the least working CPU families in the
1855		configure script (sparc, x86, alpha, hppa), so that they are
1856		not enabled by default.
185720050418	Trying to fix the bug which caused problems when turning on
1858		and off bintrans interactively, by flushing the bintrans cache
1859		whenever bintrans is manually (re)enabled.
186020050419	Adding the 'lswi' ppc instruction.
1861		Minor updates to the x86 instruction decoding.
186220050420	Renaming x86 register name indices from R_xx to X86_R_xx (this
1863		makes building on Tru64 nicer).
186420050422	Adding a check for duplicate MIPS TLB entries on tlbwr/tlbwi.
186520050427	Adding screenshots to guestoses.html.
1866		Some minor fixes and testing for the next release.
1867
1868==============  RELEASE 0.3.2  ==============
1869
187020050428	Disabling the "-fmove-all-movables" option in the configure
1871		script, because it causes the compile to fail on OpenBSD/sgi.
187220050502	Minor updates.
187320050503	Removing the WRT54G mode (it was bogus anyway), and adding a
1874		comment about Windows NT for MIPS in doc/experiments.html.
1875		Minor updates to the x86 instruction decoding.
187620050504	Adding some more x86 instructions.
1877		Adding support for reading files from ISO9660 CDROMs (including
1878		gzipped files). It's an ugly hack, but it seems to work.
1879		Various other minor updates (dev_vga.c, pc_bios.c etc).
188020050505	Some more x86-related updates.
1881		Beginning (what I hope will be) a major code cleanup phase.
1882		"bootris" (an x86 bootsector) runs :-)
188320050506	Adding some more x86 instructions.
188420050507	tmpnam => mkstemp.
1885		Working on a hack to allow VGA charcells to be shown even when
1886		not running with X11.
1887		Adding more x86 instructions.
188820050508	x86 32-bit SIB addressing fix, and more instructions.
188920050509	Adding more x86 instructions.
189020050510	Minor documentation updates, and other updates (x86 stuff etc.)
189120050511	More x86-related updates.
189220050513	Various updates, mostly x86-related. (Trying to fix flag
1893		calculation, factoring out the ugly shift/rotate code, and
1894		some other things.)
189520050514	Adding support for loading some old i386 a.out executables.
1896		Finally beginning the cleanup of machine/PROM/bios dependant
1897		info.
1898		Some minor documentation updates.
1899		Trying to clean up ARCBIOS stuff a little.
190020050515	Trying to make it possible to actually use more than one disk
1901		type per machine (floppy, ide, scsi).
1902		Trying to clean up the kbd vs PROM console stuff. (For PC and
1903		ARC emulation modes, mostly.)
1904		Beginning to add an 8259 interrupt controller, and connecting
1905		it to the x86 emulation.
190620050516	The first x86 interrupts seem to work (keyboard stuff).
1907		Adding a 8253/8254 programmable interval timer skeleton.
1908		FreeDOS now reaches a command prompt and can be interacted
1909		with.
191020050517	After some bugfixes, MS-DOS also (sometimes) reaches a
1911		command prompt now.
1912		Trying to fix the pckbc to work with MS-DOS' keyb.com, but no
1913		success yet.
191420050518	Adding a simple 32-bit x86 MMU skeleton.
191520050519	Some more work on the x86 stuff. (Beginning the work on paging,
1916		and various other fixes).
191720050520	More updates. Working on dev_vga (4-bit graphics modes), adding
1918		40 columns support to the PC bios emulation.
1919		Trying to add support for resizing windows when switching
1920		between graphics modes.
192120050521	Many more x86-related updates.
192220050522	Correcting the initial stack pointer's sign-extension for
1923		ARCBIOS emulation (thanks to Alec Voropay for noticing the
1924		error).
1925		Continuing on the cleanup (ARCBIOS etc).
1926		dev_vga updates.
192720050523	More x86 updates: trying to add some support for protected mode
1928		interrupts (via gate descriptors) and many other fixes.
1929		More ARCBIOS cleanup.
1930		Adding a device flag which indicates that reads cause no
1931		side-effects. (Useful for the "dump" command in the debugger,
1932		and other things.)
1933		Adding support for directly starting up x86 ELFs, skipping the
1934		bootloader stage. (Most ELFs, however, are not suitable for
1935		this.)
193620050524	Adding simple 32-bit x86 TSS task switching, but no privilege
1937		level support yet.
1938		More work on dev_vga. A small "Copper bars" demo works. :-)
1939		Adding support for Trap Flag (single-step exceptions), at least
1940		in real mode, and various other x86-related fixes.
194120050525	Adding a new disk image prefix (gH;S;) which can be used to
1942		override the default nr of heads and sectors per track.
194320050527	Various bug fixes, more work on the x86 mode (stack change on
1944		interrupts between different priv.levels), and some minor
1945		documentation updates.
194620050528	Various fixes (x86 stuff).
194720050529	More x86 fixes. An OpenBSD/i386 bootfloppy reaches userland
1948		and can be interacted with (although there are problems with
1949		key repetition). NetBSD/i386 triggers a serious CISC-related
1950		problem: instruction fetches across page boundaries, where
1951		the later part isn't actually part of the instruction.
195220050530	Various minor updates. (Documentation updates, etc.)
195320050531	Adding some experimental code (experiments/new_test_*) which
1954		could be useful for dynamic (but not binary) translation in
1955		the future.
195620050602	Adding a dummy ARM skeleton.
1957		Fixing the pckbc key repetition problem (by adding release
1958		scancodes for all keypresses).
195920050603	Minor updates for the next release.
196020050604	Release testing. Minor updates.
1961
1962==============  RELEASE 0.3.3  ==============
1963
196420050604	There'll probably be a 0.3.3.1 release soon, with some very
1965		very tiny updates.
1966
1967==============  RELEASE 0.3.3.1  ==============
1968
196920050609	Adding simple MIPS IPIs (to dev_mp).
197020050611	Adding an ugly hack to track down low-reference bugs
1971		(define TRACE_NULL_CRASHES, or configure --tracenull).
1972		Other minor updates.
197320050612	Adding a dummy evbmips mode.
1974
1975==============  RELEASE 0.3.3.2  ==============
1976
197720050617	Experimenting some more with netbooting OpenBSD/sgi. Adding
1978		a hack which allows emulated ethernet networks to be
1979		distributed across multiple emulator processes.
198020050618	Minor updates (documentation, dummy YAMON emulation, etc).
198120050620	strcpy/strcat -> strlcpy/strlcat updates.
1982		Some more progress on evbmips (Malta).
198320050621	Adding a section to doc/configfiles.html about ethernet
1984		emulation across multiple hosts.
1985		Beginning the work on the ARM translation engine (using the
1986		dynamic-but-not-binary translation method).
1987		Fixing a bintrans bug: 0x9fc00000 should always be treated as
1988		PROM area, just as 0xbfc00000 is.
1989		Minor progress on Malta emulation (the PCI-ISA bus).
199020050622	NetBSD/evbmips can now be installed (using another emulated
1991		machine) and run (including userland and so on). :-)
1992		Spliting up the bintrans haddr_entry field into two (one for
1993		read, one for write). Probably not much of a speed increase,
1994		though.
1995		Updating some NetBSD 2.0 -> 2.0.2 in the documentation.
199620050623	Minor updates (documentation, the TODO file, etc).
1997		gzipped kernels are now always automagically gunzipped when
1998		loaded.
199920050624	Adding a dummy Playstation Portable (PSP) mode, just barely
2000		enough to run Hello World (in weird colors :-).
2001		Removing the -b command line option; old bintrans is enabled
2002		by default instead. It makes more sense.
2003		Trying to finally fix the non-working performance measurement
2004		thing (instr/second etc).
200520050625	Continuing on the essential basics for ARM emulation. Two
2006		instructions seem to work, a branch and a simple "mov". (The
2007		mov arguments are not correct yet.) Performance is definitely
2008		reasonable.
2009		Various other minor updates.
2010		Adding the ARM "bl" instruction.
2011		Adding support for combining multiple ARM instructions into one
2012		function call. ("mov" + "mov" is the only one implemented so
2013		far, but it seems to work.)
2014		Cleaning up some IP32 interrupt things (crime/mace); disabling
2015		the PS/2 keyboard controller on IP32, so that NetBSD/sgimips
2016		boots into userland again.
201720050626	Finally! NetBSD/sgimips netboots. Adding instructions to
2018		doc/guestoses.html on how to set up an nfs server etc.
2019		Various other minor fixes.
2020		Playstation Portable ".pbp" files can now be used directly.
2021		(The ELF part of the .pbp is extracted transparently.)
2022		Converting some sprintf -> snprintf.
2023		Adding some more instructions to the ARM disassembler.
202420050627	More ARM updates. Adding some simple ldr(b), str(b),
2025		cmps, and conditional branch instructions, enough to run
2026		a simple Hello World program.
2027		All ARM instructions are now inlined/generated for all possible
2028		condition codes.
2029		Adding add and sub, and more load/store instructions.
2030		Removing dummy files: cpu_alpha.c, cpu_hppa.c, and cpu_sparc.c.
2031		Some minor documentation updates; preparing for a 0.3.4
2032		release. Updating some URLs.
2033
2034==============  RELEASE 0.3.4  ==============
2035
203620050628	Continuing the work on the ARM translation engine. end_of_page
2037		works. Experimenting with load/store translation caches
2038		(virtual -> physical -> host).
203920050629	More ARM stuff (memory access translation cache, mostly). This
2040		might break a lot of stuff elsewhere, probably some MIPS-
2041		related translation things.
204220050630	Many load/stores are now automatically generated and included
2043		into cpu_arm_instr.c; 1024 functions in total (!).
2044		Fixes based on feedback from Alec Voropay: only print 8 hex
2045		digits instead of 16 in some cases when emulating 32-bit
2046		machines; similar 8 vs 16 digit fix for breakpoint addresses;
2047		4Kc has 16 TLB entries, not 48; the MIPS config select1
2048		register is now printed with "reg ,0".
2049		Also changing many other occurances of 16 vs 8 digit output.
2050		Adding cache associativity fields to mips_cpu_types.h; updating
2051		some other cache fields; making the output of
2052		mips_cpu_dumpinfo() look nicer.
2053		Generalizing the bintrans stuff for device accesses to also
2054		work with the new translation system. (This might also break
2055		some MIPS things.)
2056		Adding multi-load/store instructions to the ARM disassembler
2057		and the translator, and some optimizations of various kinds.
205820050701	Adding a simple dev_disk (it can read/write sectors from
2059		disk images).
206020050712	Adding dev_ether (a simple ethernet send/receive device).
2061		Debugger command "ninstrs" for toggling show_nr_of_instructions
2062		during runtime.
2063		Removing the framebuffer logo.
206420050713	Continuing on dev_ether.
2065		Adding a dummy cpu_alpha (again).
206620050714	More work on cpu_alpha.
206720050715	More work on cpu_alpha. Many instructions work, enough to run
2068		a simple framebuffer fill test (similar to the ARM test).
206920050716	More Alpha stuff.
207020050717	Minor updates (Alpha stuff).
207120050718	Minor updates (Alpha stuff).
207220050719	Generalizing some Alpha instructions.
207320050720	More Alpha-related updates.
207420050721	Continuing on cpu_alpha. Importing rpb.h from NetBSD/alpha.
207520050722	Alpha-related updates: userland stuff (Hello World using
2076		write() compiled statically for FreeBSD/Alpha runs fine), and
2077		more instructions are now implemented.
207820050723	Fixing ldq_u and stq_u.
2079		Adding more instructions (conditional moves, masks, extracts,
2080		shifts).
208120050724	More FreeBSD/Alpha userland stuff, and adding some more
2082		instructions (inserts).
208320050725	Continuing on the Alpha stuff. (Adding dummy ldt/stt.)
2084		Adding a -A command line option to turn off alignment checks
2085		in some cases (for translated code).
2086		Trying to remove the old bintrans code which updated the pc
2087		and nr_of_executed_instructions for every instruction.
208820050726	Making another attempt att removing the pc/nr of instructions
2089		code. This time it worked, huge performance increase for
2090		artificial test code, but performance loss for real-world
2091		code :-( so I'm scrapping that code for now.
2092		Tiny performance increase on Alpha (by using ret instead of
2093		jmp, to play nice with the Alpha's branch prediction) for the
2094		old MIPS bintrans backend.
209520050727	Various minor fixes and cleanups.
209620050728	Switching from a 2-level virtual to host/physical translation
2097		system for ARM emulation, to a 1-level translation.
2098		Trying to switch from 2-level to 1-level for the MIPS bintrans
2099		system as well (Alpha only, so far), but there is at least one
2100		problem: caches and/or how they work with device mappings.
210120050730	Doing the 2-level to 1-level conversion for the i386 backend.
2102		The cache/device bug is still there for R2K/3K :(
2103		Various other minor updates (Malta etc).
2104		The mc146818 clock now updates the UIP bit in a way which works
2105		better with Linux for at least sgimips and Malta emulation.
2106		Beginning the work on refactoring the dyntrans system.
210720050731	Continuing the dyntrans refactoring.
2108		Fixing a small but serious host alignment bug in memory_rw.
2109		Adding support for big-endian load/stores to the i386 bintrans
2110		backend.
2111		Another minor i386 bintrans backend update: stores from the
2112		zero register are now one (or two) loads shorter.
2113		The slt and sltu instructions were incorrectly implemented for
2114		the i386 backend; only using them for 32-bit mode for now.
211520050801	Continuing the dyntrans refactoring.
2116		Cleanup of the ns16550 serial controller (removing unnecessary
2117		code).
2118		Bugfix (memory corruption bug) in dev_gt, and a patch/hack from
2119		Alec Voropay for Linux/Malta.
212020050802	More cleanup/refactoring of the dyntrans subsystem: adding
2121		phys_page pointers to the lookup tables, for quick jumps
2122		between translated pages.
2123		Better fix for the ns16550 device (but still no real FIFO
2124		functionality).
2125		Converting cpu_ppc to the new dyntrans system. This means that
2126		I will have to start from scratch with implementing each
2127		instruction, and figure out how to implement dual 64/32-bit
2128		modes etc.
2129		Removing the URISC CPU family, because it was useless.
213020050803	When selecting a machine type, the main type can now be omitted
2131		if the subtype name is unique. (I.e. -E can be omitted.)
2132		Fixing a dyntrans/device update bug. (Writes to offset 0 of
2133		a device could sometimes go unnoticed.)
2134		Adding an experimental "instruction combination" hack for
2135		ARM for memset-like byte fill loops.
213620050804	Minor progress on cpu_alpha and related things.
2137		Finally fixing the MIPS dmult/dmultu bugs.
2138		Fixing some minor TODOs.
213920050805	Generalizing the 8259 PIC. It now also works with Cobalt
2140		and evbmips emulation, in addition to the x86 hack.
2141		Finally converting the ns16550 device to use devinit.
2142		Continuing the work on the dyntrans system. Thinking about
2143		how to add breakpoints.
214420050806	More dyntrans updates. Breakpoints seem to work now.
214520050807	Minor updates: cpu_alpha and related things; removing
2146		dev_malta (as it isn't used any more).
2147		Dyntrans: working on general "show trace tree" support.
2148		The trace tree stuff now works with both the old MIPS code and
2149		with newer dyntrans modes. :)
2150		Continuing on Alpha-related stuff (trying to get *BSD to boot
2151		a bit further, adding more instructions, etc).
215220050808	Adding a dummy IA64 cpu family, and continuing the refactoring
2153		of the dyntrans system.
2154		Removing the regression test stuff, because it was more or
2155		less useless.
2156		Adding loadlinked/storeconditional type instructions to the
2157		Alpha emulation. (Needed for Linux/alpha. Not very well tested
2158		yet.)
215920050809	The function call trace tree now prints a per-function nr of
2160		arguments. (Semi-meaningless, since that data isn't read yet
2161		from the ELFs; some hardcoded symbols such as memcpy() and
2162		strlen() work fine, though.)
2163		More dyntrans refactoring; taking out more of the things that
2164		are common to all cpu families.
216520050810	Working on adding support for "dual mode" for PPC dyntrans
2166		(i.e. both 64-bit and 32-bit modes).
2167		(Re)adding some simple PPC instructions.
216820050811	Adding a dummy M68K cpu family. The dyntrans system isn't ready
2169		for variable-length ISAs yet, so it's completely bogus so far.
2170		Re-adding more PPC instructions.
2171		Adding a hack to src/file.c which allows OpenBSD/mac68k a.out
2172		kernels to be loaded.
2173		Beginning to add PPC loads/stores. So far they only work in
2174		32-bit mode.
217520050812	The configure file option "add_remote" now accepts symbolic
2176		host names, in addition to numeric IPv4 addresses.
2177		Re-adding more PPC instructions.
217820050814	Continuing to port back more PPC instructions.
2179		Found and fixed the cache/device write-update bug for 32-bit
2180		MIPS bintrans. :-)
2181		Triggered a really weird and annoying bug in Compaq's C
2182		compiler; ccc sometimes outputs code which loads from an
2183		address _before_ checking whether the pointer was NULL or not.
2184		(I'm not sure how to handle this problem.)
218520050815	Removing all of the old x86 instruction execution code; adding
2186		a new (dummy) dyntrans module for x86.
2187		Taking the first steps to extend the dyntrans system to support
2188		variable-length instructions.
2189		Slowly preparing for the next release.
219020050816	Adding a dummy SPARC cpu module.
2191		Minor updates (documentation etc) for the release.
2192
2193==============  RELEASE 0.3.5  ==============
2194
219520050816	Some success in decoding the way the SGI O2 PROM draws graphics
2196		during bootup; lines/rectangles and bitmaps work, enough to
2197		show the bootlogo etc. :-)
2198		Adding more PPC instructions, and (dummy) BAT registers.
219920050817	Updating the pckbc to support scancode type 3 keyboards
2200		(required in order to interact with the SGI O2 PROM).
2201		Adding more PPC instructions.
220220050818	Adding more ARM instructions; general register forms.
2203		Importing armreg.h from NetBSD (ARM cpu ids). Adding a (dummy)
2204		CATS machine mode (using SA110 as the default CPU).
2205		Continuing on general dyntrans related stuff.
220620050819	Register forms for ARM load/stores. Gaah! The Compaq C Compiler
2207		bug is triggered for ARM loads as well, not just PPC :-(
2208		Adding full support for ARM PC-relative load/stores, and load/
2209		stores where the PC register is the destination register.
2210		Adding support for ARM a.out binaries.
221120050820	Continuing to add more ARM instructions, and correcting some
2212		bugs. Continuing on CATS emulation.
2213		More work on the PPC stuff.
221420050821	Minor PPC and ARM updates. Adding more machine types.
221520050822	All ARM "data processing instructions" are now generated
2216		automatically.
221720050824	Beginning the work on the ARM system control coprocessor.
2218		Adding support for ARM halfword load/stores, and signed loads.
221920050825	Fixing an important bug related to the ARM condition codes.
2220		OpenBSD/zaurus and NetBSD/netwinder now print some boot
2221		messages. :)
2222		Adding a dummy SH (Hitachi SuperH) cpu family.
2223		Beginning to add some ARM virtual address translation.
2224		MIPS bugfixes: unaligned PC now cause an ADEL exception (at
2225		least for non-bintrans execution), and ADEL/ADES (not
2226		TLBL/TLBS) are used if userland tries to access kernel space.
2227		(Thanks to Joshua Wise for making me aware of these bugs.)
222820050827	More work on the ARM emulation, and various other updates.
222920050828	More ARM updates.
2230		Finally taking the time to work on translation invalidation
2231		(i.e. invalidating translated code mappings when memory is
2232		written to). Hopefully this doesn't break anything.
223320050829	Moving CPU related files from src/ to a new subdir, src/cpus/.
2234		Moving PROM emulation stuff from src/ to src/promemul/.
2235		Better debug instruction trace for ARM loads and stores.
223620050830	Various ARM updates (correcting CMP flag calculation, etc).
223720050831	PPC instruction updates. (Flag fixes, etc.)
223820050901	Various minor PPC and ARM instruction emulation updates.
2239		Minor OpenFirmware emulation updates.
224020050903	Adding support for adding arbitrary ARM coprocessors (with
2241		the i80321 I/O coprocessor as a first test).
2242		Various other ARM and PPC updates.
224320050904	Adding some SHcompact disassembly routines.
224420050907	(Re)adding a dummy HPPA CPU module, and a dummy i960 module.
224520050908	Began hacking on some Apple Partition Table support.
224620050909	Adding support for loading Mach-O (Darwin PPC) binaries.
224720050910	Fixing an ARM bug (Carry flag was incorrectly updated for some
2248		data processing instructions); OpenBSD/cats and NetBSD/
2249		netwinder get quite a bit further now.
2250		Applying a patch to dev_wdc, and a one-liner to dev_pcic, to
2251		make them work better when emulating new versions of OpenBSD.
2252		(Thanks to Alexander Yurchenko for the patches.)
2253		Also doing some other minor updates to dev_wdc. (Some cleanup,
2254		and finally converting to devinit, etc.)
225520050912	IRIX doesn't have u_int64_t by default (noticed by Andreas
2256		<avr@gnulinux.nl>); configure updated to reflect this.
2257		Working on ARM register bank switching, CPSR vs SPSR issues,
2258		and beginning the work on interrupt/exception support.
225920050913	Various minor ARM updates (speeding up load/store multiple,
2260		and fixing a ROR bug in R(); NetBSD/cats now boots as far as
2261		OpenBSD/cats).
226220050917	Adding a dummy Atmel AVR (8-bit) cpu family skeleton.
226320050918	Various minor updates.
226420050919	Symbols are now loaded from Mach-O executables.
2265		Continuing the work on adding ARM exception support.
226620050920	More work on ARM stuff: OpenBSD/cats and NetBSD/cats reach
2267		userland! :-)
226820050921	Some more progress on ARM interrupt specifics.
226920050923	Fixing linesize for VR4121 (patch by Yurchenko). Also fixing
2270		linesizes/cachesizes for some other VR4xxx.
2271		Adding a dummy Acer Labs M1543 PCI-ISA bridge (for CATS) and a
2272		dummy Symphony Labs 83C553 bridge (for Netwinder), usable by
2273		dev_footbridge.
227420050924	Some PPC progress.
227520050925	More PPC progress.
227620050926	PPC progress (fixing some bugs etc); Darwin's kernel gets
2277		slightly further than before.
227820050928	Various updates: footbridge/ISA/pciide stuff, and finally
2279		fixing the VGA text scroll-by-changing-the-base-offset bug.
228020050930	Adding a dummy S3 ViRGE pci card for CATS emulation, which
2281		both NetBSD and OpenBSD detects as VGA.
2282		Continuing on Footbridge (timers, ISA interrupt stuff).
228320051001	Continuing... there are still bugs, probably interrupt-
2284		related.
228520051002	More work on the Footbridge (interrupt stuff).
228620051003	Various minor updates. (Trying to find the bug(s).)
228720051004	Continuing on the ARM stuff.
228820051005	More ARM-related fixes.
228920051007	FINALLY! Found and fixed 2 ARM bugs: 1 memory related, and the
2290		other was because of an error in the ARM manual (load multiple
2291		with the S-bit set should _NOT_ load usermode registers, as the
2292		manual says, but it should load saved registers, which may or
2293		may not happen to be usermode registers).
2294		NetBSD/cats and OpenBSD/cats seem to install fine now :-)
2295		except for a minor bug at the end of the OpenBSD/cats install.
2296		Updating the documentation, preparing for the next release.
229720051008	Continuing with release testing and cleanup.
2298
2299==============  RELEASE 0.3.6  ==============
2300
230120051008	The bug was not because of faulty ARM documentation after all,
2302		but it was related to those parts of the code.
2303		Fixing the RTC (dev_mc146818) to work with CATS.
230420051009	Rewriting the R() function; now there are 8192 automatically
2305		generated smaller functions doing the same thing, but hopefully
2306		faster. This also fixes some bugs which were triggered when
2307		trying to compile GXemul inside itself. :-)
2308		Adding a dummy dev_lpt.
230920051010	Small hack to not update virtual translation tables if memory
2310		accesses are done with the NO_EXCEPTION flag; a time reduction
2311		of almost a factor 2 for a full NetBSD/cats install. :-)
231220051011        Passing -A as the default boot arg for CATS (works fine with
2313                OpenBSD/cats).
2314
2315==============  RELEASE 0.3.6.1  ==============
2316
231720051012	Fixing the VGA cursor offset bug, and speeding up framebuffer
2318		redraws if character cells contain the same thing as during
2319		the last redraw.
232020051013	Adding a slow strd ARM instruction hack.
232120051017	Minor updates: Adding a dummy i80321 Verde controller (for
2322		XScale emulation), fixing the disassembly of the ARM "ldrd"
2323		instruction, adding "support" for less-than-4KB pages for ARM
2324		(by not adding them to translation tables).
232520051020	Continuing on some HPCarm stuff. A NetBSD/hpcarm kernel prints
2326		some boot messages on an emulated Jornada 720.
2327		Making dev_ram work better with dyntrans (speeds up some things
2328		quite a bit).
232920051021	Automatically generating some of the most common ARM load/store
2330		multiple instructions.
233120051022	Better statistics gathering for the ARM load/store multiple.
2332		Various other dyntrans and device updates.
233320051023	Various minor updates.
233420051024	Continuing; minor device and dyntrans fine-tuning. Adding the
2335		first "reasonable" instruction combination hacks for ARM (the
2336		cores of NetBSD/cats' memset and memcpy).
233720051025	Fixing a dyntrans-related bug in dev_vga. Also changing the
2338		dyntrans low/high access notification to only be updated on
2339		writes, not reads. Hopefully it will be enough. (dev_vga in
2340		charcell mode now seems to work correctly with both reads and
2341		writes.)
2342		Experimenting with gathering dyntrans statistics (which parts
2343		of emulated RAM that are actually executed), and adding
2344		instruction combination hacks for cache cleaning and a part of
2345		NetBSD's scanc() function.
234620051026	Adding a bitmap for ARM emulation which indicates if a page is
2347		(specifically) user accessible; loads and stores with the t-
2348		flag set can now use the translation arrays, which results in
2349		a measurable speedup.
235020051027	Dyntrans updates; adding an extra bitmap array for 32-bit
2351		emulation modes, speeding up the check whether a physical page
2352		has any code translations or not (O(n) -> O(1)). Doing a
2353		similar reduction of O(n) to O(1) by avoiding the scan through
2354		the translation entries on a translation update (32-bit mode
2355		only).
2356		Various other minor hacks.
235720051029	Quick release, without any testing at all.
2358
2359==============  RELEASE 0.3.6.2  ==============
2360
236120051031	Adding disassembly support for more ARM instructions (clz,
2362		smul* etc), and adding a hack to support "new tiny" pages
2363		for StrongARM.
236420051101	Minor documentation updates (NetBSD 2.0.2 -> 2.1, and OpenBSD
2365		3.7 -> 3.8, and lots of testing).
2366		Changing from 1-sector PIO mode 0 transfers to 128-sector PIO
2367		mode 3 (in dev_wdc).
2368		Various minor ARM dyntrans updates (pc-relative loads from
2369		within the same page as the instruction are now treated as
2370		constant "mov").
237120051102	Re-enabling instruction combinations (they were accidentally
2372		disabled).
2373		Dyntrans TLB entries are now overwritten using a round-robin
2374		scheme instead of randomly. This increases performance.
2375		Fixing a typo in file.c (thanks to Chuan-Hua Chang for
2376		noticing it).
2377		Experimenting with adding ATAPI support to dev_wdc (to make
2378		emulated *BSD detect cdroms as cdroms, not harddisks).
237920051104	Various minor updates.
238020051105	Continuing on the ATAPI emulation. Seems to work well enough
2381		for a NetBSD/cats installation, but not OpenBSD/cats.
2382		Various other updates.
238320051106	Modifying the -Y command line option to allow scaleup with
2384		certain graphic controllers (only dev_vga so far), not just
2385		scaledown.
2386		Some minor dyntrans cleanups.
238720051107	Beginning a cleanup up the PCI subsystem (removing the
2388		read_register hack, etc).
238920051108	Continuing the cleanup; splitting up some pci devices into a
2390		normal autodev device and some separate pci glue code.
239120051109	Continuing on the PCI bus stuff; all old pci_*.c have been
2392		incorporated into normal devices and/or rewritten as glue code
2393		only, adding a dummy Intel 82371AB PIIX4 for Malta (not really
2394		tested yet).
2395		Minor pckbc fix so that Linux doesn't complain.
2396		Working on the DEC 21143 NIC (ethernet mac rom stuff mostly).
2397		Various other minor fixes.
239820051110	Some more ARM dyntrans fine-tuning (e.g. some instruction
2399		combinations (cmps followed by conditional branch within the
2400		same page) and special cases for DPIs with regform when the
2401		shifter isn't used).
240220051111	ARM dyntrans updates: O(n)->O(1) for just-mark-as-non-
2403		writable in the generic pc_to_pointers function, and some other
2404		minor hacks.
2405		Merging Cobalt and evbmips (Malta) ISA interrupt handling,
2406		and some minor fixes to allow Linux to accept harddisk irqs.
240720051112	Minor device updates (pckbc, dec21143, lpt, ...), most
2408		importantly fixing the ALI M1543/M5229 so that harddisk irqs
2409		work with Linux/CATS.
241020051113	Some more generalizations of the PCI subsystem.
2411		Finally took the time to add a hack for SCSI CDROM TOCs; this
2412		enables OpenBSD to use partition 'a' (as needed by the OpenBSD
2413		installer), and Windows NT's installer to get a bit further.
2414		Also fixing dev_wdc to allow Linux to detect ATAPI CDROMs.
2415		Continuing on the DEC 21143.
241620051114	Minor ARM dyntrans tweaks; ARM cmps+branch optimization when
2417		comparing with 0, and generalizing the xchg instr. comb.
2418		Adding disassembly of ARM mrrc/mcrr and q{,d}{add,sub}.
241920051115	Continuing on various PPC things (BATs, other address trans-
2420		lation things, various loads/stores, BeBox emulation, etc.).
2421		Beginning to work on PPC interrupt/exception support.
242220051116	Factoring out some code which initializes legacy ISA devices
2423		from those machines that use them (bus_isa).
2424		Continuing on PPC interrupt/exception support.
242520051117	Minor Malta fixes: RTC year offset = 80, disabling a speed hack
2426		which caused NetBSD to detect a too fast cpu, and adding a new
2427		hack to make Linux detect a faster cpu.
2428		Continuing on the Artesyn PM/PPC emulation mode.
2429		Adding an Algor emulation skeleton (P4032 and P5064);
2430		implementing some of the basics.
2431		Continuing on PPC emulation in general; usage of unimplemented
2432		SPRs is now easier to track, continuing on memory/exception
2433		related issues, etc.
243420051118	More work on PPC emulation (tgpr0..3, exception handling,
2435		memory stuff, syscalls, etc.).
243620051119	Changing the ARM dyntrans code to mostly use cpu->pc, and not
2437		necessarily use arm reg 15. Seems to work.
2438		Various PPC updates; continuing on the PReP emulation mode.
243920051120	Adding a workaround/hack to dev_mc146818 to allow NetBSD/prep
2440		to detect the clock.
244120051121	More cleanup of the PCI bus (memory and I/O bases, etc).
2442		Continuing on various PPC things (decrementer and timebase,
2443		WDCs on obio (on PReP) use irq 13, not 14/15).
244420051122	Continuing on the CPC700 controller (interrupts etc) for PMPPC,
2445		and on PPC stuff in general.
2446		Finally! After some bug fixes to the virtual to physical addr
2447		translation, NetBSD/{prep,pmppc} 2.1 reach userland and are
2448		stable enough to be interacted with.
2449		More PCI updates; reverse-endian device access for PowerPC etc.
245020051123	Generalizing the IEEE floating point subsystem (moving it out
2451		from src/cpus/cpu_mips_coproc.c into a new src/float_emul.c).
2452		Input via slave xterms was sometimes not really working; fixing
2453		this for ns16550, and a warning message is now displayed if
2454		multiple non-xterm consoles are active.
2455		Adding some PPC floating point support, etc.
2456		Various interrupt related updates (dev_wdc, _ns16550, _8259,
2457		and the isa32 common code in machine.c).
2458		NetBSD/prep can now be installed! :-) (Well, with some manual
2459		commands necessary before running sysinst.) Updating the
2460		documentation and various other things to reflect this.
246120051124	Various minor documentation updates.
2462		Continuing the work on the DEC 21143 NIC.
246320051125	LOTS of work on the 21143. Both OpenBSD and NetBSD work fine
2464		with it now, except that OpenBSD sometimes gives a time-out
2465		warning.
2466		Minor documentation updates.
2467
2468==============  RELEASE 0.3.7  ==============
2469
247020051126	Cobalt and PReP now work with the 21143 NIC.
2471		Continuing on Alpha dyntrans things.
2472		Fixing some more left-shift-by-24 to unsigned.
247320051127	Working on OpenFirmware emulation; major cleanup/redesign.
2474		Progress on MacPPC emulation: NetBSD detects two CPUs (when
2475		running with -n 2), framebuffer output (for text) works.
2476		Adding quick-hack Bandit PCI controller and "gc" interrupt
2477		controller for MacPPC.
247820051128	Changing from a Bandit to a Uni-North controller for macppc.
2479		Continuing on OpenFirmware and MacPPC emulation in general
2480		(obio controller, and wdc attached to the obio seems to work).
248120051129	More work on MacPPC emulation (adding a dummy ADB controller).
2482		Continuing the PCI bus cleanup (endianness and tag composition)
2483		and rewriting all PCI controllers' access functions.
248420051130	Various minor PPC dyntrans optimizations.
2485		Manually inlining some parts of the framebuffer redraw routine.
2486		Slowly beginning the conversion of the old MIPS emulation into
2487		dyntrans (but this will take quite some time to get right).
2488		Generalizing quick_pc_to_pointers.
248920051201	Documentation update (David Muse has made available a kernel
2490		which simplifies Debian/DECstation installation).
2491		Continuing on the ADB bus controller.
249220051202	Beginning a rewrite of the Zilog serial controller (dev_zs).
249320051203	Continuing on the zs rewrite (now called dev_z8530); conversion
2494		to devinit style.
2495		Reworking some of the input-only vs output-only vs input-output
2496		details of src/console.c, better warning messages, and adding
2497		a debug dump.
2498		Removing the concept of "device state"; it wasn't really used.
2499		Changing some debug output (-vv should now be used to show all
2500		details about devices and busses; not shown during normal
2501		startup anymore).
2502		Beginning on some SPARC instruction disassembly support.
250320051204	Minor PPC updates (WALNUT skeleton stuff).
2504		Continuing on the MIPS dyntrans rewrite.
2505		More progress on the ADB controller (a keyboard is "detected"
2506		by NetBSD and OpenBSD).
2507		Downgrading OpenBSD/arc as a guest OS from "working" to
2508		"almost working" in the documentation.
2509		Progress on Algor emulation ("v3" PCI controller).
251020051205	Minor updates.
251120051207	Sorting devices according to address; this reduces complexity
2512		of device lookups from O(n) to O(log n) in memory_rw (but no
2513		real performance increase (yet) in experiments).
251420051210	Beginning the work on native dyntrans backends (by making a
2515		simple skeleton; so far only for Alpha hosts).
251620051211	Some very minor SPARC updates.
251720051215	Fixing a bug in the MIPS mul (note: not mult) instruction,
2518		so it also works with non-64-bit emulation. (Thanks to Alec
2519		Voropay for noticing the problem.)
252020051216	More work on the fake/empty/simple/skeleton/whatever backend;
2521		performance doesn't increase, so this isn't really worth it,
2522		but it was probably worth it to prepare for a real backend
2523		later.
252420051219	More instr call statistics gathering and analysis stuff.
252520051220	Another fix for MIPS 'mul'. Also converting mul and {d,}cl{o,z}
2526		to dyntrans.
2527		memory_ppc.c syntax error fix (noticed by Peter Valchev).
2528		Beginning to move out machines from src/machine.c into
2529		individual files in src/machines (in a way similar to the
2530		autodev system for devices).
253120051222	Updating the documentation regarding NetBSD/pmax 3.0.
253220051223	- " - NetBSD/cats 3.0.
253320051225	- " - NetBSD/hpcmips 3.0.
253420051226	Continuing on the machine registry redesign.
2535		Adding support for ARM rrx (33-bit rotate).
2536		Fixing some signed/unsigned issues (exposed by gcc -W).
253720051227	Fixing the bug which prevented a NetBSD/prep 3.0 install kernel
2538		from starting (triggered when an mtmsr was the last instruction
2539		on a page). Unfortunately not enough to get the kernel to run
2540		as well as the 2.1 kernels did.
254120051230	Some dyntrans refactoring.
254220051231	Continuing on the machine registry redesign.
254320060101-10	Continuing... moving more machines. Moving MD interrupt stuff
2544		from machine.c into a new src/machines/interrupts.c.
254520060114	Adding various mvmeppc machine skeletons.
254620060115	Continuing on mvme* stuff. NetBSD/mvmeppc prints boot messages
2547		(for MVME1600) and reaches the root device prompt, but no
2548		specific hardware devices are emulated yet.
254920060116	Minor updates to the mvme1600 emulation mode; the Eagle PCI bus
2550		seems to work without much modification, and a 21143 can be
2551		detected, interrupts might work (but untested so far).
2552		Adding a fake MK48Txx (mkclock) device, for NetBSD/mvmeppc.
255320060121	Adding an aux control register for ARM. (A BIG thank you to
2554		Olivier Houchard for tracking down this bug.)
255520060122	Adding more ARM instructions (smulXY), and dev_iq80321_7seg.
255620060124	Adding disassembly of more ARM instructions (mia*, mra/mar),
2557		and some semi-bogus XScale and i80321 registers.
255820060201-02	Various minor updates. Moving the last machines out of
2559		machine.c.
256020060204	Adding a -c command line option, for running debugger commands
2561		before the simulation starts, but after all files have been
2562		loaded.
2563		Minor iq80321-related updates.
256420060209	Minor hacks (DEVINIT macro, etc).
2565		Preparing for the generalization of the 64-bit dyntrans address
2566		translation subsystem.
256720060216	Adding ARM ldrd (double-register load).
256820060217	Continuing on various ARM-related stuff.
256920060218	More progress on the ATA/wdc emulation for NetBSD/iq80321.
2570		NetBSD/evbarm can now be installed :-)  Updating the docs, etc.
2571		Continuing on Algor emulation.
2572
2573==============  RELEASE 0.3.8  ==============
2574
257520060219	Various minor updates. Removing the old MIPS16 skeleton code,
2576		because it will need to be rewritten for dyntrans anyway.
257720060220-22	Removing the non-working dyntrans backend support.
2578		Continuing on the 64-bit dyntrans virtual memory generalization.
257920060223	More work on the 64-bit vm generalization.
258020060225	Beginning on MIPS dyntrans load/store instructions.
2581		Minor PPC updates (64-bit load/store, etc).
2582		Fixes for the variable-instruction-length framework, some
2583		minor AVR updates (a simple Hello World program works!).
2584		Beginning on a skeleton for automatically generating documen-
2585		tation (for devices etc.).
258620060226	PPC updates (adding some more 64-bit instructions, etc).
2587		AVR updates (more instructions).
2588		FINALLY found and fixed the zs bug, making NetBSD/macppc
2589		accept the serial console.
259020060301	Adding more AVR instructions.
259120060304	Continuing on AVR-related stuff. Beginning on a framework for
2592		cycle-accurate device emulation. Adding an experimental "PAL
2593		TV" device (just a dummy so far).
259420060305	Adding more AVR instructions.
2595		Adding a dummy epcom serial controller (for TS7200 emulation).
259620060310	Removing the emul() command from configuration files, so only
2597		net() and machine() are supported.
2598		Minor progress on the MIPS dyntrans rewrite.
259920060311	Continuing on the MIPS dyntrans rewrite (adding more
2600		instructions, etc).
260120060315	Adding more instructions (sllv, srav, srlv, bgtz[l], blez[l],
2602		beql, bnel, slti[u], various loads and stores).
260320060316	Removing the ALWAYS_SIGNEXTEND_32 option, since it was rarely
2604		used.
2605		Adding more MIPS dyntrans instructions, and fixing bugs.
260620060318	Implementing fast loads/stores for MIPS dyntrans (big/little
2607		endian, 32-bit and 64-bit modes).
260820060320	Making MIPS dyntrans the default configure option; use
2609		"--enable-oldmips" to use the old bintrans system.
2610		Adding MIPS dyntrans dmult[u]; minor updates.
261120060322	Continuing... adding some more instructions.
2612		Adding a simple skeleton for demangling C++ "_ZN" symbols.
261320060323	Moving src/debugger.c into a new directory (src/debugger/).
261420060324	Fixing the hack used to load PPC ELFs (useful for relocated
2615		Linux/ppc kernels), and adding a dummy G3 machine mode.
261620060325-26	Beginning to experiment with GDB remote serial protocol
2617		connections; adding a -G command line option for selecting
2618		which TCP port to listen to.
261920060330	Beginning a major cleanup to replace things like "0x%016llx"
2620		with more correct "0x%016"PRIx64, etc.
2621		Continuing on the GDB remote serial protocol support.
262220060331	More cleanup, and some minor GDB remote progress.
262320060402	Adding a hack to the configure script, to allow compilation
2624		on systems that lack PRIx64 etc.
262520060406	Removing the temporary FreeBSD/arm hack in dev_ns16550.c and
2626		replacing it with a better fix from Olivier Houchard.
262720060407	A remote debugger (gdb or ddd) can now start and stop the
2628		emulator using the GDB remote serial protocol, and registers
2629		and memory can be read. MIPS only for now.
263020060408	More GDB progress: single-stepping also works, and also adding
2631		support for ARM, PowerPC, and Alpha targets.
2632		Continuing on the delay-slot-across-page-boundary issue.
263320060412	Minor update: beginning to add support for the SPARC target
2634		to the remote GDB functionality.
263520060414	Various MIPS updates: adding more instructions for dyntrans
2636		(eret, add), and making some exceptions work. Fixing a bug
2637		in dmult[u].
2638		Implementing the first SPARC instructions (sethi, or).
263920060415	Adding "magic trap" instructions so that PROM calls can be
2640		software emulated in MIPS dyntrans.
2641		Adding more MIPS dyntrans instructions (ddiv, dadd) and
2642		fixing another bug in dmult.
264320060416	More MIPS dyntrans progress: adding [d]addi, movn, movz, dsllv,
2644		rfi, an ugly hack for supporting R2000/R3000 style faked caches,
2645		preliminary interrupt support, and various other updates and
2646		bugfixes.
264720060417	Adding more SPARC instructions (add, sub, sll[x], sra[x],
2648		srl[x]), and useful SPARC header definitions.
2649		Adding the first (trivial) x86/AMD64 dyntrans instructions (nop,
2650		cli/sti, stc/clc, std/cld, simple mov, inc ax). Various other
2651		x86 updates related to variable instruction length stuff.
2652		Adding unaligned loads/stores to the MIPS dyntrans mode (but
2653		still using the pre-dyntrans (slow) imlementation).
265420060419	Fixing a MIPS dyntrans exception-in-delay-slot bug.
2655		Removing the old "show opcode statistics" functionality, since
2656		it wasn't really useful and isn't implemented for dyntrans.
2657		Single-stepping (or running with instruction trace) now looks
2658		ok with dyntrans with delay-slot architectures.
265920060420	Minor hacks (removing the -B command line option when compiled
2660		for non-bintrans, and some other very minor updates).
2661		Adding (slow) MIPS dyntrans load-linked/store-conditional.
266220060422	Applying fixes for bugs discovered by Nils Weller's nwcc
2663		(static DEC memmap => now per machine, and adding an extern
2664		keyword in cpu_arm_instr.c).
2665		Finally found one of the MIPS dyntrans bugs that I've been
2666		looking for (copy/paste spelling error BIG vs LITTLE endian in
2667		cpu_mips_instr_loadstore.c for 16-bit fast stores).
2668		FINALLY found the major MIPS dyntrans bug: slti vs sltiu
2669		signed/unsigned code in cpu_mips_instr.c. :-)
2670		Adding more MIPS dyntrans instructions (lwc1, swc1, bgezal[l],
2671		ctc1, tlt[u], tge[u], tne, beginning on rdhwr).
2672		NetBSD/hpcmips can now reach userland when using dyntrans :-)
2673		Adding some more x86 dyntrans instructions.
2674		Finally removed the old Alpha-specific virtual memory code,
2675		and replaced it with the generic 64-bit version.
2676		Beginning to add disassembly support for SPECIAL3 MIPS opcodes.
267720060423	Continuing on the delay-slot-across-page-boundary issue;
2678		adding an end_of_page2 ic slot (like I had planned before, but
2679		had removed for some reason).
2680		Adding a quick-and-dirty fallback to legacy coprocessor 1
2681		code (i.e. skipping dyntrans implementation for now).
2682		NetBSD/hpcmips and NetBSD/pmax (when running on an emulated
2683		R4400) can now be installed and run. :-)  (Many bugs left
2684		to fix, though.)
2685		Adding more MIPS dyntrans instructions: madd[u], msub[u].
2686		Cleaning up the SPECIAL2 vs R5900/TX79/C790 "MMI" opcode
2687		maps somewhat (disassembly and dyntrans instruction decoding).
268820060424	Adding an isa_revision field to mips_cpu_types.h, and making
2689		sure that SPECIAL3 opcodes cause Reserved Instruction
2690		exceptions on MIPS32/64 revisions lower than 2.
2691		Adding the SPARC 'ba', 'call', 'jmpl/retl', 'and', and 'xor'
2692		instructions.
269320060425	Removing the -m command line option ("run at most x
2694		instructions") and -T ("single_step_on_bad_addr"), because
2695		they never worked correctly with dyntrans anyway.
2696		Freshening up the man page.
269720060428	Adding more MIPS dyntrans instructions: bltzal[l], idle.
2698		Enabling MIPS dyntrans compare interrupts.
269920060429	FINALLY found the weird dyntrans bug, causing NetBSD etc. to
2700		behave strangely: some floating point code (conditional
2701		coprocessor branches) could not be reused from the old
2702		non-dyntrans code. The "quick-and-dirty fallback" only appeared
2703		to work. Fixing by implementing bc1* for MIPS dyntrans.
2704		More MIPS instructions: [d]sub, sdc1, ldc1, dmtc1, dmfc1, cfc0.
2705		Freshening up MIPS floating point disassembly appearance.
270620060430	Continuing on C790/R5900/TX79 disassembly; implementing 128-bit
2707		"por" and "pextlw".
270820060504	Disabling -u (userland emulation) unless compiled as unstable
2709		development version.
2710		Beginning on freshening up the testmachine include files,
2711		to make it easier to reuse those files (placing them in
2712		src/include/testmachine/), and beginning on a set of "demos"
2713		or "tutorials" for the testmachine functionality.
2714		Minor updates to the MIPS GDB remote protocol stub.
2715		Refreshing doc/experiments.html and gdb_remote.html.
2716		Enabling Alpha emulation in the stable release configuration,
2717		even though no guest OSes for Alpha can run yet.
271820060505	Adding a generic 'settings' object, which will contain
2719		references to settable variables (which will later be possible
2720		to access using the debugger).
272120060506	Updating dev_disk and corresponding demo/documentation (and
2722		switching from SCSI to IDE disk types, so it actually works
2723		with current test machines :-).
272420060510	Adding a -D_LARGEFILE_SOURCE hack for 64-bit Linux hosts,
2725		so that fseeko() doesn't give a warning.
2726		Updating the section about how dyntrans works (the "runnable
2727		IR") in doc/intro.html.
2728		Instruction updates (some x64=1 checks, some more R5900
2729		dyntrans stuff: better mul/mult separation from MIPS32/64,
2730		adding ei and di).
2731		Updating MIPS cpuregs.h to a newer one (from NetBSD).
2732		Adding more MIPS dyntrans instructions: deret, ehb.
273320060514	Adding disassembly and beginning implementation of SPARC wr
2734		and wrpr instructions.
273520060515	Adding a SUN SPARC machine mode, with dummy SS20 and Ultra1
2736		machines. Adding the 32-bit "rd psr" instruction.
273720060517	Disassembly support for the general SPARC rd instruction.
2738		Partial implementation of the cmp (subcc) instruction.
2739		Some other minor updates (making sure that R5900 processors
2740		start up with the EIE bit enabled, otherwise Linux/playstation2
2741		receives no interrupts).
274220060519	Minor MIPS updates/cleanups.
274320060521	Moving the MeshCube machine into evbmips; this seems to work
2744		reasonably well with a snapshot of a NetBSD MeshCube kernel.
2745		Cleanup/fix of MIPS config0 register initialization.
274620060529	Minor MIPS fixes, including a sign-extension fix to the
2747		unaligned load/store code, which makes NetBSD/pmax on R3000
2748		work better with dyntrans. (Ultrix and Linux/DECstation still
2749		don't work, though.)
275020060530	Minor updates to the Alpha machine mode: adding an AlphaBook
2751		mode, an LCA bus (forwarding accesses to an ISA bus), etc.
275220060531	Applying a bugfix for the MIPS dyntrans sc[d] instruction from
2753		Ondrej Palkovsky. (Many thanks.)
275420060601	Minifix to allow ARM immediate msr instruction to not give
2755		an error for some valid values.
2756		More Alpha updates.
275720060602	Some minor Alpha updates.
275820060603	Adding the Alpha cmpbge instruction. NetBSD/alpha prints its
2759		first boot messages :-) on an emulated Alphabook 1.
276020060612	Minor updates; adding a dev_ether.h include file for the
2761		testmachine ether device. Continuing the hunt for the dyntrans
2762		bug which makes Linux and Ultrix on DECstation behave
2763		strangely... FINALLY found it! It seems to be related to
2764		invalidation of the translation cache, on tlbw{r,i}. There
2765		also seems to be some remaining interrupt-related problems.
276620060614	Correcting the implementation of ldc1/sdc1 for MIPS dyntrans
2767		(so that it uses 16 32-bit registers if the FR bit in the
2768		status register is not set).
276920060616	REMOVING BINTRANS COMPLETELY!
2770		Removing the old MIPS interpretation mode.
2771		Removing the MFHILO_DELAY and instruction delay stuff, because
2772		they wouldn't work with dyntrans anyway.
277320060617	Some documentation updates (adding "NetBSD-archive" to some
2774		URLs, and new Debian/DECstation installation screenshots).
2775		Removing the "tracenull" and "enable-caches" configure options.
2776		Improving MIPS dyntrans performance somewhat (only invalidate
2777		translations if necessary, on writes to the entryhi register,
2778		instead of doing it for all cop0 writes).
277920060618	More cleanup after the removal of the old MIPS emulation.
2780		Trying to fix the MIPS dyntrans performance bugs/bottlenecks;
2781		only semi-successful so far (for R3000).
278220060620	Minor update to allow clean compilation again on Tru64/Alpha.
278320060622	MIPS cleanup and fixes (removing the pc_last stuff, which
2784		doesn't make sense with dyntrans anyway, and fixing a cross-
2785		page-delay-slot-with-exception case in end_of_page).
2786		Removing the old max_random_cycles_per_chunk stuff, and the
2787		concept of cycles vs instructions for MIPS emulation.
2788		FINALLY found and fixed the bug which caused NetBSD/pmax
2789		clocks to behave strangely (it was a load to the zero register,
2790		which was treated as a NOP; now it is treated as a load to a
2791		dummy scratch register).
279220060623	Increasing the dyntrans chunk size back to
2793		N_SAFE_DYNTRANS_LIMIT, instead of N_SAFE_DYNTRANS_LIMIT/2.
2794		Preparing for a quick release, even though there are known
2795		bugs, and performance for non-R3000 MIPS emulation is very
2796		poor. :-/
2797		Reverting to half the dyntrans chunk size again, because
2798		NetBSD/cats seemed less stable with full size chunks. :(
2799		NetBSD/sgimips 3.0 can now run :-)  (With release 0.3.8, only
2800		NetBSD/sgimips 2.1 worked, not 3.0.)
2801
2802==============  RELEASE 0.4.0  ==============
2803
280420060624	Replacing the error-prone machine type initialization stuff
2805		with something more reasonable.
2806		Finally removing the old "cpu_run" kludge; moving around stuff
2807		in machine.c and emul.c to better suit the dyntrans system.
2808		Various minor dyntrans cleanups (renaming translate_address to
2809		translate_v2p, and experimenting with template physpages).
281020060625	Removing the speed hack which separated the vph entries into
2811		two halves (code vs data); things seem a lot more stable now.
2812		Minor performance hack: R2000/R3000 cache isolation now only
2813		clears address translations when going into isolation, not
2814		when going out of it.
2815		Fixing the MIPS interrupt problems by letting mtc0 immediately
2816		cause interrupts.
2817
2818==============  RELEASE 0.4.0.1  ==============
2819
282020060626	Continuing on SPARC emulation (beginning on the 'save'
2821		instruction, register windows, etc).
282220060629	Planning statistics gathering (new -s command line option),
2823		and renaming speed_tricks to allow_instruction_combinations.
282420060630	Some minor manual page updates.
2825		Various cleanups.
2826		Implementing the -s command line option.
282720060701	FINALLY found the bug which prevented Linux and Ultrix from
2828		running without the ugly hack in the R2000/R3000 cache isol
2829		code; it was the phystranslation hint array which was buggy.
2830		Removing the phystranslation hint code completely, for now.
283120060702	Minor dyntrans cleanups; invalidation of physpages now only
2832		invalidate those parts of a page that have actually been
2833		translated. (32 parts per page.)
2834		Some MIPS non-R3000 speed fixes.
2835		Experimenting with MIPS instruction combination for some
2836		addiu+bne+sw loops, and sw+sw+sw.
2837		Adding support (again) for larger-than-4KB pages in MIPS tlbw*.
2838		Continuing on SPARC emulation: adding load/store instructions.
283920060704	Fixing a virtual vs physical page shift bug in the new tlbw*
2840		implementation. Problem noticed by Jakub Jermar. (Many thanks.)
2841		Moving rfe and eret to cpu_mips_instr.c, since that is the
2842		only place that uses them nowadays.
284320060705	Removing the BSD license from the "testmachine" include files,
2844		placing them in the public domain instead; this enables the
2845		testmachine stuff to be used from projects which are
2846		incompatible with the BSD license for some reason.
284720060707	Adding instruction combinations for the R2000/R3000 L1
2848		I-cache invalidation code used by NetBSD/pmax 3.0, lui+addiu,
2849		various branches followed by addiu or nop, and jr ra followed
2850		by addiu. The time it takes to perform a full NetBSD/pmax R3000
2851		install on the laptop has dropped from 573 seconds to 539. :-)
285220060708	Adding a framebuffer controller device (dev_fbctrl), which so
2853		far can be used to change the fb resolution during runtime, but
2854		in the future will also be useful for accelerated block fill/
2855		copy, and possibly also simplified character output.
2856		Adding an instruction combination for NetBSD/pmax' strlen.
285720060709	Minor fixes: reading raw files in src/file.c wasn't memblock
2858		aligned, removing buggy multi_sw MIPS instruction combination,
2859		etc.
286020060711	Adding a machine_qemu.c, which contains a "qemu_mips" machine.
2861		(It mimics QEMU's MIPS machine mode, so that a test kernel
2862		made for QEMU_MIPS also can run in GXemul... at least to some
2863		extent.)  Adding a short section about how to run this mode to
2864		doc/guestoses.html.
286520060714	Misc. minor code cleanups.
286620060715	Applying a patch which adds getchar() to promemul/yamon.c
2867		(from Oleksandr Tymoshenko).
2868		Adding yamon.h from NetBSD, and rewriting yamon.c to use it
2869		(instead of ugly hardcoded numbers) + some cleanup.
287020060716	Found and fixed the bug which broke single-stepping of 64-bit
2871		programs between 0.4.0 and 0.4.0.1 (caused by too quick
2872		refactoring and no testing). Hopefully this fix will not
2873		break too many other things.
287420060718	Continuing on the 8253 PIT; it now works with Linux/QEMU_MIPS.
2875		Re-adding the sw+sw+sw instr comb (the problem was that I had
2876		ignored endian issues); however, it doesn't seem to give any
2877		big performance gain.
287820060720	Adding a dummy Transputer mode (T414, T800 etc) skeleton (only
2879		the 'j' and 'ldc' instructions are implemented so far). :-}
288020060721	Adding gtreg.h from NetBSD, updating dev_gt.c to use it, plus
2881		misc. other updates to get Linux 2.6 for evbmips/malta working
2882		(thanks to Alec Voropay for the details).
2883		FINALLY found and fixed the bug which made tlbw* for non-R3000
2884		buggy; it was a reference count problem in the dyntrans core.
288520060722	Testing stuff; things seem stable enough for a new release.
2886
2887==============  RELEASE 0.4.1  ==============
2888
288920060723	More Transputer instructions (pfix, nfix, opr, mint, ldl, ldlp,
2890		eqc, rev, ajw, stl, stlf, sthf, sub, ldnl, ldnlp, ldpi, move,
2891		wcnt, add, bcnt).
2892		Adding more SPARC instructions (andcc, addcc, bl, rdpr).
2893		Progress on the igsfb framebuffer used by NetBSD/netwinder.
2894		Enabling 8-bit fills in dev_fb.
2895		NetBSD/netwinder 3.0.1 can now run from a disk image :-)
289620060724	Cleanup/performance fix for 64-bit virtual translation table
2897		updates (by removing the "timestamp" stuff). A full NetBSD/pmax
2898		3.0.1 install for R4400 has dropped from 667 seconds to 584 :)
2899		Fixing the igsfb "almost vga" color (it is 24-bit, not 18-bit).
2900		Adding some MIPS instruction combinations (3*lw, and 3*addu).
2901		The 8048 keyboard now turns off interrupt enable between the
2902		KBR_ACK and the KBR_RSTDONE, to work better with Linux 2.6.
2903		Not causing PPC DEC interrupts if PPC_NO_DEC is set for a
2904		specific CPU; NetBSD/bebox gets slightly further than before.
2905		Adding some more SPARC instructions: branches, udiv.
290620060725	Refreshing dev_pckbc.c a little.
2907		Cleanups for the SH emulation mode, and adding the first
2908		"compact" (16-bit) instructions: various simple movs, nop,
2909		shll, stc, or, ldc.
291020060726	Adding dummy "pcn" (AMD PCnet NIC) PCI glue.
291120060727	Various cleanups; removing stuff from cpu.h, such as
2912		running_translated (not really meaningful anymore), and
2913		page flags (breaking into the debugger clears all translations
2914		anyway).
2915		Minor MIPS instruction combination updates.
291620060807	Expanding the 3*sw and 3*lw MIPS instruction combinations to
2917		work with 2* and 4* too, resulting in a minor performance gain.
2918		Implementing a usleep hack for the RM52xx/MIPS32/MIPS64 "wait"
2919		instruction (when emulating 1 cpu).
292020060808	Experimenting with some more MIPS instruction combinations.
2921		Implementing support for showing a (hardcoded 12x22) text
2922		cursor in igsfb.
292320060809	Simplifying the NetBSD/evbmips (Malta) install instructions
2924		somewhat (by using a NetBSD/pmax ramdisk install kernel).
292520060812	Experimenting more with the MIPS 'wait' instruction.
2926		PCI configuration register writes can now be handled, which
2927		allow PCI IDE controllers to work with NetBSD/Malta 3.0.1 and
2928		NetBSD/cobalt 3.0.1. (Previously only NetBSD 2.1 worked.)
292920060813	Updating dev_gt.c based on numbers from Alec Voropay, to enable
2930		Linux 2.6 to use PCI on Malta.
2931		Continuing on Algor interrupt stuff.
293220060814	Adding support for routing ISA interrupts to two different
2933		interrupts, making it possible to run NetBSD/algor :-)
293420060814-15	Testing for the release.
2935
2936==============  RELEASE 0.4.2  ==============
2937
293820060816	Adding a framework for emulated/virtual timers (src/timer.c),
2939		using only setitimer().
2940		Rewriting the mc146818 to use the new timer framework.
294120060817	Adding a call to gettimeofday() every now and then (once every
2942		second, at the moment) to resynch the timer if it drifts.
2943		Beginning to convert the ISA timer interrupt mechanism (8253
2944		and 8259) to use the new timer framework.
2945		Removing the -I command line option.
294620060819	Adding the -I command line option again, with new semantics.
2947		Working on Footbridge timer interrupts; NetBSD/NetWinder and
2948		NetBSD/CATS now run at correct speed, but unfortunately with
2949		HUGE delays during bootup.
295020060821	Some minor m68k updates. Adding the first instruction: nop. :)
2951		Minor Alpha emulation updates.
295220060822	Adding a FreeBSD development specific YAMON environment
2953		variable ("khz") (as suggested by Bruce M. Simpson).
2954		Moving YAMON environment variable initialization from
2955		machine_evbmips.c into promemul/yamon.c, and adding some more
2956		variables.
2957		Continuing on the LCA PCI bus controller (for Alpha machines).
295820060823	Continuing on the timer stuff: experimenting with MIPS count/
2959		compare interrupts connected to the timer framework.
296020060825	Adding bogus SCSI commands 0x51 (SCSICDROM_READ_DISCINFO) and
2961		0x52 (SCSICDROM_READ_TRACKINFO) to the SCSI emulation layer,
2962		to allow NetBSD/pmax 4.0_BETA to be installed from CDROM.
2963		Minor updates to the LCA PCI controller.
296420060827	Implementing a CHIP8 cpu mode, and a corresponding CHIP8
2965		machine, for fun. Disassembly support for all instructions,
2966		and most of the common instructions have been implemented: mvi,
2967		mov_imm, add_imm, jmp, rand, cls, sprite, skeq_imm, jsr,
2968		skne_imm, bcd, rts, ldr, str, mov, or, and, xor, add, sub,
2969		font, ssound, sdelay, gdelay, bogus skup/skpr, skeq, skne.
297020060828	Beginning to convert the CHIP8 cpu in the CHIP8 machine to a
2971		(more correct) RCA 180x cpu. (Disassembly for all 1802
2972		instructions has been implemented, but no execution yet, and
2973		no 1805 extended instructions.)
297420060829	Minor Alpha emulation updates.
297520060830	Beginning to experiment a little with PCI IDE for SGI O2.
2976		Fixing the cursor key mappings for MobilePro 770 emulation.
2977		Fixing the LK201 warning caused by recent NetBSD/pmax.
2978		The MIPS R41xx standby, suspend, and hibernate instructions now
2979		behave like the RM52xx/MIPS32/MIPS64 wait instruction.
2980		Fixing dev_wdc so it calculates correct (64-bit) offsets before
2981		giving them to diskimage_access().
298220060831	Continuing on Alpha emulation (OSF1 PALcode).
298320060901	Minor Alpha updates; beginning on virtual memory pagetables.
2984		Removed the limit for max nr of devices (in preparation for
2985		allowing devices' base addresses to be changed during runtime).
2986		Adding a hack for MIPS [d]mfc0 select 0 (except the count
2987		register), so that the coproc register is simply copied.
2988		The MIPS suspend instruction now exits the emulator, instead
2989		of being treated as a wait instruction (this causes NetBSD/
2990		hpcmips to get correct 'halt' behavior).
2991		The VR41xx RTC now returns correct time.
2992		Connecting the VR41xx timer to the timer framework (fixed at
2993		128 Hz, for now).
2994		Continuing on SPARC emulation, adding more instructions:
2995		restore, ba_xcc, ble. The rectangle drawing demo works :)
2996		Removing the last traces of the old ENABLE_CACHE_EMULATION
2997		MIPS stuff (not usable with dyntrans anyway).
299820060902	Splitting up src/net.c into several smaller files in its own
2999		subdirectory (src/net/).
300020060903	Cleanup of the files in src/net/, to make them less ugly.
300120060904	Continuing on the 'settings' subsystem.
3002		Minor progress on the SPARC emulation mode.
300320060905	Cleanup of various things, and connecting the settings
3004		infrastructure to various subsystems (emul, machine, cpu, etc).
3005		Changing the lk201 mouse update routine to not rely on any
3006		emulated hardware framebuffer cursor coordinates, but instead
3007		always do (semi-usable) relative movements.
300820060906	Continuing on the lk201 mouse stuff. Mouse behaviour with
3009		multiple framebuffers (which was working in Ultrix) is now
3010		semi-broken (but it still works, in a way).
3011		Moving the documentation about networking into its own file
3012		(networking.html), and refreshing it a bit. Adding an example
3013		of how to use ethernet frame direct-access (udp_snoop).
301420060907	Continuing on the settings infrastructure.
301520060908	Minor updates to SH emulation: for 32-bit emulation: delay
3016		slots and the 'jsr @Rn' instruction. I'm putting 64-bit SH5 on
3017		ice, for now.
301820060909-10	Implementing some more 32-bit SH instructions. Removing the
3019		64-bit mode completely. Enough has now been implemented to run
3020		the rectangle drawing demo. :-)
302120060912	Adding more SH instructions.
302220060916	Continuing on SH emulation (some more instructions: div0u,
3023		div1, rotcl/rotcr, more mov instructions, dt, braf, sets, sett,
3024		tst_imm, dmuls.l, subc, ldc_rm_vbr, movt, clrt, clrs, clrmac).
3025		Continuing on the settings subsystem (beginning on reading/
3026		writing settings, removing bugs, and connecting more cpus to
3027		the framework).
302820060919	More work on SH emulation; adding an ldc banked instruction,
3029		and attaching a 640x480 framebuffer to the Dreamcast machine
3030		mode (NetBSD/dreamcast prints the NetBSD copyright banner :-),
3031		and then panics).
303220060920	Continuing on the settings subsystem.
303320060921	Fixing the Footbridge timer stuff so that NetBSD/cats and
3034		NetBSD/netwinder boot up without the delays.
303520060922	Temporarily hardcoding MIPS timer interrupt to 100 Hz. With
3036		'wait' support disabled, NetBSD/malta and Linux/malta run at
3037		correct speed.
303820060923	Connecting dev_gt to the timer framework, so that NetBSD/cobalt
3039		runs at correct speed.
3040		Moving SH4-specific memory mapped registers into its own
3041		device (dev_sh4.c).
3042		Running with -N now prints "idling" instead of bogus nr of
3043		instrs/second (which isn't valid anyway) while idling.
304420060924	Algor emulation should now run at correct speed.
3045		Adding disassembly support for some MIPS64 revision 2
3046		instructions: ext, dext, dextm, dextu.
304720060926	The timer framework now works also when the MIPS wait
3048		instruction is used.
304920060928	Re-implementing checks for coprocessor availability for MIPS
3050		cop0 instructions. (Thanks to Carl van Schaik for noticing the
3051		lack of cop0 availability checks.)
305220060929	Implementing an instruction combination hack which treats
3053		NetBSD/pmax' idle loop as a wait-like instruction.
305420060930	The ENTRYHI_R_MASK was missing in (at least) memory_mips_v2p.c,
3055		causing TLB lookups to sometimes succeed when they should have
3056		failed. (A big thank you to Juli Mallett for noticing the
3057		problem.)
3058		Adding disassembly support for more MIPS64 revision 2 opcodes
3059		(seb, seh, wsbh, jalr.hb, jr.hb, synci, ins, dins, dinsu,
3060		dinsm, dsbh, dshd, ror, dror, rorv, drorv, dror32). Also
3061		implementing seb, seh, dsbh, dshd, and wsbh.
3062		Implementing an instruction combination hack for Linux/pmax'
3063		idle loop, similar to the NetBSD/pmax case.
306420061001	Changing the NetBSD/sgimips install instructions to extract
3065		files from an iso image, instead of downloading them via ftp.
306620061002	More-than-31-bit userland addresses in memory_mips_v2p.c were
3067		not actually working; applying a fix from Carl van Schaik to
3068		enable them to work + making some other updates (adding kuseg
3069		support).
3070		Fixing hpcmips (vr41xx) timer initialization.
3071		Experimenting with O(n)->O(1) reduction in the MIPS TLB lookup
3072		loop. Seems to work both for R3000 and non-R3000.
307320061003	Continuing a little on SH emulation (adding more control
3074		registers; mini-cleanup of memory_sh.c).
307520061004	Beginning on a dev_rtc, a clock/timer device for the test
3076		machines; also adding a demo, and some documentation.
3077		Fixing a bug in SH "mov.w @(disp,pc),Rn" (the result wasn't
3078		sign-extended), and adding the addc and ldtlb instructions.
307920061005	Contining on SH emulation: virtual to physical address
3080		translation, and a skeleton exception mechanism.
308120061006	Adding more SH instructions (various loads and stores, rte,
3082		negc, muls.w, various privileged register-move instructions).
308320061007	More SH instructions: various move instructions, trapa, div0s,
3084		float, fdiv, ftrc.
3085		Continuing on dev_rtc; removing the rtc demo.
308620061008	Adding a dummy Dreamcast PROM module. (Homebrew Dreamcast
3087		programs using KOS libs need this.)
3088		Adding more SH instructions: "stc vbr,rn", rotl, rotr, fsca,
3089		fmul, fadd, various floating-point moves, etc. A 256-byte
3090		demo for Dreamcast runs :-)
309120061012	Adding the SH "lds Rm,pr" and bsr instructions.
309220061013	More SH instructions: "sts fpscr,rn", tas.b, and some more
3093		floating point instructions, cmp/str, and more moves.
3094		Adding a dummy dev_pvr (Dreamcast graphics controller).
309520061014	Generalizing the expression evaluator (used in the built-in
3096		debugger) to support parentheses and +-*/%^&|.
309720061015	Removing the experimental tlb index hint code in
3098		mips_memory_v2p.c, since it didn't really have any effect.
309920061017	Minor SH updates; adding the "sts pr,Rn", fcmp/gt, fneg,
3100		frchg, and some other instructions. Fixing missing sign-
3101		extension in an 8-bit load instruction.
310220061019	Adding a simple dev_dreamcast_rtc.
3103		Implementing memory-mapped access to the SH ITLB/UTLB arrays.
310420061021	Continuing on various SH and Dreamcast things: sh4 timers,
3105		debug messages for dev_pvr, fixing some virtual address
3106		translation bugs, adding the bsrf instruction.
3107		The NetBSD/dreamcast GENERIC_MD kernel now reaches userland :)
3108		Adding a dummy dev_dreamcast_asic.c (not really useful yet).
3109		Implementing simple support for Store Queues.
3110		Beginning on the PVR Tile Accelerator.
311120061022	Generalizing the PVR framebuffer to support off-screen drawing,
3112		multiple bit-depths, etc. (A small speed penalty, but most
3113		likely worth it.)
3114		Adding more SH instructions (mulu.w, fcmp/eq, fsub, fmac,
3115		fschg, and some more); correcting bugs in "fsca" and "float".
311620061024	Adding the SH ftrv (matrix * vector) instruction. Marcus
3117		Comstedt's "tatest" example runs :) (wireframe only).
3118		Correcting disassembly for SH floating point instructions that
3119		use the xd* registers.
3120		Adding the SH fsts instruction.
3121		In memory_device_dyntrans_access(), only the currently used
3122		range is now invalidated, and not the entire device range.
312320061025	Adding a dummy AVR32 cpu mode skeleton.
312420061026	Various Dreamcast updates; beginning on a Maple bus controller.
312520061027	Continuing on the Maple bus. A bogus Controller, Keyboard, and
3126		Mouse can now be detected by NetBSD and KOS homebrew programs.
3127		Cleaning up the SH4 Timer Management Unit, and beginning on
3128		SH4 interrupts.
3129		Implementing the Dreamcast SYSASIC.
313020061028	Continuing on the SYSASIC.
3131		Adding the SH fsqrt instruction.
3132		memory_sh.c now actually scans the ITLB.
3133		Fixing a bug in dev_sh4.c, related to associative writes into
3134		the memory-mapped UTLB array. NetBSD/dreamcast now reaches
3135		userland stably, and prints the "Terminal type?" message :-]
3136		Implementing enough of the Dreamcast keyboard to make NetBSD
3137		accept it for input.
3138		Enabling SuperH for stable (non-development) builds.
3139		Adding NetBSD/dreamcast to the documentation, although it
3140		doesn't support root-on-nfs yet.
314120061029	Changing usleep(1) calls in the debugger to usleep(10000)
3142		(according to Brian Foley, this makes GXemul run better on
3143		MacOS X).
3144		Making the Maple "Controller" do something (enough to barely
3145		interact with dcircus.elf).
314620061030-31	Some progress on the PVR. More test programs start running (but
3147		with strange output).
3148		Various other SH4-related updates.
314920061102	Various Dreamcast and SH4 updates; more KOS demos run now.
315020061104	Adding a skeleton dev_mb8696x.c (the Dreamcast's LAN adapter).
315120061105	Continuing on the MB8696x; NetBSD/dreamcast detects it as mbe0.
3152		Testing for the release.
3153
3154==============  RELEASE 0.4.3  ==============
3155
315620061107	Adding a new disk image option (-d o...) which sets the ISO9660
3157		filesystem base offset; also making some other hacks to allow
3158		NetBSD/dreamcast and homebrew demos/games to boot directly
3159		from a filesystem image.
3160		Moving Dreamcast-specific stuff in the documentation to its
3161		own page (dreamcast.html).
3162		Adding a border to the Dreamcast PVR framebuffer.
316320061108	Adding a -T command line option (again?), for halting the
3164		emulator on unimplemented memory accesses.
316520061109	Continuing on various SH4 and Dreamcast related things.
3166		The emulator should now halt on more unimplemented device
3167		accesses, instead of just printing a warning, forcing me to
3168		actually implement missing stuff :)
316920061111	Continuing on SH4 and Dreamcast stuff.
3170		Adding a bogus Landisk (SH4) machine mode.
317120061112	Implementing some parts of the Dreamcast GDROM device. With
3172		some ugly hacks, NetBSD can (barely) mount an ISO image.
317320061113	NetBSD/dreamcast now starts booting from the Live CD image,
3174		but crashes randomly quite early on in the boot process.
317520061122	Beginning on a skeleton interrupt.h and interrupt.c for the
3176		new interrupt subsystem.
317720061124	Continuing on the new interrupt system; taking the first steps
3178		to attempt to connect CPUs (SuperH and MIPS) and devices
3179		(dev_cons and SH4 timer interrupts) to it. Many things will
3180		probably break from now on.
318120061125	Converting dev_ns16550, dev_8253 to the new interrupt system.
3182		Attempting to begin to convert the ISA bus.
318320061130	Incorporating a patch from Brian Foley for the configure
3184		script, which checks for X11 libs in /usr/X11R6/lib64 (which
3185		is used on some Linux systems).
318620061227	Adding a note in the man page about booting from Dreamcast
3187		CDROM images (i.e. that no external kernel is needed).
318820061229	Continuing on the interrupt system rewrite: beginning to
3189		convert more devices, adding abort() calls for legacy interrupt
3190		system calls so that everything now _has_ to be rewritten!
3191		Almost all machine modes are now completely broken.
319220061230	More progress on removing old interrupt code, mostly related
3193		to the ISA bus + devices, the LCA bus (on AlphaBook1), and
3194		the Footbridge bus (for CATS). And some minor PCI stuff.
3195		Connecting the ARM cpu to the new interrupt system.
3196		The CATS, NetWinder, and QEMU_MIPS machine modes now work with
3197		the new interrupt system :)
319820061231	Connecting PowerPC CPUs to the new interrupt system.
3199		Making PReP machines (IBM 6050) work again.
3200		Beginning to convert the GT PCI controller (for e.g. Malta
3201		and Cobalt emulation). Some things work, but not everything.
3202		Updating Copyright notices for 2007.
320320070101	Converting dev_kn02 from legacy style to devinit; the 3max
3204		machine mode now works with the new interrupt system :-]
320520070105	Beginning to convert the SGI O2 machine to the new interrupt
3206		system; finally converting O2 (IP32) devices to devinit, etc.
320720070106	Continuing on the interrupt system redesign/rewrite; KN01
3208		(PMAX), KN230, and Dreamcast ASIC interrupts should work again,
3209		moving out stuff from machine.h and devices.h into the
3210		corresponding devices, beginning the rewrite of i80321
3211		interrupts, etc.
321220070107	Beginning on the rewrite of Eagle interrupt stuff (PReP, etc).
321320070117	Beginning the rewrite of Algor (V3) interrupts (finally
3214		changing dev_v3 into devinit style).
321520070118	Removing the "bus" registry concept from machine.h, because
3216		it was practically meaningless.
3217		Continuing on the rewrite of Algor V3 ISA interrupts.
321820070121	More work on Algor interrupts; they are now working again,
3219		well enough to run NetBSD/algor. :-)
322020070122	Converting VR41xx (HPCmips) interrupts. NetBSD/hpcmips
3221		can be installed using the new interrupt system :-)
322220070123	Making the testmips mode work with the new interrupt system.
322320070127	Beginning to convert DEC5800 devices to devinit, and to the
3224		new interrupt system.
3225		Converting Playstation 2 devices to devinit, and converting
3226		the interrupt system. Also fixing a severe bug: the interrupt
3227		mask register on Playstation 2 is bitwise _toggled_ on writes.
322820070128	Removing the dummy NetGear machine mode and the 8250 device
3229		(which was only used by the NetGear machine).
3230		Beginning to convert the MacPPC GC (Grand Central) interrupt
3231		controller to the new interrupt system.
3232		Converting Jazz interrupts (PICA61 etc.) to the new interrupt
3233		system. NetBSD/arc can be installed again :-)
3234		Fixing the JAZZ timer (hardcoding it at 100 Hz, works with
3235		NetBSD and it is better than a completely dummy timer as it
3236		was before).
3237		Converting dev_mp to the new interrupt system, although I
3238		haven't had time to actually test it yet.
3239		Completely removing src/machines/interrupts.c, cpu_interrupt
3240		and cpu_interrupt_ack in src/cpu.c, and
3241		src/include/machine_interrupts.h! Adding fatal error messages
3242		+ abort() in the few places that are left to fix.
3243		Converting dev_z8530 to the new interrupt system.
3244		FINALLY removing the md_int struct completely from the
3245		machine struct.
3246		SH4 fixes (adding a PADDR invalidation in the ITLB replacement
3247		code in memory_sh.c); the NetBSD/dreamcast LiveCD now runs
3248		all the way to the login prompt, and can be interacted with :-)
3249		Converting the CPC700 controller (PCI and interrupt controller
3250		for PM/PPC) to the new interrupt system.
325120070129	Fixing MACE ISA interrupts (SGI IP32 emulation). Both NetBSD/
3252		sgimips' and OpenBSD/sgi's ramdisk kernels can now be
3253		interacted with again.
325420070130	Moving out the MIPS multi_lw and _sw instruction combinations
3255		so that they are auto-generated at compile time instead.
325620070131	Adding detection of amd64/x86_64 hosts in the configure script,
3257		for doing initial experiments (again :-) with native code
3258		generation.
3259		Adding a -k command line option to set the size of the dyntrans
3260		cache, and a -B command line option to disable native code
3261		generation, even if GXemul was compiled with support for
3262		native code generation for the specific host CPU architecture.
326320070201	Experimenting with a skeleton for native code generation.
3264		Changing the default behaviour, so that native code generation
3265		is now disabled by default, and has to be enabled by using
3266		-b on the command line.
326720070202	Continuing the native code generation experiments.
3268		Making PCI interrupts work for Footbridge again.
326920070203	More native code generation experiments.
3270		Removing most of the native code generation experimental code,
3271		it does not make sense to include any quick hacks like this.
3272		Minor cleanup/removal of some more legacy MIPS interrupt code.
327320070204	Making i80321 interrupts work again (for NetBSD/evbarm etc.),
3274		and fixing the timer at 100 Hz.
327520070206	Experimenting with removing the wdc interrupt slowness hack.
327620070207	Lowering the number of dyntrans TLB entries for MIPS from
3277		192 to 128, resulting in a minor speed improvement.
3278		Minor optimization to the code invalidation routine in
3279		cpu_dyntrans.c.
328020070208	Increasing (experimentally) the nr of dyntrans instructions per
3281		loop from 60 to 120.
328220070210	Commenting out (experimentally) the dyntrans_device_danger
3283		detection in memory_rw.c.
3284		Changing the testmips and baremips machines to use a revision 2
3285		MIPS64 CPU by default, instead of revision 1.
3286		Removing the dummy i960, IA64, x86, AVR32, and HP PA-RISC
3287		files, the PC bios emulation, and the Olivetti M700 (ARC) and
3288		db64360 emulation modes.
328920070211	Adding an "mp" demo to the demos directory, which tests the
3290		SMP functionality of the testmips machine.
3291		Fixing PReP interrupts some more. NetBSD/prep now boots again.
329220070216	Adding a "nop workaround" for booting Mach/PMAX to the
3293		documentation; thanks to Artur Bujdoso for the values.
3294		Converting more of the MacPPC interrupt stuff to the new
3295		system.
3296		Beginning to convert BeBox interrupts to the new system.
3297		PPC603e should NOT have the PPC_NO_DEC flag! Removing it.
3298		Correcting BeBox clock speed (it was set to 100 in the NetBSD
3299		bootinfo block, but should be 33000000/4), allowing NetBSD
3300		to start without using the (incorrect) PPC_NO_DEC hack.
330120070217	Implementing (slow) AltiVec vector loads and stores, allowing
3302		NetBSD/macppc to finally boot using the GENERIC kernel :-)
3303		Updating the documentation with install instructions for
3304		NetBSD/macppc.
330520070218-19	Regression testing for the release.
3306
3307==============  RELEASE 0.4.4  ==============
3308
330920070224	Minor update to the initialization of the ns16550 in
3310		machine_walnut.c, to allow that machine type to boot with the
3311		new interrupt system (although it is still a dummy machine).
3312		Adding a wdc at 0x14000000 to machine_landisk.c, and fixing
3313		the SCIF serial interrupts of the SH4 cpu enough to get
3314		NetBSD/landisk booting from a disk image :-)  Adding a
3315		preliminary install instruction skeleton to guestoses.html.
331620070306	Adding SH-IPL+G PROM emulation, and also passing the "end"
3317		symbol in r5 on bootup, for Landisk emulation. This is enough
3318		to get OpenBSD/landisk to install :)  Adding a preliminary
3319		install instruction skeleton to the documentation. SuperH
3320		emulation is still shaky, though :-/
332120070307	Fixed a strangeness in memory_sh.c (read/write was never
3322		returned for any page). (Unknown whether this fixes any actual
3323		problems, though.)
332420070308	dev_ram.c fix: invalidate code translations on writes to
3325		RAM, emulated as separate devices. Linux/dreamcast gets
3326		further in the boot process than before, but still bugs out
3327		in userland.
3328		Fixing bugs in the "stc.l gbr,@-rN" and "ldc.l @rN+,gbr" SuperH
3329		instructions (they should NOT check the MD bit), allowing the
3330		Linux/dreamcast Live CD to reach userland correctly :-)
333120070310	Changing the cpu name "Alpha" in src/useremul.c to "21364" to
3332		unbreak userland syscall emulation of FreeBSD/Alpha binaries.
333320070314	Applying a patch from Michael Yaroslavtsev which fixes the
3334		previous Linux lib64 patch to the configure script.
333520070315	Adding a (dummy) sun4v machine type, and SPARC T1 cpu type.
333620070316	Creating a new directory, src/disk, and moving diskimage.c
3337		to it. Separating out bootblock loading stuff from emul.c into
3338		new files in src/disk.
3339		Adding some more SPARC registers.
334020070318	Preparing/testing for a minirelease, 0.4.4.1.
3341
3342==============  RELEASE 0.4.4.1  ==============
3343
334420070324	Adding a "--debug" option to the configure script, to disable
3345		optimizations in unstable development builds.
3346		Moving out SCSI-specific stuff from diskimage.c into a new
3347		diskimage_scsicmd.c.
3348		Applying Håvard Eidnes' patch for SCSICDROM_READ_DISKINFO and
3349		SCSICDROM_READ_TRACKINFO. (Not really tested yet.)
3350		Implementing disk image "overlays" (to allow simple roll-back
3351		to previous disk state). Adding a 'V' disk flag for this, and
3352		updating the man page and misc.html.
335320070325	Stability fix to cpu_dyntrans.c, when multiple physical pages
3354		share the same initial table entry. (The ppp == NULL check
3355		should be physpage_ofs == 0.) Bug found by analysing GXemul
3356		against a version patched for Godson.
3357		Fixing a second occurance of the same problem (also in
3358		cpu_dyntrans.c).
3359		Fixing a MAJOR physical page leak in cpu_dyntrans.c; pages
3360		weren't _added_ to the set of translated pages, they _replaced_
3361		all previous pages. It's amazing that this bug has been able
3362		to live for this long. (Triggered when emulating >128MB RAM.)
336320070326	Removing the GDB debugging stub support; it was too hackish
3364		and ugly.
336520070328	Moving around some native code generation skeleton code.
336620070329	The -lm check in the configure script now also checks for sin()
3367		in addition to sqrt(). (Thanks to Nigel Horne for noticing that
3368		sqrt was not enough on Fedora Core 6.) (Not verified yet.)
336920070330	Fixing an indexing bug in dev_sh4.c, found by using gcc version
3370		4.3.0 20070323.
337120070331	Some more experimentation with native code generation.
337220070404	Attempting to fix some more SH4 SCIF interrupt bugs; rewriting
3373		the SH interrupt assertion/deassertion code somewhat.
337420070410	Splitting src/file.c into separate files in src/file/.
3375		Cleanup: Removing the dummy TS7200, Walnut, PB1000, and
3376		Meshcube emulation modes, and dev_epcom and dev_au1x00.
3377		Removing the experimental CHIP8/RCA180x code; it wasn't really
3378		working much lately, anyway. It was fun while it lasted.
3379		Also removing the experimental Transputer CPU support.
338020070412	Moving the section about how the dynamic translation system
3381		works from intro.html to a separate translation.html file.
3382		Minor SH fixes; attempting to get OpenBSD/landisk to run
3383		without randomly bugging out, but no success yet.
338420070413	SH SCI (serial bit interface) should now work together with a
3385		(new) RS5C313 clock device (for Landisk emulation).
338620070414	Moving Redhat/MIPS down from supported to experimental, in
3387		guestoses.html.
3388		Preparing for a new release; doing some regression testing etc.
3389
3390==============  RELEASE 0.4.5  ==============
3391
339220070415	Landisk PCLOCK should be 33.33 MHz, not 50 MHz. (This makes
3393		the clock run at correct speed.)
3394		FINALLY found and fixed the bug which caused OpenBSD/landisk
3395		to randomly bug out: an &-sign was missing in the special case
3396		handling of FPSCR in the 'LDS.L @Rm+,FPSCR' instruction.
3397		Adding similar special case handling for 'LDC.L @Rm+,SR'
3398		(calling sh_update_sr() instead of just loading).
3399		Implementing the 'FCNVSD FPUL,DRn' and 'FCNVDS DRm,FPUL'
3400		SuperH instructions.
3401		The 'LDC Rm,SR' instruction now immediately breaks out of the
3402		dyntrans loop if an interrupt is to be triggered.
340320070416	In memory_rw.c, if mapping a page as writable, make sure to
3404		invalidate code translations even if the data access was a
3405		read.
3406		Minor SuperH updates.
340720070418	Removing the dummy M68K emulation mode.
3408		Minor SH update (turning unnecessary sts_mach_rn, sts_macl_rn,
3409		and sts_pr_rn instruction handlers into mov_rm_rn).
341020070419	Beginning to add a skeleton for an M88K mode: Adding a hack to
3411		allow OpenBSD/m88k a.out binaries to be loaded, and disassembly
3412		of a few simple 88K instructions.
3413		Commenting out the 'LDC Rm,SR' fix from a few days ago, because
3414		it made Linux/dreamcast bug out.
3415		Adding a hack to dev_sh4.c (an extra translation cache
3416		invalidation), which allows OpenBSD/landisk to boot ok after
3417		an install. Upgrading the Landisk machine mode to stable,
3418		updating documentation, etc.
341920070420	Experimenting with adding a PCI controller (pcic) to dev_sh4.
3420		Adding a dummy Realtek 8139C+ skeleton device (dev_rtl8139c).
3421		Implementing the first M88K instructions (br, or[.u] imm), and
3422		adding disassembly of some more instructions.
342320070421	Continuing a little on dev_rtl8139c.
342420070422	Implementing the 9346 EEPROM "read" command for dev_rtl8139c.
3425		Finally found and fixed an old bug in the log n symbol search
3426		(it sometimes missed symbols). Debug trace (-i, -t etc) should
3427		now show more symbols. :-)
342820070423	Continuing a little on M88K disassembly.
342920070428	Fixing a memset arg order bug in src/net/net.c (thanks to
3430		Nigel Horne for noticing the bug).
3431		Applying parts of a patch from Carl van Schaik to clear out
3432		bottom bits of MIPS addresses more correctly, when using large
3433		page sizes, and doing some other minor cleanup/refactoring.
3434		Fixing a couple of warnings given by gcc with the -W option (a
3435		few more warnings than just plain -Wall).
3436		Reducing SuperH dyntrans physical address space from 64-bit to
3437		32-bit (since SH5/SH64 isn't imlemented yet anyway).
3438		Adding address-to-symbol annotation to a few more instructions
3439		in the SuperH instruction trace output.
3440		Beginning regression testing for the next release.
3441		Reverting the value of SCIF_DELAYED_TX_VALUE from 1 to 2,
3442		because OpenBSD/landisk may otherwise hang randomly.
344320070429	The ugly hack/workaround to get OpenBSD/landisk booting without
3444		crashing does NOT work anymore (with the April 21 snapshot
3445		of OpenBSD/landisk). Strangely enough, removing the hack
3446		completely causes OpenBSD/landisk to work (!).
3447		More regression testing (re-testing everything SuperH-related,
3448		and some other things).
3449		Cobalt interrupts were actually broken; fixing by commenting
3450		out the DEC21143s in the Cobalt machine.
345120070430	More regression testing.
345220070501	Updating the OpenBSD/landisk install instructions to use
3453		4.1 instead of the current snapshot.
3454		GAAAH! OpenBSD/landisk 4.1 _needs_ the ugly hack/workaround;
3455		reintroducing it again. (The 4.1 kernel is actually from
3456		2007-03-11.)
3457		Simplifying the NetBSD/evbarm install instructions a bit.
3458		More regression testing.
3459
3460==============  RELEASE 0.4.5.1  ==============
3461
346220070501	Continuing a little on m88k disassembly (control registers,
3463		more instructions).
3464		Adding a dummy mvme88k machine mode.
346520070502	Re-adding MIPS load/store alignment exceptions.
346620070503	Implementing more of the M88K disassembly code.
346720070504	Adding disassembly of some more M88K load/store instructions.
3468		Implementing some relatively simple M88K instructions (br.n,
3469		xor[.u] imm, and[.u] imm).
347020070505	Implementing M88K three-register and, or, xor, and jmp[.n],
3471		bsr[.n] including function call trace stuff.
3472		Applying a patch from Bruce M. Simpson which implements the
3473		SYSCON_BOARD_CPU_CLOCK_FREQ_ID object of the syscon call in
3474		the yamon PROM emulation.
347520070506	Implementing M88K bb0[.n] and bb1[.n], and skeletons for
3476		ldcr and stcr (although no control regs are implemented yet).
347720070509	Found and fixed the bug which caused Linux for QEMU_MIPS to
3478		stop working in 0.4.5.1: It was a faulty change to the MIPS
3479		'sc' and 'scd' instructions I made while going through gcc -W
3480		warnings on 20070428.
348120070510	Updating the Linux/QEMU_MIPS section in guestoses.html to
3482		use mips-test-0.2.tar.gz instead of 0.1.
3483		A big thank you to Miod Vallat for sending me M88K manuals.
3484		Implementing more M88K instructions (addu, subu, div[u], mulu,
3485		ext[u], clr, set, cmp).
348620070511	Fixing bugs in the M88K "and" and "and.u" instructions (found
3487		by comparing against the manual).
3488		Implementing more M88K instructions (mask[.u], mak, bcnd (auto-
3489		generated)) and some more control register details.
3490		Cleanup: Removing the experimental AVR emulation mode and
3491		corresponding devices; AVR emulation wasn't really meaningful.
3492		Implementing autogeneration of most M88K loads/stores. The
3493		rectangle drawing demo (with -O0) for M88K runs :-)
3494		Beginning on M88K exception handling.
3495		More M88K instructions: tb0, tb1, rte, sub, jsr[.n].
3496		Adding some skeleton MVME PROM ("BUG") emulation.
349720070512	Fixing a bug in the M88K cmp instruction.
3498		Adding the M88K lda (scaled register) instruction.
3499		Fixing bugs in 64-bit (32-bit pairs) M88K loads/stores.
3500		Removing the unused tick_hz stuff from the machine struct.
3501		Implementing the M88K xmem instruction. OpenBSD/mvme88k gets
3502		far enough to display the Copyright banner :-)
3503		Implementing subu.co (guess), addu.co, addu.ci, ff0, and ff1.
3504		Adding a dev_mvme187, for MVME187-specific devices/registers.
3505		OpenBSD/mvme88k prints more boot messages. :)
350620070515	Continuing on MVME187 emulation (adding more devices, beginning
3507		on the CMMUs, etc).
3508		Adding the M88K and.c, xor.c, and or.c instructions, and making
3509		sure that mul, div, etc cause exceptions if executed when SFD1
3510		is disabled.
351120070517	Continuing on M88K and MVME187 emulation in general; moving
3512		the CMMU registers to the CPU struct, separating dev_pcc2 from
3513		dev_mvme187, and beginning on memory_m88k.c (BATC and PATC).
3514		Fixing a bug in 64-bit (32-bit pairs) M88K fast stores.
3515		Implementing the clock part of dev_mk48txx.
3516		Implementing the M88K fstcr and xcr instructions.
3517		Implementing m88k_cpu_tlbdump().
3518		Beginning on the implementation of a separate address space
3519		for M88K .usr loads/stores.
352020070520	Removing the non-working (skeleton) Sandpoint, SonyNEWS, SHARK
3521		Dnard, and Zaurus machine modes.
3522		Experimenting with dyntrans to_be_translated read-ahead. It
3523		seems to give a very small performance increase for MIPS
3524		emulation, but a large performance degradation for SuperH. Hm.
352520070522	Disabling correct SuperH ITLB emulation; it does not seem to be
3526		necessary in order to let SH4 guest OSes run, and it slows down
3527		userspace code.
3528		Implementing "samepage" branches for SuperH emulation, and some
3529		other minor speed hacks.
353020070525	Continuing on M88K memory-related stuff: exceptions, memory
3531		transaction register contents, etc.
3532		Implementing the M88K subu.ci instruction.
3533		Removing the non-working (skeleton) Iyonix machine mode.
3534		OpenBSD/mvme88k reaches userland :-), starts executing
3535		/sbin/init's instructions, and issues a few syscalls, before
3536		crashing.
353720070526	Fixing bugs in dev_mk48txx, so that OpenBSD/mvme88k detects
3538		the correct time-of-day.
3539		Implementing a generic IRQ controller for the test machines
3540		(dev_irqc), similar to a proposed patch from Petr Stepan.
3541		Experimenting some more with translation read-ahead.
3542		Adding an "expect" script for automated OpenBSD/landisk
3543		install regression/performance tests.
354420070527	Adding a dummy mmEye (SH3) machine mode skeleton.
3545		FINALLY found the strange M88K bug I have been hunting: I had
3546		not emulated the SNIP value for exceptions occurring in
3547		branch delay slots correctly.
3548		Implementing correct exceptions for 64-bit M88K loads/stores.
3549		Address to symbol lookups are now disabled when M88K is
3550		running in usermode (because usermode addresses don't have
3551		anything to do with supervisor addresses).
355220070531	Removing the mmEye machine mode skeleton.
355320070604	Some minor code cleanup.
355420070605	Moving src/useremul.c into a subdir (src/useremul/), and
3555		cleaning up some more legacy constructs.
3556		Adding -Wstrict-aliasing and -fstrict-aliasing detection to
3557		the configure script.
355820070606	Adding a check for broken GCC on Solaris to the configure
3559		script. (GCC 3.4.3 on Solaris cannot handle static variables
3560		which are initialized to 0 or NULL. :-/)
3561		Removing the old (non-working) ARC emulation modes: NEC RD94,
3562		R94, R96, and R98, and the last traces of Olivetti M700 and
3563		Deskstation Tyne.
3564		Removing the non-working skeleton WDSC device (dev_wdsc).
356520070607	Thinking about how to use the host's cc + ld at runtime to
3566		generate native code. (See experiments/native_cc_ld_test.i
3567		for an example.)
356820070608	Adding a program counter sampling timer, which could be useful
3569		for native code generation experiments.
3570		The KN02_CSR_NRMMOD bit in the DECstation 5000/200 (KN02) CSR
3571		should always be set, to allow a 5000/200 PROM to boot.
357220070609	Moving out breakpoint details from the machine struct into
3573		a helper struct, and removing the limit on max nr of
3574		breakpoints.
357520070610	Moving out tick functions into a helper struct as well (which
3576		also gets rid of the max limit).
357720070612	FINALLY figured out why Debian/DECstation stopped working when
3578		translation read-ahead was enabled: in src/memory_rw.c, the
3579		call to invalidate_code_translation was made also if the
3580		memory access was an instruction load (if the page was mapped
3581		as writable); it shouldn't be called in that case.
358220070613	Implementing some more MIPS32/64 revision 2 instructions: di,
3583		ei, ext, dext, dextm, dextu, and ins.
358420070614	Implementing an instruction combination for the NetBSD/arm
3585		idle loop (making the host not use any cpu if NetBSD/arm
3586		inside the emulator is not using any cpu).
3587		Increasing the nr of ARM VPH entries from 128 to 384.
358820070615	Removing the ENABLE_arch stuff from the configure script, so
3589		that all included architectures are included in both release
3590		and development builds.
3591		Moving memory related helper functions from misc.c to memory.c.
3592		Adding preliminary instructions for netbooting NetBSD/pmppc to
3593		guestoses.html; it doesn't work yet, there are weird timeouts.
3594		Beginning a total rewrite of the userland emulation modes
3595		(removing all emulation modes, beginning from scratch with
3596		NetBSD/MIPS and FreeBSD/Alpha only).
359720070616	After fixing a bug in the DEC21143 NIC (the TDSTAT_OWN bit was
3598		only cleared for the last segment when transmitting, not all
3599		segments), NetBSD/pmppc boots with root-on-nfs without the
3600		timeouts. Updating guestoses.html.
3601		Removing the skeleton PSP (Playstation Portable) mode.
3602		Moving X11-related stuff in the machine struct into a helper
3603		struct.
3604		Cleanup of out-of-memory checks, to use a new CHECK_ALLOCATION
3605		macro (which prints a meaningful error message).
3606		Adding a COMMENT to each machine and device (for automagic
3607		.index comment generation).
3608		Doing regression testing for the next release.
3609
3610==============  RELEASE 0.4.6  ==============
3611
361220070616	Implementing the MIPS32/64 revision 2 "ror" instruction.
361320070617	Adding a struct for each physpage which keeps track of which
3614		ranges within that page (base offset, length) that are
3615		continuously translatable. When running with native code
3616		generation enabled (-b), a range is added after each read-
3617		ahead loop.
3618		Experimenting with using the physical program counter sample
3619		data (implemented 20070608) together with the "translatable
3620		range" information, to figure out which physical address ranges
3621		would be worth translating to native code (if the number of
3622		samples falling within a range is above a certain threshold).
362320070618	Adding automagic building of .index comment files for
3624		src/file/, src/promemul/, src src/useremul/ as well.
3625		Adding a "has been translated" bit to the ranges, so that only
3626		not-yet-translated ranges will be sampled.
362720070619	Moving src/cpu.c and src/memory_rw.c into src/cpus/,
3628		src/device.c into src/devices/, and src/machine.c into
3629		src/machines/.
3630		Creating a skeleton cc/ld native backend module; beginning on
3631		the function which will detect cc command line, etc.
363220070620	Continuing on the native code generation infrastructure.
363320070621	Moving src/x11.c and src/console.c into a new src/console/
3634		subdir (for everything that is console or framebuffer related).
3635		Moving src/symbol*.c into a new src/symbol/, which should
3636		contain anything that is symbol handling related.
363720070624	Making the program counter sampling threshold a "settings
3638		variable" (sampling_threshold), i.e. it can now be changed
3639		during runtime.
3640		Switching the RELEASE notes format from plain text to HTML.
3641		If the TMPDIR environment variable is set, it is used instead
3642		of "/tmp" for temporary files.
3643		Continuing on the cc/ld backend: simple .c code is generated,
3644		the compiler and linker are called, etc.
3645		Adding detection of host architecture to the configure script
3646		(again), and adding icache invalidation support (only
3647		implemented for Alpha hosts so far).
364820070625	Simplifying the program counter sampling mechanism.
364920070626	Removing the cc/ld native code generation stuff, program
3650		counter sampling, etc; it would not have worked well in the
3651		general case.
365220070627	Removing everything related to native code generation.
365320070629	Removing the (practically unusable) support for multiple
3654		emulations. (The single emulation allowed now still supports
3655		multiple simultaneous machines, as before.)
3656		Beginning on PCCTWO and M88K interrupts.
365720070723	Adding a dummy skeleton for emulation of M32R processors.
365820070901	Fixing a warning found by "gcc version 4.3.0 20070817
3659		(experimental)" on amd64.
366020070905	Removing some more traces of the old "multiple emulations"
3661		code.
3662		Also looking in /usr/local/include and /usr/local/lib for
3663		X11 libs, when running configure.
366420070909	Minor updates to the guest OS install instructions, in
3665		preparation for the NetBSD 4.0 release.
366620070918	More testing of NetBSD 4.0 RC1.
366720070920	Adding a section about HelenOS (for testarm and testmips) to
3668		the guestoses.html page.
366920071014	src/console/console.c now includes <sys/select.h> (thanks to
3670		Juli Mallett for noticing that this was required on Cygwin).
367120071017	Updating Sprite URL in guestoses.html.
367220071102	Updating the OpenBSD/landisk install instructions in
3673		guestoses.html from OpenBSD 4.1 to 4.2.
367420071112	Branching in CVS to a 0.4.6.1 version, separate from the main
3675		development.
3676-------------------------------------------------------------------------------
3677		(This is the C++ development branch.)
3678		EXPERIMENTALLY beginning to convert various source code
3679		files to C++ (.c to .cc); it will of course be a major
3680		undertaking to redesign the code so that it fits C++, but I
3681		think it will be worth it. (main.c => main.cc only so far.)
3682		Note: Release 0.4.6.1 will most likely be made from the code
3683		base as it was yesterday, plus perhaps some documentation
3684		updates.
3685		Adding configure options "--with-gui" and "--without-gui";
3686		autodetection of gtkmm-2.4 >= 2.12.1. A binary "gxemul-gui"
3687		is hardlinked to "gxemul"; when started, it should (in the
3688		future) bring up a GUI version of GXemul. For now, it just
3689		displays a dummy GTK+ window.
369020071113	The dummy GUI now includes a menu bar.
369120071114	Minor manpage and Makefile updates.
3692		Building and running GXemul now requires both X11 and gtkmm.
3693		debug/fatal are moved from main.cc to misc.cc.
3694		main.cc now just calls the main emulator, which is moved to
3695		src/GXemul.cc.
369620071116	Reverting the stuff I did two days ago: gtkmm/X11 are now
3697		optional again.
3698		Finally adding "install" and "uninstall" Makefile targets. :)
3699		Moving the rest of main.cc (the main function) into GXemul.cc.
3700		Removing the old config file parser (src/emul_parse.c),
3701		and doc/configfiles.html.
3702		Moving remaining src/*.c{,c} into a new src/main/ directory.
3703		Beginning on separating the main GUI window into a "workspace"
3704		and a "debug console" area.
370520071117	Removing the dummy M32R skeleton again.
3706		Converting some .c files to .cc (without redesigning the code,
3707		just to make it use the C++ compiler): cpu_sparc.c,
3708		cpu_mips_coproc.c, memory_*.c.
3709		Converting most of src/cpus/.
3710		Converting src/net/*.c and src/promemul/*.c to *.cc.
371120071119	Converting src/file/*.c to *.cc.
371220071120	Removing remaining references to the old config file stuff in
3713		the documentaion.
371420071121	Converting src/useremul/*.c, src/symbol/*.c, and some
3715		remaining files in src/main/ to *.cc. (Still no redesign,
3716		simply converting to use the C++ compiler.)
371720071123	Beginning to converting src/machines/*.c to *.cc.
371820071124	Planning a new configuration file format; beginning on
3719		ConfigNode.{cc,h}. Adding doc/fileformat.html.
3720		Adding a "test" makefile target, for unit testing. "make
3721		install" runs the test target.
3722		Implementing a simple refcount_ptr class.
372320071127	configure now uses -g also for non-development builds.
3724		Incorporating Wu Yongwei's debug_new, for memory leak
3725		detection.
372620071209	Converting the remaining src/machine/*.c to *.cc.
3727		Converting src/debugger/*.c to *.cc.
372820071212	Including a Doxyfile, for doxygen generation (source code
3729		comments to HTML).
373020071213	Performing a VERY bold move: Removing pretty much everything of
3731		the old code. All CPUs, devices, documentation, PROM emulation
3732		modes, disk and file handling, console handling, the old
3733		debugger, etc.
3734		Thinking about the new Component framework.
373520071214	Updating the TODO (basically removing all 0.4.x stuff).
3736		Beginning on some Doxygen documentation for simple classes.
373720071217	Moving Doxygen documentation to doc/doxygen/html....
3738		src/main/GXemul.cc is used for the "main page" of the
3739		generated Doxygen HTML documentation, so that is where all the
3740		general code concepts should be documented.
3741		Adding skeleton Action, ActionStack, and UnitTest frameworks.
374220071218	Continuing on the ActionStack and the UnitTest framework.
3743		Adding a small intro.html documentation page.
3744-------------------------------------------------------------------------------
3745		(This is the 0.4.x branch.)
374620071219	NetBSD 4.0 has been released. Doing regression testing of
3747		some systems listed on guestoses.html.
3748		Fixing an alignment bug in dev_vga, when allocating 1 byte.
3749
3750==============  RELEASE 0.4.6.1  ==============
3751
3752-------------------------------------------------------------------------------
3753		(This is the C++ development branch.)
375420071221	Some extremely minor Doxygen comment updates.
375520071227	Adding StateVariable and StateVariableValue classes; writing
3756		unit tests, etc.
3757		The ActionStack now uses lists instead of vectors, for the
3758		undo and redo stack. (For O(1) undo/redo operations.)
3759		Continuing on the Component infrastructure: parent/child
3760		relationships, state variables, and serialization.
3761		Adding a simple Checksum class; useful as a helper for unit
3762		tests.
376320071228	Implementing a CreateComponent function, which when given a
3764		"component class name" creates a Component.
3765		Adding a simple EscapedString helper class, for generating and
3766		decoding C-style escaped strings.
3767		Simple deserialization works. :)
376820071229	Beginning on the CommandInterpreter class.
376920071231	Moving src/gui to src/ui/gtkmm, and creating src/ui/console.
3770		The idea is that all UIs, not only graphical ones, will share
3771		a common base class (the UI class), making it reasonably easy
3772		to add other GUIs later on if necessary.
3773		Moving printing of the startup "banner" to a UI member
3774		function. (No banner is currently displayed for the GTKMM UI
3775		though, because it would feel too heavy-weight.)
3776		The ConsoleUI shows a "GXemul> " prompt, but does not support
3777		input yet.
377820080101	Continuing on the ConsoleUI; it now reads input from stdin and
3779		sends it to a CommandInterpreter. Simple handling of CTRL-C,
3780		CTRL-Z, and treating DEL as backspace.
3781		Adding a Command base class, and adding the first command,
3782		which is "quit" :-).
3783		Simplifying the syntax of the UNITTEST macro.
378420080102	Adding a section about GXemul being Free Software to intro.html
3785		(same as in previous versions of GXemul).
3786		Implementing CommandInterpreter::RunCommand, so that commands
3787		can be executed. "help", "quit", and "version" work
3788		interactively now :)
378920080103	CTRL-A/E (for start/end of line) and CTRL-B/F (for back/
3790		forward cursor movement) now work in the console UI.
3791		Mapping ANSI/VTxxx/xterm cursor keys (escape + [ + misc) to
3792		CTRL-A/E/B/F/N/P.
3793		Adding command history support to the CommandInterpreter.
3794		Classes that perform unit tests using the UNITTESTS(classname)
3795		macro are now tested (almost) automagically by
3796		UnitTest::RunTests(). (.h files must still be included.)
379720080104	Connecting cursor up/down keys to the command history.
3798		Adding Component::Clone. (Not really used yet.)
3799		Adding CTRL-D support to the command interpreter (remove
3800		character to the right).
3801		Actions will now be placed in src/main/actions/.
3802		Implementing an AddComponentAction.
380320080105	Beginning on TAB completion in the CommandInterpreter.
3804		Implementing the UndoCommand and the RedoCommand.
3805		Adding CTRL-K (kill end of line) to the command interpreter.
3806		Implementing RemoveComponentAction.
380720080106	Classes that use UNITTESTS(classname) are now fully auto
3808		tested, no need to manually include .h files anymore. (This
3809		relies on the fact that .h files have names that are exactly
3810		the same as the class name they represent, otherwise it would
3811		not work that well.) Updating some Doxygen comments to reflect
3812		the current state of automagic unit testing.
3813		Renaming TODO to doc/TODO.html.
3814		Changing the Doxyfile to include full .cc source code in
3815		the built documentation.
381620080107	The "tree" command now shows a fancy ASCII tree of components.
3817		Beginning on the "add" command (AddComponentCommand).
3818		Components now get names based on their class name, followed
3819		by a zero-based increasing integer, e.g. dummy0, dummy1, etc.
3820		when added (if they don't already have a unique name).
382120080108	TAB complete of empty string now shows all available commands.
3822		Implementing Component helpers: GeneratePath and LookupPath.
3823		The "add" command now takes path into account, but it must be
3824		a complete path from the root component (i.e. "root.blahblah").
3825		Component::Serialize now serializes into a std::stringstream
3826		instead of returning a plain string.
382720080109	Implementing Component::FindPathByPartialMatch (helper func.).
3828		The "add" command now uses FindPathByPartialMatch for the
3829		where-to-add argument.
3830		Tab completion now expands component names :)  also using
3831		FindPathByPartialMatch. (Syntax of different parts of a
3832		command line are not taken into account yet, though, so it
3833		also for example tries to expand the argument of the "help"
3834		command as a component name.)
3835		Component::Serialize now serializes into an ostream instead
3836		of a stringstream.
3837		Implementing the "save" command.
3838		CTRL-T now runs a "status" command (not yet implemented),
3839		instead of using a status line hack of its own.
3840		Implementing ClearEmulationAction and LoadEmulationAction.
3841		Implementing the "close" and "load" commands.
384220080110	Making the LoadEmulationAction undo-able (in the case the new
3843		component was added to the tree, and did not entierly
3844		replace the root component).
384520080112	The gxemul binary can now be started with a config file as
3846		an argument, which causes it to be loaded. The default RunState
3847		is now Running on startup, and -V is used to set it to Paused.
3848		Adding a NullUI, so that the result of GXemul::GetUI() does
3849		not have to be checked all the time.
3850		Creating a ComponentFactory; moving Component::CreateComponent
3851		to ComponentFactory::CreateComponent.
3852		Reworking how components are created, in preparation for
3853		getting "templates" (such as the testmips machine) to work.
3854		A list of Components is now generated by the configure script,
3855		so that all .h files with a COMPONENT(name) command in
3856		src/include/components/ (including template machines, etc) will
3857		be creatable using ComponentFactory::CreateComponent.
3858		The -E command line option now works :-)
385920080113	Adding a "quiet mode" to the GXemul class, set to true by the
3860		-q command line option.
3861		Adding some more simple commands: continue, list-components.
3862-------------------------------------------------------------------------------
3863		(This is the 0.4.x branch.)
386420080118	Applying a WDC patch from Oleksandr Tymoshenko (dev_wdc.c and
3865		bus_pci.c), fixing the order of 16-bit words within 32-bit
3866		words in the identify struct, and not clearing the error on
3867		reads from the error register anymore.
3868
3869==============  RELEASE 0.4.6.2  ==============
3870
3871-------------------------------------------------------------------------------
3872		(This is the C++ branch.)
387320080119	Adding a generic GetAttribute function to components. Planned
3874		attributes are "template", "stable", "machine", "description",
3875		and "contributors". Unimplemented attributes result in an empty
3876		string being returned from GetAttribute.
3877		Moving the ASCII tree generator from TreeCommand.cc to
3878		Component::GenerateTreeDump.
3879		Documentation of available machine templates and all components
3880		is now automagically generated on a "make documentation".
3881		(doc/machines.html and doc/components.html.)
3882-------------------------------------------------------------------------------
3883		(This is the 0.4.x branch.)
388420080120	Some minor OpenFirmware fixes: Adding a "memory" property to
3885		"/chosen", adding a dummy claim() service.
3886-------------------------------------------------------------------------------
3887		(This is the C++ branch.)
388820080120	Adding CTRL-W handling (remove current/last word) to the
3889		CommandInterpreter.
3890		The machines.html and components.html documentation pages now
3891		point to individual doc/machine_XXX.html and component_XXX.html
3892		pages, if they exist.
389320080122	Beginning to rewrite the component state variable
3894		implementation a bit, in preparation for serialization/
3895		deserialization, undo/redo, and "run backwards" with data
3896		tightly tied to components.
389720080123	Continuing on the state variable stuff. Both strings and
3898		integers (8-bit through 64-bit, signed and unsigned) can be
3899		used as state variables so far, but more unit tests are needed.
3900		Component classes can now also be registered runtime. (This is
3901		needed to enable meaningful unit testing of some things,
3902		such as cloning of dummy unit test components.)
390320080124	Moving doc/machine_*.html and component_*.html into subdirs.
390420080129	Re-adding detection of host arch (ABI) to the configure script.
390520080203	Continuing on state variables (unit tests etc).
3906-------------------------------------------------------------------------------
3907		(This is the 0.4.x branch.)
390820080205	Switching order of DINCLUDE and XINCLUDE in
3909		src/devices/Makefile (thanks to Ning Zhao for the tip).
3910-------------------------------------------------------------------------------
3911		(This is the C++ branch.)
391220080210	Adding -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC to CFLAGS for
3913		debug builds.
391420080222	Beginning on the main run loop, GXemul::ExecuteCycles.
3915-------------------------------------------------------------------------------
3916		(This is the 0.4.x branch.)
391720080222	Adding a DEV_DISK_OFFSET_HIGH32 register, for reading/writing
3918		the top 32 bits of the offset register (useful for emulated
3919		32-bit archs), as suggested by Julian Elischer.
3920
3921==============  RELEASE 0.4.6.3  ==============
3922
3923-------------------------------------------------------------------------------
3924		(This is the C++ branch.)
392520080226	Implementing an IRInstruction base class, and some initial
3926		IR instructions (simple adds, moves, stores).
392720080227	Continuing on IRInstruction stuff; unit tests to see that
3928		automatic native code generation kicks in, etc.
3929		Implementing a simple IRBlockCache, which is just a linear
3930		memory range with PROT_EXEC, which is reset when it overflows.
3931		Beginning on a (so far dummy) IRNativeAMD64 code generator.
3932		Adding a configure option for disabling native code generation
3933		support completely.
393420080229	Rethinking how the IR stuff should work: I'll probably use
3935		simple and traditional interpretation by default (read instr,
3936		decode, execute), and only let native code generation via some
3937		form of IR kick in when necessary. Two advantages: it will be
3938		easier to add new cpu types (because an interpretation switch/
3939		case block is very easy to understand), and there will be no
3940		waste of memory (for IR data) for code which is not commonly
3941		used.
3942		Removing IRBlock and IRInstruction, but keeping IRBlockCache
3943		and IRNativeAMD64 for later.
3944		The IRBlockCache can now be resized during runtime (and it
3945		expands automatically if necessary).
394620080314	Working on the main loop, GXemul::ExecuteCycles(), which should
3947		call each component's Run function in suitable proportions.
3948		Adding a CPUComponent base class, from which MIPS_CPUComponent
3949		inherits.
395020080316	Switching from CVS to SVN.
3951		Adding a test to the configure script for the "-ansi" compiler
3952		option; implementing a simple parse_number to replace strtoull
3953		to make everything build with -ansi. Various minor fixes to
3954		make -ansi work on a Debian GNU/Linux system (using CXXFLAGS
3955		instead of CFLAGS in Makefiles, and probe MAP_ANON in the
3956		configure script using $CXX, not $CC).
3957		Moving NativeTranslationExists and LookupCurrentCodePage from
3958		MIPS_CPUComponent to CPUComponent; these are intended to be
3959		used from most CPU components.
3960		Removing lots of "cd .." stuff from the Makefiles; GNU make
3961		did not work too well with them. Hopefully this will make
3962		tracking down compile problems on GNU/Linux machines easier.
396320080317	Beginning on an AddressDataBus abstract class/interface, which
3964		e.g. the RAM component will implement.
396520080320	Continuing on the RAMComponent class.
396620080321	"make install" now installs .desktop and icon files.
3967		More work on the RAMComponent class: endianness for loads and
3968		stores larger than 8 bits, some simple unit tests.
396920080322	Adding a preliminary toolbar to the GTKMM GUI.
3970		Upgrading configure script check for gtkmm-2.4 from version
3971		2.12.1 to 2.12.5. (Maybe not stricly necessary, but that's what
3972		I am currently using for development.)
397320080323	Experimenting with graying out the Undo and Redo actions in
3974		the GUI (by querying the ActionStack).
397520080324	Making the code compile cleanly with GNU C++' -pedantic. The
3976		only module where -pedantic is not used is src/ir/, which needs
3977		to cast e.g. uint8_t* to function pointer (for runtime
3978		generated code).
3979		Beginning on a mainbus (MainbusComponent), which will forward
3980		reads and writes to other devices (such as RAM).
398120080325	Making the counter in the ReferenceCountable class mutable,
3982		because const objects also need to be reference countable.
3983		Attempting to fix a bug related to the integer types passed
3984		to UnitTest::Assert. (Problem noticed by Hollis Blanchard.)
3985		Fixing arguments to and return handling of mmap(). (Also
3986		noticed by Hollis.)
398720080328	Making everything build using SunStudio (Sun C++ 5.9).
3988		Implementing support for Double state variables.
3989		CPU speed is now a state variable, in CPUComponent.
3990		Cleaning up the CFLAGS/CXXFLAGS/COPTIM/CWARNINGS mess in the
3991		configure script and Makefile.skel files; only CXXFLAGS (and
3992		CXXFLAGSBASE) are used from now on. Also removing some other
3993		unused legacy stuff from the configure script.
399420080329	Minor fixes to make the source code build with a 20080321
3995		snapshot of GCC 4.4.
399620080330	Continuing on the GTKMM GUI (File->Open/Save/Save As show
3997		file chooser dialogs, and Edit->Undo/Redo execute the "undo"
3998		and "redo" commands). "File->New from Blank" and "Go/Continue"
3999		also have bare-bones implementations.
4000		Continuing on mainbus related things; moving the mips_cpu in
4001		the testmips machine so that it is placed on the mainbus.
4002		Adding a MemoryMappedComponent base class, which all memory-
4003		mapped components should inherit. (The canonical example is
4004		the RAMComponent class.)
4005		The mainbus can now forward reads and writes to memory-mapped
4006		child components.
400720080401	Continuing on the mainbus (writing unit tests).
4008		Reintroduce the 'bool' state variable type.
4009		Adding a 'writeProtected' state bool for the RAMComponent, to
4010		emulate ROM behavior in a simple way.
401120080402	Creating a src/include/thirdparty directory. Moving debug_new.h
4012		etc there. Also importing exec_elf.h from NetBSD [HEAD], and
4013		updating doc/RELEASE.html to reflect the location of thirdparty
4014		imports.
4015		Implementing the initial framework for I18N/localization. The
4016		first translation is Swedish. :-)
401720080404	Making it possible to build with GTKMM 2.15.5 with --debug;
4018		note, however, that this produces memory leak warnings, so
4019		the GTKMM with --debug combination is not very useful yet.
4020		Implementing basic support for updating the UI when some things
4021		change: Undo/Redo-applicability, the name of the emulation, and
4022		the RunState. (As UI::UpdateUI().)
4023		Removing all old CVS $Id$ tags; they are not useful anymore.
4024		The GTKMM GUI EmulationDesignArea now shows some dummy circles
4025		(one for each component in the emulation setup).
402620080405	Beginning on a FileLoader class, for loading binaries (e.g.
4027		ELFs). Also adding a test/ directory, where small test files
4028		used for unit tests may be stored. ELF program segments are
4029		loaded, but no additional information yet (entry point etc.).
4030		Catching std::exception at the outermost level, in order to
4031		print a reasonable message if the application crashes.
4032		Instead of loading binaries into an AddressDataBus, they are
4033		now loaded into a Component, which, if it has a "pc" state
4034		variable, is set to the entry point. Starting gxemul with
4035		-E testmips test/FileLoader_ELF_MIPS actually attempts to
4036		start running the binary now :-)
4037		Some more work on the GTKMM GUI: the debug output window now
4038		shows debug messages and commands being executed.
403920080406	Adding a section about Model-View-Controller to the source
4040		code documentation main page, and a simple picture of what the
4041		component tree may look like.
4042		Introducing "visible class names" in addition to the normal
4043		class name, for components. This makes mips_cpu0 show up as
4044		just cpu0, which is much nicer.
4045		uint16_t, 32_t, and 64_t state variables are now outputted in
4046		hexadecimal form in ToString(), for readability.
4047		The ListComponents command now shows the short description of
4048		each command.
4049		Links are now generated from component names in machines.html
4050		to corresponding component_xxx.html pages.
4051		Beginning on internal support for instruction disassembly (not
4052		user-accessible yet).
405320080407	Continuing on the instruction disassembly stuff; importing
4054		some MIPS defines from GXemul 0.4.6.3.
405520080409	Implementing support in the CommandInterpreter for running
4056		methods on components. If a component name is "executed" with
4057		no method name given, the component tree is dumped. (This means
4058		that there is no need for the 'tree' command anymore, so it
4059		has been removed.)
4060		Implementing the first component method: "unassemble" for the
4061		CPUComponent.
4062		GTKMM GUI test: Connecting to the "activate" signal of a text
4063		entry, so that commands are executed once ENTER is pressed;
4064		this does not work with tab-completion and command line
4065		editing though, since only ENTER is signaled.
406620080410	CPUComponent's unassemble method now remembers where it last
4067		unassembled, and starts at m_pc if it is the first time it
4068		is executed.
4069		Porting more MIPS-related code from GXemul 0.4.6.3; some
4070		more instructions can be disassembled now.
407120080412	Implementing tab-completion of methods on components.
4072		Executing a component name without any method name, which
4073		results in the component tree being dumped, will now also
4074		dump all of the component's state variables.
4075		Continuing on porting GXemul 0.4.6.3's MIPS disassembly code.
4076		The GTKMM GUI can now be shut down by the "quit" command.
407720080413	Introducing a new RunState (NotRunning). Making the GTKMM GUI
4078		Run/Pause buttons stay down while in the Running/Paused
4079		runstates. (Also making the icons smaller by not showing text
4080		labels, and enabling tooltips instead. Looks/feels nicer.)
4081		Implementing an undoable ResetAction.
408220080416	GUI updates: Fixed-width font in the debug console, and it
4083		now scrolls to bottom on text output.
408420080419	AddComponentAction must not remember component references
4085		(for undo/redo); instead it now remember paths.
4086		Also implementing a similar fix for RemoveComponentAction.
408720080423	Action::Execute and Undo are now private, and only reachable
4088		from the ActionStack (now a friend class of Action).
408920080424	Upgrading configure script check for gtkmm-2.4 from version
4090		2.12.5 to 2.12.7, to be in synch with my system.
409120080426	The continue command now clears the Undo stack.
4092		State variable names of components can now be tab completed.
4093		"Running" a variable (e.g. cpu0.pc) will print its value.
409420080427	Continuing a little on tab completion of variable names.
4095		Implementing a "dirty flag" for the emulation; the GTKMM GUI
4096		now asks for confirmation before quitting, opening a new
4097		emulation, etc, if the model is dirty.
409820080501	Fixing LoadComponentAction so that it uses path names for
4099		Undo, and not reference pointers to components.
4100		Fixing a crash bug in CommandInterpreter when tab completing
4101		non-existant component names.
4102		Implementing a VariableAssignmentAction. No expressions yet,
4103		only simple values (numeric, strings, and boolean values).
410420080531	Refactoring the Component::AddVariable* functions into a
4105		single template function.
4106-------------------------------------------------------------------------------
4107		(This is the 0.4.x branch.)
410820080605	Fixing a corner case in ARM pc-relative loads, which was
4109		unimplemented before. (Triggered by doing builds of pkgsrc
4110		stuff inside emulated NetBSD/cats.)
411120080610	Applying a patch from Jiri Svoboda, which implements the
4112		ARM "bkpt" instruction.
4113
4114==============  RELEASE 0.4.6.4  ==============
4115
411620080611	Correcting the ARM pc-relative load fix; the wrong address
4117		variable was used. Also, the pc-relative _load_ code was
4118		used for stores as well, which was completely incorrect.
4119		On ARM, since pc-relative loads are converted into immediate
4120		movs, on writes to pages that contain such translations, the
4121		ENTIRE page must be invalidated, not just the 1/32th that
4122		was code. This has now been implemented.
4123
4124==============  RELEASE 0.4.6.5  ==============
4125
412620080808	Applying a patch from Kiyotaka Inaba which causes an ARM UND
4127		exception to be generated by the instruction word 0xe6000011,
4128		which is needed by gdb when running inside the emulator.
4129		Also enabling ARM UND exceptions for ARM floating point
4130		instructions (needed by both Linux and NetBSD/arm).
4131-------------------------------------------------------------------------------
4132		(This is the C++ branch.)
413320080810	Implementing a basic Trigger framework.
413420080812	Continuing on Triggers; it's now possible to use static
4135		member functions as callback functions. Beginning to connect
4136		triggers to the GTKMM GUI.
4137-------------------------------------------------------------------------------
4138		(This is the 0.4.x branch.)
413920081103	Fix for a free() bug in bootblock_iso9660.c.
4140		Updating the OpenBSD/landisk installation instructions from
4141		4.2 to 4.4, after verifying that it works.
414220081104	NOTE: I'm throwing away the C++ rewrite attempt ("0.5.x"),
4143		moving back gxemul-legacy to gxemul/trunk. The old C++
4144		rewrite attempt is archived under gxemul/branches/.
414520081109	Updating most NetBSD 4.0 install instructions to 4.0.1.
4146
4147==============  RELEASE 0.4.6.6  ==============
4148
414920081114	Adding the M88K 'add' instruction for immediate values
4150		(add_imm in cpu_m88k_instr.c).
4151		Continuing on dev_pcc2 (used by mvme187).
4152		Working on M88K interrupts. Very unstable so far; OpenBSD/
4153		mvme88k bugs out randomly after the first few interrupts.
415420081115	More work on dev_pcc2.
4155		Found the "random" failure bug: the M88K interrupt handling
4156		code didn't execute the interrupted instruction, but skipped
4157		it instead.
4158		Fixing a bug in the implementation of the m88k 'ext'
4159		instruction (it worked like extu!).
4160		Adding disassembly of all 88100 floating point instructions.
4161		Minor updates to make the code build with GCC "4.4.0 20081017".
416220081116	Implementing the m88k flt.ss, flt.ds, trnc.ss, trnc.sd, and
4163		fadd.dds floating point instructions.
416420081121	Updating the HelenOS version in the documentation to 0.3.0.
4165		Continuing on 88100 interrupt/exception handling.
416620081125	Bringing back the dummy machine_iyonix.c, which was removed
4167		in SVN rev. 4866.
4168		Fixing a bug in ARM pc-relative loads, when loading within
4169		the same page as the pc.
417020081126	Continuing on the Iyonix mode: connecting initial i80321
4171		interrupts, and importing NetBSD/iyonix' bootconfig.h.
417220081127	Importing iopi2creg.h from NetBSD (ARM Xscale I2C registers).
4173		Implementing the SH4 fsrra instruction, 1/sqrt(x), and the
4174		fipr instruction (vector dot-product).
417520081203	Using register names in dev_clmpcc, but no actual progress on
4176		getting OpenBSD/mvme88k to boot further.
4177		FINALLY found the M88K bug I've been hunting: conditional
4178		branches with delay slots did not set the delay target address
4179		correctly in the case the branch was _not_ taken.
418020081204	Interrupt exceptions (in cpu_dyntrans.c) are no longer
4181		generated while single-stepping. (It was too annoying.)
418220081206	Implementing rudimentary tx/rx interrupts for clmpcc;
4183		OpenBSD/mvme88k can input/output stuff in userland now :)
4184		Implementing the "max negative number" condition of the
4185		M88K bcnd instruction.
4186		Implementing the M88K triadic register 'rot' instruction.
4187		The FIP != NIP+4 situation in the M88K rte instruction is now
4188		supported (i.e. executing one instruction from the pipeline,
4189		and then continuing somewhere else).
4190		Continuing on Dreamcast PowerVR register names, etc.
419120081208	Beginning on a osiop (NCR 53C710 SCSI) device skeleton.
419220081210	The SH4 Store Queue memory area is 0x04000000 long, not 0x40.
419320081211	OpenBSD/m88k's badaddr() should now be able to detect
4194		invalid addresses; memory_rw.c causes exceptions on reads
4195		that fail (but no actual address is supplied yet).
419620081212	Moving the Dreamcast PowerVR2 DMA handling from
4197		dev_dreamcast_g2 to dev_pvr, where it belongs.
419820081213	Continuing on SH4 and PowerVR2 DMA.
4199		Moving the unsupported guest OSes from guestoses.html to a
4200		new page, unsupported.html, for clarity.
4201		Continuing on the NCR 53C710 SCSI controller (dev_osiop.c).
420220081217	Beginning on implementing the SCRIPTS instruction set for
4203		dev_osiop.
420420081219	Continuing a little bit on the osiop SCRIPTS ISA.
420520081221	Implementing an instruction combination for M88K idle loop
4206		detection (works with OpenBSD/mvme88k).
4207		Adding a dummy LUNA 88K machine mode (machine_luna88k.c).
420820081229	Continuing on the osiop SCRIPTS ISA.
420920081231	More progress on dev_osiop.c.
421020090101	FINALLY the osiop works well enough to let OpenBSD detect
4211		SCSI devices! :-)
4212		After some more hacking, everything is finally stable enough
4213		to allow OpenBSD/mvme88k to be installed onto a disk image!
421420090102	Optimizing the osiop SCSI device a bit; a default scripted
4215		install of OpenBSD/mvme88k has dropped from 30 minutes to 10.
4216		Fixing a bug which was caused by instructions like subu.co
4217		with a destination register of r0 being treated as nop.
4218		Various updates to make the source code build better on
4219		Linux (Ubuntu 8.10), and with GNU make.
4220
4221==============  RELEASE 0.4.7  ==============
4222
422320090103	Merging fixes from the main trunk.
422420090122	Merging in fdiv.sss and fadd.dsd from the main trunk.
422520090123	NetBSD/hpcmips can now be installed and run using serial
4226		console (i.e. without -X), in addition to using the
4227		framebuffer.
4228
4229==============  RELEASE 0.4.7.1  ==============
4230
423120090215	Updating the guest OS page for HelenOS 0.4.0.
423220090513	Fixing the MIPS tne, teq, tge, tgeu, tlt, and tltu instructions
4233		to allow non-zero "code" values.
4234		Adding a new Linux/Malta "variant 2" entry to the unsupported
4235		guest OS page.
423620090518	Changing the 8253 interrupt mechanism to assert interrupts
4237		regardless of "mode" bits, causing Linux/Malta to get further.
4238		Hacking on piix4 a bit to attempt to please Linux/Malta;
4239		interrupts are lost.
424020090610	Making configuration files work again! (Thanks to Wu Kan for
4241		noticing this bug.)
424220090611	Documentation updates (NetBSD 5 etc).
424320090621	Adding a hack for the pcc2 PSCALEADJ register, making it
4244		possible to install and run OpenBSD/mvme88k 4.5.
4245		NetBSD/evbmips, /sgimips, and /cobalt 5.0 have been verified
4246		to work.
4247
4248==============  RELEASE 0.4.7.2  ==============
4249
425020090626	Attempting to switch from C to C++ (_WITHOUT_ starting over
4251		from scratch). Step 1: Rename all .c files to .cc. 2. Rename
4252		all occurances of 'template' and 'class' to other things.
4253		Step 3: Fix malloc/realloc cast errors.
4254- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
4255		NOTE: From here on, stuff was merged piece by piece from the
4256		experimental C++ branch to the trunk; only the trunk is used
4257		from this point.
4258- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
425920090627	Continuing on the C to C++ switch.
4260		Updating the OpenBSD/mvme88k regression test expect script
4261		from 4.4 to 4.5.
4262		Everything now builds with "make -j X".
426320090628	Moving src/*.cc into a new directory, src/main/.
4264		Finally adding the "make install" target (again).
4265		Moving TODO and RELEASE notes to doc/.
4266		Adding Doxygen documentation generation (again).
426720090703	Moving more C++ code from the old branch into the main trunk.
4268		(UnitTest, Component*, StateVariable, debug_new, ...)
4269		Removing bogus/unfinished archs (Alpha, SPARC, M32R) and
4270		the skeleton "userland emulation".
427120090704	Moving thirdparty includes into src/include/thirdparty/.
427220090705	Beginning to import various Components from the experimental
4273		C++ branch (starting with the MVME187Machine).
4274		Removing more bogus/unfinished code: Bebox and Luna88k.
4275		Attempting to move in more code from the experimental C++
4276		branch: the GXemul main class, command interpreter and related
4277		commands, file loader, UIs, etc.
427820090710	Moving in more code.
4279		Added a note in guestoses.html that all current modes are
4280		legacy modes, using the old framework.
4281		Updating the OpenBSD/landisk regression test expect script
4282		from 4.1 to 4.5.
4283		Attempting to connect -V and -e so that the new framework is
4284		used for new template machines.
4285		Making everything build on Linux (missing includes etc.).
4286		Removing all $CC stuff from configure (only $CXX remains).
4287		Merging in the automated component and machine HTML
4288		documentation stuff from the C++ branch.
4289		Applying a patch from Izumi Tsutsui which makes NetBSD/hpcmips
4290		work well with the clock again.
429120090711	Applying another patch from Izumi Tsutsui, for setting the
4292		ARCBIOS OSLOADPARTITION environment variable in a more correct
4293		way. (Also updating the guest OS page for NetBSD/arc 5.0.)
4294		Updating the NetBSD/pmax regression test expect scripts from
4295		3.1 to 5.0 (for both R3000 and R4400).
4296		Moving regression test expect scripts to the test/ directory.
4297		Creating a regression test expect script for NetBSD/arc 5.0.
429820090712	Adding a dummy "testm88k" machine for the new framework.
4299		Updating the install instructions for NetBSD/cobalt to use the
4300		RAMDISK installer (thanks to Izumi Tsutsui for noticing).
430120090713	Beginning on an a.out FileLoader for the new framework.
430220090714	Continuing on the a.out FileLoader.
430320090716	a.out (big-endian only so far) can now be loaded into
4304		AddressDataBus objects.
4305		Modifying the "load" command so that it can load both component
4306		trees _and_ other binaries (ELFs etc) into components.
4307		Merging in a lot of TODO entries from the old C++ branch's TODO
4308		file.
430920090717	Implementing the 'move' command for moving components.
4310		Removing the 'dirty flag' concept (it wasn't really used).
4311		Adding a .dump method to the RAMComponent, for dumping raw
4312		(physical) memory contents.
4313		Adding a similar .dump method to the CPUComponent, for dumping
4314		the virtual memory space. (Note that this can have side
4315		effects, when reading from devices...)
4316		Implementing the 'copy' command, for cloning components.
431720090718	Updating the man page to reflect new command line options vs
4318		legacy options.
4319		Adding a .registers method to the CPUComponent for dumping CPU
4320		registers; implementing specifics for MIPS and M88K.
4321		Enabling simple variable assignment [again].
4322		Implementing (in a ugly hack-ish way) serialization support
4323		for the RAM component, using a "custom" StateVariable type.
4324		Beginning to implement a "pre run check" mechanism.
432520090720	Implementing PreRunCheck for CPU components (they need to have
4326		an address/data bus, either as a child or as a parent, to run).
432720090721	Implementing PreRunCheck for MainBusComponent.
4328		At startup, a suitable part of the component tree is now shown.
4329		Adding a GenerateShortestPossiblePath method on Component.
4330		Adding a helper for outputting pre-0.6.0 style debug messages
4331		from components ("[ componentname: message ]").
4332		Tab completion (in the CommandInterpreter) now uses shortest
4333		path, whenever possible, instead of full paths.
433420090722	Implementing a new concept of "on reset commands"; beginning on
4335		extending the ELF loader for symbol loading support.
433620090723	Moving 'step' and 'time' concepts from the GXemul class to a
4337		new component, the RootComponent.
4338		Minor configure script fixes (allow --without-unittests etc.).
4339		Removing the "NotRunning" run state.
4340		Adding dummy "step", "backward-step", and "continue-backwards"
4341		commands.
4342		Implementing support for re-executing commands without args
4343		("step" and "backward-step" so far).
434420090724	The CPUComponent's .unassemble and .dump methods, and the
4345		RAMComponent's .dump method, are now also re-executable.
4346		CPU endianness is now serialized (as a bool, not enum).
4347		Beginning to work on cycle execution!
434820090725	The step command now takes an argument (default is 1).
434920090726	Removing the "global time" concept.
4350		Adding a helper for debug message indentation.
4351		Adding an "accuracy" variable to the RootComponent, which must
4352		be set to either "cycle" or "sloppy".
4353		Implementing pre-run-checks for M88K and MIPS cpus, for
4354		checking the r0 and zr registers, respectively.
435520090727	When single-stepping, all state change (except for Custom
4356		StateVariables such as RAM contents) is now displayed.
4357		Porting the 88100 disassembly code from the old implementation
4358		to the new.
4359		Moving old main files into src/old_main/ (for clarity).
436020090728	Including screenshots in auto generated machines.html.
4361		Finally managed to implement cycle-accurate continuous
4362		execution of multiple components at different speeds. :-)
4363		RAMComponent now clears ram on reset.
4364		Implementing a symbol registry for the new framework (which
4365		is per CPU).
436620090729	Slowly beginning to reimplement dyntrans in C++: Beginning on
4367		the CPUComponent::DyntransExecute core loop, and some
4368		basic structures. MIPS and M88K cpus call DyntransExecute.
436920090731	Continuing on the new dyntrans core. The first instruction (a
4370		M88K subu) can be executed on a dummy IC page.
4371		[Re]implementing some simple MIPS and M88K instructions.
4372		Arguments can now be passed during component creation, e.g.
4373		nr CPUs, CPU model, or ram amount for a template machine.
4374		Adding a 'raw' file loader, and a dummy SGI IP32 template.
437520090801	Two MIPS16 instructions can be disassembled; disassembly
4376		address is now not necessarily the same as m_pc (e.g. on
4377		MIPS16, the lowest bit is cleared).
4378		Beginning on implementing branches: the MIPS "b" instruction,
4379		with delay slot (both continuous execution, and single-stepping
4380		with pause in the middle of the branch, etc).
4381		Continuing on the dyntrans core loop (inlined instruction calls
4382		first, then run a few remaining calls).
438320090802	Implementing a skeleton implementation for the backward-step
4384		command (but since variable write handlers aren't implemented
4385		yet, it doesn't really work).
4386		Updating the Introduction chapter in the documentation with
4387		a section about the New framework.
4388		Beginning on M88K bsr and jmp.n instruction implementations,
4389		function call trace support, etc.
439020090803	Continuing on function call trace support.
439120090804	Using anonymous unions and ptrdiff_t, to avoid overloading
4392		pointers and size_t members unsafely, and other size_t usage.
4393		(Thanks to Weinholt for commenting on this.)
439420090807	Getting rid of the last 'delete' call (in MainbusComponent,
4395		there was a _pointer_ to a memory map, instead of just a
4396		memory map). The new GXemul framework is thus completely free
4397		of malloc/free and manual delete. (mmap/munmap are, for natural
4398		reasons, used though by the RAMComponent.)
4399		Separating out the dyntrans specific parts of CPUComponent into
4400		another base class, CPUDyntransComponent, so that it in theory
4401		is possible to implement non-dyntrans CPUs.
4402		Partial support for choosing MIPS ABI (affects disassembly and
4403		register dumps, mostly).
440420090810	Beginning on variable write handlers: MIPS zr register is
4405		read-only, MIPS' model can now be changed correctly, and
4406		root.accuracy can only be assigned "cycle" or "sloppy".
440720090814	Continuing on write handlers for variables (root.step),
4408		beginning on component tree snapshotting (using Clone). The
4409		backward-step command now works reasonably well (but the only
4410		snapshot taken so far is at step=0).
441120090815	Reimplementing the M88K br, or_imm, or.u_imm, cmp, cmp_imm,
4412		and_imm, and.u_imm, mask_imm, mask.u_imm, mak, mak_imm,
4413		mulu_imm, xor_imm, and xor.u_imm instructions.
441420090819	Base OTHERLIBS in configure on LDFLAGS.
441520090821	Updating the TODO with thoughts/plans for the "plugin" part
4416		of the new framework.
441720090822	Beginning on a doc/framework.html, describing the new
4418		framework concepts to end-users.
441920090905	Continuing on the dyntrans core: page allocation.
442020091207	The dev_ether MAC address can now be read.
442120091212	Updating the OpenBSD/landisk install instructions in
4422		guestoses.html from OpenBSD 4.5 to 4.6.
442320091219	Include _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC defines in
4424		debug builds, to potentially catch some STL misuses.
4425		If valgrind is found by the configure script, it is used when
4426		running 'make test'. If there is any output from valgrind -q
4427		(i.e. errors), then make test fails.
442820100127	Patch from Tassilo Philipp to enable PPC's fabs instruction.
4429		Patch from Yana to use return value from net_ethernet_rx()
4430		correctly in dev_ether.c.
443120100128	Adding a check (for "make test") to see that delete isn't
4432		used. Only a few exceptions are allowed.
443320100129	Reimplementing the (non-specialized) M88K bsr instruction.
4434		Continuing on the dyntrans core: page allocation. The basics
4435		(page allocation and LRU deallocation) have been implemented,
4436		but not really tested in practice yet.
443720100130	Reimplementing the M88K ldcr instruction, and a slow version
4438		of the st instruction (store 32-bit word).
4439		Updating guest OS documentation (NetBSD/landisk 4.0.1 to
4440		5.0.1, NetBSD/pmax 5.0 to 5.0.1, NetBSD/arc 5.0 to 5.0.1,
4441		NetBSD/cobalt 5.0 to 5.0.1).
4442		Renaming old testmips to oldtestmips, so that the name
4443		testmips can be used by the new framework.
444420100131	Reimplementing a slow version of the st.d M88K instruction.
4445		"Quiet mode" is now turned off, if dropping into the debugger,
4446		both by using -V and by triggering unimplemented instructions.
4447		The m88k_cpu now takes a creation argument called r31, for the
4448		initial stack pointer value. (Needed to run the rectangle
4449		drawing demo, which assumes a valid r31 on startup.)
4450		Reimplementing the M88K bsr.n instruction, including single-
4451		stepping scenarios.
445220100202	Reimplementing generic M88K loads/stores using templates. (In
4453		the old implementation, these were constructed using build-
4454		time generated define/include magic to simulate a template-
4455		style mechanism in C).
4456		Reimplementing the M88K divu d,s1,imm instruction.
4457		Reimplementing the M88K lda.* instruction.
445820100203	Beginning on reimplementing M88K bb0.n and bb1.n; only the
4459		non-singlestepping variant done so far.
446020100204	bb0.n and bb1.n should now also work when single-stepping.
4461		Implementing the non-singlestep variant of M88K jmp.n.
4462		Beginning on the M88K bcnd.n instruction.
446320100205	Continuing on bcnd.n. The testm88k rectangle drawing demo
4464		now runs :) both when running continuously, and when
4465		single-stepping. (No graphical output yet, of course.)
446620100206	Reimplementing the M88K ext and extu instructions.
4467		Reimplementing the M88K bb0 and bb1 non-delayslot
4468		instructions, including samepage variants.
4469		Reimplementing the M88K stcr, jmp, and tb0 and tb1
4470		instructions.
4471		Fixing a bug in the MRU list in DyntransTranslationCache.
4472		Fixing disassembly of tb0 and tb1, and implementing the
4473		rest of the bcnd conditions.
4474		Beginning on reimplementing MIPS (slow) loads/stores,
4475		and reimplementing the MIPS addu, subu, srl, xor, multu,
4476		mfhi, mflo, mthi, and mtlo instructions.
447720100207	Reimplementing the MIPS slt and sltu instructions, various
4478		branch instructions, and fixing some bugs; the rectangle
4479		drawing demo for testmips runs in the new framework :)
4480		Switching function call trace on/off during runtime now
4481		clears [individual] translation pages.
448220100213	Working on dyntrans abort peculiarities (in the middle of
4483		delay-slots, etc).
448420100214	Preparing for a quick 0.6.0 release.
4485
4486==============  RELEASE 0.6.0  ==============
4487
448820100214	Fixing order of machine.html and components.html generation,
4489		relative to individual machines from skeleton files.
449020100220	Improve install path guessing (DESTDIR and MANDIR) based on
4491		feedback from Tom Callaway.
4492		Moving the multiple identical instances of parse_number and
4493		SplitStringIntoVector to a new StringHelper class, and adding
4494		some unit tests.
4495		Adding a PluginDescriptor class, for parsing plugin descriptor
4496		strings (component:plugin(args):filename etc).
4497		Beginning on the new plugin mechanism: adding an 'attach'
4498		command, to be used instead of 'load'.
449920100222	Scrapping the "plugin" concept; the already existing component
4500		framework should hopefully be enough as it is.
450120100314	Updating doc/translation.html with more examples on how the
4502		dyntrans system works (in pre-0.6.x and in 0.6.x).
450320100319	Fixing flawed mymkstemp by also passing O_CREAT | O_EXCL (used
4504		on systems without mkstemp) (reported as Debian bug #574537).
450520100322	const fixes, enabling builds using GCC's -Wcast-qual.
4506		Fixes to allow build using GCC's -Wshadow.
450720100326	Running 'make test' will now treat memory leaks as test
4508		failure (in debug builds only). Also fixing a memory leak.
450920100406	Bogus hack to machine_evbmips.cc to let RTEMS print some boot
4510		messages (again?) for mvme5500.
451120100806	nbjoerg on #GXemul (FreeNode) noticed an easy way to trigger
4512		an unhandled case in memory_sh.cc; applying a potential fix.
451320100830	Updating the OpenBSD/landisk guest operating system install
4514		instructions from 4.6 to 4.7.
4515		Improved the "pretty print" of components in the tree dump,
4516		by moving it out to a per-component virtual function.
451720100901	Beginning on CacheComponent (a generic memory cache component).
451820100910	The mechanism for detecting when to assert MIPS compare
4519		interrupts could sometimes stop delivering interrupts, if the
4520		count register was read. Fixed by keeping track of how many
4521		times the register is read and reverting it before doing the
4522		count/compare interrupt assert check. (Thanks to Jakub Jermar
4523		for noticing this bug using HelenOS.)
452420100912	Updating the NetBSD/hpcmips guest operating system install
4525		instructions from 4.0.1 to 5.0.2, and the NetBSD/algor install
4526		instructions from 3.1 to 5.0.2.
452720110212	Updating the NetBSD/pmax install instructions: 5.0.2 -> 5.1.
4528		Updating OpenBSD/landisk instructions: 4.7 -> 4.8.
452920110606	Updating the documentation on how to start Dreamcast binaries,
4530		and updating from NetBSD/dreamcast 5.0.1 to 5.1.
453120110609	Adding automagic guessing of Dreamcast ISO filesystem offset,
4532		so that Linux/dreamcast can be booted without specifying the
4533		offset.
4534		Booting Dreamcast via bootblock now uses software PROM starting
4535		point instead of calling a particular bootblock address, making
4536		it possible to run a complete boot sequence in more cases.
4537		When unimplemented SuperH instructions cause an abort failure,
4538		GXemul now drops into the debugger instead of calling exit()
4539		(if started with -K).
454020110610	In SH4 instruction trace, include address in printout in a few
4541		more cases than before.
4542		Make NetBSD/dreamcast etc. boot correctly with 480 pixels in
4543		the y direction (random read hack from PDTRA).
4544		Use the 8x16 font as a fake Dreamcast ROM font.
4545		Adding fake/skeleton Dreamcast ROM SYSINFO_INIT, SYSINFO_ID,
4546		FLASHROM_INIT, and FLASHROM_READ calls.
454720110616	Adding Dreamcast devices as symbols, so that runtime debugging
4548		will show meaningful names instead of just addresses, when
4549		reading and writing device registers.
455020110621	Adding "trace" versions of SuperH bsr and bsrf_rn instructions.
4551		Adding the first SuperH instruction combination for speeding
4552		up a variable read loop (bt_samepage_wait_for_variable).
455320110622	Continuing on Dreamcast and SuperH emulation: the SH4 DMA
4554		channel numbers were off-by-one (but didn't really have any
4555		negative effect). Experimenting with end-of-DMA mechanism in
4556		dev_pvr. Adding a second device thing at 0x005f7c00, which
4557		seems to be a PVR DMA register range, but not much used?
455820110623	Found a bug in the SH4 fsca instruction: the angle argument for
4559		sin and cos was incorrectly calculated. "dcfighting.bin" and
4560		"gltest.bin" (two "homebrew" Dreamcast programs) now look much
4561		more like on the real Dreamcast.
4562		Various other small Dreamcast and/or SH4 related updates.
456320110624	Updating OpenBSD/landisk installation instructions: 4.8 -> 4.9.
456420110626	Moving Dreamcast BIOS emulation entry points to 0x8c000100+ofs,
4565		so they are not "in the way" of the real BIOS' data area at
4566		0x8c000000-0x8c0000ff. Some other minor Dreamcast fixes.
4567		Moving GDROM DMA register handling into dev_dreamcast_gdrom.
4568		Fixing a bug in the SH4 fipr instruction (inner product): the
4569		rm and rn registers were reversed!
4570		Implementing fmov_rm_frn for double-sized register access.
457120110702	dev_ram now has a "trace" flag. Useful for figuring out e.g.
4572		when/if a program accesses certain memory ranges.
4573		Continuing on Dreamcast PVR (graphics) emulation; implementing
4574		software triangle rendering, so that some demo programs (such
4575		as Comstedt's "tatest", KOS' "gltest.bin" and "dcfighting.bin")
4576		now render solid polygons. Color is random though, and no
4577		textures yet.
457820110706	Implementing register pair variant of SuperH fmov_frm_rn,
4579		adding implementations of "LDS Rm,MACH", and "LDS Rm,MACL".
458020110902	Reviving the old legacy Alpha CPU support, which was removed
4581		20090703 (i.e. NOT using the new framework).
458220110906	Slowly continuing on the Alpha emulation mode: going through
4583		the existing virtual memory and PALcode stuff.
458420120120	Avoid crash in cpu_ppc_instr_loadstore.cc for 64-bit emulation
4585		(since only 32-bit access is actually implemented); fallback
4586		to generic (slow) access.
4587		Minor OpenFirmware and SPR fixes to reach further with a
4588		FreeBSD/powerpc 9.0 kernel (-Xe g4).
4589		Updating the NetBSD/pmax install instructions: 5.1 -> 5.1.1.
4590		Updating the NetBSD/cobalt install instructions 5.0.1 to 5.1.1.
4591		Redirect PowerPC SPRs 0x10c/10d to 0x11c/11d (Time Base).
459220120121	Updating OpenBSD/landisk installation instructions: 4.9 -> 5.0.
459320120507	Adding a patch from Juli Mallett for MIPS rdhwr reg 29.
459420120617	Adding a patch from James Peacock for ARM MSR fields.
459520120724	Adding a patch from David Brownlee (mkstemp on NetBSD), and
4596		trying to make things build without warnings with GCC 4.6.x.
459720120731	Adding a patch from David Brownlee: a more reasonable TOC is
4598		returned in dev_dreamcast_gdrom.cc (for NetBSD/dreamcast).
459920120906	Adding a patch from George Koehler to fix DHCP response bug.
460020120922	Fixing an ARM instruction encoding bug: for shifter_operand
4601		immediates, the carry bit should be set to bit 31 of the
4602		shifter_operand if and only if rotate_imm != 0. I've added
4603		detection for the case when this would bug out (although I
4604		have never seen it happen yet), and fixed a bug which did
4605		happen: for short register formats (i.e. no shift or other
4606		complex things), the code should not be run, but it was run
4607		anyway, leading to wrong Carry flag results for e.g. the TST
4608		instruction. This was triggered when running int64_t modulo.
460920130907	Updating NetBSD/dreamcast test instructions: 5.1 -> 6.1.1.
4610		Updating NetBSD/pmax install instructions: 5.1.1 -> 6.1.1.
461120131006	Adding a dummy Raspberry Pi machine mode.
461220131109	Updating OpenBSD/landisk install instructions: 5.0 -> 5.4.
461320140803	Some cleanup and minor progress of the Dreamcast PVR graphics.
4614		(The graphics displayed when attempting to run the original
4615		ROM now looks more reasonable.)
4616		Updating NetBSD/dreamcast test instructions: 6.1.1 -> 6.1.4.
4617		Updating NetBSD/pmax install instructions: 6.1.1 -> 6.1.4.
4618		Renaming machine mvme187 to mvme187old to avoid collision.
4619		Enabling ELF file support for 88K experiments.
462020140805	Fixing color bug in dev_pvr.cc simpleline, which is used when
4621		rendering Gouraud shaded triangles.
462220140810	Beginning on disassembly of ARM THUMB (16-bit) encoding.
462320140815	Adding rudimentary culling of clockwise / counter-clockwise
4624		polygons in the PVR rendering code.
462520140816	Fixing console.cc so that it doesn't complain about buffer
4626		overrun when pasting a lot of data.
4627
4628==============  RELEASE 0.6.0.1  ==============
4629
463020150312	Making old framework config files work again (@filename).
463120180203	Reviving the (dummy) Luna 88K machine mode from r5458.
463220180204	Continuing on LUNA 88K stuff; some initial fake PROM putchar
4633		functionality for experimenting with OpenBSD/luna88k.
463420180205	Some initial OpenBSD/luna88k syscnputc() output works (hack).
463520180206	Adding enough of a hack to let OpenBSD/luna88k distinguish
4636		between LUNA 88K and 88K2, by faking FUSE_ROM string.
463720180207	Adding a semi-broken framebuffer for LUNA 88K.
463820180208	Making the code build with reasonably modern GNU C++ (6.4)
4639		and clang (3.4.1), although there are lots of warnings.
4640		Updating NetBSD/pmax install instructions: 6.1.4 -> 7.1.1.
464120180209	Making OpenBSD/luna88k print some more things, by faking
4642		more things in dev_luna88k.cc.
464320180214	Minor fixes for LUNA 88K.
4644		88K disasm shows "nop" instead of "or r0,r0,r0" now.
4645		OpenBSD/luna88k 5.2 (an older version) now reaches userland
4646		:-) issuing syscalls, but not 6.2 yet :-( and since no
4647		interrupts are implemented yet, it doesn't really do much.
4648		Removing notes about "legacy modes" in the documentation,
4649		since it was too ugly and those modes are pretty much the
4650		main focus of end-users of GXemul still.
465120180219	Basic interrupt controller and timer interrupt for LUNA88K.
465220180220	Minor progress on the LUNA88K framebuffer.
465320180223	Serial controller interrupt progress for LUNA88K; some
4654		interaction can be done with OpenBSD/luna88k ramdisk user-
4655		land but it is shaky.
465620180302	Fixing bug in dev_mp when returning amount of memory (it
4657		was truncated to 32 bits). Found during YCX5 development.
465820180410	Adding a dummy skeleton for an Intel i960 CPU component
4659		using the new framework.
466020180418	Adding dummy skeletons for a Cyclone/VH (i960VH) evaluation
4661		board, and the HP 700/RX X-terminal (i960CA).
466220180419	Implementing basic disassembly of some i960 instructions
4663		(only the CTRL group so far), and basic register dump
4664		functionality.
466520180420	i960 MEM and COBR instruction group disassembly has now
4666		been implemented.
466720180422	Adding a simple b.out file loader for i960 binaries, but
4668		no support for symbols yet.
4669		Beginning to add some REG instruction disassembly (i960).
467020180423	Implementing the rest of i960CA REG instruction disasm.
467120180424	Beginning to implement i960 dyntrans instructions (a simple
4672		'b' branch and a simple 'mov lit,reg' so far).
467320180428	Implementing happy case of an "lda" i960 instruction which has
4674		an extra displacement word, i.e. non-standard dyntrans
4675		instruction length.
467620180503	Implementing i960 lda with immediate 12-bit offset, and
4677		dummy (nop) sysctl cache invalidation (msg type 0x01).
467820180613	Fixing an old TODO for invalidating translation caches when
4679		using non-4KB pages for MIPS. This makes HelenOS 0.7.1/malta
4680		boot further than before.
468120180614	Removing an old TODO regarding MIPS count/compare interrupts;
4682		this causes HelenOS on Malta to run much faster (while
4683		NetBSD/evbmips (malta) and /cobalt are not worse off than
4684		before).
4685		Updating NetBSD/evmbips and /cobalt installation instructions
4686		to 7.1.2 (with a note about clock not being correct).
4687		More work on the other-than-4KB bug fix.
468820180618	Doubling DEFAULT_DYNTRANS_CACHE_SIZE from 48 to 96 MB.
4689		Updating more NetBSD install instructions to 7.1.2.
469020180619	When reading disk sectors from the 'disk' device (for e.g.
4691		testmips), automatically move to the next sector after
4692		reading (or writing).
4693		Allow testmips programs to detect whether the X11 framebuffer
4694		is in use or not (returns 0x0 as resolution if not).
469520180706	Adding a dummy VoCore machine skeleton using the old framework
4696		(with the wrong CPU type 4KEc instead of 24K).
469720180707	Implementing the rorv (aka rotrv?) MIPS instruction.
469820180725	More clang fixes.
469920180726	Minor progress on booting Linux/VoCore. MIPS rdhwr CC is
4700		implemented as reading the COP0_COUNT register.
470120180819	Applying a patch from Andreas Gustafsson (gson) for the MIPS
4702		div and ddiv instructions, which checks for divide overflow
4703		manually before doing the divide.
470420180820	Updating the Sprite/DECstation URLs.
470520180821	DECstation 5000/125 "3MIN" mode has been broken for quite
4706		a while; attempting to rewrite/resurrect it.
470720180822	Rewrote/refactored enough of the dec_ioasic code to make the
4708		5000/125's original PROM output its first boot messages again
4709		(and NetBSD/pmax and OpenBSD/pmax too).
471020180823	Continuing on making 5000/125 emulation work again: rewriting
4711		the interrupt code for the scc serial controller, and
4712		connecting TURBOchannel graphics cards.
4713		Fixing the LK201 keyboard self-test codes so that the 5000/125
4714		PROM doesn't complain.
4715
4716==============  RELEASE 0.6.0.2  ==============
4717
471820180910	Running the SGI O2 PROM works a little bit again, with some
4719		hacks (updating the documentation).
472020180917	OpenBSD/landisk 6.3 guest OS install instruction update.
472120180918	Fixing a regression bug which was introduced September 2012
4722		(svn r5805), regarding shifted immediate values, which caused
4723		OpenBSD/cats to fail during install.
472420180920	Making ARM disassembly show THUMB instructions, if the lowest
4725		bit of the address is 1. (They can not be executed yet though.)
4726		Fixing broken "print" command. Oops.
4727		Implement some more THUMB disassembly.
4728		Fail rather than silently treating ARM instructions beginning
4729		with 0xf as nops.
4730		Allow the emulator to start in THUMB mode (lowest pc bit set).
473120180921        Continuing on ARM THUMB disassembly.
4732		Beginning to implement very slow THUMB interpretation (not
4733		dyntrans). Horrible performance-wise, but better than nothing.
473420180924	Oops, forgot to add machine_rpi.cc back in 20131006.
473520180925	Cleaning up some more files on make clean_all. Thanks to
4736		Göran Weinholt for noticing.
473720180927	Fixing big-endian ARM loads/stores (except perhaps double-word
4738		loads and stores); probably slows everything down a bit.
473920181001	Continuing on the slow THUMB instruction interpretation.
474020181008	Disk images added using -d for SGI modes are now SCSI, not IDE.
4741		Importing newer crimereg.h and crmfbreg.h from NetBSD.
474220181009	Moving around SGI O2 graphics code, in preparation for making
4743		more use of the "new" NetBSD defines.
474420181011	SGI O2 GBE now switches resolution if the OS wants it (i.e.
4745		Linux/O2), rather than requiring a recompile.
4746		Also, detection of Linux' "tweaked" (linear) mode, thus
4747		avoiding a recompile when experimenting with Linux/O2.
4748		NetBSD can now show some output on the O2 framebuffer too.
474920181012	Fixing a bug in the generic X11 framebuffer output, so that
4750		scaledown is preserved even when a guest OS switches resultion
4751		at runtime.
4752		Continuing on the SGI O2 graphics; when the nr of tiles or
4753		"partial pixels" is in mismatch with the screen resolution,
4754		the skewed result now looks the same as on my real physical O2.
475520181013	More SGI O2 graphics work: TLBs. OpenBSD can now show graphical
4756		console messages.
475720181015	Some more emulated O2 registers now return the same values as
4758		my real O2 does.
4759		Refactoring the O2 "output" to always be 24-bit, separate from
4760		the emulated framebuffer tiles (which may be e.g. 8 bit).
4761		NetBSD's colors (RG3B2 mode) are now probably more correct.
4762		Changing from 64 to 128 MB ram for the O2; this matches what
4763		my real O2 has, and it is now detected correctly both by OSes
4764		and the PROM.
4765		Implementing the O2's GBE cursor; both bitmap and crosshair
4766		modes work exactly like on the real machine now.
4767		Finally fixed the bug which caused scroll-up to not work when
4768		running the O2's PROM.
476920181016	More work on the O2 graphics; managed to get rid of the Linux
4770		tweaked special case rendering mode.
4771		Splitting the O2 GBE into a GBE part and a Rendering Engine
4772		part.
477320181017	Refactored the register representation in dev_sgi_ip32's crime
4774		interrupt controller.
4775		Adding a horrible hack to enable the use of a RAM_MIRROR at
4776		0x40000000 (for SGI O2 emulation).
477720181018	Updating the OpenBSD/sgi installation instructions (still
4778		in unsupported.html though, and still only diskless).
477920181019	Fixing some 8242 key encodings (used by the SGI O2 mode).
4780		Better memory bank stuff for SGI O2 (128 vs 256 MB RAM).
4781		Taking the FR bit of the MIPS status register into account to
4782		use 64-bit floating point registers rather than pairs of 32-bit
4783		registers (need for OpenBSD/sgi to work).
4784		Moving OpenBSD/sgi from unsupported.html to guestoes.html.
478520181022	Fixing broken MACE interrupt mechanism for SGI O2.
478620181025	Implementing MTE_MODE_COPY in the SGI O2 memory transfer engine
4787		to allow NetBSD to scroll up the framebuffer.
4788		Made the pckbc work with NetBSD/sgimips.
4789		Only allow SGI O2 MTE memory fills to pages that are in a TLB.
479020181026	Some cleanup and refactoring of the O2 rendering engine and
4791		other things.
4792		ARCS environment fixes (better values for diskless booting).
479320181030	Updating NetBSD/sgimips guest OS instructions to version 8.0.
4794		Some progress on the hw accelerated graphics operations used
4795		by NetBSD/sgimips' Xorg driver.
479620181031	Better separation of pckbc scancode translation tables 1, 2,
4797		and 3, and beginning to play around with PS/2 mouse movement.
479820181101	Fixes to the SGI O2 mec ethernet implementation's register
4799		alignment to correctly support mixed 32/64-bit access.
480020181102	Adding some PHY/MII related parts of the O2 mec device (not
4801		needed by NetBSD/OpenBSD it seems, but by the O2 PROM).
480220181106	Splitting SGI O2 rectangle drawing and line drawing into
4803		separate parts; NetBSD/sgimips' Xorg now looks reasonable.
480420181107	Progress on PS/2 mouse emulation; NetBSD accepts it as "pms0
4805		at macekbc0" in the SGI O2 emulation mode. (No actual host
4806		mouse input yet though.)
480720181108	Implementing host X11 mouse input for the pckbc device.
480820181112	More work on the O2 rendering engine Raster Ops. Moving windows
4809		within NetBSD's X11 now looks as it should.
481020181115	Changing the PCI product ID for the AIC7880 SCSI controller in
4811		the SGI O2 emulation mode to match my real O2 (0x9004, 0x8078).
481220181120	Continuing on SGI O2 graphics: "overlays" (seem to always be
4813		8 bits deep?).
481420181121	Getting rid of a hack in the O2 rendering code for "stipple
4815		patterns", by looking at the "stipple mode" register.
481620181122	Fixing an old very annoying bug where floating point number
4817		0x0 was interpreted as 2.22507e-308 rather than 0.0. Thanks to
4818		Maya Rashish (coypu@SDF.ORG) for reporting the bug.
481920181203	Beginning on test/floatingpoint infrastructure. Fixing some
4820		more floating point bugs.
4821
4822==============  RELEASE 0.6.1  ==============
4823
482420181217	Implementing the ARM uxtb instruction.
4825		Implementing a simple Android boot.img file loader, and two
4826		dummy Android ARM machines ("Sony Xperia Mini" and "Finow X5
4827		Air").
4828		Treating ARM dsb/dmb/isb instructions as NOPs for now.
482920190101	Implementing the ARM v7 movt and movw instructions.
483020190103	Implementing the ARM sxth, uxth, bfi, and ubfx instructions.
483120190110	Adding disassembly (but not execution yet) of ARM uxtab, uxtah,
4832		ldrex, and strex instructions.
483320190112	Making sure that when writing to mirrored RAM, any dyntrans
4834		translations made in either the mirror or mirrored ranges are
4835		invalidated.
483620190122	Beginning on a hack to allow emulated SGI O2 machines have more
4837		than 256 MB of RAM. Works with OpenBSD/sgi so far.
483820190206	Implementing the ARM ldrex/strex (load-linked / store-
4839		conditional) instructions, and mls (multiply-and-subtract).
484020190218	Implementing the ARM rev, uxtab, and uxtah instructions.
484120190224	Implementing the ARM sbfx instruction.
484220190227	Adding a skeleton RISC-V CPU and RISC-V "virt" machine.
4843		Refactoring some parts of the new framework to deal better
4844		with variable length instructions during disassembly.
484520190306	Applying a patch from Andreas Gustafsson (gson) to set the
4846		SA_RESTART flag in the timer sigaction call.
484720190417	Applying most of NetBSD's patches for the gxemul package (all
4848		except two).
484920190418	Adding 512 KB ROM at 0xfff80000 in the HP 700/RX machine.
485020190422	Implementing the i960 "mov reg,reg" instruction.
485120190502	Adding a section to the documentation about how to use the
4852		emulator as a debugger (breakpoints, unassembling, single-
4853		stepping, inspecting registers, and so on).
485420190515	Making sure that when invalidating virtual addresses in
4855		the dyntrans cache, take into account that not all CPUs can
4856		use all 64 bits for virtual addresses. This fixes a very old
4857		bug which affected Glatt MU/MK. Unfortunate side effect means
4858		that internal cache invalidation goes from O(1) to O(n) for
4859		64-bit address spaces. :-(
486020190519	Better fix for the issue found four days ago, taking 32-bit
4861		addressing (UX=0) on 64-bit MIPS CPUs into account. The cache
4862		invalidation code is now O(1) again. :-)
486320190520	Unfortunately, to make everything work with all guest OSes
4864		with many different kinds of CPUs (R3000, R4000, R10000),
4865		the invalidation is now O(n) again, but it works.
486620190521	De-emphasizing the new framework in the man page and in the
4867		help/usage message produced when running gxemul with no
4868		arguments, focusing on the old/legacy framework.
4869		Removing the MIPS CPU emulation and testmips machines from
4870		the new framework completely. Any MIPS enhancements and bug
4871		fixes will go into the old framework only.
4872		Renaming oldtestmips back to testmips.
487320190523	Starting to move guest OS installation instructions into
4874		individual machine pages, rather than having all of them
4875		randomly in the general guest OS page.
487620190525	Adding detection of /opt/X11/{include,lib} in the configure
4877		script, to build with X11 on MacOS with XQuartz installed
4878		(thanks to eschatologist in the #GXemul IRC channel on
4879		FreeNode for noticing this).
488020190530	Removing the "QEMU_MIPS" machine mode, which was useful back
4881		in 2006 to compare performance against QEMU's MIPS emulation.
488220190601	The fix 2018-06-13 for translation invalidation when using
4883		larger than 4 KB pages, which made HelenOS/malta run further,
4884		caused a regressions which broke NetBSD/hpcmips (on VR4121
4885		CPUs, which have 1 KB native page size). A bit of cleanup seems
4886		to have fixed this, so that both NetBSD/hpcmips and
4887		HelenOS/malta work now.
4888		Applying a fix for the ARM sbc and rsc instructions from
4889		Joergen Nilsson.
489020190606	Changing PCI device nr from 9 to 10 for the PIIX4 controller
4891		in the Malta emulation mode, to match a real dmesg from
4892		NetBSD/malta.
4893		Fixing disassembly of the MIPS TGEI, TGEIU, TLTI, TLTIU, TEQI,
4894		and TNEI instructions (NetBSD's pkgsrc patch had it wrong!).
4895		Implementing the MIPS TGEI, TGEIU, TLTI, TLTIU, TEQI, and TNEI
4896		instructions (but have not really tested them).
4897		Updating NetBSD/evbmips (Malta) installation instructions from
4898		7.1.2 to 8.0 (which needs the tgeiu instruction to boot).
4899		Fixing pmax bootpath bug (thanks for Andreas Gustafsson for
4900		figuring out what the problem was).
490120190610	Adding a memory range (ROM) dumping tool for HP 700/RX to the
4902		experiments directory.
490320190611	Expanding the MIPS lw/sw 2-, 3-, and 4-instruction combinations
4904		(when loading/storing using the same base register) so that
4905		they are used also when emulating 64-bit CPUs such as the
4906		R4400. (Note: still lw/sw, i.e. 32-bit loads and stores, NOT
4907		ld/sd.)  Also stretching it to 5-instruction-sequences.
490820190614	Adding __builtin_expect (likely/unlikely) detection to the
4909		configure script.
4910
4911==============  RELEASE 0.6.2  ==============
4912
491320190626	Rounding up disk image sizes to full cylinders; fixes a bug
4914		where guest OSes could fail to read the end of e.g. a .tar.gz
4915		file supplied as a disk image on the command line.
491620201006	Applying a rather large patch from Jason Thorpe for using
4917		/dev/tap devices in addition to the existing networking modes.
4918		The patch also consists of enhancements to the DEC21143 and
4919		Lance ethernet devices to perform packet filtering.
492020201015	Adding support for masks for memory mapped components in the
4921		new framework. Used so far by the HP 700/RX, which has 2 MB
4922		RAM repeated throughout 0x30000000..0x3fffffff.
492320201101	bootblock.cc now parses SGI disk boot blocks, and tries to
4924		load the OSLoader (sash), if booting without an explicitly
4925		provided OS kernel.
492620201103	The ECOFF file loader can now (barely) load relocated binaries,
4927		such as "sash" from an IRIX installation on my real O2.
492820201105	Some minor refactoring of arcbios environment variables etc,
4929		to attempt to get emulated O2 boot-from-disk image (or cdrom
4930		image) to work better.
493120210116	Include ASID and VPN2 in MIPS load/store misalignment
4932		exceptions (patch from Nick Hudson).
493320210123	Adding a patch from Luchezar Georgiev for missing variant of
4934		rot for 88100 (immediate argument), and for missing addu_cio
4935		and subu_cio instructions.
4936		Inspired by Luchezar Georgiev's patch for subu_cio, a closer
4937		look at the subu borrow bit resulted in a bug fix which finally
4938		allows a OpenBSD/luna88k 6.8 ramdisk to boot all the way to
4939		userland.
494020210127	Writing some ugly glue code to connect the Lance Ethernet
4941		device (dev_le) to the LUNA88K machine. An OpenBSD/luna88k 6.8
4942		ramdisk can now (barely) reach the internet using TCP/IPv4.
494320210130	Writing guest OS install instructions for running OpenBSD/
4944		luna88k with root-on-nfs, which involves using NetBSD/pmax as
4945		an NFS server and OpenBSD/sgi (!) to run MAKEDEV.
494620210207	Fixing a spelling mistake in the 88K fdiv.sss instruction,
4947		making self-compilation of [an older version of] GXemul inside
4948		OpenBSD/luna88k get further.
494920210209	Adding keyboard support to dev_luna88k.
495020210213	Implementing exception cases in 88K xmem_slow implementation.
495120210214	Implementing the fdiv.dss 88K instruction.
495220210215	Implementing the fsub.sss 88K instruction.
4953
4954==============  RELEASE 0.6.3  ==============
4955