Commit Graph

118 Commits

Author SHA1 Message Date
Peter De Wachter
7e5ae7b69c Fix screenshot 2016-04-19 23:06:53 +02:00
Peter De Wachter
4c8150e1ff Add a ready-to-use disk image. Update README. 2016-04-19 23:01:26 +02:00
Peter De Wachter
0a6a7aac52 Missing semicolon in Display.Mod 2016-04-19 00:51:55 +02:00
Peter De Wachter
e30fdd84c3 Oberon source cleanup
- Don't use CR line endings. That's the Oberon standard, but it breaks
almost everything else.

- Include a patched version of Input.Mod.
2016-04-19 00:47:10 +02:00
D. E. Evans
11e48788ad Add OS X support.
Assumes SDL2 framework install (libsdl.org) for OS X, as instructed.
2016-02-10 00:15:34 +01:00
Peter De Wachter
70dbab69ef Emulate illegal DIVs
The RISC5 architecture requires divisors to be positive. This commit
emulates what happens if you try to divide by zero or by a negative
integer.
2015-10-02 00:21:50 +02:00
Peter De Wachter
85ee2e5282 Emulate DIV with u-bit set
If the u-bit is set on a DIV instruction, the dividend will be be
interpreted as an unsigned number. This was introduced in the
2015-09-26 RISC5 update.
2015-10-02 00:19:33 +02:00
Peter De Wachter
ec23a381e5 FDV: More accurate rounding
The 2015-09-26 update modified FPDivider.v to use more accurate
rounding. The least significant bit of the result might differ from
the previous version.
2015-10-01 23:51:45 +02:00
Peter De Wachter
e9af0e1b1a Update fp-test for the latest Verilog code
The latest Verilog code uses 48-bit and 64-bit registers, so fp-test
needs to switch to 64-bit integers in the generated code.
2015-10-01 23:40:00 +02:00
Peter De Wachter
10b82d8b40 ob2unix, asciidecoder: some Rust experiments 2015-07-05 11:59:07 +02:00
Peter De Wachter
bc3b1b5438 Tweak the CPU emulation a bit.
Based on suggestions from Robert Ransom.
2015-01-24 16:08:04 +01:00
Peter De Wachter
15f56d339b Don't reuse magic numbers.
Also adapt the patched Display.Mod so it can work with either system.
2014-06-20 18:26:53 +02:00
Peter De Wachter
27fc63778d Fix sign extend undefined behavior
Using a left shift to push a 1 into the sign bit of a signed integer results in
undefined behavior. *sigh*

Use an obscure trick instead.
2014-06-19 20:36:29 +02:00
Peter De Wachter
c1d7717c3e New (& incompatible) screen size hack
This is based on a patch by Charles Perkins:
cf23cea018

It's not compatible with the previous hack, so if you were using that
you'll have to update Display.Mod. A small change to Input.Mod is also
need if you want to increase the size of the display.

The normal, unmodified Oberon software still works correctly, of
course.
2014-06-18 22:35:08 +02:00
Peter De Wachter
eef73f30fb Give the emulated CPU a 32-bit address space
This deviates a bit from the FPGA hardware implementation (which
uses 20-bit addressing) but remains fully compatible with the
Oberon software.
2014-06-16 23:49:14 +02:00
Peter De Wachter
fe431cbf33 Windows seems to have a tiny stack limit... 2014-05-05 21:09:24 +02:00
Peter De Wachter
0d4cbf6a33 Disable raw-serial on Windows
This module was intended to make the emulated RS232 device communicate with a
pair of user-specified file descriptors. But I don't think you can pass file
descriptors around between programs in Windows. So this code is completely
pointless there. Closes #7.
2014-05-05 21:04:04 +02:00
Peter De Wachter
f8a66a68b5 Reassign clipboard port numbers (conflict with schierlm's emulator) 2014-05-05 20:27:55 +02:00
Peter De Wachter
e884562f86 Quick update to the readme 2014-05-04 00:09:49 +02:00
Peter De Wachter
a635262f75 Proper command line parsing 2014-05-03 23:09:17 +02:00
Peter De Wachter
8b94f07a53 Generalize SPI interface a bit
In case anybody feels like emulating the wireless network...
2014-05-03 23:08:25 +02:00
Peter De Wachter
281ed7566b Michael Schierl's screen size patch 2014-05-03 23:07:47 +02:00
Peter De Wachter
56f36a32ea Fix off-by-one error 2014-05-01 20:02:36 +02:00
Peter De Wachter
a5458c470a Move all C code to a subdirectory. 2014-05-01 19:27:09 +02:00
Peter De Wachter
c85b81caf0 Appease clang's scan-build
Another false positive.
2014-05-01 19:24:04 +02:00
Peter De Wachter
50ebae0218 Missing "extern" keyword 2014-05-01 19:16:22 +02:00
Peter De Wachter
ded29873d6 Host clipboard integration 2014-05-01 19:15:26 +02:00
Peter De Wachter
b4dc62f422 Support for smaller screen sizes.
To use this you need to patch Display.Mod.
2014-05-01 19:09:57 +02:00
Peter De Wachter
f702a425d2 Simplify display damage tracking 2014-04-30 22:22:06 +02:00
Peter De Wachter
dbe22cc15d Simplify overflow flag calculation 2014-04-30 21:02:46 +02:00
Peter De Wachter
a369b6c0a7 Restructure a bit. Add fd-based serial driver. 2014-04-30 20:59:24 +02:00
Peter De Wachter
f1e45b4f9a Deal with false positives from clang's static analyzer
Clang's static analyzer complains about possible unitialized
variables, because it doesn't realize these two switches cover all
possible cases (LLVM bug 13027).

Closes #5.
2014-04-14 21:38:34 +02:00
Peter De Wachter
3e4799730d Simplify scaling code a bit 2014-04-13 11:58:52 +02:00
Peter De Wachter
d4d8d34e40 Alt-F4: quit the emulator.
When SDL is running without windowing system, there's nothing that
will generate a SDL_QUIT event. So we need to provide a way to stop
the emulator. Fixes #4.
2014-04-13 11:46:52 +02:00
Peter De Wachter
1b29586f3d Missing break statement in switch.
I hate C sometimes.
2014-04-12 22:55:38 +02:00
pdewacht
8d3c16f8f8 Merge pull request #3 from ilovb/master
build fix for MinGW
2014-04-03 22:38:14 +02:00
Boris Ilov
7ba29acf52 The S_IRGRP, S_IWGRP, S_IROTH, and S_IWOTH macros are not defined on MinGW 2014-04-03 19:53:54 +04:00
Peter De Wachter
47c1a8c721 Fix break scancode of some "grey" keys
Fixes #1, reported by ilovb
2014-04-02 22:21:44 +02:00
Peter De Wachter
26b42c60b8 Make it easy to override default sdl2-config 2014-04-02 22:21:00 +02:00
Peter De Wachter
86eba42f00 Add PCLink shell scripts 2014-03-31 21:24:50 +02:00
pdewacht
86c915c3fb Warn about old disk images 2014-03-31 21:15:51 +02:00
Peter De Wachter
45c1c56c40 Support filesystem-only images.
Patch from Paul Reed.
2014-03-31 21:11:15 +02:00
Peter De Wachter
1a08bc9298 Add gitignore file and clean up a bit 2014-03-27 22:48:42 +01:00
Peter De Wachter
c8b2d2c620 Move SCREEN_WIDTH/HEIGHT to risc.h file
Since it's a property of the RISC machine.
2014-03-27 21:44:39 +01:00
Peter De Wachter
bb84e50862 Fix some bugs in the floating-point adder.
To test the floating point code, I hacked together a simple translator
from the official Verilog implementation to C, and compared the output
of that with the emulator's implementation.
2014-03-27 21:37:43 +01:00
Peter De Wachter
effe483e9c Implement Cmd-Shift-F for Mac users. I hope this works. 2014-03-23 20:02:23 +01:00
Peter De Wachter
d2908c8fee typo 2014-03-23 15:18:15 +01:00
Peter De Wachter
8ca50db45d copyright 2014-03-23 15:15:45 +01:00
Peter De Wachter
e0ba485cce Use alt key to emulate middle button click (Paul Reed) 2014-03-23 15:12:32 +01:00
Peter De Wachter
66dfeb2ada Full-screen display
Use --fullscreen command line option or press F11 to toggle.
2014-03-23 15:05:39 +01:00