From e3aa5af7e84b2d957c665bc64200c8d60a293ca1 Mon Sep 17 00:00:00 2001 From: aap Date: Mon, 18 Apr 2016 10:35:47 +0200 Subject: [PATCH] implemented XCT --- apr.c | 11 ++++++++++- mem | 8 ++++---- test.s | 8 +++++--- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/apr.c b/apr.c index 26df73c..9cb1a62 100644 --- a/apr.c +++ b/apr.c @@ -423,6 +423,7 @@ pulse(mc_addr_ack); pulse(key_rd_wr_ret); pulse(it0); pulse(it1); +pulse(it1a); pulse(ft0); pulse(ft1a); pulse(at0); @@ -933,6 +934,13 @@ pulse(ar_ast0){ nextpulse(apr, ar_ast1); // 6-9 } + +pulse(xct_t0){ + trace("XCT T0\n"); + nextpulse(apr, mr_clr); // 5-2 + nextpulse(apr, it1a); // 5-3 +} + /* * Priority Interrupt */ @@ -1259,6 +1267,8 @@ pulse(et3){ nextpulse(apr, blt_t0); // 6-18 if(apr->shift_op) nextpulse(apr, sht1); // 6-20 + if(apr->inst == XCT) + nextpulse(apr, xct_t0); // 5-10 if(AR_SBR) apr->et4_ar_pse = 1; // 5-5 if(!ET4_INH) @@ -1651,7 +1661,6 @@ pulse(mc_wr_rs){ trace("MC WR RS\n"); if(apr->ma == apr->mas) apr->mi = apr->mb; // 7-7 -print("write %llo to %o\n", apr->mb, apr->ma); membus1 = apr->mb; // 7-8 membus0 |= MEMBUS_WR_RS; // 7-8 if(!apr->mc_stop) diff --git a/mem b/mem index 36724b2..6e3d2ce 100644 --- a/mem +++ b/mem @@ -1,6 +1,6 @@ -1000: 200000001035 -1001: 251000001033 -1002: 254200000000 -1003: 777773001004 +1000: 256000001013 +1001: 254200000000 +1002: 777773001003 +1013: 201000004321 1034: 321321123123 1035: 1001014 diff --git a/test.s b/test.s index 8fd1bdf..f5aa517 100644 --- a/test.s +++ b/test.s @@ -17,16 +17,18 @@ PI_SET_ACT = 200 # BLKI APR,TEST # JRST 4, # JRST .-2 - MOVE 0,BLTTEST - BLT 0,BLTSPC+17 +# MOVE 0,BLTTEST +# BLT 0,BLTSPC+17 + XCT XCTTEST JRST 4, TEST: -5,,TEST+1 . = . + 10 +XCTTEST: + MOVEI 0,4321 BLTSPC: . = . + 20 - APR_PR_RLR: 321321123123 BLTTEST: