1
0
mirror of https://github.com/aap/pdp6.git synced 2026-04-26 04:07:15 +00:00

emu: few more fixes

This commit is contained in:
aap
2019-03-30 13:30:49 +01:00
parent 6e2eb547ca
commit cf1c868ae0
3 changed files with 3257 additions and 3055 deletions

View File

@@ -23,4 +23,4 @@ test_dt: test_dt.c dc.c dt.c $(H)
$(CC) -o $@ $(CFLAGS) test_dt.c dc.c dt.c $(CC) -o $@ $(CFLAGS) test_dt.c dc.c dt.c
test_apr: test_apr.c main_panel.c dis340.c $(SRC) $(H) test_apr: test_apr.c main_panel.c dis340.c $(SRC) $(H)
$(CC) -o $@ $(CFLAGS) $(SDLFLAGS) test_apr.c main_panel.c dis340.c $(SRC) $(LIBS) $(SDLLIBS) $(CC) -o $@ $(CFLAGS) $(SDLFLAGS) test_apr.c main_panel.c dis340.c $(SRC) $(LIBS) $(SDLLIBS)

View File

@@ -503,7 +503,7 @@ void
ar_cry_in(Apr *apr, word c) ar_cry_in(Apr *apr, word c)
{ {
word a; word a;
a = (apr->n.ar & ~F0) + c; a = (apr->n.ar & ~F0) + (c & ~F0);
apr->n.ar += c; apr->n.ar += c;
if(apr->n.ar & FCRY) apr->ar_cry0 = 1; if(apr->n.ar & FCRY) apr->ar_cry0 = 1;
if(a & F0) apr->ar_cry1 = 1; if(a & F0) apr->ar_cry1 = 1;
@@ -1398,7 +1398,7 @@ defpulse(dct3)
{ {
apr->n.mb &= apr->c.ar; // 6-3 apr->n.mb &= apr->c.ar; // 6-3
apr->chf7 = 0; // 6-19 apr->chf7 = 0; // 6-19
pulse(apr, &et10, 0); // 5-5 pulse(apr, &et10, 1); // 5-5
} }
defpulse(dct2) defpulse(dct2)
@@ -1435,7 +1435,7 @@ defpulse_(lct0a)
apr->lcf1 = 0; // 6-20 apr->lcf1 = 0; // 6-20
apr->n.ar &= apr->c.mb; // 6-8 apr->n.ar &= apr->c.mb; // 6-8
apr->chf7 = 0; // 6-19 apr->chf7 = 0; // 6-19
pulse(apr, &et10, 0); // 5-5 pulse(apr, &et10, 1); // 5-5
} }
defpulse(lct0) defpulse(lct0)
@@ -1645,8 +1645,7 @@ defpulse(dst21a)
{ {
apr->dsf9 = 0; // 6-26 apr->dsf9 = 0; // 6-26
SWAP(mb, mq); // 6-17 SWAP(mb, mq); // 6-17
if(IR_DIV) if(IR_DIV) pulse(apr, &et9, 0); // 5-5
pulse(apr, &et9, 0); // 5-5
if(apr->fdf2) pulse(apr, &fdt0b, 0); // 6-22 if(apr->fdf2) pulse(apr, &fdt0b, 0); // 6-22
} }
@@ -1694,6 +1693,14 @@ defpulse(dst17)
pulse(apr, &cfac_ar_add, 0); // 6-17 pulse(apr, &cfac_ar_add, 0); // 6-17
} }
defpulse(dst16_dly)
{
if(apr->c.ar & F0)
pulse(apr, apr->c.mb & F0 ? &dst18 : &dst17, 0); // 6-26
else
pulse(apr, &dst17a, 0); // 6-26
}
defpulse(dst16) defpulse(dst16)
{ {
word ar0_shr_inp = 0; word ar0_shr_inp = 0;
@@ -1704,10 +1711,7 @@ defpulse(dst16)
if(IR_DIV) if(IR_DIV)
ar0_shr_inp = (~apr->c.mq & F35) << 35; ar0_shr_inp = (~apr->c.mq & F35) << 35;
AR_SH_RT; // 6-17 AR_SH_RT; // 6-17
if(apr->c.ar & F0) pulse(apr, &dst16_dly, 100);
pulse(apr, apr->c.mb & F0 ? &dst18 : &dst17, 100); // 6-26
else
pulse(apr, &dst17a, 0); // 6-26
} }
defpulse(dst15) defpulse(dst15)
@@ -2654,7 +2658,7 @@ defpulse_(et5)
if(E_LONG) // 5-5 if(E_LONG) // 5-5
pulse(apr, &et6, 100); pulse(apr, &et6, 100);
else else
pulse(apr, &et10, 0); pulse(apr, &et10, 1);
} }
defpulse_(et4) defpulse_(et4)

6286
emu/mem_0

File diff suppressed because it is too large Load Diff