CAC 2017-01-29

isolts 945

DBG(3007274745)> CPU TRACE: 0: 00301:014147 4 040140100540 (MLR PR0|40140,F1) 040140 100(1) 0 0 0 00

040140100540

FILL 040
T 0
MF2 140 PR RL REG 0
MF1 140 PR RL REG 0

op1 600144200006
address pr6:0144 CN: 2 (is 1 since ta is 9 bit)  TA:0  N:6 (QL)
op2 600144000006 
address pr6:0144 CN: 0 TA:0  N:6 (QL)

Q=777777777777

Hmmm.. that seems wrong....

Backup a little

               if substr (out_str, 1, 1) = NL then          /* if leading newline... */ 
                    out_str = substr (out_str, 2);

002743  aa  6 00144 2351 00   lda       pr6|100             out_str
002744  aa  0 00022 3771 00   anaq      pr0|18              = 777000000000 000000000000 
002745  aa   012000 1150 03   cmpa      5120,du
002746  aa   000012 6010 04   tnz       10,ic               002760

DBG(3007274727)> CPU TRACE: 0: 00301:014135 4 600144235100 (LDA PR6|144) 600144 235(0) 1 0 0 00 
012040040040

DBG(3007274729)> CPU TRACE: 0: 00301:014136 4 000022377100 (ANAQ PR0|22) 000022 377(0) 1 0 0 00
DBG(3007274729)> CPU FINAL: Read (Actual) Read:  iefpFinalAddress=77453760  readData=777000000000
DBG(3007274729)> CPU FINAL: Read (Actual) Read:  iefpFinalAddress=77453761  readData=000000000000
DBG(3007274729)> CPU REGDUMPAQI: A=012000000000 Q=000000000000 IR:~BAR

DBG(3007274731)> CPU TRACE: 0: 00301:014137 4 012000115003 (CMPA 012000,DU) 012000 115(0) 0 0 0 03
DBG(3007274733)> CPU TRACE: 0: 00301:014140 4 000012601004 (TNZ 000012,IC) 000012 601(0) 0 0 0 04

002747  aa  6 00143 2361 00   ldq       pr6|99              out_str
002750  aa   000001 1760 07   sbq       1,dl
002751  aa   000210 1160 07   cmpq      136,dl
002752  aa   000002 6040 04   tmi       2,ic                002754

DBG(3007274735)> CPU TRACE: 0: 00301:014141 4 600143236100 (LDQ PR6|143) 600143 236(0) 1 0 0 00
DBG(3007274735)> CPU REGDUMPAQI: A=012000000000 Q=000000000000 IR:~BAR Carry Zero

DBG(3007274737)> CPU TRACE: 0: 00301:014142 4 000001176007 (SBQ 000001,DL) 000001 176(0) 0 0 0 07
DBG(3007274737)> CPU REGDUMPAQI: A=012000000000 Q=777777777777 IR:~BAR Neg

DBG(3007274739)> CPU TRACE: 0: 00301:014143 4 000210116007 (CMPQ 000210,DL) 000210 116(0) 0 0 0 07
DBG(3007274741)> CPU TRACE: 0: 00301:014144 4 000002604004 (TMI 000002,IC) 000002 604(0) 0 0 0 04

DBG(3007274743)> CPU TRACE: 0: 00301:014146 4 600143756100 (STQ PR6|143) 600143 756(0) 1 0 0 00

puts -1 in the strung descriptor?

Looking at the call to bci_to_ascii

isolts_err_log_.pl1 [RO]                                                                                                                412,0-1        82%
/* bci_to_ascii - entry to convert bcd with imbedded escape and ignore characters to ascii */

bci_to_ascii: entry (in, out, bci_len);

      out = "";                                             /* pad output string with blanks */
      escape_cnt = 0;                                       /* initialize escape_cnt */

      do i = 1 to bci_len;                                  /* go through entire input string */
         cur_char = substr (in, 6 * (i - 1) + 1, 6);        /* pick up current bcd char */
         if escape_cnt = 2 then                             /* if 2 times through here... */
            go to use_char;                                 /* convert the character */
         else if cur_char = "77"b3 then                     /* escape character */
            escape_cnt = escape_cnt + 1;                    /* increment escape count */
         else if escape_cnt = 1 then do;                    /* if only 1 escape... */
            lp = fixed (cur_char, 6);                       /* get slew count */
            if lp = 0 then lp = 1;
            if lp >= 16 then                                /* if slew to top of page */
               out = out || NP;                             /* set new page charater in out string */
            else do j = 1 to lp;                            /* put in correct number off new lines */
               out = out || NL;
            end;
            escape_cnt = 0;                                 /* clear out escape cnt */
         end;
         else if cur_char = "17"b3 then                     /* ignore character */
            escape_cnt = 0;
         else do;                                           /* valid bcd character */
use_char:
            cc = substr (bcd_to_ascii, fixed (cur_char, 6) + 1, 1); /* extract current char from table */
            if cc = ")" | cc = "," then do;                 /* check for white space before close paren or comma */
               j = verify (reverse (out), WS);              /* find leading blank or tab */
               if j ^= 1 then                               /* if we found some */
                  out = substr (out, 1, length (out) - j + 1); /* wipe it out */
            end;
            out = out || cc;                                /* add in current character */
            escape_cnt = 0;
         end;
      end;

      return;

'in' is a bit string; bci_len is 12, so two 6 bit bytes.

i = 1

in is 772020202020
cur_char = 77
escape_cnt++

i =2
escape_count =1
cur_char is 01 ??????
DBG(3007274177)> CPU REGDUMPFLT: E=000 A=010000000000 Q=000000000001 0.03125

Tracing from the top

Last call to interpret_action at

 DBG(3007273593)> CPU TRACE: 0: 00301:004106 4 600106650100 (SPRI4 PR6|106) 600106 650(0) 1 0 0 00

if action.print...

DBG(3007273621)> CPU TRACE: 0: 00301:004471 4 700672371520 (EPP5 PR7|672,N*) 700672 371(1) 1 0 1 00

mptr = 

DBG(3007273633)> CPU FINAL: Write(Actual) Write: iefpFinalAddress=61634534 writeData=000027400043
DBG(3007273633)> CPU FINAL: Write(Actual) Write: iefpFinalAddress=61634535 writeData=105601000000

105601 is in the middle of a block of 0s in pas.061

mlen = 2
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License