06 Mar 1999
===========

- Changed code to make it easier for others to port it to other systems; 
potential ports for MacOS and Linux can go ahead
- I updated the z80 core, but a few bugs crept in, now fixed.
- Now handles WM_DISPLAYCHANGE message. This means that if it is in windowed
mode and you change the display settings, it will continue to work.


4th Jan 1999
============

It's another goodie!!!!!

- Code to allow multiple VSYNCS per frame (Paradise demo etc); thanks
to Ulrich.
- Fixed problem with The-Demo not working in CPC+ mode.
- adjusted screen offset to show CPC display better
- in CPC+ mode, added code so that screen split fault is reproduced
(when screen split line is 55 under standard screen settings).
- in CPC+ mode, added code to handle re-programming of vertical scroll
at any time (not sure if totally accurate - requires more testing)
- CRTC Interlace Sync and Video Mode (out &bc00,8:out &bd00,3)
I know of two demos that use this: BSC DEMO 7, 5kb Demo 1
Both are very nice. For 5kb demo 1, run in CPC6128 mode with CRTC type 1.
When this demo is run on a CPC/CPC+ with Type 0 or type 3 the screen
will be blank as with the real demo.
- fixed Vsync output when CRTC is operating in Interlace or Interlace
and Video Sync Mode - it is correctly delayed by 1/2 scanline where appropiate
- rendering of black in monitor vsync and hsync areas (The part of the Twinblast
demo with lots of little bit scrolls looks correct now).
(Try: out &bc00,8:out &bd00,3:out &bc00,9:out &bd00,6 to see what it this feature looks like 
from BASIC). This is only noticeable if the VSYNC falls inside the screen area, 
and the border is not black.
- In CPC/CPC+ mode you can choose grey-scale monitor mode. (might be
useful for screenshots in magazine's or fanzine's??). Not sure if this is completely accurate
compared to a real CPC+ grey-scale/paper-white monitor. The RGB colours are converted to the YIQ
colour model, which is used in television. The Y component is used to generate the grey colour.
If you are running in 16-bit mode you can only have 32 grey-scales, so sometimes it may not look
good.
- In CPC mode you can choose green-screen monitor mode (some demos and programs support this and
have special versions for green screen (Merlyn demo 3, Esc & KKB 1, Terrific Demo, Mega Party Demo)
In CPC+ mode this is not selectable. The CPC+ didn't come with a Green Screen, and
as far as I know cannot be connected to one without some additional circuitry. So if this
is selected on CPC+ you get grey-scale monitor mode.
- Code to allow multiple HSYNCS per line. This allows more parts of Chany's DreamEnd 
megademo to look correct. 
- when changing to full-screen mode, debugger windows are now closed down.
- you can choose the Windows task priority. Currently there is a choice
between Normal (the default - and what was used in previous versions), or
Priority. Normal favours system resposiveness. Priority favours emulator
responsiveness, and other system tasks will run slowly. Use this feature
if you have a slow machine to get a little bit more CPU time for the 
emu. This feature may be expanded to give more control in a future release.
- More fixes to the CRTC emulation (0 and 3) 
- CRTC1 implementation has begun, some demos that are specifically
for CRTC1, or have a CRTC1 implementation work much better.
 (allows VSYNC when Reg7>Reg4 and Reg5!=0. If Reg5>9 Reg7 can be 40.
Reg7 can go as far as 42 when Reg5=31).
- fixed some more of the CRTC type 0, type 1 and type 3 emulation.
- Now that CRTC1 implementation has begun, and reg 8==3 emulation has
also been done, when DreamEnd megademo is run in CPC mode, with CRTC type
1 it will run the whole demo. Running in CPC mode with type 0 will
not run the whole demo, and this is what should happen (it will show the "Sorry" screen). 
Note in this demo, running it in CPC+ mode will not even get the "Sorry" screen. The CPC has
hung waiting for a interrupt to occur which cannot because they have been disabled. This happens
when it is run on a real CPC+.
- improved the CRTC switching code. Previously if some CRTC registers
had been setup, and then not changed again and a different CRTC was
selected, chances were that the display could be wrong (e.g. if reg 8
was programmed to blank the screen reg 8 bits 5,4 and another CRTC was
selected that didn't support this, the screen would still be blanked
instead of being visible. Now fixed!), 5kb demo 1 part 3 shows up now it the CRTC is changed.
- CRTC code improved a bit so that some unnecessary calculations were
reduced. (cleaner code, plus minor speed improvements)
- code to allow HSYNCs to overlap (Now S&KOH main part - the bit with
the picture in it looks correct. The best looking emulation currently is
with CRTC type 1, as far as I can tell this is perfect!)	
- improvements to interface (some bug fixes and speed improvements, plus some unnecessary stuff
removed)
- you can drag and drop files to the emu, the following are supported:
Snapshots (64k or 128k), CPC+ Cartridges.
- automatically changes to CPC+ mode when a cartridge is inserted.
- CRTC type 4 is set to use the CRTC type 1 emulation because it appears
to be very close in operation. The type 4 version of the S&KOH demo
works under type 1 also. I don't have a CPC with a type 4 to test with.
I guess the type 4 is very similar to the type 3 as well.


NOTE: I've been changing the CRTC emulation code a bit, so some of
it may be broken. I'm running a lot of testing programs on it to make
sure it works correctly... the previous CRTC type 0 acted more like a type 3,
but now it should start to work more like a type 0. The previous type 3
was too "generous" and ran too many demos that it shouldn't have, now
it runs more better. Some other demos will fail :(

I've also been experimenting with improving the accuracy of the emulation,
by only emulating the OUT commands with more accuracy. However it has
made the emulation suffer quite a bit. With this accuracy more demos
appear to work better as a result at the expense of speed. I'm working
on a better solution that currently used.

I'm also working on supporting other hardware devices. If you would
like to see any done, please contact me.


to be done:
- improved handling of interrupt line counter reset feature in GA
(for "kev.dsk -best to run, this must clear after GA HSYNC, on The-Demo
it can be cleared at any time. Dreamend requires the clear on end
of CRTC hsync)


- adjust brightness on all monitor selections (an attempt at emulating
the brightness dial on the monitor)
- show keyboard layout (CPC keyboard, then with PC keys assigned to 
that key)
- adjust brightness on all monitor selections
- using GA Vsync to correctly adjust screen to the pixel
- vsync not in correct place on CPC+ meaning that border doesn't change
colour when programmed in basic (out &bc00,8:out &bd00,3 shouldn't let
colours change!!!)
- interrupt line clear feature of GA correct.
