1
0
mirror of https://github.com/prirun/p50em.git synced 2026-03-23 16:42:17 +00:00

2 Commits

Author SHA1 Message Date
Dennis Boone
74aa7fe23e Trial command line option to suppress updating PRIMOS' DATNOW variable. 2025-09-29 20:38:30 -04:00
Dennis Boone
1819fed512 Error in link to install instructions
The link in README.md to install instructions was either old or
never quite right.  Point to DRB's overview document now, which
points (near) to the version specific ones.
2022-03-21 15:24:01 -04:00
4 changed files with 6 additions and 40 deletions

View File

@@ -55,7 +55,7 @@ business unit ceased to exist. A reformatted copy is available
A growing collection of Prime and related documentation is available
at [sysovl.info](https://sysovl.info/reference_prime.html).
A howto on installing PRIMOS in the emulator is
[here](https://sysovl.info/reference_prime_drb_installing_primos.html).
[here](https://sysovl.info/reference_prime_drb_installoview.html).
Discussion of adapting these instructions to
22.1.4 has been occurring on the [cctalk mailing
list](http://classiccmp.org/pipermail/cctalk/2020-March/052126.html).

View File

@@ -991,7 +991,6 @@ int devamlc (int class, int func, int device) {
if (dc[dx].xmitenabled & BITMASK16(lx+1)) {
int n, maxn;
unsigned short qtop, qbot, qseg, qmask, qents;
short hasiac; /* This buffer contains an escaped IAC */
ea_t qentea, qcbea;
n = 0;
qcbea = dc[dx].baseaddr + lx*4;
@@ -1020,35 +1019,12 @@ int devamlc (int class, int func, int device) {
precludes the use of TTY8BIT mode... */
n = 0;
hasiac = 0;
for (i=0; i < maxn; i++) {
unsigned short utemp;
utemp = get16mem(qentea);
/* qentea = (qentea & ~qmask) | ((qentea+1) & qmask); */
qentea = (qentea & ~qmask) | ((qentea+1) & qmask);
//printf("Device %o, line %d, entry=%o (%c)\n", device, lx, utemp, utemp & 0x7f);
#ifdef NOMASKAMLC
if (((utemp & 0xff) == 0xff) && (dc[dx].ctype[lx] != CT_SERIAL))
{
if (n != 0)
break; /* Clear the buffer before handling IAC */
else
{
buf[n++] = 0xFF;
buf[n++] = 0xFF;
hasiac = 1;
qentea = (qentea & ~qmask) | ((qentea+1) & qmask);
break; /* Now ship _just_ the IAC */
}
}
else
{
buf[n++] = utemp & 0xFF;
qentea = (qentea & ~qmask) | ((qentea+1) & qmask);
}
#else
/* None of the IAC handling matters if we splatter parity */
buf[n++] = utemp & 0x7F;
#endif
}
} else {
@@ -1113,10 +1089,7 @@ int devamlc (int class, int func, int device) {
used and Unix buffers get full so writes can't
complete */
if (hasiac)
qtop = (qtop & ~qmask) | ((qtop+1) & qmask);
else
qtop = (qtop & ~qmask) | ((qtop+nw) & qmask);
qtop = (qtop & ~qmask) | ((qtop+nw) & qmask);
put16io(qtop, qcbea);
if (nw > maxxmit)
maxxmit = nw;

4
em.c
View File

@@ -2384,8 +2384,8 @@ static ea_t apea(unsigned short *bitarg) {
iwea = ea;
ea = ip;
TRACE(T_EAAP, " After indirect, AP ea = %o/%o, bit=%d %s\n", ea>>16, ea & 0xFFFF, bit, searchloadmap(ea,' '));
// if (ea & 0x80000000)
// fault(POINTERFAULT, ea>>16, iwea);
if (ea & 0x80000000)
fault(POINTERFAULT, ea>>16, iwea);
}
if (bitarg != NULL)
*bitarg = bit;

View File

@@ -33,7 +33,7 @@ trace: $(em_deps) $(all_deps)
# the fixed clock rate build is useful for making problems reproduceable.
#
# If the emulator crashes on a specific program, run it at the end of
# If the emulator crashes on a specific program, run it at the end of
# PRIMOS.COMI to get a more consistent instruction count for the
# failure, then enable tracing a little before that with -trace <IC - 100>
@@ -41,12 +41,5 @@ trace: $(em_deps) $(all_deps)
fixed: $(em_deps) $(all_deps)
$(CC) -DREV=\"${REV}\" ${CFLAGS} -DFIXEDCLOCK -DNOIDLE -DFAST -O em.c -o em
# Experimental "don't mask off the high bit on amlc lines" build
#
# Let's see if this is breaking e.g. ymodem file transfers.
nomaskamlc: $(em_deps) $(all_deps)
$(CC) -DREV=\"${REV}\" -DNOMASKAMLC ${CFLAGS} -DNOTRACE -DFAST -O -Winline -Wno-return-type em.c -o em.nomaskamlc
clean:
rm -f $(em_objs)