mirror of
https://github.com/rcornwell/sims.git
synced 2026-04-03 20:32:34 +00:00
KA10: Major update. BBN Pager added.
Added BBN Pager support
Clean up instruction options table.
Removed some unneeded loads.
Removed unneeded FMB term.
Cleaned up interrupt handling to properly handle PIR events.
Moved dev_pi to be with rest of PI code.
Don't check APR interrupts unless pi system enabled.
CONO APR reset_all does not clear flags on KA10.
Clean up handling of PUBLIC/CONCEALED mode on KI10.
Clean up ITS pager support.
Added fetch flag to page_lookup for ITS/KI and BBN support.
Speed up LDB/DPB instructions to use bulk shift.
Carry 0&1 Flags are not cleared until JFCL instruction.
Fixed bug in LSHC with shift > 36 bits.
Fixed bug in JFCL when run from trap/uuo, bumped PC when it should not..
Shortened loop for BLKI/BLKO instructions.
Mask AR & MQ to FMASK before save in one place.
This commit is contained in:
2003
PDP10/ka10_cpu.c
2003
PDP10/ka10_cpu.c
File diff suppressed because it is too large
Load Diff
@@ -58,10 +58,16 @@
|
||||
#define KI_22BIT KI|KL
|
||||
#endif
|
||||
|
||||
/* Support for ITS Pager */
|
||||
#ifndef ITS
|
||||
#define ITS KA
|
||||
#endif
|
||||
|
||||
/* Support for TENEX Pager */
|
||||
#ifndef BBN
|
||||
#define BBN KA
|
||||
#endif
|
||||
|
||||
/* Digital Equipment Corporation's 36b family had six implementations:
|
||||
|
||||
name mips comments
|
||||
@@ -198,6 +204,13 @@ extern DEBTAB crd_debug[];
|
||||
#define CRY1 002000 /* 100000 */
|
||||
#define CRY0 004000 /* 200000 */
|
||||
#define OVR 010000 /* 400000 */
|
||||
#ifdef BBN
|
||||
#define EXJSYS 000040 /* 002000 */
|
||||
#endif
|
||||
#ifdef ITS
|
||||
#define PURE 000040 /* 002000 */
|
||||
#define ONEP 000010 /* 000400 */
|
||||
#endif
|
||||
|
||||
#define DATAI 00
|
||||
#define DATAO 01
|
||||
@@ -233,6 +246,21 @@ extern DEBTAB crd_debug[];
|
||||
#define DEF_SERIAL 514 /* Default dec test machine */
|
||||
#endif
|
||||
|
||||
#if BBN
|
||||
#define BBN_PAGE 0000017777777LL
|
||||
#define BBN_TRPPG 0000017000000LL
|
||||
#define BBN_SPT 0000017777000LL
|
||||
#define BBN_PN 0000000000777LL
|
||||
#define BBN_ACC 0000040000000LL
|
||||
#define BBN_TRP1 0000100000000LL
|
||||
#define BBN_TRP 0000200000000LL
|
||||
#define BBN_TRPMOD 0000400000000LL
|
||||
#define BBN_TRPUSR 0001000000000LL
|
||||
#define BBN_EXEC 0020000000000LL
|
||||
#define BBN_WRITE 0040000000000LL
|
||||
#define BBN_READ 0100000000000LL
|
||||
#define BBN_MERGE 0161740000000LL
|
||||
#endif
|
||||
|
||||
typedef unsigned long long int uint64;
|
||||
typedef unsigned int uint18;
|
||||
|
||||
@@ -549,6 +549,7 @@ t_stat dp_svc (UNIT *uptr)
|
||||
uptr->STATUS |= SRC_DONE;
|
||||
if (uptr->STATUS & END_CYL) {
|
||||
uptr->UFLAGS |= DONE;
|
||||
uptr->STATUS &= ~END_CYL;
|
||||
uptr->STATUS &= ~BUSY;
|
||||
df10_finish_op(df10, 0);
|
||||
return SCPE_OK;
|
||||
@@ -595,7 +596,7 @@ t_stat dp_svc (UNIT *uptr)
|
||||
sect = 0;
|
||||
surf = surf + 1;
|
||||
if (surf >= dp_drv_tab[dtype].surf) {
|
||||
uptr->STATUS|= END_CYL;
|
||||
uptr->STATUS |= END_CYL;
|
||||
} else {
|
||||
uptr->UFLAGS &= ~(01757000);
|
||||
uptr->UFLAGS |= (surf << 14);
|
||||
|
||||
@@ -493,7 +493,7 @@ static const char *opcode[] = {
|
||||
"JFOV", "JCRY1", "JCRY0", "JCRY", "JOV",
|
||||
|
||||
|
||||
"LUUO01", "LUUO02", "LUUO03", "LUUO04", "LUUO05", "LUUO06", "LUUO07",
|
||||
"LUUO00", "LUUO01", "LUUO02", "LUUO03", "LUUO04", "LUUO05", "LUUO06", "LUUO07",
|
||||
"LUUO10", "LUUO11", "LUUO12", "LUUO13", "LUUO14", "LUUO15", "LUUO16", "LUUO17",
|
||||
"LUUO20", "LUUO21", "LUUO22", "LUUO23", "LUUO24", "LUUO25", "LUUO26", "LUUO27",
|
||||
"LUUO30", "LUUO31", "LUUO32", "LUUO33", "LUUO34", "LUUO35", "LUUO36", "LUUO37",
|
||||
@@ -571,7 +571,7 @@ static const t_int64 opc_val[] = {
|
||||
0255400000000+I_OP,
|
||||
|
||||
|
||||
0001000000000+I_AC, 0002000000000+I_AC, 0003000000000+I_AC,
|
||||
0000000000000+I_AC, 0001000000000+I_AC, 0002000000000+I_AC, 0003000000000+I_AC,
|
||||
0004000000000+I_AC, 0005000000000+I_AC, 0006000000000+I_AC, 0007000000000+I_AC,
|
||||
0010000000000+I_AC, 0011000000000+I_AC, 0012000000000+I_AC, 0013000000000+I_AC,
|
||||
0014000000000+I_AC, 0015000000000+I_AC, 0016000000000+I_AC, 0017000000000+I_AC,
|
||||
|
||||
Reference in New Issue
Block a user