Commit Graph

167 Commits

Author SHA1 Message Date
Maxim Poliakovski
ac1f770f92 Create base class for memory controller devices.
Create 'devices' directory for virtual device
sources and move MPC106 source to it.
2019-08-21 23:43:59 +02:00
Maxim Poliakovski
843f010ac6 Simplify top level makefile.
Use standard variable names (CXX, CXXFLAGS) whenever possible.
2019-08-18 19:05:52 +02:00
dingusdev
673485179c
More fixes and re-removed unneeded debug messages 2019-08-13 21:29:14 -07:00
dingusdev
fada84ca3f
More minute opcode fixes 2019-08-13 20:37:27 -07:00
dingusdev
698a761d15
More opcode fixes and adjustments 2019-08-13 20:29:52 -07:00
Maxim Poliakovski
449934e0f3 ppcopcodes: fix cror emulation. 2019-08-13 16:58:47 +02:00
Maxim Poliakovski
eeb1e46889 Fix dispatch map for sync opcode. 2019-08-13 15:59:11 +02:00
dingusdev
0d2fbd4465
Merge pull request #11 from dingusdev/revert-10-master
Revert "Machine-specific address maps and generic MMIO devices."
2019-08-07 18:33:38 -07:00
dingusdev
cee515d864
Revert "Machine-specific address maps and generic MMIO devices." 2019-08-07 18:33:00 -07:00
dingusdev
a57b9c597c
Merge pull request #10 from maximumspatium/master
Machine-specific address maps and generic MMIO devices.

This now allows the start-up chime to play on a PowerMac 6100 setup.
2019-08-07 18:27:30 -07:00
Maxim Poliakovski
1c360841f6 Define and connect basic PowerMac 6100 hardware. 2019-08-07 20:26:30 +02:00
Maxim Poliakovski
6ad38c9142 ppcmemory now uses machine's physical address map.
Hardcoded addresses haven't been completely removed yet. It can be
done after creating proper MMIO devices they're bound to.
2019-08-07 20:26:30 +02:00
Maxim Poliakovski
aec95254a8 Add AddressMap class for defining physical maps. 2019-08-07 20:26:30 +02:00
Maxim Poliakovski
a469bcf900 Add base class for memory-mapped I/O devices. 2019-08-07 20:26:30 +02:00
Maxim Poliakovski
91c56a3465 ppcopcodes: switch off a couple of debug messages. 2019-08-07 20:26:29 +02:00
dingusdev
521bdc6720
Merge pull request #9 from maximumspatium/master
Fix and factor out mask generator for rotate&shift instructions.
2019-08-06 21:15:25 -07:00
Maxim Poliakovski
9b8b567804 Fix mask generator for rotate&shift if mb > me.
Factor out mask generator and convert rot_sh, rot_mb
and rot_me to local variables.
2019-08-06 01:42:07 +02:00
dingusdev
a4be7b8e0f
Fix the warnings for good
Prevents the tautological compare warning from ever popping up.
2019-08-04 08:43:20 -07:00
dingusdev
53cb4206d0
Merge pull request #8 from maximumspatium/master
Fix for conditional branches and some more cleanup.
2019-08-03 06:59:35 -07:00
Maxim Poliakovski
d6fa66174e ppcmemory: temporarily fix Nubus ROM mirror reading. 2019-08-03 07:16:24 +02:00
Maxim Poliakovski
911edec94c ppcopcodes: fix conditional branches. 2019-08-03 07:01:09 +02:00
Maxim Poliakovski
377a5eb89c Add conditionally compiled checks for invalid CMP forms. 2019-08-03 07:01:09 +02:00
dingusdev
5b3e844296
Merge pull request #7 from maximumspatium/master
BAT Translation refactored
2019-08-02 19:34:58 -07:00
Maxim Poliakovski
ca277e82f9 ppcmemory: refactor memory reads/writes. 2019-08-03 02:59:42 +02:00
Maxim Poliakovski
133aeef9ad ppcmemory: refactoring of address translation code. 2019-08-03 01:06:51 +02:00
Maxim Poliakovski
4f6ce0fa9a Clean up PowerPC-style DBAT translation for writes. 2019-08-02 02:02:01 +02:00
dingusdev
c11bddc47f
Merge pull request #6 from maximumspatium/master
Map->Array replacements.
2019-07-30 19:53:29 -07:00
Maxim Poliakovski
a6335fe704 More Map->Array replacements and code simplifications. 2019-07-29 20:51:10 +02:00
Maxim Poliakovski
61370019ef Replace OpcodeGrabber map with an array of function pointers. 2019-07-29 20:36:43 +02:00
Maxim Poliakovski
a3500983ea Correct misspelled function name. 2019-07-25 19:00:41 +02:00
dingusdev
7f9b307fa5
Merge pull request #5 from maximumspatium/master
ppcfpopcodes: replace logical AND with AND where required.
2019-07-24 19:41:18 -07:00
Maxim Poliakovski
d4df3c7e07 ppcfpopcodes: replace logical AND with AND where required. 2019-07-25 04:20:48 +02:00
dingusdev
fab6d829dc
Merge pull request #4 from maximumspatium/master
Add .gitignore to simplify Git workflow.
2019-07-21 10:46:43 -07:00
Maxim Poliakovski
1de2e35288 Add .gitignore to simplify Git workflow. 2019-07-21 03:50:15 +02:00
dingusdev
de937651ed
Some more minor fixes to the opcodes
Reduces the warnings for the Floating point opcodes
2019-07-20 16:00:15 -07:00
dingusdev
8560a540c9
Merge pull request #3 from maximumspatium/master
More CPU emulation fixes.
2019-07-19 14:40:30 -07:00
Maxim Poliakovski
c89d3545cd Simplify initialization of ppc_cur_instruction. 2019-07-19 23:34:57 +02:00
Maxim Poliakovski
2417204b5f main: use correct variable for PC updates. 2019-07-19 23:34:57 +02:00
Maxim Poliakovski
112f2265d6 ppcopcodes: fix mfsr, mfsrin, mtsrin and mtmsr emulation. 2019-07-19 23:34:57 +02:00
dingusdev
c9854b36c6
More fixes, plus a temp icon 2019-07-19 14:24:39 -07:00
dingusdev
f89c54848b
Fixed storage opcodes after last night's commit. 2019-07-19 09:10:41 -07:00
dingusdev
e091fedb38
Near-Midnight Update - July 18, 2019
- Added a check for NuBus Macs, providing a mirror to the ROM
- Very slightly optimized ROM accesses for instructions and reads
- Some slight OpenPIC fixes
- Removed unused variables and slightly improved code readability
- Changed readme + boot-up help to reflect on newly added debugger

More changes will be added soon.
2019-07-18 23:31:16 -07:00
dingusdev
e909d48ee6
Merge pull request #2 from maximumspatium/master
Various CPU emulation fixes + new command-line debugger.
2019-07-17 19:30:18 -07:00
Maxim Poliakovski
fece6e4042 ppcmemory: add missing newlines to printf messages. 2019-07-17 19:55:46 +02:00
Maxim Poliakovski
521d6e4960 ppcopcodes: fix (again) mask calculation for rotations. 2019-07-17 19:37:07 +02:00
Maxim Poliakovski
c253c48d89 ppcopcodes: fix mfmsr emulation. 2019-07-17 19:04:31 +02:00
Maxim Poliakovski
4ffaf2cef3 Add simple command-line debugger. 2019-07-17 17:56:08 +02:00
Maxim Poliakovski
051be54633 main: fix access to wrong/uninitialized variables. 2019-07-17 17:56:08 +02:00
Maxim Poliakovski
fc26660f11 ppcopcodes: partial fix for XER[CA] updates. 2019-07-17 17:44:53 +02:00
Maxim Poliakovski
9685be3154 ppcopcodes: fix mask generation for rotation instructions. 2019-07-17 17:44:53 +02:00