home *** CD-ROM | disk | FTP | other *** search
- /* history of CPCEMU.C (and Z80EMU.C) */
- /* 1.1.1993 */
-
- /* (12.,18.,22.,25.,26.,27.30.8.92 */ /* 3.,19.,27.9.92, */
- /* 25.,31.10.92 */ /* 5.,15.,18.11.92) (21.,29.12.92) */
-
- /* --- history of CPCEMU.C --- */
-
- /* v0.4 */
- /* 1.1.1993 */
- - corrected some bugs:
- CPCZ80 : - in a,(n), out a,(n) : A to b8..b15 (instead of B !)
- Z80IFACE : bad error in port_in: var. "portby" was local without
- BP loaded correctly, so it could modify the program !
- Corrected.
- - CPCMEM : corrected ram-config &c2 : bank 0,3,2,7
- now CP/M Plus runs, but without an acceptable speed.
- - support for unknown KC-compact ports ee00..ee3d (byt without function)
-
-
- /* v0.3 */
- /* 28.,29.12.1992 */
- - corrected some bugs:
- CPCZ80 : - RLD - A was loaded with a wrong value.
- - ini,ind,outi,outd : set N-flag added.
- Z80EMU : - CPIx : flags were set wrong (Juergen mentioned it)
- - RL (HL), RR (HL), ... used read-segment (DS)
- instead of write-segment (ES)
- - LD A,R produces now random-numbers (you can test INP &EF01 !)
- - now you can use all cassette-routines (except CAS IN CHAR, flag-error?)
-
-
- /* v0.2 */
-
- /* 23.,24.12.1992 */
- - I've found the error which hanged the fast-emulation.
- Took me nearly 4 hours with the Turbo Debugger.
- I single-stepped through the interrupt-routine and -- there was it.
- In Z80EMU.ASM: SET 6,(HL) modified the DS-Register.
- (ES was PUSHED instead of DS)
- Now you can use fast-emulation ...
-
-
- /* 21.12.1992 */
- - Now it seems it't more a CPC than only a Z80.
- So I renamed most files. (Z80EMU v3.0 is now CPCEMU v0.2)
- There're still some problems with the fast-emulation.
-
-
-
- /* --- history of Z80EMU.C --- */
-
- /* v2.9 */
- - improved screen-update, implemented fast-emulation for programs which
- don't use the ROM (most games, load and start them with 'R', then
- continue with 'F' ... Have fun !)
- Real 300 interrupts per second with new timer-handler. Screen-update
- every 6th interrupt (50 times per second).
-
- /* v2.8 */
- - improved screen update (386-asm). Ony parts which have changed since
- the last update are updated.
-
- /* v2.7 - test */
- - tried to include fast-z80-assembler-emulation by Juergen Weber,
- not functionally, yet. Don't use it.
-
- /* v2.6 - test */
- /* 5.11.1992 */
- - added new keyboard-routine, INT9-handler (asm) (thanks to Arnt with JPP)
- - added new screen-update (asm)
-
-
- /* v2.5 - test */
- /* 31.10.1992 */
- - changed memory-allocation
- - Now hard-scrolling !! And some CRTC-support (different screen-size)
-
- /* v2.4 - test */
- /* 25.10.1992 */
- - new memory-allocation (mem_seg starts at 64K-segment-boundaries),
- so implementation of assembler-routines is easier
- - screen-update every n. interrupt and not with every byte written to
- z80-mem. It's still slow (written in C), should be timer-controlled.
- So this is only a test-version.
- - split Z80CPC up into Z80CPC, Z80FDC, Z80SCR, Z80KEY,
- and Z80DOS into Z80MEM
- - only R-register-emulation, if desired (define R_REG)
-
-
- /* v2.3b */
- /* 19.9.92 */
- - added 0xfcxx-out equal to 0xfbxx-out (for CP/M-Plus)
- - added screen-update only for bank 0..3 (and NOT bank 4..7)
-
-
- /* v2.3 */
- /* 19.9.92 */
- - Z80DECO : error with LD XH,D - (was ld H,D), corrected
- (found by watch)
-
- /* 15.-18.9.92 */
- - added FDC-Emulation for Loading
-
-
- /* v2.2 */
- /* 3.9.1992 */
- - added z80noROM.rom and ZCOPY.rom - loading for those without
- the rom-file z80cpc.rom
-
-
- /* 30.8.1992 */
- - added Z80CBIO.ASM : keyboard-routines, palette-change without
- flickering (waits for H-sync !)
- - added Z80CPC.KEY - a new keytab
-
-
- /* v2.1 */
- /* 25.8.1992 */
- - Z80CPC : added all Pens in all CPC-Modes
- - Z80CPC : added all CPC Colors to display on VGA-Card
-
- /* 26.8.1992 */
- - Z80DECO : test rom_bypass only during RET-Instruction (=>speedup)
- - Z80DECO : write only to viewing screen (=>speedup)
-
- /* 27.8.1992 */
- - Z80CPC : a small watch-error during rom-bypass : normal CPU has
- emulated RET-Command with rom-bypass - all registers are copied
- and co-CPU wants to emulate his RET - but there was alredy the new
- instruction ... ( solution: set watch-PC on ret)
- - Z80DECO : A bug ! All (ix+zz), (iy+zz) with negative zz (means zz>=0x80)
- were wrong in v2.0, v2.1 !! Forgotten to take signed char cast !!
- (Found by watch)
-
-
- /* v2.0 */
-
- /* 18. - 21.8.1992 */
- - a new Z80DECO(earlierZ80EMU)-structure speeds up emulation
- - added Z80WATCH - a CO-Z80 (from v1.3) for debugging
- the normal CPU with the new structure and the CO-Z80 emulate independendly
- every instruction. Registers (and some memory-adresses) are compared
- and if there is any difference - a watch-error occures.
-
- /* 21.8.92 */
- - included separate memory for z80watch, so 128KB RAM could be used
- (Z80WATCH has its own 128K RAM, and shares the ROM with the normal CPU)
-
- /* 22.8.92 */
- - Z80DECO, Z80WATCH, all older emulators :
- There was an error in the op-instruction-book: it said, the H-Flag is
- set after and,or,xor , that is WRONG !
- It's reset after or,xor ! This caused a fatal behavior with a following
- DAA-Instruction.
- - Z80DECO : CPI,CPD,CPIR,CPDR : Flag N=1 (not 0)
- (found by Watch)
- - addad colors blue and yellow (no palette-change yet - it's too slow)
-
-
- /* v1.3 */
-
- /* 18.8.92 */
- - included new memory-management (now 128KB Ram, 32KB Rom)
- - changed return of wregget: now pointer to register, not number any more
- - Z80CPC: error Gate-Array-Out-select corrected to 'by' (not 'adr')
-
-
-
- /* v1.2 */
- /* 12.8.92 */
- - Z80EMU: ldir-error corrected (P-Flag-Test was incorrect, still in v1.1, but
- not in v1.0)
- - Z80EMU: now bregget returns normal byteptr, not fbptr. This is done by
- a special byte membyte, to which the byte from memory is copied
- ( during instructions with an (hl),(ix+zz),(iy+zz)-operand )
- bmemuse is a flag showing if membyte (and memadr) are in use
- - mem[adr] changed to bget(adr)
- - Z80EMU: ld (de),a, ld (bc),a : error corrected: wput changed to bput !
-
-
-
- /* 13.8.1992 */
- - added Rom-Support
-
- - Z80EMU: error jp ccc,xxyy , call ccc,xxyy :
- if condition ccc is not met, PC only incremented !! (should PC+3)
- ( note ret ccc is correct)
- - Z80EMU: error rotate-instructons rr,rl (srl,sra,rlc,...):
- flag-test for Z,S included.
-
- /* 14.8.92 */
- - added keyboard-routines (z80-interrupt)
- - Z80EMU: error bit b,... Z-Flag was set, if bit=1 (WRONG!)
- ( bit b=1 => NZ ; bit b=0 => Z )
-
- /* 15.8.92 */
- - Z80EMU: error : calcpary corrected (pary=0 was at wrong position, so it
- adds up to 4096)
- - Z80EMU: error : DAA P-Flag-set included
- - Z80CPCH: poke changed to pokeb in byte2scr
- - Z80EMU: error : adchl : C-Flag sometimes not set (by2 was always lo-byte
- instead of high-byte
-
- /* 16.8.92 */
- - now pen 1 in every mode 0..2
-
-
- /* v1.0 */
- /* 1991 */
- - the first version was written in pascal and only a Z80-Emulator
-
-