List of things to do in Virtual X68000.  -*-C++-*-

* Testing Screen Drawing by Mesa

Screen drawing by Mesa should be tested.  Mesa has texture scaling and
alpha blending that are missing in plain GTK+.  In addition, it could
potentially take advantage of hardware acceleration on modern video
cards.

A possible drawback of using Mesa is worse performance on older
hardware.  Can it be paid for better user interface?

* Implement the DMA controller.

* Generalize interrupt handling.

* Implement text cursor.

* Implement control code.

* Update the status bar when the process exits.

* Better text VRAM emulation.

** Optimize the text VRAM drawing.

** Implement hardware text scrolling, or at least prepare for it.

* Improve console device behaviour using emulated keyboard input.

* Implement minimum FLOAT calls.

* Implement DOS calls _FILES and _NFILES.

* Implement DOS drives.  This will require some run-time
configuration.

* Write the Reference Manual.

Maybe version 1.1 or later

* IOCS function handlers.

* More DOS compatibility.

* More machine instructions.

* Instruction handlers must be changed into templates.

* The value of errno must be looked at for DOS calls.

* Efficient CCR update.  (Mostly done)

Since CCR is normally updated more often than referenced, speed of CCR
update is important to improve system performance.

Deferred update seems difficult on m68k architecture.  Some bits in
CCR may not change by an instruction while others do, so its value
cannot be determined by the last operation.

M68k instructions can be categorized into three classes:
(1) that change all five bits in CCR,
(2) that change all bits except X, and
(3) that change Z only (bit test).

Version 1.2 or later

* Graphic VRAM emulation.

* Common case optimization.

Some common code sequences (strcpy, memcpy, etc.) can be optimized.

* Non-square pixel graphics.

X68000 has some graphics modes where pixels are not square.  Aspect
ratio is approx. 3:2.  Run-time scaling may be needed.

