HP2100: Current version from Dave Bryan

This commit is contained in:
Mark Pizzolato 2014-10-27 17:16:38 -07:00
parent f3f0d074e0
commit a9e82dd2f9
12 changed files with 72 additions and 39 deletions

View file

@ -1,6 +1,6 @@
/* hp2100_baci.c: HP 12966A buffered asynchronous communications interface simulator /* hp2100_baci.c: HP 12966A buffered asynchronous communications interface simulator
Copyright (c) 2007-2012, J. David Bryan Copyright (c) 2007-2013, J. David Bryan
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@ -25,6 +25,7 @@
BACI 12966A BACI card BACI 12966A BACI card
10-Jan-13 MP Added DEV_MUX and additional DEVICE field values
10-Feb-12 JDB Deprecated DEVNO in favor of SC 10-Feb-12 JDB Deprecated DEVNO in favor of SC
Removed DEV_NET to allow restoration of listening port Removed DEV_NET to allow restoration of listening port
28-Mar-11 JDB Tidied up signal handling 28-Mar-11 JDB Tidied up signal handling
@ -510,7 +511,8 @@ DEVICE baci_dev = {
NULL, /* logical device name */ NULL, /* logical device name */
NULL, /* help routine */ NULL, /* help routine */
NULL, /* help attach routine*/ NULL, /* help attach routine*/
(void*)&baci_desc }; /* help context */ (void *) &baci_desc /* help context */
};
/* I/O signal handler. /* I/O signal handler.

View file

@ -24,6 +24,7 @@
in this Software without prior written authorization from Robert M Supnik. in this Software without prior written authorization from Robert M Supnik.
18-Mar-13 JDB Added declarations for the MP abort handler and CPU registers 18-Mar-13 JDB Added declarations for the MP abort handler and CPU registers
14-Mar-13 MP Changed guard macro name to avoid reserved namespace
03-Jan-10 RMS Changed declarations of mp_control, mp_mefvv, for VMS compiler 03-Jan-10 RMS Changed declarations of mp_control, mp_mefvv, for VMS compiler
15-Jul-08 JDB Rearranged declarations with hp2100_cpu.c and hp2100_defs.h 15-Jul-08 JDB Rearranged declarations with hp2100_cpu.c and hp2100_defs.h
26-Jun-08 JDB Added mp_control to CPU state externals 26-Jun-08 JDB Added mp_control to CPU state externals

View file

@ -1,6 +1,6 @@
/* hp2100_cpu1.h: HP 2100/1000 firmware dispatcher definitions /* hp2100_cpu1.h: HP 2100/1000 firmware dispatcher definitions
Copyright (c) 2006-2008, J. David Bryan Copyright (c) 2006-2013, J. David Bryan
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@ -23,6 +23,8 @@
be used in advertising or otherwise to promote the sale, use or other dealings be used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the author. in this Software without prior written authorization from the author.
18-Mar-13 JDB Added externs for microcode helper functions
14-Mar-13 MP Changed guard macro name to avoid reserved namespace
11-Sep-08 JDB Moved microcode function prototypes here 11-Sep-08 JDB Moved microcode function prototypes here
30-Apr-08 JDB Corrected OP_AFF to OP_AAFF for SIGNAL/1000 30-Apr-08 JDB Corrected OP_AFF to OP_AAFF for SIGNAL/1000
Removed unused operand patterns Removed unused operand patterns

View file

@ -24,6 +24,8 @@
in this Software without prior written authorization from Robert M Supnik. in this Software without prior written authorization from Robert M Supnik.
18-Mar-13 JDB Added "-Wdangling-else" to the suppression pragmas 18-Mar-13 JDB Added "-Wdangling-else" to the suppression pragmas
Removed redundant extern declarations
14-Mar-13 MP Changed guard macro name to avoid reserved namespace
14-Dec-12 JDB Added "-Wbitwise-op-parentheses" to the suppression pragmas 14-Dec-12 JDB Added "-Wbitwise-op-parentheses" to the suppression pragmas
12-May-12 JDB Added pragmas to suppress logical operator precedence warnings 12-May-12 JDB Added pragmas to suppress logical operator precedence warnings
10-Feb-12 JDB Added hp_setsc, hp_showsc functions to support SC modifier 10-Feb-12 JDB Added hp_setsc, hp_showsc functions to support SC modifier

View file

@ -1,6 +1,6 @@
/* hp2100_fp.h: HP 2100/21MX floating point definitions /* hp2100_fp.h: HP 2100/21MX floating point definitions
Copyright (c) 2002-2006, Robert M. Supnik Copyright (c) 2002-2013, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@ -23,6 +23,7 @@
used in advertising or otherwise to promote the sale, use or other dealings used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from Robert M Supnik. in this Software without prior written authorization from Robert M Supnik.
14-Mar-13 MP Changed guard macro name to avoid reserved namespace
01-Dec-06 JDB Reworked FFP helpers for 1000-F support, deleted f_pwr2 01-Dec-06 JDB Reworked FFP helpers for 1000-F support, deleted f_pwr2
26-Sep-06 JDB Moved from hp2100_fp.c to simplify extensions 26-Sep-06 JDB Moved from hp2100_fp.c to simplify extensions
*/ */

View file

@ -1,6 +1,6 @@
/* hp2100_fp1.h: HP 2100/1000 multiple-precision floating point definitions /* hp2100_fp1.h: HP 2100/1000 multiple-precision floating point definitions
Copyright (c) 2005-2006, J. David Bryan Copyright (c) 2005-2013, J. David Bryan
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@ -23,6 +23,7 @@
in advertising or otherwise to promote the sale, use or other dealings in in advertising or otherwise to promote the sale, use or other dealings in
this Software without prior written authorization from the author. this Software without prior written authorization from the author.
14-Mar-13 MP Changed guard macro name to avoid reserved namespace
16-Oct-06 JDB Generalized FP calling sequences for F-Series 16-Oct-06 JDB Generalized FP calling sequences for F-Series
12-Oct-06 JDB Altered x_trun for F-Series FFP compatibility 12-Oct-06 JDB Altered x_trun for F-Series FFP compatibility
*/ */

View file

@ -25,6 +25,7 @@
IPLI, IPLO 12875A interprocessor link IPLI, IPLO 12875A interprocessor link
12-Dec-12 MP Revised ipl_attach for new socket API
25-Oct-12 JDB Removed DEV_NET to allow restoration of listening ports 25-Oct-12 JDB Removed DEV_NET to allow restoration of listening ports
09-May-12 JDB Separated assignments from conditional expressions 09-May-12 JDB Separated assignments from conditional expressions
10-Feb-12 JDB Deprecated DEVNO in favor of SC 10-Feb-12 JDB Deprecated DEVNO in favor of SC
@ -126,7 +127,8 @@ DEBTAB ipl_deb [] = {
{ "CMDS", DEB_CMDS }, { "CMDS", DEB_CMDS },
{ "CPU", DEB_CPU }, { "CPU", DEB_CPU },
{ "XFER", DEB_XFER }, { "XFER", DEB_XFER },
{ NULL, 0 } }; { NULL, 0 }
};
/* Common structures */ /* Common structures */
@ -571,31 +573,44 @@ return SCPE_OK;
t_stat ipl_attach (UNIT *uptr, char *cptr) t_stat ipl_attach (UNIT *uptr, char *cptr)
{ {
SOCKET newsock; SOCKET newsock;
uint32 i, t, oldf; uint32 i, t;
char host [CBUFSIZE], port [CBUFSIZE], hostport [2 * CBUFSIZE + 3]; char host [CBUFSIZE], port [CBUFSIZE], hostport [2 * CBUFSIZE + 3];
char *tptr = NULL; char *tptr = NULL;
t_stat r; t_stat r;
t_bool is_active;
is_active = (uptr->flags & UNIT_ACTV) == UNIT_ACTV; /* is the connection active? */
if (uptr->flags & UNIT_ATT) /* if IPL is currently attached, */
ipl_detach (uptr); /* detach it first */
if ((sim_switches & SWMASK ('C')) || /* connecting? */
((sim_switches & SIM_SW_REST) && is_active)) { /* or restoring an active connection? */
r = sim_parse_addr (cptr, host, /* parse the host and port */
sizeof (host), "localhost", /* from the parameter string */
port, sizeof (port),
NULL, NULL);
if ((r != SCPE_OK) || (port [0] == '\0')) /* parse error or missing port number? */
return SCPE_ARG; /* complain to the user */
oldf = uptr->flags;
if (oldf & UNIT_ATT)
ipl_detach (uptr);
if ((sim_switches & SWMASK ('C')) ||
((sim_switches & SIM_SW_REST) && (oldf & UNIT_ACTV))) {
r = sim_parse_addr (cptr, host, sizeof(host), "localhost", port, sizeof(port), NULL, NULL);
if ((r != SCPE_OK) || (port[0] == '\0'))
return SCPE_ARG;
sprintf(hostport, "%s%s%s%s%s", strchr(host, ':') ? "[" : "", host, strchr(host, ':') ? "]" : "", host [0] ? ":" : "", port); sprintf(hostport, "%s%s%s%s%s", strchr(host, ':') ? "[" : "", host, strchr(host, ':') ? "]" : "", host [0] ? ":" : "", port);
newsock = sim_connect_sock (hostport, NULL, NULL); newsock = sim_connect_sock (hostport, NULL, NULL);
if (newsock == INVALID_SOCKET) if (newsock == INVALID_SOCKET)
return SCPE_IOERR; return SCPE_IOERR;
printf ("Connecting to %s\n", hostport); printf ("Connecting to %s\n", hostport);
if (sim_log) if (sim_log)
fprintf (sim_log, fprintf (sim_log, "Connecting to %s\n", hostport);
"Connecting to %s\n", hostport);
uptr->flags = uptr->flags | UNIT_ACTV; uptr->flags = uptr->flags | UNIT_ACTV;
uptr->LSOCKET = 0; uptr->LSOCKET = 0;
uptr->DSOCKET = newsock; uptr->DSOCKET = newsock;
} }
else { else {
r = sim_parse_addr (cptr, host, sizeof(host), NULL, port, sizeof(port), NULL, NULL); r = sim_parse_addr (cptr, host, sizeof(host), NULL, port, sizeof(port), NULL, NULL);
if (r != SCPE_OK) if (r != SCPE_OK)

View file

@ -1,6 +1,6 @@
/* hp2100_mpx.c: HP 12792C eight-channel asynchronous multiplexer simulator /* hp2100_mpx.c: HP 12792C eight-channel asynchronous multiplexer simulator
Copyright (c) 2008-2012, J. David Bryan Copyright (c) 2008-2013, J. David Bryan
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@ -25,6 +25,7 @@
MPX 12792C 8-channel multiplexer card MPX 12792C 8-channel multiplexer card
10-Jan-13 MP Added DEV_MUX and additional DEVICE field values
28-Dec-12 JDB Allow direct attach to the poll unit only when restoring 28-Dec-12 JDB Allow direct attach to the poll unit only when restoring
10-Feb-12 JDB Deprecated DEVNO in favor of SC 10-Feb-12 JDB Deprecated DEVNO in favor of SC
Removed DEV_NET to allow restoration of listening port Removed DEV_NET to allow restoration of listening port
@ -752,7 +753,8 @@ DEVICE mpx_dev = {
NULL, /* logical device name */ NULL, /* logical device name */
NULL, /* help routine */ NULL, /* help routine */
NULL, /* help attach routine*/ NULL, /* help attach routine*/
(void*)&mpx_desc }; /* help context */ (void *) &mpx_desc /* help context */
};
/* I/O signal handler. /* I/O signal handler.

View file

@ -1,6 +1,6 @@
/* hp2100_ms.c: HP 2100 13181A/13183A magnetic tape simulator /* hp2100_ms.c: HP 2100 13181A/13183A magnetic tape simulator
Copyright (c) 1993-2012, Robert M. Supnik Copyright (c) 1993-2013, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@ -26,6 +26,7 @@
MS 13181A 7970B 800bpi nine track magnetic tape MS 13181A 7970B 800bpi nine track magnetic tape
13183A 7970E 1600bpi nine track magnetic tape 13183A 7970E 1600bpi nine track magnetic tape
10-Jan-13 MP Added DEV_TAPE to DEVICE flags
09-May-12 JDB Separated assignments from conditional expressions 09-May-12 JDB Separated assignments from conditional expressions
10-Feb-12 JDB Deprecated DEVNO in favor of SC 10-Feb-12 JDB Deprecated DEVNO in favor of SC
Added CNTLR_TYPE cast to ms_settype Added CNTLR_TYPE cast to ms_settype

View file

@ -1,6 +1,6 @@
/* hp2100_mt.c: HP 2100 12559A magnetic tape simulator /* hp2100_mt.c: HP 2100 12559A magnetic tape simulator
Copyright (c) 1993-2012, Robert M. Supnik Copyright (c) 1993-2013, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@ -25,6 +25,7 @@
MT 12559A 3030 nine track magnetic tape MT 12559A 3030 nine track magnetic tape
10-Jan-13 MP Added DEV_TAPE to DEVICE flags
09-May-12 JDB Separated assignments from conditional expressions 09-May-12 JDB Separated assignments from conditional expressions
25-Mar-12 JDB Removed redundant MTAB_VUN from "format" MTAB entry 25-Mar-12 JDB Removed redundant MTAB_VUN from "format" MTAB entry
10-Feb-12 JDB Deprecated DEVNO in favor of SC 10-Feb-12 JDB Deprecated DEVNO in favor of SC

View file

@ -1,6 +1,6 @@
/* hp2100_mux.c: HP 2100 12920A terminal multiplexor simulator /* hp2100_mux.c: HP 2100 12920A terminal multiplexor simulator
Copyright (c) 2002-2012, Robert M Supnik Copyright (c) 2002-2013, Robert M Supnik
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@ -25,6 +25,7 @@
MUX,MUXL,MUXM 12920A terminal multiplexor MUX,MUXL,MUXM 12920A terminal multiplexor
10-Jan-13 MP Added DEV_MUX and additional DEVICE field values
10-Feb-12 JDB Deprecated DEVNO in favor of SC 10-Feb-12 JDB Deprecated DEVNO in favor of SC
Removed DEV_NET to allow restoration of listening port Removed DEV_NET to allow restoration of listening port
28-Mar-11 JDB Tidied up signal handling 28-Mar-11 JDB Tidied up signal handling
@ -441,7 +442,8 @@ DEVICE muxl_dev = {
NULL, /* logical device name */ NULL, /* logical device name */
NULL, /* help routine */ NULL, /* help routine */
NULL, /* help attach routine*/ NULL, /* help attach routine*/
NULL }; /* help context */ NULL /* help context */
};
/* MUXU data structures /* MUXU data structures
@ -522,7 +524,8 @@ DEVICE muxu_dev = {
NULL, /* logical device name */ NULL, /* logical device name */
NULL, /* help routine */ NULL, /* help routine */
NULL, /* help attach routine*/ NULL, /* help attach routine*/
(void*)&mux_desc }; /* help context */ (void *) &mux_desc /* help context */
};
/* MUXC data structures. /* MUXC data structures.
@ -584,7 +587,8 @@ DEVICE muxc_dev = {
NULL, /* logical device name */ NULL, /* logical device name */
NULL, /* help routine */ NULL, /* help routine */
NULL, /* help attach routine*/ NULL, /* help attach routine*/
NULL }; /* help context */ NULL /* help context */
};
/* Lower data card I/O signal handler. /* Lower data card I/O signal handler.

View file

@ -1,6 +1,6 @@
/* hp_disclib.c: HP MAC/ICD disc controller simulator library /* hp_disclib.c: HP MAC/ICD disc controller simulator library
Copyright (c) 2011-2012, J. David Bryan Copyright (c) 2011-2014, J. David Bryan
Copyright (c) 2004-2011, Robert M. Supnik Copyright (c) 2004-2011, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
@ -24,6 +24,7 @@
used in advertising or otherwise to promote the sale, use or other dealings used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the authors. in this Software without prior written authorization from the authors.
27-Oct-14 JDB Corrected the relative movement calculation in start_seek
20-Dec-12 JDB sim_is_active() now returns t_bool 20-Dec-12 JDB sim_is_active() now returns t_bool
24-Oct-12 JDB Changed CNTLR_OPCODE to title case to avoid name clash 24-Oct-12 JDB Changed CNTLR_OPCODE to title case to avoid name clash
07-May-12 JDB Corrected end-of-track delay time logic 07-May-12 JDB Corrected end-of-track delay time logic
@ -2216,7 +2217,7 @@ if (target_cylinder >= drive_props [model].cylinders) { /* is the cylinder out o
} }
else { /* the cylinder value is OK */ else { /* the cylinder value is OK */
delta = abs (uptr->CYL - target_cylinder); /* calculate the relative movement */ delta = abs (uptr->CYL - (int32) target_cylinder); /* calculate the relative movement */
uptr->CYL = target_cylinder; /* and move the positioner */ uptr->CYL = target_cylinder; /* and move the positioner */
if ((cvptr->head >= drive_props [model].heads) /* if the head */ if ((cvptr->head >= drive_props [model].heads) /* if the head */