1
0
mirror of https://github.com/prirun/p50em.git synced 2026-01-22 02:05:24 +00:00

263 Commits

Author SHA1 Message Date
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
Jim
4c2594beb4 Change long to int for instruction counts 2011-12-04 11:01:14 -05:00
Jim
326c136dc2 makefile: don't compile with registers for PPC; it's a lot faster, but
disables async PNC I/O, which makes remote disk access VERY slow.
2011-12-04 11:00:32 -05:00
Jim
0f4af04275 devamlc: increase max buffer size for large AMLIBL buffers 2011-11-26 13:37:40 -05:00
Jim
2e5674013a devpnc: add ENOTCONN as known error when connect fails 2011-11-26 13:36:56 -05:00
Jim
49a81258ae devamlc: remove some prints, add some comments, moved an if 2011-11-26 11:47:31 -05:00
Jim
ae7a089a5d devpnc: remove DEMO debugs, don't print error for nodeid = 0 2011-11-26 10:45:05 -05:00
Jim
44f35153c7 devamlc: start working on passing ^O through AMLC / telnet 2011-11-26 09:48:29 -05:00
Jim
9be11b1a57 magsav: add to makefile, make binary magsav work (Unix text magsav not done) 2011-11-26 09:47:25 -05:00
Jim
51072065e9 devpnc: check node id, add ring.cfg checks for DEMO builds 2011-11-26 09:45:15 -05:00
Jim
f1a7e6f501 -cpuid takes model numbers too, STPM stores emulator version 2011-11-24 00:10:12 -05:00
Jim
dc24f26eb1 Use registers on PPC for demo/production build, don't install sigquit,
don't use async I/O for PNC.  Signals don't work with registers enabled.
2011-11-23 15:07:45 -05:00
Jim
ad35ffb6f7 Fixed SSSN byte-swap problem 2011-11-18 15:06:47 -05:00
Jim
da09d83222 magsav: add magsav to makefile - doesn't compile though :( 2011-11-18 10:18:06 -05:00