summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/avr8/avr8.c
Commit message (Collapse)AuthorAgeFilesLines
* Move all devices into separate part of src tree (nw) Miodrag Milanovic2015-09-131-3930/+0
|
* blame balrog for this :) (NW) Cowering2015-07-081-1/+1
|
* fix the implementation of the AVR8 EIJMP instruction Felipe Corrêa da Silva Sanches2015-07-061-1/+1
|
* New non-working driver: Metamáquina 2 desktop 3d printer (This also ↵ Felipe Corrêa da Silva Sanches2015-07-051-6/+9
| | | | provides an implementation of the AVR8 EIJMP instruction)
* uzebox: adding sound emulation (It works but with terrible performance. ↵ Felipe Corrêa da Silva Sanches2015-06-161-16/+21
| | | | | | Uzebox's DrMario song is recognizable even though the sound is choppy, full of noise). When running with -wavwrite the resulting file plays nicely on a music player. The sound is much better, but still contains a high frequency noisy sort of hiss.
* Cleanups and version bumpmame0162 Miodrag Milanovic2015-05-271-2/+2
|
* Avoid log message flood in Replicator 1 driver. Felipe Corrêa da Silva Sanches2015-05-181-3/+5
|
* Updated licenses on Ryan Holtz request (nw) Miodrag Milanovic2015-05-091-2/+2
|
* moved all to std::string (nw) Miodrag Milanovic2015-04-221-3/+3
|
* string -> str rename due to future conflicts (nw) Miodrag Milanovic2015-04-121-2/+2
|
* removed static config from avr8. nw. Fabio Priuli2014-09-211-17/+7
|
* optimized interrupt code in src/emu/cpu/avr8/avr8.c a bit more (nw) Oliver Stöneberg2014-09-111-8/+12
|
* optimized interrupt code in src/emu/cpu/avr8/avr8.c a bit (nw) Oliver Stöneberg2014-09-111-4/+4
|
* various cpu cores: don't state save icount (nw) Alex W. Jackson2014-07-091-2/+0
|
* (MESS) New skeleton driver: Scott Stone2014-06-201-1/+4
| | | | | | | --------------------------- Intelbras TI630 telephone [Felipe Sanches] Fixed current/prior submissions for proper license attribution (nw)
* Cleanups and version bumpmame0153 Miodrag Milanovic2014-04-071-414/+414
|
* rest of ATTR_PRINTF review (nw) Oliver Stöneberg2014-02-251-2/+2
|
* second round of clang 3.4 fixes for MESS (nw) Oliver Stöneberg2014-02-201-1/+1
|
* turn off spam while running craft. Robbbert2014-01-291-7/+7
|
* avr8 : fix from Filipe (nw) Miodrag Milanovic2014-01-031-1/+1
|
* avr8 : changed -1 to 0xffff since UINT16 have been used (nw) Miodrag Milanovic2014-01-031-2/+2
|
* -AVR8 cpu changes [Felipe Sanches] Miodrag Milanovic2014-01-021-663/+737
| | | | | | | | | | | | - timers wip - Add TIMSK* reads - Refactor timer_tick calls - Remove all redundant register init statements. We simply set all 0x200 registers to zero. - debugging timers - better syntax for disassembly of RJMP destination address - use register names in disasm of CBI, SBI, SBIC, SBIS instructions - use register bit names in disasm of instructions SBI, SBIS, SBIC, CBI - wip on avr8 EEPROM read/write support
* -AVR8 improvements: [Felipe Sanches] Miodrag Milanovic2013-12-301-138/+1086
| | | | | | | | | | | | | | | | | - Added ELPM instructions - Added fuse bits macros - Added reset logic to decide initial program counter based on fuse bits configuration - Added initial support for ATMEGA1280 and ATMEGA2560 - Use register names in the disassembly of IN and OUT instructions (MESS) New driver : Replicator 1 [Felipe Sanches] (MESS) Replicator 1 driver: [Felipe Sanches] - status: no sound / not working - general skeleton. - basic memory mapping - shift-register interfacing from PORTC writes to the LCD device - avr8 fuses configuration
* Preliminary startx/starty support, display is repeated on left-right edges, ↵ Angelo Salese2013-09-121-1/+3
| | | | to be improved
* validation fix (nw) Miodrag Milanovic2013-06-211-4/+4
|
* did modern cpu cores as well (nw) Miodrag Milanovic2013-06-211-4/+4
|
* pass this instead of NULL and options instead of 0 in the class based cpu ↵ smf-2013-03-061-1/+1
| | | | cores (nw)
* Cleanups and version bumpmame0148 Miodrag Milanovic2013-01-111-1403/+1403
|
* (MESS) AVR8 core updates: [Sandro Ronco] Sandro Ronco2012-12-251-27/+179
| | | | | | | | | | | - added CPSE, LD Z+, ST -Z/-Y/-X and ICALL opcodes. - added ATMEGA644 interrupt vectors. - fixed Z flag in CPC, SBC and SBCI opcodes. - fixed V and C flags in SBIW opcode. - fixed pop/push order in CALL, RCALL, RET and RETI opcodes. - fixed Timer 1 CTC mode. (MESS) uzebox: added video emulation and joystick input. [Sandro Ronco]
* Cleanups and version bump (nw)mame0147u3 Miodrag Milanovic2012-11-191-24/+24
|
* 01234567890123456789012345678901234567890123456789012345678901234567890123456789 Ryan Holtz2012-11-071-265/+756
| | | | | | | - avr8.c: Renamed io map to data map, routed ports through io map [MooglyGuy] - avr8.c: Implemented ST Z+ and SBIW opcodes [MooglyGuy] - craft.c: Converted to use new AVR8 core [MooglyGuy]
* -avr8.c: Converted to modern CPU device. [MooglyGuy] Ryan Holtz2012-10-311-784/+796
|
* -avr8.c: Added FMUL, FMULS, and FMULSU opcodes. [MooglyGuy] Ryan Holtz2012-10-301-27/+68
| | | | | | | | | | | -avr8.c: Fixed incorrect N flag calculation in ROR opcode. [MooglyGuy] -avr8.c: Fixed incorrect bit testing in SBIC/SBIS opcodes. [MooglyGuy] -craft.c: Added port D readback, fixes on-screen VU level. [MooglyGuy] -craft.c: Sync video with Vsync output, fixes rolling image. [MooglyGuy] -craft.c: Fixed visible area and promoted to working. [MooglyGuy]
* Clean-ups and version bumpmame0147u2 Miodrag Milanovic2012-10-301-5/+5
|
* -avr8.c: Fixed register indexing for MULSU opcode. [MooglyGuy] Ryan Holtz2012-10-261-14/+17
| | | | | -avr8.c: Fixed register writeback for LD -Z and LD -Y opcodes. [MooglyGuy] -craft.c: Preliminary video support, bad vsync and colors still. [MooglyGuy]
* -avr8.c: Added LD Rd,Z+q opcode [MooglyGuy] Ryan Holtz2012-10-251-10/+15
| | | | | | | -avr8.c: Corrected cycle counts for LD and ST opcodes. [MooglyGuy] -avr8.c: Fixed a bug where a 2-cycle or 3-cycle opcode encountered during a time slice were causing all subsequent 1-cycle opcodes to deduct 2 or 3 cycles for the remainder of the time slice instead. [MooglyGuy]
* 01234567890123456789012345678901234567890123456789012345678901234567890123456789 Ryan Holtz2012-10-251-249/+1203
| | | | | | | | -avr8: Implemented MULS, ANDI, STD Z+, LD -Z, LD Y+, LD -Y, LD -X, SWAP, ASR, ROR, and SBIS opcodes. [MooglyGuy] -avr8: Moved Timer 0-2 into the CPU core itself, 30x driver speedup [MooglyGuy] -cratft.c: Fixed DAC bit order, audio now plays but is 40% too slow [Mooglyguy]
* - Added opcodes to Atmel AVR core: OR, SBCI, ORI, ST Y+, ADIW [Mooglyguy] Ryan Holtz2012-10-191-19/+58
| | | | | | | - Fixed functional issues in Atmel AVR opcodes: COM, NEG, LSR [Mooglyguy] - Added basic Timer 1 support to Craft driver and hooked up the DAC, currently plays only a buzzing noise due to lacking EEPROM support [MooglyGuy]
* Since nobody checks for NULLs anyway, make Aaron Giles2012-09-191-2/+2
| | | | | | | | | | | | device_memory_interface::space() assert against NULL and return a reference, and pushed references throughout all address space usage in the system. Added a has_space() method to check for those rare case when it is ambiguous. [Aaron Giles] Also reinstated the generic space and added fatal error handlers if anyone tries to actually read/write from it.
* First pass at modernizing struct definitions. Aaron Giles2012-09-151-2/+1
|
* DEVINFO_* to CPU_INFO_*, and some cleanups (no whatsnew) Miodrag Milanovic2012-09-031-17/+17
|
* Clean-ups and version bumpmame0143u3 Angelo Salese2011-08-141-4/+4
|
* avr8 core updated with marking two models, and implementing JMP and CALL (no ↵ Miodrag Milanovic2011-08-081-15/+60
| | | | whatsnew)
* Created new enum type address_spacenum for specifying an address Aaron Giles2011-03-271-9/+9
| | | | | | | | | | | | space by index. Update functions and methods that accepted an address space index to take an address_spacenum instead. Note that this means you can't use a raw integer in ADDRESS_SPACE macros, so instead of 0 use the enumerated AS_0. Standardized the project on the shortened constants AS_* over the older ADDRESS_SPACE_*. Removed the latter to prevent confusion. Also centralized the location of these definitions to memory.h.
* Get rid of state_save_register_device_* macros in favor of direct Aaron Giles2011-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | calls on the device object. Regex used: state_save_register_device_item( *)\(( *)([^,]+), *([^,]+),( *)([^ )]+)( *)\) \3->save_item\1\(\2NAME\(\6\),\5\4\7\) state_save_register_device_item_array( *)\(( *)([^,]+), *([^,]+),( *)([^ )]+)( *)\) \3->save_item\1\(\2NAME\(\6\),\5\4\7\) state_save_register_device_item_2d_array( *)\(( *)([^,]+), *([^,]+),( *)([^ )]+)( *)\) \3->save_item\1\(\2NAME\(\6\),\5\4\7\) state_save_register_device_item_bitmap( *)\(( *)([^,]+), *([^,]+),( *)([^ )]+)( *)\) \3->save_item\1\(\2NAME\(\*\6\),\5\4\7\) state_save_register_device_item_pointer( *)\(( *)([^,]+), *([^,]+),( *)([^,]+), *([^ )]+)( *)\) \3->save_pointer\1\(\2NAME\(\6\),\5\7,\5\4\8\) this->save_ save_ (save_item[^;]+), *0( *)\); \1\2\); (save_pointer[^;]+), *0( *)\); \1\2\);
* running_device -> device_t Aaron Giles2010-12-311-1/+1
| | | | | They both already existed. No sense in having two names for the same object type.
* Remove memory_read/write_byte/word/dword/qword* variants. Again, this is mostly Aaron Giles2010-08-191-6/+6
| | | | | | | | | | | | | | | | | | bulk search & replace: S: memory_read_([bytewordq]+)_[0-9lbe_maskd]+( *)\(( *)([^,]+)( *),( *) R: \4->read_\1\2\(\3 S: memory_read_([bytewordq]+)( *)\(( *)([^,]+)( *),( *) R: \4->read_\1\2\(\3 S: memory_write_([bytewordq]+)_[0-9lbe_maskd]+( *)\(( *)([^,]+)( *),( *) R: \4->write_\1\2\(\3 S: memory_write_([bytewordq]+)( *)\(( *)([^,]+)( *),( *) R: \4->write_\1\2\(\3 Gets 99% of the cases.
* Replace "const address_space" with "address_space" throughout the system. Aaron Giles2010-08-191-2/+2
| | | | | | | | | | | The purpose of making it const before was to discourage direct tampering, but private/protected does a better job of that now anyhow, and it is annoying now. s/const[ \t]+address_space\b/address_space/g; Is basically what I did.
* Created CPU-specific device types for all CPUs, using new macros Aaron Giles2010-07-031-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | DECLARE_LEGACY_CPU_DEVICE and DEFINE_LEGACY_CPU_DEVICE. Changed CPUs to be their own device types, rather than all of type CPU with a special internal subtype. Note that as part of this process I removed the CPU_ prefix from the ALL-CAPS device name, so CPU_Z80 is just plain old Z80 now. This required changing a couple of names like 8080 to I8080 so that there was an alphabetic first character. Added memory interfaces to the list of fast-access interfaces. To do this properly I had to add a separate method to devices which is called immediately after construction, when it is possible to perform dynamic_casts on fully-constructed objects. (This is just internal, no changes necessary to the devices themselves.) Some additional notes: * SH2 and SH4 had typedefs that conflicted with their CPU_-less names so I bulk renamed to structures to sh2_state and sh4_state; RB, feel free to choose alternate names if you don't like 'em * SCSP was caught doing something to the 3rd indexed CPU. Since several systems that use SCSP don't even have 3 CPUs, I had no idea what this was supposed to do, so I changed to it reference "audiocpu" assuming that stv was the assumed target. This is really gross and should be a configuration parameter, not a hard-coded assumption.
* Change cpu_device into a base class. Rename old cpu_device to legacy_cpu_device. Aaron Giles2010-06-171-2/+2
| | | | Update interfaces as appropriate.