From Bruce.Claremont at MigrationSpecialties.com Wed Dec 5 17:54:03 2012 From: Bruce.Claremont at MigrationSpecialties.com (Bruce Claremont) Date: Wed, 05 Dec 2012 15:54:03 -0700 Subject: [Simh] HP1000 Manuals Message-ID: The following HP1000 manuals are free to a good home for the shipping cost: HP 1000/RTE-A Volumes 1 - 5 - Volume 1: 92077-64011 -- RTE-A Index & Glossary -- RTE-A Primary System Sofware Installation Manual -- Getting Started with RTE-A -- RTE-A System Managers Manual -Volume 2: 92077-64012 -- RTE-A User's Manual -- EDT/1000 User's Manual -Volume 3: 92077-64013 -- RTE-A Utilities Manual -Volume 4: 92077-64014 -- Macro/1000 Reference Manual: RTE-6/VM - RTE-XL - RTE-A -- RTE-A Software Entry Point Directory - Volume 5: 92077-64015 -- RTE-A Programmer's Reference Manual -- RTE-A Link User's Reference Manual Mr. Bruce Claremont, Software Preservationist Migration Specialties International, Inc. 217 West 2nd Street, Florence, CO 81226-1403 Bruce.Claremont at MigrationSpecialties.com www.MigrationSpecialties.com +1 719-784-9196, Fax: +1 888-854-3417 Get your free Virtual Alpha at FreeAXP.com. Continuity in Computing: Founded in 1992, Migration Specialties offers modern solutions for legacy hardware & software. Look to us for virtual VAX and Alpha solutions along with OpenVMS and Tru64 Unix support. Visit our web site for more information. -------------- next part -------------- An HTML attachment was scrubbed... URL: From edj.jaquay at gmail.com Tue Dec 11 20:38:20 2012 From: edj.jaquay at gmail.com (E J Jaquay) Date: Tue, 11 Dec 2012 20:38:20 -0500 Subject: [Simh] Slightly OT: Headless SIMH on Raspberry Pi In-Reply-To: <024d01cdba10$ca34e680$5e9eb380$@ntlworld.com> References: <024d01cdba10$ca34e680$5e9eb380$@ntlworld.com> Message-ID: use screen. try man screen for instructions. On 11/3/12, Rob Jarratt wrote: > I want to run SIMH on my headless Raspberry Pi, to do so I use putty to > connect to the pi and log in. From the shell I can run SIMH just fine. What > I would like though is for my session not to disappear if I close putty and > to be able to reconnect to the session at some later time, with SIMH still > running. I am not really a Unix expert, is there a way to do this? > > Regards > > Rob > -- - Ed From michael.mondy at coffeebird.net Tue Dec 11 21:31:12 2012 From: michael.mondy at coffeebird.net (Michael Mondy) Date: Tue, 11 Dec 2012 20:31:12 -0600 Subject: [Simh] Slightly OT: Headless SIMH on Raspberry Pi In-Reply-To: References: <024d01cdba10$ca34e680$5e9eb380$@ntlworld.com> Message-ID: <20121212023112.GA27345@coffeebird.net> Yes, a few folks have mentioned using "screen" in their Unix/Linux boot scripts. I haven't tried it, but "tmux" reportedly has some additional features over screen. On Tue, Dec 11, 2012 at 08:38:20PM -0500, E J Jaquay wrote: > use screen. try man screen for instructions. > > On 11/3/12, Rob Jarratt wrote: > > I want to run SIMH on my headless Raspberry Pi, to do so I use putty to > > connect to the pi and log in. From the shell I can run SIMH just fine. What > > I would like though is for my session not to disappear if I close putty and > > to be able to reconnect to the session at some later time, with SIMH still > > running. I am not really a Unix expert, is there a way to do this? > > > > Regards > > > > Rob > > > > > -- > - Ed > _______________________________________________ > Simh mailing list > Simh at trailing-edge.com > http://mailman.trailing-edge.com/mailman/listinfo/simh From nj7p at nj7p.org Sun Dec 16 13:05:17 2012 From: nj7p at nj7p.org (Bill Beech (NJ7P)) Date: Sun, 16 Dec 2012 11:05:17 -0700 Subject: [Simh] Pointer Question Message-ID: <50CE0D5D.4090904@nj7p.org> Guys, I am having trouble with pointers. I would like to be able to register I/O devices with my bus manager. Currently I have only multibus.c performing this function. Here are some snippets of the code: /* Internal I/O address space functions */ extern int32 i8251s(int32 io, int32 data); extern int32 i8251d(int32 io, int32 data); extern int32 i8255a(int32 io, int32 data); extern int32 i8255b(int32 io, int32 data); extern int32 i8255c(int32 io, int32 data); extern int32 i8255s(int32 io, int32 data); /* This is the I/O configuration table. There are 256 possible device addresses, if a device is plugged to a port it's routine address is here, 'nulldev' means no device is available */ struct idev { int32 (*routine)(); }; struct idev dev_table[256] = { {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 000H */ ......... {&i8255a},{&i8255b},{&i8255c},{&i8255s}, /* 0E4H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0E8H */ {&i8251d},{&i8251s},{&i8251d},{&i8251s}, /* 0ECH */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F0H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F4H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F8H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev} /* 0FCH */ }; int32 nulldev(int32 flag, int32 data) { SET_XACK(0); /* set no XACK */ if (flag == 0) return (0xFF); return 0; } /*this mess gives only a warning in this state */ int32 reg_dev(int32 (*routine)(), int32 port) { if (dev_table[port].routine(0, 0) != &nulldev) { /* port already assigned */ printf("Port %02X is already assigned\n", port); } else { printf("Port %02X is assigned\n", port); // dev_table[port].routine(0, 0) = routine; } } I would like to be able to call reg_dev with an I/O routine address and the port number, and have it place the address into dev_table[port] IFF dev_table[port] is currently nulldev. I know I am messing up the pointers horribly. If I remove the ".routine(0, 0)" it errors with dissimilar variables. I have tried all sorts of casts to no avail. Thanks for your help and don't laugh too hard! Bill From michael.mondy at coffeebird.net Sun Dec 16 17:05:04 2012 From: michael.mondy at coffeebird.net (Michael Mondy) Date: Sun, 16 Dec 2012 16:05:04 -0600 Subject: [Simh] Pointer Question In-Reply-To: <50CE0D5D.4090904@nj7p.org> References: <50CE0D5D.4090904@nj7p.org> Message-ID: <20121216220504.GA19935@coffeebird.net> On Sun, Dec 16, 2012 at 11:05:17AM -0700, Bill Beech (NJ7P) wrote: > Guys, > > I am having trouble with pointers. I would like to be able to > register I/O devices with my bus manager. Currently I have only > multibus.c performing this function. > > Here are some snippets of the code: > [snip] > > I would like to be able to call reg_dev with an I/O routine address > and the port number, and have it place the address into > dev_table[port] IFF dev_table[port] is currently nulldev. > > I know I am messing up the pointers horribly. If I remove the > ".routine(0, 0)" it errors with dissimilar variables. I have tried > all sorts of casts to no avail. > > Thanks for your help and don't laugh too hard! > > Bill > You were on the right track. Here's a corrected version. Note that this is actually an compilable and exeeutable example... It'll print: Port 00 is now assigned Port 04 is already assigned Port FF is now assigned (oddly table entry was null) #include /* Internal I/O address space functions */ typedef int int32; // typedef int32 (*svc_rtn_t)(); int32 nulldev(); #if 0 extern int32 i8251s(int32 io, int32 data); extern int32 i8251d(int32 io, int32 data); extern int32 i8255a(int32 io, int32 data); extern int32 i8255b(int32 io, int32 data); extern int32 i8255c(int32 io, int32 data); extern int32 i8255s(int32 io, int32 data); #else #define factory(FN) int32 FN(int32 io, int32 data) {printf("\n"); return -1; } factory(i8251s) factory(i8251d) factory(i8255a) factory(i8255b) factory(i8255c) factory(i8255s) #endif /* This is the I/O configuration table. There are 256 possible device addresses, if a device is plugged to a port it's routine address is here, 'nulldev' means no device is available */ struct idev { int32 (*routine)(); }; struct idev dev_table[256] = { {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 000H .. 003H */ /* ......... */ {&i8255a},{&i8255b},{&i8255c},{&i8255s}, /* 0E4H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0E8H */ {&i8251d},{&i8251s},{&i8251d},{&i8251s}, /* 0ECH */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F0H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F4H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F8H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev} /* 0FCH */ }; int32 nulldev(int32 flag, int32 data) { // SET_XACK(0); /* set no XACK */ if (flag == 0) return (0xFF); return 0; } /*this mess gives only a warning in this state */ int32 reg_dev(int32 (*routine)(), int32 port) { if (dev_table[port].routine == NULL) { printf("Port %02X is now assigned (oddly table entry was null)\n", port); dev_table[port].routine = routine; } else if (dev_table[port].routine != &nulldev) { /* port already assigned */ printf("Port %02X is already assigned\n", port); } else { printf("Port %02X is now assigned\n", port); dev_table[port].routine = routine; } } int32 my_routine() { printf("my_routine()\n"); } main() { reg_dev(my_routine, 0); reg_dev(my_routine, 4); reg_dev(my_routine, 255); } -- Mike From david.d.miller at att.net Wed Dec 19 23:07:00 2012 From: david.d.miller at att.net (david.d.miller at att.net) Date: Wed, 19 Dec 2012 20:07:00 -0800 (PST) Subject: [Simh] Hey Message-ID: <1355976420.51239.androidMobile@web181303.mail.ne1.yahoo.com> hi check this out http://msn.msnbc.msnbc-news8.com/jobs/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From darrell at vdpittman.com Wed Dec 19 23:15:58 2012 From: darrell at vdpittman.com (Darrell Pittman) Date: Wed, 19 Dec 2012 22:15:58 -0600 Subject: [Simh] Thank you Message-ID: <020701cdde68$b751d150$25f573f0$@vdpittman.com> Dear Mr. Supnik, Thank you and your contributors so much for SIMH! After not having been able to program on the VAXen I loved for so many years, it's a real delight to use your VAX emulator. Regards, Darrell -------------- next part -------------- An HTML attachment was scrubbed... URL: From darrell at vdpittman.com Thu Dec 20 23:15:32 2012 From: darrell at vdpittman.com (Darrell Pittman) Date: Thu, 20 Dec 2012 22:15:32 -0600 Subject: [Simh] SIMH 3.9 problem report Message-ID: <01ea01cddf31$d2100830$76301890$@vdpittman.com> Dear Mr. Supnik: I stumbled across a small problem in the scp.c module for SIMH. I entered the command ?help get?. The help_cmd() function did a lookup for the ?GET? command in cmd_table[], which it found, but the structure member help (a char pointer) for the ?GET? command was a NULL pointer, which was in turn passed into fputs(), which tried to dereference the NULL pointer and caused an exception. I took the liberty of patching help_cmd() to supply a default string if help text is unavailable in cmd_table[]. My version of help_cmd() now reads as follows: t_stat help_cmd (int32 flag, char *cptr) { char gbuf[CBUFSIZE]; CTAB *cmdp; GET_SWITCHES (cptr); if (*cptr) { cptr = get_glyph (cptr, gbuf, 0); if (*cptr) return SCPE_2MARG; if (cmdp = find_cmd (gbuf)) { const char* helptxt = cmdp->help ? cmdp->help : "No help available\n"; // ? insert line fputs (helptxt, stdout); // ? change line if (sim_log) fputs (helptxt, sim_log); // ? change line } else return SCPE_ARG; } else { fprint_help (stdout); if (sim_log) fprint_help (sim_log); } return SCPE_OK; } Thank you for this wonderful SIMH system! Best regards, Darrell -------------- next part -------------- An HTML attachment was scrubbed... URL: From rtomek at ceti.pl Thu Dec 20 23:56:29 2012 From: rtomek at ceti.pl (Tomasz Rola) Date: Fri, 21 Dec 2012 05:56:29 +0100 (CET) Subject: [Simh] Thank you In-Reply-To: <020701cdde68$b751d150$25f573f0$@vdpittman.com> References: <020701cdde68$b751d150$25f573f0$@vdpittman.com> Message-ID: On Wed, 19 Dec 2012, Darrell Pittman wrote: > Dear Mr. Supnik, > > Thank you and your contributors so much for SIMH! > > After not having been able to program on the VAXen I loved for so many > years, it's a real delight to use your VAX emulator. Yes, thank you and other contributors very much. Some days ago I started to plow through PDP-1 documentation. That's correct, no zero in name. Regards, Tomasz Rola -- ** A C programmer asked whether computer had Buddha's nature. ** ** As the answer, master did "rm -rif" on the programmer's home ** ** directory. And then the C programmer became enlightened... ** ** ** ** Tomasz Rola mailto:tomasz_rola at bigfoot.com ** From Mark at infocomm.com Fri Dec 21 15:41:02 2012 From: Mark at infocomm.com (Mark Pizzolato - Info Comm) Date: Fri, 21 Dec 2012 12:41:02 -0800 Subject: [Simh] SIMH 3.9 problem report In-Reply-To: <01ea01cddf31$d2100830$76301890$@vdpittman.com> References: <01ea01cddf31$d2100830$76301890$@vdpittman.com> Message-ID: <0CC6789C1C831B4C8CCFF49D45D7010F8410E790A4@REDROOF2.alohasunset.com> Hi Darrell, As it turns out, ALL the commands which are recognized that don't have help string in the command table are all actually convenient aliases for other commands. In the case you encountered, GET is an alias for RESTORE. I've changed the help command's response for the future versions of simh to 1) not cause an exception and 2) to indicate that the command you are seeking help for is an alias and then provide the help string for the aliased command and finally 3) if no alias help is available, then report that no help is available. Thanks for this bug report. The latest source code is available at: https://github.com/simh/simh/archive/master.zip - Mark Pizzolato From: simh-bounces at trailing-edge.com [mailto:simh-bounces at trailing-edge.com] On Behalf Of Darrell Pittman Sent: Thursday, December 20, 2012 8:16 PM To: simh at trailing-edge.com Subject: [Simh] SIMH 3.9 problem report Dear Mr. Supnik: I stumbled across a small problem in the scp.c module for SIMH. I entered the command "help get". The help_cmd() function did a lookup for the "GET" command in cmd_table[], which it found, but the structure member help (a char pointer) for the "GET" command was a NULL pointer, which was in turn passed into fputs(), which tried to dereference the NULL pointer and caused an exception. I took the liberty of patching help_cmd() to supply a default string if help text is unavailable in cmd_table[]. My version of help_cmd() now reads as follows: t_stat help_cmd (int32 flag, char *cptr) { char gbuf[CBUFSIZE]; CTAB *cmdp; GET_SWITCHES (cptr); if (*cptr) { cptr = get_glyph (cptr, gbuf, 0); if (*cptr) return SCPE_2MARG; if (cmdp = find_cmd (gbuf)) { const char* helptxt = cmdp->help ? cmdp->help : "No help available\n"; // <-- insert line fputs (helptxt, stdout); // <-- change line if (sim_log) fputs (helptxt, sim_log); // <-- change line } else return SCPE_ARG; } else { fprint_help (stdout); if (sim_log) fprint_help (sim_log); } return SCPE_OK; } Thank you for this wonderful SIMH system! Best regards, Darrell -------------- next part -------------- An HTML attachment was scrubbed... URL: From pontus at update.uu.se Sat Dec 22 15:38:17 2012 From: pontus at update.uu.se (Pontus) Date: Sat, 22 Dec 2012 21:38:17 +0100 Subject: [Simh] Broken Link Message-ID: <50D61A39.9080208@update.uu.se> Hi I just noticed that the FAQ link(http://simh.trailing-edge.com/simh_faq.txt) on http://simh.trailing-edge.com/help.html is broken. Cheers, Pontus. From tshoppa at wmata.com Sat Dec 22 15:54:10 2012 From: tshoppa at wmata.com (Shoppa, Tim) Date: Sat, 22 Dec 2012 20:54:10 +0000 Subject: [Simh] Broken Link In-Reply-To: <50D61A39.9080208@update.uu.se> References: <50D61A39.9080208@update.uu.se> Message-ID: <303A17BD5F8FA34DA45EEC245271AC0B252690A8@JGEX2K10MBX2.wmata.local> Try http://simh.trailing-edge.com/pdf/simh_faq.pdf for a PDF version of the FAQ. ________________________________________ From: simh-bounces at trailing-edge.com [simh-bounces at trailing-edge.com] on behalf of Pontus [pontus at update.uu.se] Sent: Saturday, December 22, 2012 3:38 PM To: simh at trailing-edge.com Subject: [Simh] Broken Link Hi I just noticed that the FAQ link(http://simh.trailing-edge.com/simh_faq.txt) on http://simh.trailing-edge.com/help.html is broken. Cheers, Pontus. _______________________________________________ Simh mailing list Simh at trailing-edge.com http://mailman.trailing-edge.com/mailman/listinfo/simh From mrox128 at gmail.com Sun Dec 30 23:45:51 2012 From: mrox128 at gmail.com (Rox 64) Date: Mon, 31 Dec 2012 05:45:51 +0100 Subject: [Simh] Unable to boot v7 Unix Message-ID: Hi guys, new SIMH (and Research Unix) user here coming from the future (Linux), haha. Well, as the mail subject says, I have a problem. After creating a bootable disk from a virgin Unix v7 distribution tape by following this guide, http://homepages.thm.de/~hg53/pdp11-unix/, and after umounting the usr file system and halting the machine, SIMH returns: HALT instruction, PC: 000002 (HALT) after running the command: pdp11 run.conf and I cannot boot my 87,9 MB 'system.hp' disk. I thought the problem was on the final line of 'run.conf': run 2002 But when I use SIMH without .conf files and by manually typing the following commands: set cpu 11/45 set cpu 256k set rp0 rp04 attach rp0 system.hp boot rp0 I see the same HALT message too. I'm currently unning SIMH from Debian/Ubuntu package 3.8.1-5build1. Should I update to a newest one? Or did I make a mistake when creating my bootable disk? -------------- next part -------------- An HTML attachment was scrubbed... URL: From Bruce.Claremont at MigrationSpecialties.com Wed Dec 5 17:54:03 2012 From: Bruce.Claremont at MigrationSpecialties.com (Bruce Claremont) Date: Wed, 05 Dec 2012 15:54:03 -0700 Subject: [Simh] HP1000 Manuals Message-ID: The following HP1000 manuals are free to a good home for the shipping cost: HP 1000/RTE-A Volumes 1 - 5 - Volume 1: 92077-64011 -- RTE-A Index & Glossary -- RTE-A Primary System Sofware Installation Manual -- Getting Started with RTE-A -- RTE-A System Managers Manual -Volume 2: 92077-64012 -- RTE-A User's Manual -- EDT/1000 User's Manual -Volume 3: 92077-64013 -- RTE-A Utilities Manual -Volume 4: 92077-64014 -- Macro/1000 Reference Manual: RTE-6/VM - RTE-XL - RTE-A -- RTE-A Software Entry Point Directory - Volume 5: 92077-64015 -- RTE-A Programmer's Reference Manual -- RTE-A Link User's Reference Manual Mr. Bruce Claremont, Software Preservationist Migration Specialties International, Inc. 217 West 2nd Street, Florence, CO 81226-1403 Bruce.Claremont at MigrationSpecialties.com www.MigrationSpecialties.com +1 719-784-9196, Fax: +1 888-854-3417 Get your free Virtual Alpha at FreeAXP.com. Continuity in Computing: Founded in 1992, Migration Specialties offers modern solutions for legacy hardware & software. Look to us for virtual VAX and Alpha solutions along with OpenVMS and Tru64 Unix support. Visit our web site for more information. -------------- next part -------------- An HTML attachment was scrubbed... URL: From edj.jaquay at gmail.com Tue Dec 11 20:38:20 2012 From: edj.jaquay at gmail.com (E J Jaquay) Date: Tue, 11 Dec 2012 20:38:20 -0500 Subject: [Simh] Slightly OT: Headless SIMH on Raspberry Pi In-Reply-To: <024d01cdba10$ca34e680$5e9eb380$@ntlworld.com> References: <024d01cdba10$ca34e680$5e9eb380$@ntlworld.com> Message-ID: use screen. try man screen for instructions. On 11/3/12, Rob Jarratt wrote: > I want to run SIMH on my headless Raspberry Pi, to do so I use putty to > connect to the pi and log in. From the shell I can run SIMH just fine. What > I would like though is for my session not to disappear if I close putty and > to be able to reconnect to the session at some later time, with SIMH still > running. I am not really a Unix expert, is there a way to do this? > > Regards > > Rob > -- - Ed From michael.mondy at coffeebird.net Tue Dec 11 21:31:12 2012 From: michael.mondy at coffeebird.net (Michael Mondy) Date: Tue, 11 Dec 2012 20:31:12 -0600 Subject: [Simh] Slightly OT: Headless SIMH on Raspberry Pi In-Reply-To: References: <024d01cdba10$ca34e680$5e9eb380$@ntlworld.com> Message-ID: <20121212023112.GA27345@coffeebird.net> Yes, a few folks have mentioned using "screen" in their Unix/Linux boot scripts. I haven't tried it, but "tmux" reportedly has some additional features over screen. On Tue, Dec 11, 2012 at 08:38:20PM -0500, E J Jaquay wrote: > use screen. try man screen for instructions. > > On 11/3/12, Rob Jarratt wrote: > > I want to run SIMH on my headless Raspberry Pi, to do so I use putty to > > connect to the pi and log in. From the shell I can run SIMH just fine. What > > I would like though is for my session not to disappear if I close putty and > > to be able to reconnect to the session at some later time, with SIMH still > > running. I am not really a Unix expert, is there a way to do this? > > > > Regards > > > > Rob > > > > > -- > - Ed > _______________________________________________ > Simh mailing list > Simh at trailing-edge.com > http://mailman.trailing-edge.com/mailman/listinfo/simh From nj7p at nj7p.org Sun Dec 16 13:05:17 2012 From: nj7p at nj7p.org (Bill Beech (NJ7P)) Date: Sun, 16 Dec 2012 11:05:17 -0700 Subject: [Simh] Pointer Question Message-ID: <50CE0D5D.4090904@nj7p.org> Guys, I am having trouble with pointers. I would like to be able to register I/O devices with my bus manager. Currently I have only multibus.c performing this function. Here are some snippets of the code: /* Internal I/O address space functions */ extern int32 i8251s(int32 io, int32 data); extern int32 i8251d(int32 io, int32 data); extern int32 i8255a(int32 io, int32 data); extern int32 i8255b(int32 io, int32 data); extern int32 i8255c(int32 io, int32 data); extern int32 i8255s(int32 io, int32 data); /* This is the I/O configuration table. There are 256 possible device addresses, if a device is plugged to a port it's routine address is here, 'nulldev' means no device is available */ struct idev { int32 (*routine)(); }; struct idev dev_table[256] = { {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 000H */ ......... {&i8255a},{&i8255b},{&i8255c},{&i8255s}, /* 0E4H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0E8H */ {&i8251d},{&i8251s},{&i8251d},{&i8251s}, /* 0ECH */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F0H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F4H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F8H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev} /* 0FCH */ }; int32 nulldev(int32 flag, int32 data) { SET_XACK(0); /* set no XACK */ if (flag == 0) return (0xFF); return 0; } /*this mess gives only a warning in this state */ int32 reg_dev(int32 (*routine)(), int32 port) { if (dev_table[port].routine(0, 0) != &nulldev) { /* port already assigned */ printf("Port %02X is already assigned\n", port); } else { printf("Port %02X is assigned\n", port); // dev_table[port].routine(0, 0) = routine; } } I would like to be able to call reg_dev with an I/O routine address and the port number, and have it place the address into dev_table[port] IFF dev_table[port] is currently nulldev. I know I am messing up the pointers horribly. If I remove the ".routine(0, 0)" it errors with dissimilar variables. I have tried all sorts of casts to no avail. Thanks for your help and don't laugh too hard! Bill From michael.mondy at coffeebird.net Sun Dec 16 17:05:04 2012 From: michael.mondy at coffeebird.net (Michael Mondy) Date: Sun, 16 Dec 2012 16:05:04 -0600 Subject: [Simh] Pointer Question In-Reply-To: <50CE0D5D.4090904@nj7p.org> References: <50CE0D5D.4090904@nj7p.org> Message-ID: <20121216220504.GA19935@coffeebird.net> On Sun, Dec 16, 2012 at 11:05:17AM -0700, Bill Beech (NJ7P) wrote: > Guys, > > I am having trouble with pointers. I would like to be able to > register I/O devices with my bus manager. Currently I have only > multibus.c performing this function. > > Here are some snippets of the code: > [snip] > > I would like to be able to call reg_dev with an I/O routine address > and the port number, and have it place the address into > dev_table[port] IFF dev_table[port] is currently nulldev. > > I know I am messing up the pointers horribly. If I remove the > ".routine(0, 0)" it errors with dissimilar variables. I have tried > all sorts of casts to no avail. > > Thanks for your help and don't laugh too hard! > > Bill > You were on the right track. Here's a corrected version. Note that this is actually an compilable and exeeutable example... It'll print: Port 00 is now assigned Port 04 is already assigned Port FF is now assigned (oddly table entry was null) #include /* Internal I/O address space functions */ typedef int int32; // typedef int32 (*svc_rtn_t)(); int32 nulldev(); #if 0 extern int32 i8251s(int32 io, int32 data); extern int32 i8251d(int32 io, int32 data); extern int32 i8255a(int32 io, int32 data); extern int32 i8255b(int32 io, int32 data); extern int32 i8255c(int32 io, int32 data); extern int32 i8255s(int32 io, int32 data); #else #define factory(FN) int32 FN(int32 io, int32 data) {printf("\n"); return -1; } factory(i8251s) factory(i8251d) factory(i8255a) factory(i8255b) factory(i8255c) factory(i8255s) #endif /* This is the I/O configuration table. There are 256 possible device addresses, if a device is plugged to a port it's routine address is here, 'nulldev' means no device is available */ struct idev { int32 (*routine)(); }; struct idev dev_table[256] = { {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 000H .. 003H */ /* ......... */ {&i8255a},{&i8255b},{&i8255c},{&i8255s}, /* 0E4H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0E8H */ {&i8251d},{&i8251s},{&i8251d},{&i8251s}, /* 0ECH */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F0H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F4H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev}, /* 0F8H */ {&nulldev}, {&nulldev}, {&nulldev}, {&nulldev} /* 0FCH */ }; int32 nulldev(int32 flag, int32 data) { // SET_XACK(0); /* set no XACK */ if (flag == 0) return (0xFF); return 0; } /*this mess gives only a warning in this state */ int32 reg_dev(int32 (*routine)(), int32 port) { if (dev_table[port].routine == NULL) { printf("Port %02X is now assigned (oddly table entry was null)\n", port); dev_table[port].routine = routine; } else if (dev_table[port].routine != &nulldev) { /* port already assigned */ printf("Port %02X is already assigned\n", port); } else { printf("Port %02X is now assigned\n", port); dev_table[port].routine = routine; } } int32 my_routine() { printf("my_routine()\n"); } main() { reg_dev(my_routine, 0); reg_dev(my_routine, 4); reg_dev(my_routine, 255); } -- Mike From david.d.miller at att.net Wed Dec 19 23:07:00 2012 From: david.d.miller at att.net (david.d.miller at att.net) Date: Wed, 19 Dec 2012 20:07:00 -0800 (PST) Subject: [Simh] Hey Message-ID: <1355976420.51239.androidMobile@web181303.mail.ne1.yahoo.com> hi check this out http://msn.msnbc.msnbc-news8.com/jobs/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From darrell at vdpittman.com Wed Dec 19 23:15:58 2012 From: darrell at vdpittman.com (Darrell Pittman) Date: Wed, 19 Dec 2012 22:15:58 -0600 Subject: [Simh] Thank you Message-ID: <020701cdde68$b751d150$25f573f0$@vdpittman.com> Dear Mr. Supnik, Thank you and your contributors so much for SIMH! After not having been able to program on the VAXen I loved for so many years, it's a real delight to use your VAX emulator. Regards, Darrell -------------- next part -------------- An HTML attachment was scrubbed... URL: From darrell at vdpittman.com Thu Dec 20 23:15:32 2012 From: darrell at vdpittman.com (Darrell Pittman) Date: Thu, 20 Dec 2012 22:15:32 -0600 Subject: [Simh] SIMH 3.9 problem report Message-ID: <01ea01cddf31$d2100830$76301890$@vdpittman.com> Dear Mr. Supnik: I stumbled across a small problem in the scp.c module for SIMH. I entered the command “help get”. The help_cmd() function did a lookup for the “GET” command in cmd_table[], which it found, but the structure member help (a char pointer) for the “GET” command was a NULL pointer, which was in turn passed into fputs(), which tried to dereference the NULL pointer and caused an exception. I took the liberty of patching help_cmd() to supply a default string if help text is unavailable in cmd_table[]. My version of help_cmd() now reads as follows: t_stat help_cmd (int32 flag, char *cptr) { char gbuf[CBUFSIZE]; CTAB *cmdp; GET_SWITCHES (cptr); if (*cptr) { cptr = get_glyph (cptr, gbuf, 0); if (*cptr) return SCPE_2MARG; if (cmdp = find_cmd (gbuf)) { const char* helptxt = cmdp->help ? cmdp->help : "No help available\n"; // ß insert line fputs (helptxt, stdout); // ß change line if (sim_log) fputs (helptxt, sim_log); // ß change line } else return SCPE_ARG; } else { fprint_help (stdout); if (sim_log) fprint_help (sim_log); } return SCPE_OK; } Thank you for this wonderful SIMH system! Best regards, Darrell -------------- next part -------------- An HTML attachment was scrubbed... URL: From rtomek at ceti.pl Thu Dec 20 23:56:29 2012 From: rtomek at ceti.pl (Tomasz Rola) Date: Fri, 21 Dec 2012 05:56:29 +0100 (CET) Subject: [Simh] Thank you In-Reply-To: <020701cdde68$b751d150$25f573f0$@vdpittman.com> References: <020701cdde68$b751d150$25f573f0$@vdpittman.com> Message-ID: On Wed, 19 Dec 2012, Darrell Pittman wrote: > Dear Mr. Supnik, > > Thank you and your contributors so much for SIMH! > > After not having been able to program on the VAXen I loved for so many > years, it's a real delight to use your VAX emulator. Yes, thank you and other contributors very much. Some days ago I started to plow through PDP-1 documentation. That's correct, no zero in name. Regards, Tomasz Rola -- ** A C programmer asked whether computer had Buddha's nature. ** ** As the answer, master did "rm -rif" on the programmer's home ** ** directory. And then the C programmer became enlightened... ** ** ** ** Tomasz Rola mailto:tomasz_rola at bigfoot.com ** From Mark at infocomm.com Fri Dec 21 15:41:02 2012 From: Mark at infocomm.com (Mark Pizzolato - Info Comm) Date: Fri, 21 Dec 2012 12:41:02 -0800 Subject: [Simh] SIMH 3.9 problem report In-Reply-To: <01ea01cddf31$d2100830$76301890$@vdpittman.com> References: <01ea01cddf31$d2100830$76301890$@vdpittman.com> Message-ID: <0CC6789C1C831B4C8CCFF49D45D7010F8410E790A4@REDROOF2.alohasunset.com> Hi Darrell, As it turns out, ALL the commands which are recognized that don't have help string in the command table are all actually convenient aliases for other commands. In the case you encountered, GET is an alias for RESTORE. I've changed the help command's response for the future versions of simh to 1) not cause an exception and 2) to indicate that the command you are seeking help for is an alias and then provide the help string for the aliased command and finally 3) if no alias help is available, then report that no help is available. Thanks for this bug report. The latest source code is available at: https://github.com/simh/simh/archive/master.zip - Mark Pizzolato From: simh-bounces at trailing-edge.com [mailto:simh-bounces at trailing-edge.com] On Behalf Of Darrell Pittman Sent: Thursday, December 20, 2012 8:16 PM To: simh at trailing-edge.com Subject: [Simh] SIMH 3.9 problem report Dear Mr. Supnik: I stumbled across a small problem in the scp.c module for SIMH. I entered the command "help get". The help_cmd() function did a lookup for the "GET" command in cmd_table[], which it found, but the structure member help (a char pointer) for the "GET" command was a NULL pointer, which was in turn passed into fputs(), which tried to dereference the NULL pointer and caused an exception. I took the liberty of patching help_cmd() to supply a default string if help text is unavailable in cmd_table[]. My version of help_cmd() now reads as follows: t_stat help_cmd (int32 flag, char *cptr) { char gbuf[CBUFSIZE]; CTAB *cmdp; GET_SWITCHES (cptr); if (*cptr) { cptr = get_glyph (cptr, gbuf, 0); if (*cptr) return SCPE_2MARG; if (cmdp = find_cmd (gbuf)) { const char* helptxt = cmdp->help ? cmdp->help : "No help available\n"; // <-- insert line fputs (helptxt, stdout); // <-- change line if (sim_log) fputs (helptxt, sim_log); // <-- change line } else return SCPE_ARG; } else { fprint_help (stdout); if (sim_log) fprint_help (sim_log); } return SCPE_OK; } Thank you for this wonderful SIMH system! Best regards, Darrell -------------- next part -------------- An HTML attachment was scrubbed... URL: From pontus at update.uu.se Sat Dec 22 15:38:17 2012 From: pontus at update.uu.se (Pontus) Date: Sat, 22 Dec 2012 21:38:17 +0100 Subject: [Simh] Broken Link Message-ID: <50D61A39.9080208@update.uu.se> Hi I just noticed that the FAQ link(http://simh.trailing-edge.com/simh_faq.txt) on http://simh.trailing-edge.com/help.html is broken. Cheers, Pontus. From tshoppa at wmata.com Sat Dec 22 15:54:10 2012 From: tshoppa at wmata.com (Shoppa, Tim) Date: Sat, 22 Dec 2012 20:54:10 +0000 Subject: [Simh] Broken Link In-Reply-To: <50D61A39.9080208@update.uu.se> References: <50D61A39.9080208@update.uu.se> Message-ID: <303A17BD5F8FA34DA45EEC245271AC0B252690A8@JGEX2K10MBX2.wmata.local> Try http://simh.trailing-edge.com/pdf/simh_faq.pdf for a PDF version of the FAQ. ________________________________________ From: simh-bounces at trailing-edge.com [simh-bounces at trailing-edge.com] on behalf of Pontus [pontus at update.uu.se] Sent: Saturday, December 22, 2012 3:38 PM To: simh at trailing-edge.com Subject: [Simh] Broken Link Hi I just noticed that the FAQ link(http://simh.trailing-edge.com/simh_faq.txt) on http://simh.trailing-edge.com/help.html is broken. Cheers, Pontus. _______________________________________________ Simh mailing list Simh at trailing-edge.com http://mailman.trailing-edge.com/mailman/listinfo/simh From mrox128 at gmail.com Sun Dec 30 23:45:51 2012 From: mrox128 at gmail.com (Rox 64) Date: Mon, 31 Dec 2012 05:45:51 +0100 Subject: [Simh] Unable to boot v7 Unix Message-ID: Hi guys, new SIMH (and Research Unix) user here coming from the future (Linux), haha. Well, as the mail subject says, I have a problem. After creating a bootable disk from a virgin Unix v7 distribution tape by following this guide, http://homepages.thm.de/~hg53/pdp11-unix/, and after umounting the usr file system and halting the machine, SIMH returns: HALT instruction, PC: 000002 (HALT) after running the command: pdp11 run.conf and I cannot boot my 87,9 MB 'system.hp' disk. I thought the problem was on the final line of 'run.conf': run 2002 But when I use SIMH without .conf files and by manually typing the following commands: set cpu 11/45 set cpu 256k set rp0 rp04 attach rp0 system.hp boot rp0 I see the same HALT message too. I'm currently unning SIMH from Debian/Ubuntu package 3.8.1-5build1. Should I update to a newest one? Or did I make a mistake when creating my bootable disk? -------------- next part -------------- An HTML attachment was scrubbed... URL: