1
0
mirror of https://github.com/prirun/p50em.git synced 2026-01-21 01:48:11 +00:00

276 Commits

Author SHA1 Message Date
Jim Wilcoxson's Prime 50-Series emulator
fc6e1fc97c
Sample system images. 2020-03-12 01:35:22 -04:00
Jim Wilcoxson's Prime 50-Series emulator
5821eb19ff
Typo, extensions to readme.
Add link to repacked 22.1.4 tapes.  Note location of PRIMOS install instructions.
2020-03-11 21:07:43 -04:00
Dennis Boone
fd84f03167 Corrections from Jim. 2020-03-11 02:04:42 +00:00
Dennis Boone
7c3c71e147 Add all utilities to gitignore.
Make rev stamp work for either hg or git repos.
Automate more utility building with makefile changes.
2020-03-11 00:01:49 +00:00
Dennis Boone
aaba33931c Add hg/git ignore files. 2020-03-10 23:36:47 +00:00
Jim
87705809db merge 2020-03-10 15:10:12 -04:00
Jim
2575313ca7 Add license and readme (Thanks Dennis!) 2020-03-10 15:09:48 -04:00
Jim
38840b710d util: new directory for "Prime on Unix" utility programs 2020-03-10 14:49:22 -04:00
Jim
45086db988 makefile: remove utilities from makefile, now in util 2020-03-10 14:48:24 -04:00
Jim
1624437939 em: move #define to force inline to start of code 2020-03-09 22:36:26 -04:00
Jim
364792c169 Remove stopwatch-related calls and stopwatch.h stub 2020-03-09 22:30:09 -04:00
Jim
d544395fbc stopwatch.h: add stub file for Linux version. Older versions of the
emulator will also need this stub to compile.
2020-03-09 22:26:06 -04:00
Jim
4fb9acdc77 makefile: add emwarn target to get crazy with compiler errors and warnings 2020-03-09 16:38:26 -04:00
Jim
4a6a3aff5d em: add macro to force gcc to obey inline keyword
History: when the emulator was first developed on OSX 10.4 (PowerPC),
the inline keyword was added by profiling with Apple's pretty
fantastic Shark profiler.  Apple's version of gcc had an -fobey-inline
switch that the makefile used to force gcc to obey the inline keyword.
This macro does the same thing
2020-03-09 01:12:45 -04:00
Jim
9054d69446 em.c, etc: use gv.xxx instead of gvp->xxx for 13% speed increase, from
37.5 Prime MIPS on Linode VM to 42.5 MIPS.  gvp-> was faster on the
PowerPC architecture when gvp was kept in a dedicated register, but
that does not apply to Intel.

Old:

Timing CPU,  20.0 ticks per second...
  35.3 Prime MIPS for 16-bit ADD loop
  40.0 Prime MIPS for 16-bit MPY loop
  42.1 Prime MIPS for 16-bit DIV loop
  21.4 Prime MIPS for 32-bit ADD loop
  30.8 Prime MIPS for 32-bit MPY loop
  28.6 Prime MIPS for 32-bit DIV loop
  57.1 Prime MIPS for 16-bit X=0 loop
  44.4 Prime MIPS for 32-bit X=0 loop
  37.5 average Prime MIPS

New:

Timing CPU,  20.0 ticks per second...
  42.9 Prime MIPS for 16-bit ADD loop
  53.3 Prime MIPS for 16-bit MPY loop
  47.1 Prime MIPS for 16-bit DIV loop
  24.0 Prime MIPS for 32-bit ADD loop
  38.1 Prime MIPS for 32-bit MPY loop
  32.0 Prime MIPS for 32-bit DIV loop
  57.1 Prime MIPS for 16-bit X=0 loop
  44.4 Prime MIPS for 32-bit X=0 loop
  42.4 average Prime MIPS
2020-03-08 23:46:14 -04:00
Jim
35adf0905a devpnc.h: moved xmit setup code from OTA to pncxmit;
move loopback handling to pncxmit1 so it is used for broadcasts;
added reason to disconnects for better logging;
change some traces to prints for better logging;
my node is always authenticated
2020-03-08 23:25:44 -04:00
Jim
c18704894f merge -naddr changes 2020-03-01 22:06:56 -05:00
Jim
06a848a464 devpnc.h: don't send broadcasts to myself. Not sure if this is right 2020-03-01 22:04:47 -05:00
Jim
73d2479dba em: comment cleanups 2020-03-01 22:02:47 -05:00
Dennis Boone
83f130aba5 devpnc.h: use global bindaddr variable instead of hardcoded INADDR_ANY.
em.c: command line option -naddr to set bind address for pnc socket.
2020-03-01 04:35:23 +00:00
Jim
9d656255a5 devpnc: only broadcast to nodes in ring.cfg 2020-02-29 14:02:52 -05:00
Jim
df00f2c7e6 devpnc.h: # in ring.cfg is a comment, like amlc.cfg; map all
unprintable characters to _
2020-02-29 13:21:45 -05:00
Jim
cd351506ea devpnc.h: drive connections from PNC xmit requests rather than
ring.cfg, for faster start times of large rings
2020-02-27 20:00:58 -05:00
Jim
120079666f devpnc.h: expand listen backlog for big rings, use TCP_DEFER_ACCEPT so
Linux holds onto connections until the uid is sent.  Otherwise, the
delay between making a connection and sending the uid will be larger
than MAXACCCEPTTIME, causing large rings to fail
2020-02-27 11:53:07 -05:00
Jim
bf3c1a3df2 devpnc: after accept, make fd non-blocking to avoid deadlock when multiple emulators make connect requests, then accept(), then block reading uid that never comes. 2020-02-26 21:39:21 -05:00
Jim
9de65ca516 em: decode keys and modals in fatal error message 2020-02-25 20:11:15 -05:00
Jim
00205c830b add lights (Dennis) 2020-02-25 14:15:03 -05:00
Jim
aac96b62c2 devpnc.h: disable Nagle to decrease latency 2020-02-25 13:46:44 -05:00
Jim
a4cc429fad Linux cleanup to remove demo/dongle code, remove PowerPC stuff, fix slow PNC I/O, fix a nasty devmt bug 2020-02-24 23:55:03 -05:00
Jim
4061b6adc9 Changes to allow emulator to run on Linux for hosting at Linode 2019-09-25 10:56:48 -04:00
Jim
a5d156c679 devamlc: only print ttymsg on socket connections, not dedicated; b)
only accept incoming connections from dedicated host if the port in
amlc config file is zero
2019-07-04 12:56:36 -04:00
Jim
5bf0eb8362 typo 2019-07-04 11:53:04 -04:00
Jim
58071510f6 typo 2019-07-04 11:52:52 -04:00
Jim
3dbd7630fb allow demo emulator to access 2 drives 2019-07-04 11:47:24 -04:00
Jim
ebd8a8a3fa secure: muck up RP instead of keys if secure() is bypassed, because
bad keys give an emulator error about a bad generic, while a bad RP
('7777/0) is a failure mechanism already in secure()
2012-07-25 09:25:02 -04:00
Jim
233ef630d4 Don't install signals with dedicated registers 2012-07-24 15:41:56 -04:00
Jim
3dce2cef47 secure: better security checking, plus many other changes 2012-07-24 15:30:51 -04:00
Jim
a0b8f60449 emdev: disable ^C, include gettimeofday override test 2012-07-18 23:57:51 -04:00
Jim
371c051d16 em: save pid and boot file inode for security checks 2012-07-18 23:56:49 -04:00
Jim
b68b4ea92b secure: don't compare previous dongle data for KEYID=0 (public emulators) 2012-07-10 11:22:20 -04:00
Jim
441a3f5845 Updates after testing on PPC G4 Tiger machine (makefile changes), and
tighten secure.h a bit
2012-07-09 22:13:25 -04:00
Jim
fce85ba28e secure: update dongle handling:
- decrement hoursleft on each boot to prevent running very short Prime
  sessions that don't update the dongle; this allows removing of
  dongle_dtime (the last time the dongle was updated)

- only uses 1 dongle location (for hoursleft)

- maintain a checksum on dongle values to detect tampering

- encrypt hoursleft and the dongle checksum

- write random values in all other dongle locations

- validate dongle by asking it to encrypt random values; this requires
  that a copy of the dongle key is stored in the executable

- don't fail immediately: just set a status and keep going

- caller sets bad Prime keys and hands us the correct keys; we reset
  Prime keys before returning.  This makes it harder to bypass
  security by not calling it at all.
2012-07-02 17:45:45 -04:00
Jim
021ed5443a makefile: add Intel lmserver, remove .o before builds, etc. 2012-07-02 17:18:29 -04:00
Jim
75a4b59312 em: don't use localhost if license server DNS fails; update copyright 2012-07-02 17:15:42 -04:00
Jim
e42d7cee37 devamlc: fix byte-order bugs with dedicated outbound lines on Intel 2012-06-10 09:46:50 -04:00
Jim
147b28e84e misc edits 2012-06-09 17:56:11 -04:00
Jim
2b0bb15902 em: if instpermsec starts at 15000, CPU.TIMER.SAVE diag fails in case 4 2012-06-09 17:55:54 -04:00
Jim
1dd6b39ef3 devamlc: don't print disconnect msg on dedicated lines, don't try to
connect on dedicated *inbound* lines; connection request has to come
from the device in this case.
2012-06-06 14:22:36 -04:00
Jim
1f09a815b5 fp.h: always needs to return a result now (bs changes) 2012-06-04 14:36:02 -04:00
Jim
e60628f2d1 Fix trace format 2011-12-14 16:50:54 -05:00