pkimpel / retro-b5500

Web-based emulator and operating environment for the Burroughs B5500 computer system.
http://www.phkimpel.us/B5500/
MIT License
77 stars 7 forks source link

COBOL MASTER/TEST error in section P016 #43

Closed pkimpel closed 8 years ago

pkimpel commented 9 years ago

The COBOL MASTER/TEST reports an error result in section P016 (AMOUNT COMPARISON 7.4.26) when using the standard run deck from the Mark XIII SYSNOTES listing:

ANSN(14) = 0000014000      ≠   RSTN(14) = 000009900+

The offending statement in the program is:

015130     IF F1D20 IS POSITIVE THEN MOVE 99 TO RSTN (14)
015140         ELSE MOVE 14 TO RSTN (14).

Requires further investigation -- may be an emulator bug.

Reported by Terry Heidelberg, 2015-05-10.

terryheidelberg commented 9 years ago

I am trying to run this with the McHarg modified input deck. Under Chrome, the test runs, with the system log getting gradually filled up, and then hangs. This hang might be a different bug having to do with filling up the system log, rather than what MASTER/TEST is doing. Not sure.

Here is an example excerpt from the SPO: 4:MASTER/TEST= 2 BOJ 2156 PBD0032 OUT POT12 1:MASTER/TEST= 2 CRA IN MSTCDIN 1:MASTER/TEST= 2 MTA OUT 0 TPFL1 1:MASTER/TEST= 2

MT RQD TPFL2 1:MASTER/TEST= 2

MT RQD TPFL2 1:MASTER/TEST= 2

RY MTB

RY MTC

MX 0:CANDE/TSHARER= 1 4:MASTER/TEST= 2 END MX

2OK

MTB OUT 0 TPFL2 1:MASTER/TEST= 2 CRA REL MSTCDIN 1:MASTER/TEST= 2 CRA IN MSTCDIN 1:MASTER/TEST= 2 CRA REL MSTCDIN 1:MASTER/TEST= 2 MTA REL TPFL1 1:MASTER/TEST= 2 MTB REL TPFL2 1:MASTER/TEST= 2

MTA NOT READY

MTB NOT READY

MASTER/TEST= 2: KEY IN OF OPTFIL1

NO FIL OPTFIL1 1:MASTER/TEST= 2

NO FIL OPTFIL1 1:MASTER/TEST= 2

2OF OPTFIL1

MASTER/TEST= 2: KEY IN OF

NO FIL 1:MASTER/TEST= 2

2OK

NO FIL 1:MASTER/TEST= 2

2IL MTA

MTA IN 0 1:MASTER/TEST= 2

LOG 5% FULL

OL MTA MTA 00000 IN USE BY MASTER/TEST= 2:0000000 000 00000 00 OL MTB MTB 00000 SCRATCH OL MTC MTC 00000 SCRATCH

LOG 10% FULL

LOG 15% FULL

LOG 20% FULL

LOG 25% FULL

LOG 30% FULL

LOG 35% FULL

LOG 40% FULL

LOG 45% FULL

LOG 50% FULL

LOG 55% FULL

LOG 60% FULL

LOG 65% FULL

LOG 70% FULL

LOG 75% FULL

LOG 80% FULL

LOG 85% FULL

LOG 90% FULL

LOG 95% FULL(AUTO LN)

MX [hangs here]

I have a memory dump (text from the 'Memory Check' button), if that will help.

terryheidelberg commented 9 years ago

It seems the MASTER/TEST program's behavior is different depending on the SPO commands (or lack of) that one presents to it. Paul, could you perhaps list the minimum but correct set of SPO commands that should be typed when the test starts requesting files: OPTFIL1, TPFL1, TPFL2 ? Or when it presents prompts for op action on the SPO?

This time, running under Opera, my test failure is the same one as Paul's above:

SECTION NO. P016 AMOUNT COMPARISON 7.4.26 TEST RESULT INCORRECT. ANSN(01) = RSTN(01) .... ANSN(13) = RSTN(13)

                     ********************               ANSN(14) = 0000014000      ≠   RSTN(14) = 000009900+

with SPO log excerpts:

5:MASTER/TEST= 1 BOJ 0218 PBD0055 OUT POT12 1:MASTER/TEST= 1 CRA IN MSTCDIN 1:MASTER/TEST= 1 MTA OUT 0 TPFL1 1:MASTER/TEST= 1 MTB OUT 0 TPFL2 1:MASTER/TEST= 1 CRA REL MSTCDIN 1:MASTER/TEST= 1 CRA IN MSTCDIN 1:MASTER/TEST= 1 CRA REL MSTCDIN 1:MASTER/TEST= 1 MTA REL TPFL1 1:MASTER/TEST= 1 MTB REL TPFL2 1:MASTER/TEST= 1

MTA NOT READY

MTB NOT READY

MASTER/TEST= 1: KEY IN OF OPTFIL1

NO FIL OPTFIL1 1:MASTER/TEST= 1

1 OF OPTFIL1

MASTER/TEST= 1: KEY IN OF

NO FIL 1:MASTER/TEST= 1

FR OF IL UL DS

NO FIL 1:MASTER/TEST= 1

1 OF

MASTER/TEST= 1: 1ST OPFL READ BRANCH OK

CRA IN MSTCDIN 1:MASTER/TEST= 1 MTA OUT 0 AAAAAAA 1:MASTER/TEST= 1

MTA NOT READY

MTA REL AAAAAAA 1:MASTER/TEST= 1

MASTER/TEST= 1: READ WRITE PHASE 001 OK

MTB OUT 0 AAAAAAA 1:MASTER/TEST= 1

MTA NOT READY

MASTER/TEST= 1: READ WRITE PHASE 002 OK

CRA REL MSTCDIN 1:MASTER/TEST= 1 MTB REL AAAAAAA 1:MASTER/TEST= 1

MTB NOT READY

CRA IN MSTCDIN 1:MASTER/TEST= 1 CRA REL MSTCDIN 1:MASTER/TEST= 1 0:PRNPBT/DISK= 2 BOJ 0222 MASTER/TEST= 1 EOJ 0222 PBD/0055001 REMOVED PRNPBT/DISK= 2 EOJ 0222

and, no system log messages about filling up the log.

pkimpel commented 8 years ago

This was finally resolved by Rich Cornwell, who is working on a SimH-based emulator for the B5500. The problem was in the card deck being used by the program. The card deck for running MASTER/TEST in the Mark XIII system notes is in error:

?EXECUTE MASTER/TEST
?LABEL  000000000MSTCDIN0010000001
?LABEL  000000000MSTCDIN0010000001
9AB
99999999999999999999999999999999999999999999999999999999999999999993333333222211
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
00&00000000000000000000000000000000000000000000000000000000000000000000000000000
?LABEL  000000000MSTCDIN0010000001
00000000*********************************************000********
00000000*********************************************000********
?LABEL  000000000MSTCDIN0010000001
?END

The second line of the second card deck should begin with A9999... instead of 99999...

The fourth line of the second card deck should begin with 00+0000... or 00|0000... instead of '00&0000'... (the "|" is the retro-B5500 convention for the Algol multiply sign, which internally is a minus-zero in character mode).

The deck Terry was using to run the rest came from Sid McHarg, and I failed to realize that Sid uses a different convention for the Algol multiply sign (lower-case "x"). Thus retro-B5500 was reading that as an "X" character, which definitely isn't numeric, and MASTER/TEST was properly reporting that as an error.

With those corrections, Sid's card deck looks like this:

?EXECUTE MASTER/TEST
?LABEL  000000000MSTCDIN0010000001
?LABEL  000000000MSTCDIN0010000001
9AB
A9999999999999999999999999999999999999999999999999999999999999999993333333222211
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
00|00000000000000000000000000000000000000000000000000000000000000000000000000000
?LABEL  000000000MSTCDIN0010000001
00000000*********************************************000********
00000000*********************************************000********
?LABEL  000000000MSTCDIN0010000001
?END

And runs without error under retro-B5500.

As to Terry's question on how to respond to the SPO messages, All you need to enter is <mix>OF in reply to the two NO FIL (no file found) RSVP messages. The #MTx NOT READY messages merely indicate the program tried to reopen the tape files while the tapes were still rewinding.

A complete SPO log of a successful run should look similar to this:

 5:MASTER/TEST= 1 BOJ 1611
 PBD0024 OUT POT12 1:MASTER/TEST= 1
 CRA IN MSTCDIN 1:MASTER/TEST= 1
 MTA OUT 0 TPFL1 1:MASTER/TEST= 1
 MTB OUT 0 TPFL2 1:MASTER/TEST= 1
 CRA REL MSTCDIN 1:MASTER/TEST= 1
 CRA IN MSTCDIN 1:MASTER/TEST= 1
 CRA REL MSTCDIN 1:MASTER/TEST= 1
 MTA REL TPFL1 1:MASTER/TEST= 1
#MTA NOT READY
 MTB REL TPFL2 1:MASTER/TEST= 1
#MTB NOT READY
#MASTER/TEST= 1: KEY IN OF OPTFIL1
#NO FIL OPTFIL1 1:MASTER/TEST= 1
1OF

#MASTER/TEST= 1: KEY IN OF
#NO FIL 1:MASTER/TEST= 1
1OF

#MASTER/TEST= 1: 1ST OPFL READ BRANCH OK
 CRA IN MSTCDIN 1:MASTER/TEST= 1
 MTA OUT 0 AAAAAAA 1:MASTER/TEST= 1
#MTA NOT READY
 MTA REL AAAAAAA 1:MASTER/TEST= 1
#MASTER/TEST= 1: READ WRITE PHASE   001  OK
 MTB OUT 0 AAAAAAA 1:MASTER/TEST= 1
#MTA NOT READY
#MASTER/TEST= 1: READ WRITE PHASE   002  OK
 CRA REL MSTCDIN 1:MASTER/TEST= 1
 MTB REL AAAAAAA 1:MASTER/TEST= 1
#MTB NOT READY
 CRA IN MSTCDIN 1:MASTER/TEST= 1
 CRA REL MSTCDIN 1:MASTER/TEST= 1
 0:PRNPBT/DISK= 2 BOJ 1614
 MASTER/TEST= 1 EOJ 1614
 PBD/0024001 REMOVED
 PRNPBT/DISK= 2 EOJ 1614

Closing this issue, as Rich's correction to the card deck resolves the errors in running the program.

pkimpel commented 8 years ago
Terry,
Long time no email. I don't know if you received a notice from
  GitHub, but this issue has been resolved. Of all things, it was an
  error in the data cards for the MASTER/TEST run deck. The details
  are in the issue long on GitHub.

  Paul
    Kimpel

-------- Original Message --------
  Subject: Re: [retro-b5500] COBOL MASTER/TEST error in
  section P016 (#43)
  From: terryheidelberg <notifications@github.com>
  To: pkimpel/retro-b5500
  <retro-b5500@noreply.github.com>
  Cc: Paul Kimpel <paul.kimpel@digm.com>
  Date: Tue May 12 2015 02:41:54 GMT-0700 (Pacific Daylight
  Time)

  It seems the MASTER/TEST program's behavior is different
    depending on the SPO commands (or lack of) that one presents to
    it. Paul, could you perhaps list the minimum but correct set of
    SPO commands that should be typed when the test starts
    requesting files: OPTFIL1, TPFL1, TPFL2 ?
    Or when it presents prompts for op action on the SPO?
  This time, running under Opera, my test failure is the same one
    as Paul's above:
  SECTION NO. P016 AMOUNT COMPARISON 7.4.26
    TEST RESULT INCORRECT.
    ANSN(01) = RSTN(01)
    ....
    ANSN(13) = RSTN(13)
                       ********************               ANSN(14) = 0000014000      ≠   RSTN(14) = 000009900+

  with SPO log excerpts:
  5:MASTER/TEST= 1 BOJ 0218
    PBD0055 OUT POT12 1:MASTER/TEST= 1
    CRA IN MSTCDIN 1:MASTER/TEST= 1
    MTA OUT 0 TPFL1 1:MASTER/TEST= 1
    MTB OUT 0 TPFL2 1:MASTER/TEST= 1
    CRA REL MSTCDIN 1:MASTER/TEST= 1
    CRA IN MSTCDIN 1:MASTER/TEST= 1
    CRA REL MSTCDIN 1:MASTER/TEST= 1
    MTA REL TPFL1 1:MASTER/TEST= 1
    MTB REL TPFL2 1:MASTER/TEST= 1
    #MTA NOT READY
    #MTB NOT READY
    #MASTER/TEST= 1: KEY IN OF OPTFIL1
    #NO FIL OPTFIL1 1:MASTER/TEST= 1
    1 OF OPTFIL1
  #MASTER/TEST= 1: KEY IN OF
    #NO FIL 1:MASTER/TEST= 1
    FR OF IL UL DS
    #NO FIL 1:MASTER/TEST= 1
    1 OF
  #MASTER/TEST= 1: 1ST OPFL READ BRANCH OK
    CRA IN MSTCDIN 1:MASTER/TEST= 1
    MTA OUT 0 AAAAAAA 1:MASTER/TEST= 1
    #MTA NOT READY
    MTA REL AAAAAAA 1:MASTER/TEST= 1
    #MASTER/TEST= 1: READ WRITE PHASE 001 OK
    MTB OUT 0 AAAAAAA 1:MASTER/TEST= 1
    #MTA NOT READY
    #MASTER/TEST= 1: READ WRITE PHASE 002 OK
    CRA REL MSTCDIN 1:MASTER/TEST= 1
    MTB REL AAAAAAA 1:MASTER/TEST= 1
    #MTB NOT READY
    CRA IN MSTCDIN 1:MASTER/TEST= 1
    CRA REL MSTCDIN 1:MASTER/TEST= 1
    0:PRNPBT/DISK= 2 BOJ 0222
    MASTER/TEST= 1 EOJ 0222
    PBD/0055001 REMOVED
    PRNPBT/DISK= 2 EOJ 0222
  and, no system log messages about filling up the log.
  —
    Reply to this email directly or view
      it on GitHub.