[Simh] IBSYS end of file question

Richard Cornwell rich at sky-visions.com
Mon Jan 6 11:03:00 EST 2020


Hi,

> I'm new to simh and have a problem I'm hoping someone may help with.
> 
> Could someone tell me the purpose of the assert pc =7465 and det mta4
> in the job stream?

   The standard IBSYS halt address for a $STOP card is 7465. So the
   assert validates that his stop occurred at the valid address, and
   was not some other random halt. As to the "det mta4" this detaches
   the tape. This is to prevent part of the tape being cached in the
   simulator.
 
> I am using i7094 simulator to compile and run a fortran II and fap 
> program.  I run the ibsys.txt script and see no errors but the
> simulator hangs following a HALT instruction after the programs are
> compiled and executed.
> 
> I assume this HALT is a result of the $STOP command?
> 
> The system hangs after the HALT and does not respond to ctl-C or
> ctl=D or anything else.  However, if I start another terminal and run
> some other test it sometimes awakens the terminal and simh
> continues.  I see this problem with example  tests from
> sky-vision.com also.

  I am not sure what response you are expecting. IBSYS does not read
  from the "console", and the output you are seeing is really being
  typed on the line printer. The simulator should respond to ^E.
 
> What could cause this to hang?
> 
> 1.    Here is the tail end of the input job stream;  When the program 
> executes it simply prints the data following the *   DATA card.  The 
> program does seem to be running as I expect.  I've eliminated some
> blank lines to condense this a little.
> 
>              OCT     7777
>               OCT     77777
>   MSTBL PZE
>              END
> *          DATA
>            START OF COMPILER
>         JAT     ID SCAN
>         FIN
> ~
> $EOF
> $IBSYS
> $STOP

   Without seeing the program I can't be sure. Now if this is FAP
   assembly code it should be blocked in 16 card blocks. However the
   *DATA card and rest of records should be blocked 1 card per record.


> 2.   Here is the tail end of the system output on sysou1.bcd showing
> the text output from execution;
> 
>          EXECUTION
>            START OF COMPILER
>         JAT     ID SCAN
>         FIN
>   EOF
>   IBSYS
>   STOP
>          1792 LINES OUTPUT THIS JOB.
>        FORTRAN MONITOR RETURNING TO IBSYS
> $STOP
>   PERIPHERAL UNIT POSITIONS AT END OF JOBS
>   SYSPP1  IS   A8    REC. 00000, FILE 00001
>   SYSOU1  IS   A4    REC. 00574, FILE 00000
>   SYSIN1  IS   A3    REC. 00002, FILE 00001
> END OF JOBS
> HALT instruction, PC: 07465 (SXA 7510,4)

   Looks like it ran ok.
> 
> 3.   And here is the tail end of the LO from sysou1.bcd
>        EXECUTION
>         1792 LINES OUTPUT THIS JOB.
>       FORTRAN MONITOR RETURNING TO IBSYS
>             $STOP
>              PERIPHERAL UNIT POSITIONS AT END OF JOBS
>              SYSPP1  IS   A8    REC. 00000, FILE 00001
>              SYSOU1  IS   A4    REC. 00574, FILE 00000
>              SYSIN1  IS   A3    REC. 00002, FILE 00001
>             END OF JOBS
> 
EOF  END OF OUTPUT
> 
> 
> 4.    and, finally here is the do_ibsys.txt file used to create the 
> input stream;
> 
> ; command file to run ibsys from within simh
> ; argument 1 = job file
> ; argument 2 = print file
> ;
> ! rm punch.* print.* sysou1.* sys*.bin
> ! /Users/admin/development/simh/ibsys_kit/gendate > date.txt
> ! cat date.txt %1 /Users/admin/development/simh/ibsys_kit/eof.dat 
> /Users/admin/development/simh/ibsys_kit/ibsys.ctl > sysin.txt
> ! /Users/admin/development/simh/ibsys_kit/txt2bcda sysin 84
> set cpu 7094
> att -er cdr /Users/admin/development/simh/ibsys_kit/ibsys.ctl
> att cdp punch.txt
> ;att lpt print.txt
> att -ef mta1 p7b /Users/admin/development/simh/ibsys_kit/asys1.bin
> att -ef mta2 p7b /Users/admin/development/simh/ibsys_kit/asys8.bin
> att -f mta3 p7b sysin.bcd
> att -f mta4 p7b sysou1.bcd
> att mta5 /Users/admin/development/simh/ibsys_kitsysut1.bin
> att mta6 /Users/admin/development/simh/ibsys_kit/sysut3.bin
> att mta7 /Users/admin/development/simh/ibsys_kit/sysut2.bin
> att mta8 /Users/admin/development/simh/ibsys_kit/syspp1.bin
> att mta9 /Users/admin/development/simh/ibsys_kit/sysut4.bin
> att mta10 /Users/admin/development/simh/ibsys_kit/sysck2.bin
> dep ss1 0
> boot mta1
> run 3
> assert pc =7465
> det mta4
> ! /Users/admin/development/simh/ibsys_kit/bcd2txta -p sysou1.bcd %2
> det all
> ;! rm reader.* sys*.bin
> ;! rm sysou1*.bcd sysin.*

  The only change I might make here is to use mkbcdtape and listtape.
  Mkbcdtape allows for changing the blocking within a file. These can
  be found here:

  https://github.com/rcornwell/I7000tools

  Not mkbcdtape also properly recognizes $ cards and puts them in there
  own record, when input is blocked.

Rich

-- 
==========================================================================
Richard Cornwell
rich at sky-visions.com
http://sky-visions.com
LinkedIn:  https://www.linkedin.com/in/richard-cornwell-991076107
==========================================================================


More information about the Simh mailing list