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

secure: better security checking, plus many other changes

This commit is contained in:
Jim 2012-07-24 15:30:51 -04:00
parent a0b8f60449
commit 3dce2cef47
2 changed files with 102 additions and 6 deletions

View File

@ -39,7 +39,7 @@ debug: # gdb (Intel)
debugp: # gdb (PowerPC)
rm -rf em.o
cc -arch ppc -DKEYID=${KEYID} -mmacosx-version-min=10.4 -DREV=\"${REV}\" -DNOREGS -g -O0 -DNOTRACE -DFAST -c em.c -fobey-inline -mdynamic-no-pic -Idongle/mx/PPC/api;g++ -arch ppc -o em em.o dongle/mx/PPC/api/libmxmac260.a -framework IOKit -framework CoreFoundation
cc -arch ppc -DKEYID=${KEYID} -mmacosx-version-min=10.4 -DREV=\"${REV}\" -DNOREGS -g -O0 -DNOTRACE -DFAST -c em.c -fobey-inline -mdynamic-no-pic -Idongle/mx/Universal/API/10_6;g++ -arch ppc -o em em.o dongle/mx/Universal/API/10_6/libmxmac260.a -framework IOKit -framework CoreFoundation
rm em.o
@ -53,7 +53,7 @@ trace: # tracing + gdb (Intel)
tracep: # tracing + gdb (PowerPC)
rm -rf em.o
cc -arch ppc -DKEYID=${KEYID} ${REGS} -DREV=\"${REV}\" -DFAST -DNOMEM -O -c em.c -fobey-inline -mdynamic-no-pic -Idongle/mx/Universal/API;g++ -arch ppc -o em em.o dongle/mx/Universal/API/10_6/libmxmac260.a -framework IOKit -framework CoreFoundation
cc -arch ppc -DKEYID=${KEYID} ${REGS} -DREV=\"${REV}\" -DFAST -O -c em.c -fobey-inline -mdynamic-no-pic -Idongle/mx/Universal/API;g++ -arch ppc -o em em.o dongle/mx/Universal/API/10_6/libmxmac260.a -framework IOKit -framework CoreFoundation
rm -rf em.o
@ -67,7 +67,7 @@ vfy: # prod + tracing to verify em changes (Intel)
vfyp: # prod + tracing to verify em changes (PowerPC)
rm -rf em.o
cc -arch ppc -mmacosx-version-min=10.4 -DREV=\"\" -O -DFAST -c em.c -fobey-inline -mdynamic-no-pic -Idongle/mx/PPC/api;g++ -arch ppc -o em em.o dongle/mx/PPC/api/libmxmac260.a -framework IOKit -framework CoreFoundation
cc -arch ppc -mmacosx-version-min=10.4 -DREV=\"\" -O -DFAST -c em.c -fobey-inline -mdynamic-no-pic -Idongle/mx/Universal/API/10_6;g++ -arch ppc -o em em.o dongle/mx/Universal/API/10_6/libmxmac260.a -framework IOKit -framework CoreFoundation
rm -rf em.o
@ -81,7 +81,7 @@ fixed: # fixed clock rate, gdb (Intel)
fixedp: # fixed clock rate, gdb (PowerPC)
rm -rf em.o
cc -arch ppc -mmacosx-version-min=10.4 -DREV=\"${REV}\" -DFIXEDCLOCK -DNOIDLE ${REGS} -g -O0 -DFAST -c em.c -fobey-inline -mdynamic-no-pic -Idongle/mx/PPC/api;g++ -arch ppc -o em em.o dongle/mx/PPC/api/libmxmac260.a -framework IOKit -framework CoreFoundation
cc -arch ppc -mmacosx-version-min=10.4 -DREV=\"${REV}\" -DFIXEDCLOCK -DNOIDLE ${REGS} -g -O0 -DFAST -c em.c -fobey-inline -mdynamic-no-pic -Idongle/mx/Universal/API/10_6;g++ -arch ppc -o em em.o dongle/mx/Universal/API/10_6/libmxmac260.a -framework IOKit -framework CoreFoundation
rm em.o
@ -111,7 +111,7 @@ demol: # demo (limited: 1-2 amlc, 1 disk drive up to 160MB, one PNC node) (Inte
dongleprog: # utility to program a dongle
cc -arch ppc -DREV=\"${REV}\" -c dongleprog.c -Idongle/mx/PPC/api;g++ -arch ppc -o dongleprog dongleprog.o dongle/mx/PPC/api/libmxmac260.a -framework IOKit -framework CoreFoundation
cc -arch ppc -DREV=\"${REV}\" -c dongleprog.c -Idongle/mx/Universal/API/10_6;g++ -arch ppc -o dongleprog dongleprog.o dongle/mx/Universal/API/10_6/libmxmac260.a -framework IOKit -framework CoreFoundation
rm dongleprog.o
@ -124,7 +124,7 @@ lmserver: # license server
lmserverp: # license server
rm -rf lmserver.o
cc -arch ppc -DREV=\"${REV}\" -c lmserver.c -Idongle/mx/PPC/api;g++ -arch ppc lmserver.o -o lmserver dongle/mx/PPC/api/libmxmac260.a -framework IOKit -framework CoreFoundation
cc -arch ppc -DREV=\"${REV}\" -c lmserver.c -Idongle/mx/Universal/API/10_6;g++ -arch ppc lmserver.o -o lmserver dongle/mx/Universal/API/10_6/libmxmac260.a -framework IOKit -framework CoreFoundation
rm lmserver.o
mtread: # Dump a tape to a .tap disk file (Linux only)

96
notes.2012 Normal file
View File

@ -0,0 +1,96 @@
July 7, 2012
Emulator Version 247
Updates to the Prime Emulator since rev 102:
- the emulator runs on both PowerPC and Intel CPU architectures.
It cannot be built as a "Universal" program (runs on both Intel and
PPC); there are separate PPC and Intel versions.
- the format of the licensing information stored on the dongle has
changed. It is possible to run either the old emulator or new
emulator with the same dongle, but when switching between old and
new, the machine must be connected to the Internet.
- one copy of the emulator can run on one machine.
- the dongle is updated as soon as the Prime starts. If your Prime
is rebooting very often for some reason, like many times per hour,
and is not connected to the Internet, it may deplete the dongle
charge sooner than expected. Connect to the Internet if this
happens and the dongle will recharge.
- AMLC handling is much more efficient (uses less CPU time) and
allocates resources more fairly among active AMLC lines
- AMLC telnet negotiation has been fixed, so it's not necessary to use
/NOWAIT with Kermit
- AMLC baud rates have changed from:
1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
to:
300, 1200, 9600, 19200, 9600*, 38400, 57600, 115200
* this is the AMLCLK speed; the default is 9600 like a real Prime
- AMLCLK can be used to set the 4th (starting at 0) baud rate,
like on a real Prime; the default speed is 9600
- the AMLC config filename has been changed from "amlc" to "amlc.cfg"
- assigned AMLC lines can be used for TCP/IP printing in amlc.cfg.
Here is an example config line in amlc.cfg:
010 192.168.1.1:9100
This will connect AMLC line 8 (decimal) to this IP address & port.
If the printer disconnects, the emulator will try to re-establish
the connection the next time there is data to send. If DTR is
dropped, for example by T$AMLC, the emulator will drop the connection.
When DTR is raised, the emulator will re-establish the connection
the next time there is data to send.
- supports PNC emulation (Prime "RingNet") over TCP/IP
- support added for old-style Prime T&M hardware diagnostics;
new-style DIAG diagnostics already ran. The emulator passes
nearly all CPU diagnostics. It is difficult to pass all Prime
diagnostics because many of them expect certain microcode bugs
to be present for certain models.
- if a SIGTERM signal is received, the emulator will try to do a
graceful Primos shutdown. This is useful when a UPS battery
backup is used and the UPS is connected to a USB port: when
the UPS battery gets low, OSX will send SIGTERM to all running
processes. The emulator sees SIGTERM, passes it on to Primos,
and Primos shuts down all disk drives. This prevents disk
corruption than can occur when a Prime is abruptly halted.
It is also possible to send SIGTERM with: kill -TERM n, where
n is the emulator's process id.
- hitting Ctrl \ on the system console will cause the emulator
to shutdown Primos. If this doesn't work for some reason, a
second Ctrl \ will cause an immediate halt.
IMPORTANT NOTE: these last 2 features do not work with the faster,
dedicated register PowerPC build, because signals trash the
registers.
- hitting Ctrl ] on the system console caused the old emulator
to suspend, and "fg" would continue. But it changed the
system console terminal settings. This key has been disabled.
- the emulator prints a reminder to check error.log if it is
not empty. Error and warning messages are written here.
- indirect loops in address calculations are now limited like on a
real Prime. Before, there was no limit, so it was possible to
"hang" the emulator with a specially constructed indirect
instruction.
- previously, the -cpuid option took a number from 0 to 44 to
indicate the CPU model. Now it also accepts model numbers
like 750, 2250, 4050, 9950, etc.
- Ctrl Y, Ctrl V, and Ctrl O work on the system console
- several Prime disk drives had track limits that were off
by 1 or 2. This could cause seek errors, especially when
running Prime diagnostics.