Commit Graph

79 Commits

Author SHA1 Message Date
Peter De Wachter
7217b49551 Double window size on high-dpi displays 2017-10-15 00:18:48 +02:00
Peter De Wachter
6ce0b8c6f7 Update to match 2016-09-04 FPAdder.v 2016-10-04 21:56:32 +02:00
Peter De Wachter
52bd02f198 Update FP division to match 2016-09-16 FPDivider.v 2016-09-17 09:04:30 +02:00
Peter De Wachter
2b7399067f Implement 20160808 FPMultiplier change 2016-08-09 22:08:30 +02:00
Peter De Wachter
8a034ddff8 Document --leds option. 2016-08-06 23:11:45 +02:00
Peter De Wachter
5c3a1b020d Hide LED output by default. 2016-08-06 23:09:58 +02:00
Peter De Wachter
b320cb6d6d Small cleanups 2016-08-06 22:50:25 +02:00
Peter De Wachter
c609fbf649 Add Ctrl-Shift-Del shortcut for reset
This key combination is described in Reiser, "The Oberon System".
2016-08-06 22:38:08 +02:00
Peter De Wachter
159b049221 Clean up keyboard handling 2016-08-06 22:37:14 +02:00
Peter De Wachter
a261a14cc3 Updated disk image.
Wirth's changelog:

20160704 - Display.Mod updated
    guard against w < 0 in Display.ReplConst
20160620 - System.Mod updated   (see procedure Clear)
20160601 - TextFrames.Mod.txt updated
     see TextFrames.Extend      WHILE ... & (curY >= botY) ...
20160508 - Oberon07.Report.pdf   see syntax of module  (";" removed)
      see ORP.Declarations   (OR (sym = ORB.return))
20160501 - Oberon07.Report.pdf   see defintion of Type
20160418 - corrections: ORP.Mod.txt  ORG.Mod.txt
2016-08-02 20:16:28 +02:00
Peter De Wachter
08f3f8d9bb Mention the disk image tools. 2016-04-19 23:18:05 +02:00
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