History of BeebIt
-----------------

All work by Michael Foot except :
[JB] Julian Brown
[JK] John Kortink
[JL] James Lampard

Version 0.42.1 (03 Aug 2002)

- Fixed video display when interlace is on.

Version 0.42 (27 Jul 2002)

- ZeriBeep module has been fixed to stop random crashes. [JK]
- Tweaked the video emulation to better handle mid frame crtc register updates.
- Added Screen Sprite saving on the Save menu. [JL]
- Pressing the Print Scrn key will now save a screen dump of the current screen. [JL]
- Added Master Compact emulation.
- Modified OS memory read, for Master emulation, to allow MOS 3.50 to work.

Version 0.40 (18 May 2002)

- Added 65C12 CPU emulation.
- Added Master 128 emulation.
- Added WD 1770 FDC emulation (read only).
- Replaced the BeebSound module with ZeriBeep. This produces a far more accurate sound emulation. [JK]
- Various other speed ups, fixes and improvements.

Version 0.32 (16 Dec 2001)

- Fixed problem with the setting of the pitch for channel 0, when a write to channel 1 was done with a volume of 0.
- Fixed the loading of ROMs where the ROM path is not a directory.
- Added opcode 07 interface to allow BeebIt to access the BeebItFS filing system.
- Made many cosmetic and small fixes to the UI.
- Made the ARM code more compatible with 32 bit code.
- Rewrote a lot of the 6502 core to speed up the execution.
- Added the machine name to the icon bar.

Version 0.30 (21 Jun 2001)

- Fixed templates to comply with style guidelines and work with a wider range of desktop fonts.

Version 0.30 (04 Feb 2001)

- Made cursor blink in all modes except teletext.
- Fixed Wimp data transfer protocol so memory dumps can be saved directly to applications.
- Rewrote main read and write procedures to increase execution speed and make it easier to maintain. 
- Did a lot of work to change main CPU core from half 'C' code and half Assembly language to be 100% Assembly language. Increase in speed is huge! New code is not completely optimised yet either.

Version 0.25 (04 Nov 2000)

- Fixed the setting of the status byte for the 8271 FDC. This fixed the "Not found" messages on Elite and Elite-A.
- Added support for the Model B+. Options menu has been changed to allow machine type and OS ROM combinations.
- Rewrote more opcodes in assembler.

Version 0.20 (13 Aug 2000)

- A couple of tiny bugs were accidently introduced in 0.15 causing a few games not to run correctly. These have now been fixed.
- Stopped write access to memory addresses &FF00-&FFFF. Level 9 graphical adventures now work.
- Rewrote non-decimal ADC and SBC routines in assembler.
- Rewrote PHP in ARM assembler.
- Rewote IRQ handling code in ARM assembler.
- Added printer port to User VIA.
- Added video frame skip option.
- Added support for double sided disc images (DSD). Both track and side interleaved images are supported.
- Fixed small problem with palette colours. The Hobbit with Graphics works again.

Version 0.15 (30 Apr 2000)

- Rewrote branch opcodes, JSR, ROL, ROR, RTI and RTS opcodes in assembler. Increase in speed is quite noticable.
- Added filetype &B22 as DFSImage. Double clicking or dragging file to the iconbar icon will automatically load image as drive 0 and enter the BBC emulation.
- Added a few SKB opcodes. Videos Revenge now works.

Version 0.15 (08 Apr 2000)

- Fixed problem with the disc writeable option and the save as window.
- Rewrote 6845CRTC and video emulation to better refect how the real hardware works. This now allows the screen to be vertically centered correctly.
- Uridium now works correctly because of adjustments done above.
- Moved the re-mapping of the palette on a mode change. The colours in Uridium are now correct.
- Added emulation of the Analogue to Digital converter.
- Added Joystick emulation. This allows the Mouse to simulate the Joystick movement and buttons.

Version 0.12 (15 Feb 2000)

- Added cursor emulation to all modes except 7.
- Fixed bug in 6845CRTC code. Reading of some registers was not returning the correct values.
- Fixed video palette so that flashing colours now work. Arkanoid and BMX on the Moon now look correct.
- Changed the way the configuration screen works. Buttons Save, OK and Cancel now work as expected.
- Changed the way the options screen works. Buttons Save, OK and Cancel now work as expected.
- Added ability to specify a directory path for ROM images on the options screen.
- Changed MODE 2 plotting code to use a lookup table. Number of instructions to plot each pixel has dropped from 16 to 4. If this does not speed things up, I don't know what will!
- Changed MODE 1 and 5 plotting code to use a lookup table also.
- Fixed screen update timing when Non-Interlaced update is used.

Version 0.10 (24 November 1999)

- Julian fixed the sound module so it would always initialise properly. [JB]
- Mapped the keypad to valid BBC key codes.
- Rewrote some more 6502 op-codes in ARM assembler.

Version 0.10 (18 October 1999)

- Finally got hold of a *real* BBC to test with.
- Tweeked video vertical sync interrupt. Revs is now correct.
- Changed 6502 status register to set B and unused flags correctly.
- Fixed bug in ADC command. Flag were not being set correctly.
- Added sound support. Thanks Julian. [JB]
- Modified System VIA slightly. Psycastria 2 now works.
- Wrote all 6502 addressing modes in assembler. Should speed things up a bit.
- Modified updating of timers in system and user VIAs.
- Modified 6502 and 6522 cycle timing.
- Added sound on/off option.
- Snapshot saving still does not work. Will look at this some other time.
- Added Reset option to main menu.

Version 0.06 (22 Aug 1999)

- Fixed MODE 6 where only half the screen was being drawn.
- Wrote all screen mode display routines in assembler for speed.
- Mapped Shift Lock key to Left Alt.
- Rewrote opcode &20 JSR in assembler.
- Fixed remapping of palette on mode change. The Hobbit with graphics now looks correct.
- Fixed handling of soft and hard resets when BREAK pressed. Exile can now save and load games.
- Added CPU speed option.
- Added screen update speed option.
- Tweeked timing of screen updates again. This gives a more accurate emulation.
- Altered screen redraw to handle width changes on the fly. G.A.C. now looks correct.

Version 0.05 (31 May 1999)

- Implemented write protecting of disc images.
- Fixed sideways ram bug introduced in 0.03.
- Fixed problem with SBC opcode.
- It appears Exile was not quite right in 0.03. Now it works correctly.
- Rewrote screen redrawing to draw proper interaced frames. Should speed up execution on slower machines but redraw is now not as defined as in previous versions. I will add a screen drawing option soon.
- Tweeked interrupt handling. Now Skirmish, Strykers Run and others work! Revs is nearly correct!
- Added ability to save snapshots (in 6502Em format) and memory dumps.
- Fixed system via keyboard bug. Psycastria now works.
- Added setting and restoring keyboard leds to show the correct keybard status.
- Fixed detection of Econet to return disabled. Dr. Who and the Mines of Terror now works.

Version 0.03 (18 April 1999)

- Rewrote a few 6502 op-codes in ARM assembler. This should increase emulation speed.
- Rewrote 6502 read and write address routines in ARM assembler. This should increase emulation speed.
- Fixed stack wrapping problem. Exile now works (woo-hoo!).
- Added disc drives 2 and 3.
- Changed drive order on configuration screen to 0,2,1,3.
- Added in ability to write to disc images.

Version 0.02 (14 March 1999)

- Tweaked interrupt handling for Rocket Raid.
- Fixed stupid flag bug in LDX command. Rocket Raid now works.
- Fixed screen address wrap-around. Fortress now works.
- Fixed Bug in setting V flag in SBC. UIM now works.
- Added some extra op-codes. Zalaga now works!
- Completed keyboard. All keys are now implemented.

Version 0.01 (19 Feb 1999)

- Added MODE 3
- Added MODE 6
- Fixed SBC BCD calculations
- Added front end
- Added sideways RAM capibilities
- Fixed timer problem in System and User VIAs

Version -1.00 (15 January 1999)

- Initial release
