Commit Graph

19 Commits

Author SHA1 Message Date
Peter Rutenbar
0322e558b4 Preliminary support for ethernet/multiple screens in cocoa client 2015-09-13 00:39:58 -07:00
Peter Rutenbar
1ab8a6a988 Fixed bugs in addx, subx, and cmpm
(cmpm was setting the CC codes based on a garbage source operand, so fixing that might fix a lot of other problems)
2015-09-10 16:27:00 -04:00
Peter Rutenbar
c0439a2f57 Fixed some integer division bugs, and other misc bugs 2015-09-01 16:04:30 -04:00
Peter Rutenbar
2ffbc963d2 Implemented chk2/cmp2, sbcd, and nbcd 2015-08-31 17:33:52 -04:00
Peter Rutenbar
36fdd1a6d6 Fixed/implemented roxx_mem, rox_mem, abcd, pack, unpk, cas2
Trying to finish up the last few unimplemented 68020 insts
2015-08-31 01:57:37 -04:00
Peter Rutenbar
476a8bb570 Major speed improvements (25-50%)
There may be bugs lurking in it. On my Core i7 macbook pro,
shoebill now runs so fast that SetUpTimeK() on A/UX 3 hangs.
(SetUpTimeK tries to time a dbra loop, and refuses to accept any
speed faster than a certain threshold, which shoebill is now
surpassing. If you see A/UX hanging early in boot, it's probably
that.)

- Added a new specialized cache for instruction stream reads
-- This also lets us distinguish between data and instruction
   reads, which the 68020 does. Instruction reads are now done
   with the correct function code (2 or 6), although that
   doesn't currently fix or improve anything currently
- Added an obvious condition code optimization, dunno how I missed
  it earlier
- Other little changes
2015-01-29 00:19:57 -05:00
Peter Rutenbar
76f2b35170 Unbroke shoebill, speed improvements
- Fixed inst_ext, which was completely broken since
  last commit, whoops!
- Added a bunch of __builtin_expect()s in all the
  critical paths, and now Marathon runs quite noticeably
  faster.
- Fixed (I think) all the SDL makefiles
2015-01-26 22:26:30 -05:00
Peter Rutenbar
9c3640cf48 fcmp and various other changes
- Read the 68881 docs for fcmp more carefully, and tweaked it to more
  accurately implement the (documented) behavior
- Implemented de-un-normalizing for all x80 softfloat ops
- Some other changes I don't remember - it's my emulator, I can be vague
  if I want XD
2014-12-10 22:22:45 -05:00
Peter Rutenbar
688199cf6d Dumping a lot of new FPU-related changes in a new branch
A/UX doesn't even come close to booting yet with the new FPU,
but we're getting there. I don't want to trash master with
a code base that doesn't work. Also, I turned off ethernet
in the cocoa GUI, since the TAP driver isn't working right
on 10.10 yet.
2014-11-05 13:38:51 -05:00
pruten
adc2e16ffd Implemented CAS
It compiles, but I haven't even tested it once. *fingers crossed*
2014-09-28 19:40:16 -04:00
pruten
b29c69453e Mostly-working ethernet and various changes
This may break the linux/windows builds - I haven't tried to compile
on those platforms yet.

- Ethernet is more or less working with a hardcoded /dev/tun0 network interface
and hardcoded MAC address, though there's no automatic ifconfig/route
configuration yet.

- Instructions TAS and ILLEGAL are implemented now

- Fixed some bugs in MOVEP

- Implemented some other instruction disassemblers

- Other little changes
2014-09-11 03:40:20 -04:00
pruten
4af4262993 Implemented movep 2014-08-30 05:10:54 -04:00
Peter Rutenbar
952fe7ae89 Linux SDL GUI + bug fixes + printf->slog
- sdl-gui/sdl.c is a tiny, basically working SDL2-based GUI that can compile and run on linux.
  It still needs PRAM integration and a config file.

- Fixed a dumb bug in shoebill_initialize that was causing sporadic crashes

- Replaced a million printf() calls with slog(), to make the SDL client run more quietly on the CLI

- Added more corruption checking to alloc_pool
2014-06-09 16:21:12 -04:00
Peter Rutenbar
f4f546deb5 Restart + PRAM integrated into GUI + misc
Restart/shutdown now work (most of the time)
PRAM is now integrated into the GUI
The real time clock sorta works, but is a bit wonky
Full-screen support
Lots of other little bug fixes
2014-05-24 13:39:39 -04:00
Peter Rutenbar
d19c17812c New debugger + inital PRAM/real-time clock + fixes
- Refactored VIA rega/b implementation
  - Timers don't "work" yet, but they work a little better
  - Split rega/b into input and output versions
  - Fixed a bug that would mistake VIA1 accesses for VIA2

- Added basic support for PRAM and the RTC, although they're not
  wired into the GUI yet

- Replaced every *alloc() call with an alloc_pool call, which is
  a start toward supporting clean restarts

- Replaced ea_addr, ea_read, ea_write, and ea_read_commit with
  jump tables

- Got rid of ~inst() macro in cpu.c

- added a GLUT-based debugger
2014-05-10 19:25:31 -04:00
Peter Rutenbar
9f0e6ed115 Speed improvements + little fixes + 0.0.2 release
- Converted condition-code + physical_get/set switch statements to jump tables
- Moved the pmmu_cache lookup code out of translate_logical_addr
- Broke MOVE into move-to-datareg, -from-datareg, and datareg-to-datareg
- Fixed UFS code to ignore high 32 bits of inode size (it sometimes contains garbage)
- Support for zero-length reads in scsi.c + 256kb read/write buffer
- pushing interrupt stack frames now actually changes the priority mask
- Updated the READMEs, screencaps for 0.0.2
2014-04-26 13:35:56 -04:00
Peter Rutenbar
cc2bb3c605 Implemented trapv/trapcc + a few more FPU instructions.
Implemented the divide-by-zero exception.
Made some progress toward 16/24-bit video.
2014-04-19 12:12:15 -04:00
Peter Rutenbar
e82172884e - Made a lot of progress getting 3.0.0 to run.
- Implemented support for reading the kernel from SVFS/UFS filesystems
- Other little changes
2014-04-05 19:20:53 -04:00
Peter Rutenbar
93cefd9451 First big barely-functional code drop 2014-02-24 17:14:52 -05:00