Sunday, May 8, 2016

SimH Boot-able IRIS !!

This page is a part of the "Understanding IRIS" collection.  Many thanks to David Takle, for figuring this out, and sharing this with us:

NOTE:  See also SimH IRIS "v2" with fewer crashes, which contains a much better running setup.  We will keep this page here, however, because it contains foundational information and our original process on how we got to the next step.  Resources on this page will still be needed to try this yourself.

------------------------------------------------------------------

You would not believe all the undocumented weird stuff I ran into today. 
But I tracked down enough bugs to have some fun.

We can now BOOT the r7.5 IRIS on a Diablo 31 drive.
It seems quite buggy, and will crash without much warning. But at least it comes up and acts like a system.

Please see the attached files.

iris75.dkp --- this is the working Diablo LU0
nova-iris.simh --- this is like a .bat file for the simulator. It contains recommended commands in plain text.
nova.exe --- I assume you have one of these.

To bring up the system:
1. run nova.exe to get the simulator running.
2. at the prompt type "do nova-iris.simh" to run the simulator commands

It should boot, go past the date and time prompt, and leave the cursor hanging.
If you remember, you need to hit 'ESC' to get the ACCOUNT prompt.
Enter "MANAGER" IN CAPS for the account, and you should get a "# system prompt.
You probably need to type "CTL-P" to disable the parity checking.

After that you can play around until it crashes.
To continue after that, just reboot and start again.
BOOT DKP

Have fun!
~David


p.s. So far I have not seen any evidence of Pico-N problems.

--------------------------------------------------------------------------

Here is an example of me giving it a test drive:



If you are new to using SimH, here is some simple instructions on how to install and run it on Windows, with the DG Nova RDOS package.


------------------------------------------------------------------

05/09/2016:

David:
I am beginning to suspect that all the crashes after reaching "#" are due to Pico-N considerations.

------------------------------------------------------------------

Dan Paymar:
I'm wondering how you're handling the I/O. I'm sure you're not using Teletypes, so how are you interfacing?

Have you looked to see what is in the IRIS RAM space after the crash? If it's all zeroed out, then it's a Pico-N problem. I don't remember for sure, but if I was designing it today I would check for the Pico-N at a random time instead of at start-up to make it as difficult as possible to track down that code.

I would need the REX source to locate that code. Can you make the emulator continually test for the top word of IRIS RAM space being zero?

------------------------------------------------------------------

David:
The simulator itself runs in a DOS-type command window on Windows.
The basic terminal I/O is handled by the simulator, which given the Nova configuration, treats device 10-11 like the main computer, so it's all transparent.

I am starting to see major areas of memory set to zeros, so it might be the Pico software at work. But the system seems to crash (usually a JMP 0) before all of upper memory gets wiped clear, and the top-most area where the Diablo driver resides seems to be ok.
Another possibility is that there is damaged code from retrieving the binary from tape, and things just go south when they hit the bad code. And still another possibility is that I damaged something when I patched up the Diablo drive to run.

I learned enough from the build process to take another approach entirely, if we need to try again. But first I want to know if we are up against Pico-N no matter what else we try.Dan, I can send you a dis-assembled source of REX if you are interested in poking around.

I am also seeing some very strange code in places that looks like it is intentionally obscure ..... Does device code 25 ring a bell ?

------------------------------------------------------------------

Cprossu:
PORT is a command and accepts numbers -21 to 21 including 0. what it does who knows
BASIC is a command that brings you into a BASIC interpreter THAT WORKS!!!

Sooo. I present to you the first program ever written and run in simh on IRIS 7.5



also within BASIC there are 136 error messages which have descriptions in a HELP command. HELP 1 in BASIC for an example gives you a description of an error number. I didn't type in every combo for I was lazy, so here's a sampling!

HELP 1:  SYNTAX ERROR
HELP 2:  ILLEGAL STRING OPERATION
HELP 3:  STORAGE OVERFLOW (PROGRAM TOO LARGE)
HELP 4:  FORMAT ERROR
HELP 5:  ILLEGAL CHARACTER
HELP 6:  NO SUCH LINE NUMBER
HELP 7:  RENUMBER ABORTED BY ESCAPE, PROGRAM WAS LOST
HELP 8:  TOO MANY VARIABLE NAMES (LIMIT IS 93)
HELP 9:  UNRECOGNIZABLE WORD
HELP 10:  LINE NUMBER,"RUN" IS ILLEGAL BEFORE AN INITIAL RUN
HELP 11:  INCORRECT PARENTHESES CLOSURE
HELP 12:  PROGRAM IS LIST/COPY PROTECTED
HELP 13:  NUMBER TOO LARGE (9.9999999999999E+62 IS MAXIMUM)
HELP 14:  OUT OF DATA
HELP 15:  ARITHMETIC OVERFLOW (SUCH AS DIVISION BY ZERO)
HELP 16:  "GOSUB"S NESTED TOO DEEP
HELP 17:  "RETURN" WITHOUT "GOSUB"
HELP 18:  FOR-NEXT LOOPS NESTED TOO DEEP
HELP 19:  "FOR" WITHOUT MATCHING "NEXT"
HELP 20:  "NEXT" WITHOUT MATCHING "FOR"
HELP 21:  EXPRESSION TOO COMPLEX (TOO MUCH FUNCTION NESTING)
HELP 22:  NOT ENOUGH DISC BLOCKS AVAILABLE FOR SWAP-OUT
HELP 23:  ARRAY SIZE EXCEEDS INITIAL DIMENSIONS
HELP 24:  ONLY ONE DIMENSION ALLOWED FOR A STRING
HELP 25:  STRING OR ARRAY NOT DIMENSIONED
HELP 26:  LOGICAL UNIT NOT ACTIVE
HELP 27:  SYNTAX ERROR IN USER-DEFINED FUNCTION
HELP 28:  SUBSCRIPT, CHANNEL NUMBER, OR SIGNAL PARAMETER OUT OF RANGE
HELP 29:  ILLEGAL FUNCTION USAGE
HELP 30:  USER FUNCTION NOT DEFINED
HELP 31:  USER FUNCTIONS NESTED TOO DEEP
HELP 32:  MATRICES HAVE DIFFERENT DIMENSIONS
HELP 33:  ARGUMENT IS NOT A MATRIX
HELP 34:  DIMENSIONS ARE NOT COMPATIBLE
HELP 35:  MATRIX IS NOT "SQUARE"
HELP 36:  CALLED SUBROUTINE NOT IN STORAGE
HELP 37:  EXPRESSION IN ARGUMENT FOR CALL
HELP 38:  ERROR DETECTED BY CALLED SUBROUTINE
HELP 39:  FORMATTED OUTPUT EXCEEDED BUFFER SIZE
HELP 40:  CHANNEL IN USE
HELP 41:  ILLEGAL FILENAME
HELP 42:  FILE NOT FOUND
HELP 43:  SYNTAX ERROR IN COST, PROTECTION, OR SIZE
HELP 44:  NOT A DATA FILE (CAN'T OPEN OR REPLACE)
HELP 45:  FILE IS READ PROTECTED
HELP 4:  FORMAT ERROR
HELP 46:  FILE IS WRITE PROTECTED
HELP 47:  LOGICAL UNIT DOES NOT HAVE ENOUGH FREE BLOCKS
HELP 48:  ACCOUNT'S DISC BLOCK ALLOTMENT IS INSUFFICIENT
HELP 49:  CHANNEL NOT OPEN
HELP 50:  FILE IS COPY PROTECTED
HELP 51:  ILLEGAL RECORD NUMBER
HELP 52:  RECORD NOT WRITTEN
HELP 53:  ILLEGAL ITEM NUMBER
HELP 54:  ITEM TYPES DON'T MATCH
HELP 55:  STATEMENT IS ILLEGAL FROM KEYBOARD
HELP 56:  CAN'T DUMP AN EMPTY PROGRAM
HELP 57:  STRINGS CANNOT BE REDIMENSIONED
HELP 58:  ERROR IN FORMAT STRING
HELP 59:  "RUNMAT" PROCESSOR NOT IN SYSTEM
HELP 60:  TOO MANY NUMBERS ENTERED FOR INPUT
HELP 61:  MATRICES HAVE DIFFERENT NUMBER TYPES
HELP 62:  SIGNAL BUFFER IS FULL OR NO SUCH PORT
HELP 63:  COMMANDS ARE ILLEGAL IN "LOAD" MODE
...
HELP 70:  DATA READ ERROR
...
HELP 80:  LOGICAL UNIT DOES NOT HAVE ENOUGH CONTIGUOUS BLOCKS
...
HELP 90:  ?? NO SUCH MESSAGE NUMBER
HELP 99:  ESC OR CTRL C TRAPPED BY ERROR BRANCH
HELP 100:  ILLEGAL CHANNEL NUMBER
HELP 101:  CHANNEL IN USE
...
HELP 135:  DEVICE ATTRIBUTES NOT SET UP PROPERLY

HELP 136:  ?? NO SUCH MESSAGE NUMBER


This page is a part of the "Understanding IRIS" collection.  

No comments:

Post a Comment