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:
@@ -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)
|
||||||
|
|||||||
24
emu/apr.c
24
emu/apr.c
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user