Commit Graph

119 Commits

Author SHA1 Message Date
Maxim Poliakovski
78e8b06cf1 Add interfaces for PCI host and PCI device. 2019-08-23 23:36:21 +02:00
Maxim Poliakovski
2f06623c62 Rewrite MPC106 emualation from scratch.
From now on, ppcmemory delegates physical address translation
to MPC106 on PowerMac Beige G3.
2019-08-21 23:55:21 +02:00
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