Commit Graph

1406 Commits

Author SHA1 Message Date
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
dingusdev
ac5b70ad26
Worked more on Grackle, ESCC, and OpenPIC 2019-07-14 17:05:10 -07:00
dingusdev
87acd53c86
Update for July 11, 2019
- Fixed the floating point operations dispatch table and filled in a lot of missing gaps
- Started overhauling floating point emulation
- Minor fixes for Grackle reading and writing, mostly writing
- Handle integer division by zero cases
2019-07-11 22:27:14 -07:00
dingusdev
c6f67b5a6f Update issue templates 2019-07-07 11:27:39 -07:00
dingusdev
2bd717e293
Update for July 7, 2019
The following fixes and changes have been made

- Better Grackle emulation (though far from perfect)
- OpenPIC write/read fixes
- DAVBus Stubs
- Started splitting functionality from the main routine, to slowly make way for a GUI-based version
- Added a new until command argument
- Fixed an entry in the floating point instruction dispatch table
- CMakeLists.txt added
2019-07-06 23:10:32 -07:00
dingusdev
d776e3918b
Another small fix to makefile. 2019-07-03 18:57:08 -07:00
dingusdev
a76acf9615
Delete macscsi.c 2019-07-03 18:52:25 -07:00
dingusdev
7bde094234
Delete mpc106.c 2019-07-03 18:52:16 -07:00
dingusdev
8cf4f08ae2
Fixed Privilege Mode Bit Check 2019-07-02 18:29:16 -07:00
dingusdev
2a868552b9
Merge pull request #1 from maximumspatium/master
Various fixes and improvements for non-Windows systems.
2019-07-02 18:16:10 -07:00
Maxim Poliakovski
24f4dedeac ppcemumain.h: fix wrong dispatch table index. 2019-07-03 00:07:11 +02:00
Maxim Poliakovski
9c0c1da53f Replace '&&' with '&' where bitwise AND is expected.
This fixes compilation warnings when using GCC/Clang.
Improve formatting along the way.
2019-07-02 14:18:51 +02:00