PC-CPC
-------
Amstrad CPC 6128 emulator, written 100% in C by Ludovic DEPLANQUE (Demoniak)
Any suggestions, comments, advice are welcome.
To contact me:
ldeplanque(at)nordnet(dot fr
Sources availables on request.

Usage:
------
Start the emulator (PC-CPC.EXE)
To succeed, it needs:
- File config.cpc
- Roms of a cpc (in the directory defined by file config.cpc)
- Optionally, one or more disk image files (in .DSK format)

Function keys:
----------------------
F1 -> Help window, recalling all the function keys and their uses.

F2 -> Turbo Mode 'ON/OFF' : Synchronizes the display at 50Hz, as on a real CPC, or running emulation as quickly as possible.

F3 -> 'Stop' button of the Multiface II.

F4 -> Loading a snapshot. A snapshot is a file containing the status of each component of the CPC and a copy of the memory at a given moment, to allow such a backup of a game at a specific location.

F5 -> Saving a snapshot

F6 -> Call Z80 integrated debugger. Keys: F7 = stepping, F8 = Step Over.

F7 -> Change Disk Drive A: A floppy disk is emulated by an image file (file with extension. DSK). This mode disables reading from the hard disk of the PC.

F8 -> Reset the CPC. Similar to the switch ON/OFF

F9 -> Reading a file tape. Specifies a file name through which the emulation of tape reading will be realized. The file must be a file in .WAV, 8-bit digitized mono, with a frequency of 11, 22 or 44 kHz.

F11 -> Writing a file tape. Creates a file that will restranscrit any writing on tape. The file created is a. WAV digitized 8-bit mono at a frequency of 11 kHz.

F12 -> Saves the current image of the emulator in a BMP file.

SHIFT + F1 -> Allows you to connect to the phenixinformatique database server 

SHIFT + F2 -> Changing the floppy emulation mode. By default, disks are emulated by a. DSK. A new mode allows you to emulate directly the files from a partition or a disk drive of the PC. This mode disables the read/write DSK files.

SHIFT + F3 -> toggles the size of the display of the emulator in small/large

SHIFT + F4 -> Toggles the display of the emulator mode color/monochrome

SHIFT + F5 -> Saves the sounds in a file in YM. A new pressing on SHIFT + F5  stop the backup, and displays the number of "frames" saved (one frame = 1/50th of a second).

SHIFT + F6 -> Allows you to "minimize" the window of the emulator

SHIFT + F7 -> Change Disk drive B:

SHIFT + F8 -> ROMPACK ON/OFF, enable/disable extensions for access to "ROMPACK" (instructions Z80 #ED-#00 to #ED-#3F)

SHIFT + F9 -> Used when a tape file is opened for reading (for F9), choose the position in the file via a "second counter." A popup window opens, indiquand the current position of the file. It sufit to edit this value and then press the "OK" button to change it. Closing the window by the little cross on the top right does not change the position of the counter.

SHIFT + F11 -> Allows you to save images for the emulator to an AVI file. A new pressing on SHIFT + F11 stop the encoding, and displays the number of frames encoded. For now, the speed is 25 frames per second (an image every 2 vbl for CPC).

SHIFT + F12 -> Allows you to assemble a .ASM file directly into the memory of the emulated CPC.


Command line arguments:
-----------------------------
-disk full_path_and_file_name.dsk : Load a .DSK file at start

-snapshot full_path_and_file_name.sna : Load a snapshot to start automatically at boot

-run file : Used to automatically start the file whose name is "file".

-cmd command : Allows you to run a basic startup command, example : -cmd mode 2:?himem(0)

-file filename : Run an ascii file at startup. This file should contain basic commands supported by the CPC. It may also contain a complete basic program, as long as it is saved in ASCII. This file will be treated as if all ascii characters were typed on the keyboard of the CPC.

-borderless : Enable the display "full screen" (equivalent to #BORDERLESS ON in the file CONFIG.CPC)

-scanlines : "double" the horizontal display (equivalent to #DOUBLE_LINES ON in the file CONFIG.CPC)

-romx rom_file : Load the file "rom_file" in the upper rom number x (x from 0 to 255)

-reso_x : Set the resolution in "x" if "full screen" selected

-reso_y : Set the resolution in "y" if "full screen" selected


New RSX commands availables
---------------------------
PC-CPC contains a new rom developed especially for it, and contains several new commands added to the Amstrad BASIC (if "ROMPACK" is enabled)

|PACKSCR, adr_buffer, adr_longueur
Compact the screen displayed on the cpc (from address #C000->#FFCF).
adr_buffer is the address where the image will be stored compacted
adr_longueur is the address which will be stored on 16 bits the length of the compacted image.
adr_longueur can be a basic variable address (eg: @length%)

|DEPKSCR, adr_buffer
Allows you to unpack the screen stored at adr_buffer.

|PACKWIN, xd, yd, xa, ya, adr_buffer, adr_longueur
Can compact the window displayed on the CPC by choosing the coordinates (xd, yd) as a starting point and (xa, ya) as the end point of the window. xd ranges from 0 to 79 regardless of the display mode (xd represents the starting column in bytes)
xa varies from 0 to 79 and must be greater than or equal to xd.
yd varies from 0 to 199 regardless of the display mode (yd is
the starting line in bytes) is from 0 to 199 and must be greater than or equal to yd.
adr_buffer is the address where the window will be stored compacted
adr_longueur is the address which will be stored on 16-bit length of the compacted image. adr_longueur may be the address of a full basic variable (eg, @ length%)

| DEPKWIN, adr_buffer
Allows you to unzip the window stored at adr_buffer.

|PACKWINDC, adr_buffer, adr_longueur
Can compact the window displayed on the MFC by automatically calculating the coordinates of the latter according to the present point on the screen. To summarize, simply display the compact that we want on a blank screen, the RSX and will automatically calculate the coordinates. The format of the window is the same as compacted instruction | PACKWIN.
adr_buffer is the address where the image will be stored compacted
adr_longueur is the address which will be stored on 16-bit length of the compacted image. adr_longueur may be the address of a full basic variable (eg, @ length%)

|PACKWINDIFF, adr_buffer, adr_diff, adr_longueur
Can compact the window displayed on the MFC by automatically calculating the coordinates of it based on differences between the image displayed on the screen and the image located at adr_diff. The format of the window is the same as compacted instruction | PACKWIN.
adr_buffer is the address where the image will be stored compacted
adr_dif adrfesse represents the image that make the difference,
adr_longueur is the address which will be stored on 16-bit length of the compacted image. adr_longueur may be the address of a full basic variable (eg, @ length%)

|INITBUFFDIFF, adr_buffer
To initialize the buffer inter-frame differences.
This allows, on the first call of | PACKWINDIFF to have a buffer initialized with a default screen. In general, we can do: 1 MODE: | INITBUFFDIFF, & C000

|PACKBUFF, adr_source, length, adr_dest, adr_longueur
Can compact a memory address and length specific to an area of ??destination.
adr_source represents the address of the memory area to be compacted,
length is the length of the memory area to be compacted,
adr_dest represents the address of the destination area (containing the compressed data)
adr_longueur is the address which will be stored on 16-bit length of the compacted image. adr_longueur may be the address of a full basic variable (eg, @ length%)

|DEPKBUFF, adr_source, adr_dest, adr_longueur
Allows you to unpack the memory stored at adr_source to adr_dest.
adr_longueur is the address which will be stored on 16-bit length of the zone unpacked. adr_longueur may be the address of a full basic variable (eg, @ length%)

|CONVERTBITMAP, "imagename" [, "parameters"]
Can convert a bitmap (. BMP) from its location on the PC hard disk and display on the screen of the CPC (in video memory) converted with the current mode.
"Imagename" is a string or a numeric variable containing the name and full path of the source image (eg "C: \ WINNT \ WINNT256.BMP" (azerty cpc on the '\' is replaced by 'c')
The parameters must be put into a string, separated by spaces, such as:
"-T1-X2"
The parameters are:
Bnnn-value of the blue component (in%)
L-block pallet (using the current values)
NNNP percentage-screening (in%)
Rnnn-value of the red component (in%)
Tnnn-frame type (0 to 3, 0 = no)
Vnnn-value of the green component (in%)
Xnnn-type dither matrix (2 or 3)
-A "transparent" mode: 0 points in color are not displayed
DXnnn X-displacement of image points nnn
DYnnn Y-displacement of image points nnn

|CONVLIGNE, State, ModeAdresse
Can load the state of conversion  screen memory to the windows for compaction:
if state = 0, the conversion will be done by columns (default) otherwise the conversion will be done by lines (faster but less efficient compression.).
If ModeAdresse = 0, the coordinates XD, YD, XA, YA will be stored at the beginning of the data of the window (default), otherwise the address display (2 bytes), the number of rows and number of columns will be stored.

|SAUVEBITMAP, "NomFic"
Pernet to save the current image (the screen of the emulator) to a file in BMP format.

|TURBOON
To activate the turbo mode.
(F2 Equivalent (toggle))

|TURBOOFF
To disable the turbo mode.
(F2 Equivalent (toggle))

|READSNAP, "NomFicSna"
Plays a file snapshot.
(Equivalent F4)

|SAVESNAP, "NomFicSna"
Saves a snapshot file.
(Equivalent F5)

|DebugOn
Enables debugging.
(Equivalent F6)

|SETDSKFILE, "NomFicDsk"
Used to select a file. DSK to use.
(Equivalent F7)

|SAVEAVI, "NomFicAvi"
Starts the recording of the emulation screen in an AVI file.
(Equivalent SHIFT + F11)

|ENDAVI
To stop recording the avi.
(Equivalent SHIFT + F11)

|SAVEYM, NomFicYM
Used to start recording the sound output to a file format YM5.
(Equivalent SHIFT + F5)

|ENDYM
To stop saving the file YM.
(Equivalent SHIFT + F5)

|SETDIRECTDIR, "Directory"
Can select the directory where the disk accesses will be directed.
(Direct access to a directory, equivalent to F12)

|SETNEWDISC, State
Changes the state of disk access (if state = 1, access the PC's hard disk media as read / write, if state = 0, accesses files as DSK media read / write)

|SYMBVIDOPEN, NomFic
Opens a file in VID (video format SymbOS). The file on the PC.

|SYMBVIDREAD, adr
Plays at addr of current frame VID file open, and passes the file pointer to the next frame

|SYMBVIDPLAY
Equivalent to | SYMBVIDREAD, but displays the frame directly from the address # C000, passes the file pointer to the next frame
(As | SYMBVIDREAD)

|SYMBVIDCLOSE
VID closes the file opened.

|ASSEMBLE "NomFicAsm"
Used to assemble the file "NomFicAsm", which is on the disk of the PC


Some OP-CODE Z80 summers were redefined in order to use them directly
new features in assembly without the ROM-PACK:


ED 01: equivalent |PACKSCR with input:
HL = address of buffer compaction
IX = address containing the length of compacted
No record is changed back.

ED 02: equivalent |PACKWIN with input:
E = xd
D = yd
C = xa
B = is
HL = address of buffer compaction
IX = address containing the length of compacted
No record is changed back.

ED 03: equivalent |DEPKSCR with input:
HL = address of buffer for compressed data
No record is changed back.

ED 04: equivalent |DEPKWIN with input:
HL = address of buffer for compressed data
No record is changed back.

ED 05: equivalent |PACKWINDC with input:
HL = address of buffer compaction
IX = address containing the length of compacted
No record is changed back.

ED 06: equivalent | PACKBUFF with input:
HL = address of the area to be compacted (source)
DE = address of the destination zone
BC = length of the area to be compacted.
IX = address containing the length of compacted
No record is changed back.

ED 07: equivalent |DEPKBUFF with input:
HL = address of the source area (zone compacted)
DE = address of the destination zone
IX = address containing the unpacked length
No record is changed back.

ED 08: equivalent |PACKWINDIFF with input:
HL = address of buffer compaction
DE = address of buffer to screen comparison of the differences
IX = address containing the length of compacted
No record is changed back.

ED 09: equivalent |INITBUFFDIFF with input:
HL = address of buffer initialization
No record is changed back.

ED 0A: equivalent |CONVERTBITMAP with input:
HL = pointer to name of the BMP
B = BMP file name length
DE = pointer to string containing the arguments
C = length string containing the arguments
No record is changed back.

ED 0B: equivalent |CONVLIGNE with input:
A = State
B = ModeAdresse
No record is changed back.

ED 0C: equivalent |SAUVEBITMAP with input:
HL = pointer to name of the BMP
B = BMP file name length
No record is changed back.

ED 0D: equivalent |TURBOON or |TURBOOFF with input:
A = turbo mode (0 = OFF, or ON)
No record is changed back.

0E ED: equivalent |READSNAP with input:
HL = pointer to name of the SNA
B = length filename SNA
No record is changed back.

ED 0F: equivalent |SAVESNAP with input:
HL = pointer to name of the SNA
B = length filename SNA
No record is changed back.

ED 10: equivalent |DEBUGON
No record is changed back.

ED 11: equivalent |SETDSKFILE with input:
HL = pointer to filename DSK
B = Length DSK file name
No record is changed back.

ED 12: equivalent |SAVEAVI with input:
HL = pointer to name of the AVI file
B = Length AVI file name
No record is changed back.

ED 13: equivalent |ENDAVI
No record is changed back.

ED 14: equivalent |SAVEYM with input:
HL = pointer to file name YM
B = length file name YM
No record is changed back.

ED 15: equivalent |ENDYM
No record is changed back.

ED 16: equivalent |SETDIRECTDIR with input:
HL = pointer to the full path
B = full path length
No record is changed back.

ED 17: equivalent |SYMBVIDOPEN with input:
HL = pointer to the full path
B = full path length

ED 18: equivalent |SYMBVIDREAD with input:
HL = address of the buffer into which to read the current frame.

ED 19: equivalent |SYMBVIDPLAY
HL Modification (disabled)
Z FLAG indicates whether file error (Z = 1) or reading OK (Z = 0)

ED 1A: equivalent |SYMBVIDCLOSE
HL Modification (disabled)
FLAG indicates whether Z not open file (Z = 1) or closed OK (Z = 0)

ED_1D: equivalent |SETNEWDISC with input:
A = newdisc mode (0 = off, 1 = on)
No record is changed back.

ED_1E: equivalent |DRAWCADREWIN with input:
B = x start frame (in bytes video memory)
C = y start frame (in bytes video memory)
D = x finish frame (in bytes video memory)
E = y finish frame (in bytes video memory)
No record is changed back.

ED_1F: equivalent |ASSEMBLE, with input:
HL = pointer to the full path
B = full path length


* Example: Compaction of a screen

BUFFER  EQU     #4000
        LD      HL,BUFFER
        LD      IX,TAILLE
        DB      #ED,#01
        RET
TAILLE  DW      0

* Example: Unpacking screen

BUFFER  EQU     #4000
        LD      HL,BUFFER
        DB      #ED,#03
        RET


There is also a Z80 assembler source unpacking routines,
therefore be used on a real CPC. (Contact me to get it)


Launching a game on a CPC
-----------------------------
For the "catalog" of a floppy disk, type [CAT], followed by [Enter]
The list of FILES on the floppy disk appears. To run the program desired, sufit type:
[RUN "filename"] [enter]
The executable file is usually:
- Programs written in basic, with a. BAS
- Programs written in assembly, with a. BIN

Technical Information
-----------------
- The emulator uses a configuration file nome "Config.cpc" which should be in the same directory as the executable. The details of the setting is written to the file itself.
- The emulator is written in 100% C, 32-bit Windows environment, and to be easily ported to other platforms (eg Amiga).
Emulated functions are:
- Z80 CPU: 99% of instructions,
- AY3-8912 (audio processor): 3 channels + noise + white envelopes
- CRTC 6845 (controller screen): The basic registers 70% (0, 1, 2, 3, 4, 5, 6, 7, 9, 12, 13),
- 8255 PPI (parallel interface): 90% (Only the mode 0 of 8255 is emulated, it is the only usable in a CPC),
- UPD 765 (disk controller): 70% (used to read standard image files)
- VGA (Video Gate Array): 90% (Select inks, Screen Mode, Roma)
- Timings Hsync and Vsync (vertical and horizontal sync)
- Managing disks by standard image file (. DSK)
- Managing backup current status by standard snapshot file (. SNA)
- Managing tapes per file to WAV
- Using the disk of the host machine for reading / writing files


Managing Versions
----------------

v0.0 (30/10/2001)
-----------------
- First PC-CPC recompiled under windows

v0.1a (15/03/2002)
------------------
- First working version

v0.1b (07/06/2002)
------------------

v0.1c (27/06/2002)
------------------

v0.1d (09.07.2002)
------------------
- Taking into account register 7 and register 9 CRTC

v0.1e (15.07.2002)
------------------
- Using SourceDoc for documentation
- Adding snapshot file number in Roma

v0.1f (29.07.2002)
------------------
- Added time instruction Z80
- Correction pb ram bank management on CPC6128
- Reset to 0 from counter HSync GateArray

v0.1g (01.08.2002)
------------------
- Added sound support (AY3-8912)

v0.1h (08/08/2002)
------------------
- Fixed Z80 instructions ILO

v0.1i (08.09.2002)
------------------
- Added management Multiface

v0.1j (20/08/2002)
------------------

v0.1k (18/09/2002)
------------------

v0.1l (09/26/2002)
------------------
- Taking into account CRTC register 5
- Correction pb UPD
- Better management interrutptions Z80

v0.1m (10/03/2002)
------------------
- Optimizing module AY38912
- Correction pb / off multifaceted

v0.1n (10/07/2002)
-----------------
- Fixed a bug in the replay snapshots files (. ANS): the registers of the PSG has not changed summers were not writing, what could be a problem because the frequency of sound was not calculated, and the formula "AY_FREQ / Frequency" caused a division by zero.

v0.1o (16/10/2002)
------------------
- Do not take more than 100% CPU during operation, using snapshots of files compatible with the format used on other SNA CPC emulators. Warning, this means that it is more compatible with the snapshots generated by earlier versions of the emulator ...
- The emulator now generates a. LOG functionality to trace any possible unhandled (Z80 incorrect instructions ...)

v0.1q (07/11/2002)
------------------
- File management cassette, reading F9, F11 backup.

v0.1r (13/11/2002)
------------------
- Optimization various significant acceleration in the Z80 emulation and CRTC 6845.

v0.1 (19/12/2002)
------------------
- Fixed a bug in the sound generator.

v0.1t (01/06/2003)
------------------
- Happy new year 2003!

v0.1u (01/09/2003)
------------------
- Dynamic configuration (using a configuration file) keys used to emulate the joystick (see config.cpc for details.).

v0.1v (03/02/2003)
------------------
- Location in the configuration file of the various directories used by default for files DSK, SNA, TAP.

v0.1w (06/05/2003)
------------------
- Fixed buggs in the management of "disc missing" in the management of the joystick.

v0.1x (01/22/2004)
------------------
- Added direct access to a directory of the disk of the PC emulation of disk accesses.
- The F12 key toggles between standard mode (emulation files by disks. DSK) and the new mode of direct access.
- A variable containing the directory # DIR_EMU_DISC emulation of direct access can be added to the configuration file, default access is on the disk A:.

v0.1y (25/02/2005)
------------------
- Added information in logfile
- Minor optimizations

v0.1z (xx / xx / xxxx)
------------------
- Instructions Z80 return the # of cycles performed.

v0.1a (xx / xx / xxxx)
-------------------
- Fixed a small bug in the functions of line drawing display: color edge
- Fixed cycle time instruction prefix after DD and FD

v0.1ab (xx / xx / xxxx)
-------------------

v0.1ac (xx / xx / xxxx)
-------------------

v0.1ad (xx / xx / xxxx)
-------------------

v0.1a (xx / xx / xxxx)
-------------------

v0.1af (xx / xx / xxxx)
-------------------

v0.1ag (xx / xx / xxxx)
-------------------

v0.1ah (xx / xx / xxxx)
-------------------

V0.1ai (13/12/2005)
-------------------
- Added instruction rsx | PACKWINDIFF in the "rom pack"
- Backup module still images in bmp
- Ability to save the emulation window to a file. AVI.

V0.1aj (16/02/2006)
-------------------
- Save AVI with sound

V0.1ak (20/02/2006)
-------------------
- New engine CRTC emulation now allows the horizontal overscan.
- RSX CONVERTBITMAP that can read directly from the PC hard drive a bitmap (. BMP) and display on the screen of cpc (you can then save it with SAVE "xxx", b, & C000, & 4000) .
- Buggs few months.

V0.1al (23/07/2006)
-------------------
Bug fixes:
- AY3-8912: Fixed a bug in the use of volume envelopes
- UPD 763: Fixed a bug in the management of the reading and the reading function of the index (the demo group MIDLINE PROCESS ARKOS works!)
- NewDisc: Fixed a bug in the "cat": the directories were also displayed

New features:
- Ability to use a window without borders or title bar and sizing entirely possible in the configuration file (via the flags RESO_X #, # # and RESO_Y BORDERLESS)
- Using joysticks connected if
- Change the allocation of function keys:
    - SHIFT + F2 = save the current image as a. BMP (formerly "Prt scr")
    - SHIFT + F9 = tape file positioning (formerly "Home")
    - SHIFT + F11 = backup avi emulation (formerly "End")
- Backup sounds CPC format YM5 with SHIFT + F5
- Added RSX | SAUVEBITMAP in the rom pack (allows backup of images in. BMP from the basic)
- Added RSX | TURBOON in the rom pack (turbo mode)
- Added RSX | TURBOOFF in the rom pack (turns off the Turbo Mode)
- Added RSX | READSNAP in the rom pack (used to read a file snapshot)
- Added RSX | SAVESNAP in the rom pack (allows you to save a file snapshot)
- Added RSX | debugOn in the rom pack (active debug mode)
- Added RSX | SETDSKFILE in the rom pack (used to select a file. DSK to use)
- Added RSX | SAVEAVI in the rom pack (starts recording of the emulation screen in an AVI file)
- Added RSX | ENDAVI in the rom pack (stops recording the avi file)
- Added RSX | SAVEYM in the rom pack (starts recording sound in a file YM)
- Added RSX | Endymions in the rom pack (stop saving the file YM)
- Added RSX | SETDIRECTDIR in the rom pack (used to select the directory where the disk accesses will be directed)
- Added RSX | ROMPACKHELP in the rom pack (displays a summary of the RSX rom pack and their parameters)

V0.1am (25/12/2006)
-------------------
Bug fixes:
- Fixed bug where initialization problem ROMPACK
- AY3-8912: Fixed bugg in the return frequencies for each channel
- Snapshot: It lacked the protection of the color of the border in the snapshots
- CRTC: Fixed a bug that could generate several breaks sync per frame (eg, Space Harrier)

New features:
- Management of 512KB memory expansion
- Ability to send commands or files to the emulator via the command line
- Added RSX | SYMBVIDOPEN, | SYMBVIDPLAY, | SYMBVIDCLOSE to play an animation format. SymbOS VID
- Ability to switch from small screen / big screen with SHIFT + F3 in windowed mode

V0.1an (13/05/2007)
-------------------
Bug fixes:
- UPD 763: Correction functions invalid, that does not return the status of the UPD
- Z80: Fixed several bugs:
    - A SLL does not set the bit 0 of register A
    - Positioning of flags after LD A, R and LD A, I
    - Consideration of interruptions after the statement following the EI
    - Remove the copy of IFF1 IFF2 in the consideration of an NMI (the multifaceted work properly now)
- CRTC: Rewriting the code cycle management of the CRTC now clear memory word (16 bits), allowing the "split-raster".

New features:
- Using the PC with the LAV # USE_PC_VBL flag in the configuration file
- Possibility to redefine each function of the joystick connected (up to 10 buttons) with a key on the keyboard.
- Improved color rendering 32-bit mode and small screen (mode 2 CPC).
- Added SHIFT + F6 to minimizing the window of the emulator.
- Removed parameter # SCREEN_DEPTH in the configuration file (the screen mode is still 32 bits now)
- Calling a help window by pressing the F1 key
- The F2 key toggles between the "normal" and "turbo" mode

V0.1ao (02/04/2009)
-------------------
Bug fixes:
- Added a counter for detecting the end of boot ROMs. (For buttons or sending files via command line).
- Consideration of sounds in the backup files AVI
- Fixed problem when saving BMP files in "small screen"
- Fixed problem when compacting memory areas greater than 16KB
- Fixed problem when no joystick connected to the PC 2
- Fixed problem using function keys + shifts

New features:
- Added flags and # # RGB_COLORxx MONO_COLORxxx in the configuration file, for selecting each colors cpc emulated.
- Pre-very partial emulation of the ASIC CPC + for the management of the palette.
- Switching Standard LAV (50Hz) / VBL PC by pressing SHIFT + F7
- Adding an assembler, used with the SHIFT + F12

V0.1ap (16/04/2010)
-------------------
Bug fixes:
- The assembler allows the use of DB instruction of type "C" # 80 (useful for rsx ...)
- Fixed cycle time of some instruction that was incorrect

v0.1ar (07/05/2010)
-------------------
Bug fixes:
- Fixed a counter for detecting the end of boot ROMs. (For buttons or sending files via command line).
- Correction pb remnant keys if using the joystick # 2

v0.1as (12/24/2010)
-------------------
Bug fixes:
- Fixed a bug in the function of data compression (RSXs of ROMPACK).
- Fixed a bug in the random output of the program (audio crash thread management).
- Fixed a bug when changing the file. DSK current

v0.1at (beta)
-------------
New features:
- Rewrite Module AY8912 (better management of sound?)
- Rewrite Module UPD (better management of floppy disks?)
- Added debug window with breakpoints
- Added INCBIN instruction in assembler
- Added RUN instruction in assembler
- Management SnapShot V3
- Taking into account delay of 0.5 microseconds when writing color (Gate-Array)
- Taking into account FLAGS F3 and F5 Z80
- Ability to enable / disable the ROM-PACK by a function key
- Turbo mode display when activated
- Added a menu to the emulator
- Configurable via menu
Bug fixes:
- Fixed bug in CRTC module (taking into account sizes and HBL register via LAV 3)
- Management of two floppy drives (A: and B:)
- Support des disquettes double face
- Correction bug MODE 3 (160x200, 4 couleurs)
- Correction timings instructions Z80

