Build 1020 changes
------------------
- I had broken the audio playback of WAV tapes when adding the support for
  different frequencies, it is back.
- fixed a 6502 behavior I forgot to implement: due to instruction prefetch, the
  6502 will always execute an instruction after a rti, even if there's a pending
  interrupt.

Build 1019 changes
------------------
- support for WAV files with various frequencies (previous versions only accepted
  4800 Hz)
- several bugs corrected thanks to Simon : I had broken the clock's cycles
  global count, which affected a lot of parts in the emulator... Also, thanks
  again for forcing me to fix a long-awaiting bug when switching back from the
  environment screen...

Build 1018 change
-----------------
- build 1011 had broken the Dump/restore features, because the PSG contents
  were not saved. This should now be fixed.

Build 1017 changes
------------------
- fixed another bug in Hardware Mode Tape: when rewinding the tape and keeping
  the REC button pressed, a CLOAD would cause corruption of the wav file.
- added some safety features : rewinding the tape in Hardware Mode Tape or
  switching tapes will now release the REC button.
- added SLOW mode detection for wav files started from Windows : a CLOAD"",S
  is now automatically inserted.


Build 1016 change
-----------------
- Changed the way the sector size is computed in order to cope with the XLDOS protection.

Build 1015 changes
------------------
- fixed a bug when switching to Hardware Mode tape.
- clears the ASCII code buffer of the Oric when booting from a tape.


Build 1014 changes
------------------
- it is now possible to manually insert .tap tapes with the menu interface (it was previously only possible to insert .wav tapes when in hardware tape mode).
- recording a program on a .tap now writes four synchronisation bytes ($16) instead of three. But the emulator is still able to read files with one, two or three synchronisation bytes.
- in .tap mode, a trap has been added on the "bit read" routine in rom, so that more programs that use a copy-protection routine can be used in .tap mode without having to resort to .wav tapes.

Build 1013 changes
------------------
- thanks to Dbug who spotted a bug when timers reach zero (a fraction of last instruction's cycles were not counted). This should now be fixed. There's also a simple fix of the duration of the initial countdown of VIA timers.


Build 1012 changes
------------------
- thanks to Chema's latest game, we discovered a hardware bug of the real Telestrat's specific ULAs (HCS3119 and HCS3120) that affects the FDC access.
This hardware bug is now emulated in Euphoric.


Build 1011 changes
------------------
- now emulates the PSG IO-port direction bit. This is not useful (it prevents the keyboard to work), but it removes a difference between the emulator and the real thing.
- also emulates the propagation of ground voltage through the keyboard matrix intersections when several keys are pressed simultaneously. Again it's not really useful (it will even make wrong key detection in some conditions), but at least it behaves like the real thing.
- Euphoric was so strongly emulating the crash of a 6502 executing a column 2 opcode, that it was stucked in a tight loop... Now the reset key allows to regain control... 


Build 1010 changes
------------------
- added a specific option for the Pravetz (-p). Also, euphoric.ini has a specific Pravetz rom line:
"PravetzRom=...", and "Computer=Pravetz" can be used. Last but not least, windows shortcuts for Pravetz
with and without disk interface are provided.
- added emulation of Borislav Zahariev's Overlay Ram Access add-on. This add-on enables access to the 16 KB of ram, as does the Microdisc controller. Borislav (aka. Bobby) has also tied this interface to his Apple DiskII Interface, allowing Bobby RDOS 2.10 to be loaded in the overlay ram, thus freeing the 48 KB of the Pravetz 8D.
- updated the Configuratoric tool to select a rom for the pravetz and to use the Overlay Ram Access add-on. Also, two Pravetz shortcuts have been added to the Euphoric menu, and double-clicking .nib disks automatically starts a Pravetz with a DiskII interface. Thanks to Georges and the great Pravetz-8D fans for all the information on this computer, and the nice icons.


Build 1009 changes
------------------
- I had inadvertantly broken the pravetz disk interface soon after adding it. It is back again : add line "DiskController=Apple" to euphoric.ini, and don't forget to provide the disk interface eprom with line "AppleInterfaceEprom=eprom8d.rom", and also use pravetzt.rom or pravetzd.rom as the internal oric rom. If you use the pravetzt rom, it won't automatically boot the floppy, you will have to issue a CALL#320.
- also I only have partial information on the Apple interface hardware used by the Pravetz, so writing to disk didn't work. I have modified the value returned by a register, it seems it works now...

Build 1008 changes
------------------
- modified the 6502 emulator in order to be able to detect a timer countdown before an interrupt is raised. Thanks to Simon for having spotted a bug in M.A.R.C that exploits this "feature"... Also, quite heavily changed the 6502 emulator at the same time to simplify it, and found that some undocumented opcodes are bogged... (not fixed yet)

Build 1007 changes
------------------
- only a bugfix that caused Euphoric to crash under DOS when accessing the environment screen (F1).

Build 1006 changes
------------------
- added a third ram pattern type: Simon sent me a very neat picture of his Oric boot screen demonstrating this pattern type.
- added a "video dump" feature. Two new options are now recognized in the euphoric.ini file. FrameDump=Y enables the frame dump feature : video frames are dumped as long as the F12 key is pressed. Screenshot files with names frame0000, frame0001, etc. are created. Beware that pressing the F12 key in this mode can quickly fill up your hard disk. You can adjust the framerate with option FrameSkip=... FrameSkip=0 dumps 50 images per second. FrameSkip=1 skips every other frame, and thus dumps 25 images per second. FrameSkip=9 skips 9 frames out of 10, and thus dumps 5 images per second, etc.


Build 1005 changes
------------------
- the debugger has been slightly improved (there's a small assembler now) and made more consistent with existing PC debuggers (like debug :-). Here are the commands:

A: Assembler
B: set Breakpoint address
D: Dump memory
E: Enter hex data
F: Fill memory block with a single value
M: Move memory block
P: set PC
R: change Register. 
   Type register to change (A,X,Y,S,P), 
   or type N,V,B,D,I,Z,C to change a flag.
U: Unassembler

and also:
F2: step one instruction
F3: step one instruction or a full jsr routine
F4: view Oric screen (still rather broken)
F5: execute up to breakpoint address
F6: reset
F7: nmi
F10: exit Euphoric
F11: quit debugger mode
F12: abort execution (during F3 or F5)


Build 1004 changes
------------------

- A bug fixed in the display code (again !): the inverse video bit was lost when interpreting a TEXT attribute.
- The Calculator extension is now emulated, it is a special numpad with 14 keys (0 to 9, dot, DEL, FUNCT, ENTER), connected to the internal keyboard interface. Non-numeric keys are configurable in the euphoric.ini file.
- A new option allows to specify the serial extension I/O address (ACIAAddress=...). It is $031C by default to be compatible with the Telestrat.

Build 1003 changes
------------------

- thanks to Dom and his joystick, an "electrical" bug has been discovered in Euphoric: the joystick status was forcing the state of VIA's port A, when it can only force high level lines to ground. This is now fixed.
- a new way of using the unused PB5 line has been added: instead of acting as the A14 line of a 27256 eprom, PB5 can be connected to the CLK line of a 74LS273, so that this chip stores the contents of port A and thus acts as a bank register allowing to use (very) big eproms (e.g I have a 4Mb flash eeprom in an Oric). The handling of PB5 is the same as PB4, you have to send a negative pulse (strobe) on one of these outputs in order to send a byte to (respectively) the bank register or the printer.
- two printer-related options have been added in order to get proper listings when sending the output of the Oric printer to a file. This is because the oric firmware sends unusual bytes to the printer in several places. The Oric-1 and Atmos roms have a bug in the initialization of the VIA which cause a STROBE to be emitted and thus a byte to be sent to the printer. The rom can be easily fixed, but if you still use one of the original rom, Euphoric printer options allow you to get a clean listing. The LLIST command of Telestrat's HyperBasic has a different behavior: it sends many NUL bytes to the printer as part of the listing, it's not due to a VIA handling bug. So, option PrintNULs=No allows to not print the ASCII NUL bytes that are sent to the printer. This is mainly interesting when sending the output of the printer to a file in order to further edit that file (real printers ignore those NUL bytes). PrintNULs option is set to 'No' by default, so you will have to set it to PrintNULs=Yes if you want to get those NUL bytes. Also, another "feature" of HyperBasic's LLIST command is that it sends Carriage Return and Line Feed bytes in the unusual order : LF+CR instead of the usual CR+LF sequence. This confuses a lot of text editors, so I have included a FixCRs option : it is on by default (FixCRs=Yes), and has the following behavior : every Carriage Return printed by the Oric is removed, and a CR+LF sequence is sent each time the Oric prints a Line Feed.
- oops, I don't remember why I removed the SYNC-to-TAPEIN option in the environment screen (maybe because I had not enough space). So, it is back again, with a slight modification of the environment screen.

Build 1002 changes:
-------------------

- I've removed a difference between Telestrat drives and Microdisc drives that doesn't exist...
- a display bug has been fixed, I thought I had fixed it some time ago, but the fix was not complete.
- enabling PB5-switch in euphoric.ini had an effect on the Telestrat, which it shouldn't have. This is fixed now, and it's also easier to use the PB5-switch because if you use a 16K rom instead of a 32K one, the rom will appear whatever the state of PB5 (ie there's no A14 address line on a 16K rom).
- I've added a 6502 trace to the log file when running under the debugger screen. Beware if you enable the log file in euphoric.ini, and run under the debugger screen: the log file will quickly fill up your hard disk.

Build 1001 changes:
-------------------

Thanks to Luc Buisson who sent me BD-DOS disks, I have tried to include a BD500 emulation in Euphoric.
It's still a very approximative emulation, because I haven't put my hand on a real BD500 controller yet.
Anyway, it allows to boot BD-DOS, with a small boot eprom I have written (of course it's not the real eprom contents : if someone has it, please send me its image).

Euphoric-1 changes (build 1000)
-------------------------------

- VGa Mode X (320x240 unchained) is back. More and more people use LCD screens, and mode Q (256x256 chained) is not always supported by these screens. Also, on some low-entry cathodic screens, mode Q is only supported with scanlines (i.e. each of the 256 lines is displayed twice). Thus, by default, the configuration file (euphoric.ini) comes with option VGAMode=X. It's up to you to replace this option with VGAMode=Q if your monitor allows it (this option will allow you to adjust your monitor settings to get rectangular pixels, like on the Oric), and then you might want to try option ScanLines=No if you wish to get more natural pixels (round pixels), with a small gap between lines.
Using Mode X has some implications : Windows does not show Euphoric in a "freeze" window when you switch to another application (Alt-Tab), because of the non-linear memory configuration of this mode. Thus, you will have to use Euphoric's screen hardcopy instead of Windows snapshot feature (it's now easier with the F12 key).

- I've removed the display of jpeg cassette inlays at startup. Sorry, guys, I was wrong to have people scan cassette inlays in such a low resolution. It would be much better to have a front-end Windows program, that displays good-looking cassette inlays and then launches Euphoric...

- Some options that were previously usable from the command line are now in the configuration file. There's nearly no command-line option left, except those that allow to select different Orics (they are used the bundled Windows shortcuts). Don't forget to read through the default configuration file to learn the available features, it's now much better self-documented.

- the environment screen (accessed with F1) has been simplified and some functions are easier to access, like the screen snapshot feature using F12 instead of PrtSc; some people find it difficult to prevent Windows from trapping PrtSc.

- tape searching is slightly different: if you start Euphoric by double-clicking a tape image, the location of this tape is used first when looking for other tapes: the standard tapes directory (the one specified in euphoric.ini) is only used if a tape is not found. Also, there were a few bugs in the handling of tapes and roms directory names (when a drive letter was specified), this is now fixed.

- dumping of PSG registers has been changed: the value of register #13 is now saved as $FF if it has not been rewritten between two interrupts (this helps YM players). Registers are dumped every VIA's timer 1 interrupt. This does not guarantee a faithful sampling of music because some programs do not play music through interrupts (e.g. Doggy). When you use a YM player, don't forget Oric's PSG frequency is 1 MHz (like on the Amstrad CPC) and the "usual" interrupt frequency (hence the sampling frequency) is 100 Hz, not 50 Hz as found on computers that use Vertical Blank interrupts. Moreover, some programs select an unusual interrupt frequency: for example, Damsel has a 83 Hz interrupt frequency...

- ASCII keyboard mode has been removed: it used an ugly trap inserted in the keyboard entry rom routine. If you don't have a US keyboard, please use the "nationalized" roms : these roms include support for a national keyboard, like if such a keyboard was plugged on a real Oric (this is not a fiction: I also use one of these roms on a real Oric with a true AZERTY keyboard, this keyboard having been rewired for the Oric use).

Pre 1.0 changes
---------------
Please read the historic file...
