CAC 2017-12-10

tracing ibm3270_mpx.list

pg 171:

The data-link control characters, with their EBCDIC or ASCII codes, are as
follows:
Data-Link
Control Character EBCDIC (Hex) ASCH (Hex)
ACK 0 ( 2 bytes) 1070 1030
ACK 1 ( 2 bytes) 1061 1031
DLE 10 10
ENQ 2D 05
EOT 37 04
ESC 27 1B
ETB 26 17
ETX 03 03
ITB 1F 1F
NAK 3D 15
RVI (2 bytes) 107C 103C
SOH 01 01
STX 02 02
SYN 32 16
TTD 022D 0205
WACK 106B 103B
sent string from 3270 keyboard to multics...

      567 /* Interrupt entry point */
      568
      569 interrupt: entry (arg_mdp, arg_int_type, arg_int_data);
      570
      571           mdp = arg_mdp;
      572           int_type = arg_int_type;
      573           interrupt_info = arg_int_data;
      574           ttybp = addr (tty_buf$);
      575
      576           if int_type < lbound (INTERRUPT, 1) | int_type > hbound (INTERRUPT, 1) then do;
      577                call syserr (ANNOUNCE, "^a: Unrecognized interrupt for ^a. ^d ^.3b",
      578                     name, md.name, int_type, interrupt_info);
      579                return;
      580           end;
      581
      582           go to INTERRUPT (int_type);

                                                            STATEMENT 1 ON LINE 571
         mdp = arg_mdp;

002550  aa  6 00032 3735 20   epp7      pr6|26,*
002551  aa  7 00002 3715 20   epp5      pr7|2,*             arg_mdp
002552  aa  5 00000 3715 20   epp5      pr5|0,*             arg_mdp
002553  aa  6 00172 6515 00   spri5     pr6|122             mdp

DBG(8750300512887)> CPU TRACE: 002550  aa  6 00032 3735 20  epp7      pr6|26,*^M
DBG(8750300512889)> CPU TRACE: 002551  aa  7 00002 3715 20  epp5      pr7|2,*             arg_mdp^M
DBG(8750300512891)> CPU TRACE: 002552  aa  5 00000 3715 20  epp5      pr5|0,*             arg_mdp^M
DBG(8750300512893)> CPU TRACE: 002553  aa  6 00172 6515 00  spri5     pr6|122             mdp^M

                                                            STATEMENT 1 ON LINE 572
          int_type = arg_int_type;

002554  aa  7 00004 2361 20   ldq       pr7|4,*             arg_int_type
002555  aa  6 00100 7561 00   stq       pr6|64              int_type

DBG(8750300512895)> CPU TRACE: 002554  aa  7 00004 2361 20  ldq       pr7|4,*             arg_int_type^M
DBG(8750300512895)> CPU REGDUMPAQI: A=000165000000 Q=000000000006 IR:~BAR ^M
DBG(8750300512897)> CPU TRACE: 002555  aa  6 00100 7561 00  stq       pr6|64              int_type^M

                                                            STATEMENT 1 ON LINE 573
          interrupt_info = arg_int_data;

002556  aa  7 00006 3535 20   epp3      pr7|6,*
002557  aa  3 00000 2351 00   lda       pr3|0               arg_int_data
002560  aa  3 00001 2361 00   ldq       pr3|1               arg_int_data
002561  aa  6 00152 7571 00   staq      pr6|106             interrupt_info

DBG(8750300512899)> CPU TRACE: 002556  aa  7 00006 3535 20  epp3      pr7|6,*^M
DBG(8750300512901)> CPU TRACE: 002557  aa  3 00000 2351 00  lda       pr3|0               arg_int_data^M
DBG(8750300512903)> CPU TRACE: 002560  aa  3 00001 2361 00  ldq       pr3|1               arg_int_data^M
DBG(8750300512905)> CPU TRACE: 002561  aa  6 00152 7571 00  staq      pr6|106             interrupt_info^M

                                                            STATEMENT 1 ON LINE 574
          ttybp = addr (tty_buf$);

002562  aa  6 00044 3701 20   epp4      pr6|36,*
002563  la  4 00034 3515 20   epp1      pr4|28,*            tty_buf$
002564  aa  6 00150 2515 00   spri1     pr6|104             ttybp

DBG(8750300512907)> CPU TRACE: 002562  aa  6 00044 3701 20  epp4      pr6|36,*^M
DBG(8750300512909)> CPU TRACE: 002563  la  4 00034 3515 20  epp1      pr4|28,*            tty_buf$^M
DBG(8750300512911)> CPU TRACE: 002564  aa  6 00150 2515 00  spri1     pr6|104             ttybp^M

                                                            STATEMENT 1 ON LINE 576
          if int_type < lbound (INTERRUPT, 1) | int_type > hbound (INTERRUPT, 1) then do;

002565  aa  6 00100 2361 00   ldq       pr6|64              int_type
002566  aa   000001 1160 07   cmpq      1,dl
002567  aa   000003 6040 04   tmi       3,ic                002572
002570  aa   000021 1160 07   cmpq      17,dl
002571  aa   000040 6044 04   tmoz      32,ic               002631

DBG(8750300512913)> CPU TRACE: 002565  aa  6 00100 2361 00  ldq       pr6|64              int_type^M
DBG(8750300512915)> CPU TRACE: 002566  aa   000001 1160 07  cmpq      1,dl^M
DBG(8750300512917)> CPU TRACE: 002567  aa   000003 6040 04  tmi       3,ic                002572^M
DBG(8750300512919)> CPU TRACE: 002570  aa   000021 1160 07  cmpq      17,dl^M
DBG(8750300512921)> CPU TRACE: 002571  aa   000040 6044 04  tmoz      32,ic               002631^M

                                                            STATEMENT 1 ON LINE 582
          go to INTERRUPT (int_type);

002631  ta   777777 7100 06   tra       -1,ql

DBG(8750300512923)> CPU TRACE: 002631  ta   777777 7100 06  tra       -1,ql^M
DBG(8750300512925)> CPU TRACE: 000005  aa   002745 7100 04  tra       1509,ic             002752^M

      630 /* ACCEPT_INPUT - Real data to processes */
      631
      632 INTERRUPT (6):
      633           if ^md.loaded then return;
      634           md.poll_in_progress = "0"b;                       /* Any input suspends polling */
      635           unspec (rtx_info) = interrupt_info;
      636           chain_ptr = ptr (ttybp, rtx_info.chain_head);     /* Start of input chain */
      637           if ^md.loaded then go to discard_input;
      638
      639           blockp = chain_ptr;
      640           textp = addr (buffer.chars);
      641           textl = buffer.tally;                             /* Set up to look at start */
      642
      643           if substr (text, 1, 1) = md.eot then do;          /* EOT means end of current poll operation */
      644                md.poll_in_progress = "0"b;
      645                call tty_space_man$free_chain (md.devx, INPUT, chain_ptr);
      646                call process_input;
      647                call process_polls;
      648                call process_write;
      649                return;
      650           end;
      651
      652           if substr (text, 1, 1) = md.soh then do;          /* Status or test_req */
      653                if textl < 5 then go to bad_input;
      654                if status_msg.percent ^= md.percent then     /* Should start % */
      655                     go to bad_input;
      656                if status_msg.type = slash then go to discard_input; /* Ignore test_reqq */
      657                if status_msg.type ^= md.letter_R then       /* R means status */
      658                     go to bad_input;
      659                if textl < 9 then go to bad_input;
      660                if status_msg.stx ^= md.stx then go to bad_input;
      661                dev_addr = getbin (status_msg.device_address);
      662                if dev_addr < lbound (md.chan_map, 1) | dev_addr > hbound (md.chan_map, 1) then go to bad_dev_addr;
      663                subchan = md.chan_map (dev_addr);
      664                if subchan <= 0 then go to bad_device;
      665                mdep = addr (md.mde_entry (subchan));
      666                if ^mde.dialed then go to discard_input;     /* Dont care if hungup */
      667                if ^mde.printer then go to discard_input;    /* Dont care except for printers */
      668                if mde.waiting_for_ready then do;            /* Looking for printer to go ready */
      669                     substr (status, 1, 6) = getbit (status_msg.status1);
      670                     substr (status, 7, 6) = getbit (status_msg.status2);
      671                     if status = "0200"b3 then do;           /* Really ready status */
      672                          mde.waiting_for_ready = "0"b;
      673                          call channel_manager$interrupt (mde.devx, SEND_OUTPUT, "0"b);
      674                     end;
      675                end;
      676                go to discard_input;                         /* Throw away status */
      677           end;
      678
      679
      680 /* Accumulate this block onto the current input chain */
      681
      682           if text_msg.stx ^= md.stx then go to bad_input;
      683           if textl < 2 then go to bad_input;
      684           if md.input_chain_ptr ^= null () then do;         /* Trim etb off previous block */
      685                call trim_chain_end (md.input_chain_ptr, 1);
      686                md.input_count = md.input_count - 1;
      687           end;
      688           if md.input_chain_ptr ^= null () then do;         /* Thread blocks */
      689                call trim_chain_start (chain_ptr, 1);        /* Throw away new stx */
      690                do blockp = md.input_chain_ptr repeat (ptr (ttybp, buffer.next)) while (buffer.next ^= 0);
      691                end;
      692                buffer.next = bin (rel (chain_ptr));
      693                md.input_count = md.input_count + rtx_info.input_count - 1;
      694           end;
      695           else do;                                          /* First block */
      696                md.input_chain_ptr = chain_ptr;
      697                md.input_count = rtx_info.input_count;
      698           end;
      699           do blockp = chain_ptr repeat (ptr (ttybp, buffer.next)) while (buffer.next ^= 0);
      700           end;                                              /* Find last block */
      701           if buffer.chars (buffer.tally - 1) = md.etx then call process_input;
      702           return;
      703
      704 bad_input:
      705           textl = min (textl, 8);
      706           if md.debug then
      707                call syserr (ANNOUNCE, "^a: Unrecognized input for ^a:^( ^.3b^)", name, md.name, bit_text_array);
      708           md.bad_input = md.bad_input + 1;
      709           go to discard_input;
      710
      711 bad_dev_addr:
      712                                                             /* This is so bad we cannot even mask it off, because its not in the table */
      713           call syserr (ANNOUNCE, "^a: Input for illegal device address ^d on ^a", name, dev_addr, md.name);
      714           md.bad_device = md.bad_device + 1;
      715           go to discard_input;
      716
      717 bad_device:
      718           if subchan < 0 then go to discard_input;          /* Once per bootload */
      719           call syserr (ANNOUNCE, "^a: Input for unconfigured device ^d on ^a", name, dev_addr, md.name);
      720           md.bad_device = md.bad_device + 1;
      721           md.chan_map (dev_addr) = -1;                      /* So wont get printed again */
      722
      723 discard_input:
      724           call tty_space_man$free_chain (md.devx, INPUT, chain_ptr);
      725           return;

                                                            STATEMENT 1 ON LINE 632
INTERRUPT (6):
          if ^md.loaded then return;

002752  aa  6 00172 3735 20   epp7      pr6|122,*           mdp
002753  aa  7 00102 2351 00   lda       pr7|66              md.loaded
002754  aa   040000 3150 03   cana      16384,du
002755  aa  0 00631 6001 00   tze       pr0|409             return_mac

DBG(8750300512927)> CPU TRACE: 002752  aa  6 00172 3735 20  epp7      pr6|122,*           mdp^M
DBG(8750300512929)> CPU TRACE: 002753  aa  7 00102 2351 00  lda       pr7|66              md.loaded^M
DBG(8750300512931)> CPU TRACE: 002754  aa   040000 3150 03  cana      16384,du^M
DBG(8750300512933)> CPU TRACE: 00165:002755 0 000631600100 (TZE PR0|631) 000631 600(0) 0 0 0 00^M

                                                            STATEMENT 1 ON LINE 634
          md.poll_in_progress = "0"b;

002756  aa   004137 2350 04   lda       2143,ic             007115 = 767777777777
002757  aa  7 00102 3551 00   ansa      pr7|66              md.poll_in_progress

DBG(8750300512935)> CPU TRACE: 002756  aa   004137 2350 04  lda       2143,ic             007115 = 767777777777^M
DBG(8750300512937)> CPU TRACE: 002757  aa  7 00102 3551 00  ansa      pr7|66              md.poll_in_progress^M

                                                            STATEMENT 1 ON LINE 635
          unspec (rtx_info) = interrupt_info;

002760  aa  6 00152 2371 00   ldaq      pr6|106             interrupt_info
002761  aa  6 00156 7571 00   staq      pr6|110

DBG(8750300512939)> CPU TRACE: 002760  aa  6 00152 2371 00  ldaq      pr6|106             interrupt_info^M
DBG(8750300512939)> CPU REGDUMPAQI: A=016412016412 Q=000001400000 IR:~BAR ^M
DBG(8750300512941)> CPU TRACE: 002761  aa  6 00156 7571 00  staq      pr6|110^M

                                                            STATEMENT 1 ON LINE 636
          chain_ptr = ptr (ttybp, rtx_info.chain_head);

002762  aa  6 00156 2351 00   lda       pr6|110             rtx_info.chain_head
002763  aa  0 00044 3771 00   anaq      pr0|36              = 777777000000 000000000000
002764  aa  6 00150 3521 20   epp2      pr6|104,*           ttybp
002765  aa   000000 3120 01   eawp2     0,au
002766  aa  6 00114 2521 00   spri2     pr6|76              chain_ptr

DBG(8750300512943)> CPU TRACE: 002762  aa  6 00156 2351 00  lda       pr6|110             rtx_info.chain_head^M
DBG(8750300512945)> CPU TRACE: 002763  aa  0 00044 3771 00  anaq      pr0|36              = 777777000000 000000000000^M
DBG(8750300512947)> CPU TRACE: 002764  aa  6 00150 3521 20  epp2      pr6|104,*           ttybp^M
DBG(8750300512949)> CPU TRACE: 002765  aa   000000 3120 01  eawp2     0,au^M
DBG(8750300512951)> CPU TRACE: 002766  aa  6 00114 2521 00  spri2     pr6|76              chain_ptr^M

                                                            STATEMENT 1 ON LINE 637
          if ^md.loaded then go to discard_input;

002767  aa  7 00102 2351 00   lda       pr7|66              md.loaded
002770  aa   040000 3150 03   cana      16384,du
002771  aa   000530 6000 04   tze       344,ic              003521

DBG(8750300512953)> CPU TRACE: 002767  aa  7 00102 2351 00  lda       pr7|66              md.loaded^M
DBG(8750300512955)> CPU TRACE: 002770  aa   040000 3150 03  cana      16384,du^M
DBG(8750300512957)> CPU TRACE: 002771  aa   000530 6000 04  tze       344,ic              003521^M

                                                            STATEMENT 1 ON LINE 639
          blockp = chain_ptr;

002772  aa  6 00160 2521 00   spri2     pr6|112             blockp

                                                            STATEMENT 1 ON LINE 640
          textp = addr (buffer.chars);

002773  aa  6 00160 3715 20   epp5      pr6|112,*           blockp
002774  aa  5 00001 3715 00   epp5      pr5|1               buffer.chars
002775  aa  6 00116 6515 00   spri5     pr6|78              textp

DBG(8750300512961)> CPU TRACE: 002773  aa  6 00160 3715 20  epp5      pr6|112,*           blockp^M
DBG(8750300512963)> CPU TRACE: 002774  aa  5 00001 3715 00  epp5      pr5|1               buffer.chars^M
DBG(8750300512965)> CPU TRACE: 002775  aa  6 00116 6515 00  spri5     pr6|78              textp^M

                                                            STATEMENT 1 ON LINE 641
          textl = buffer.tally;

002776  aa  6 00160 2361 20   ldq       pr6|112,*           buffer.tally
002777  aa  0 00416 3771 00   anaq      pr0|270             = 000000000000 000000000777
003000  aa  6 00120 7561 00   stq       pr6|80              textl

DBG(8750300512967)> CPU TRACE: 002776  aa  6 00160 2361 20  ldq       pr6|112,*           buffer.tally^M
DBG(8750300512967)> CPU REGDUMPAQI: A=060600000000 Q=000000000001 IR:~BAR ^M
DBG(8750300512969)> CPU TRACE: 002777  aa  0 00416 3771 00  anaq      pr0|270             = 000000000000 000000000777^M
DBG(8750300512971)> CPU TRACE: 003000  aa  6 00120 7561 00  stq       pr6|80              textl^M

                                                            STATEMENT 1 ON LINE 643
          if substr (text, 1, 1) = md.eot then do;

003001  aa  000 100 100 500   mlr       (pr),(pr),fill(000)
003002  aa  5 00000 00 0001   desc9a    pr5|0,1             text
003003  aa  6 00525 00 0004   desc9a    pr6|341,4           text
003004  aa  7 00027 2351 00   lda       pr7|23              md.eot
003005  aa   000011 7350 00   als       9
003006  aa  0 00022 3771 00   anaq      pr0|18              = 777000000000 000000000000
003007  aa  6 00525 1151 00   cmpa      pr6|341             text
003010  aa   000020 6010 04   tnz       16,ic               003030

DBG(8750300512973)> CPU TRACE: 003001  aa  000 100 100 500  mlr       (pr),(pr),fill(000)^M
DBG(8750300512975)> CPU TRACE: 003004  aa  7 00027 2351 00  lda       pr7|23              md.eot^M
DBG(8750300512975)> CPU REGDUMPAQI: A=001067154141 Q=000000000001 IR:~BAR ^M
DBG(8750300512977)> CPU TRACE: 00165:003005 0 000011735000 (ALS 000011) 000011 735(0) 0 0 0 00^M
DBG(8750300512979)> CPU TRACE: 003006  aa  0 00022 3771 00  anaq      pr0|18              = 777000000000 000000000000^M
DBG(8750300512979)> CPU REGDUMPAQI: A=067000000000 Q=000000000000 IR:~BAR Carry ^M
DBG(8750300512981)> CPU TRACE: 003007  aa  6 00525 1151 00  cmpa      pr6|341             text^M
DBG(8750300512981)> CPU FINAL: Read (Actual) Read:  iefpFinalAddress=77114305  readData=147000000000^M

DBG(8750300512983)> CPU TRACE: 003010  aa   000020 6010 04  tnz       16,ic               003030^M

Trying again with properly formatted data

ENTRY TO ibm3270_mpx                                        STATEMENT 1 ON LINE 30
ibm3270_mpx: proc;

                                                            STATEMENT 1 ON LINE 632
INTERRUPT (6):
          if ^md.loaded then return;

002752  aa  6 00172 3735 20   epp7      pr6|122,*           mdp
002753  aa  7 00102 2351 00   lda       pr7|66              md.loaded
002754  aa   040000 3150 03   cana      16384,du
002755  aa  0 00631 6001 00   tze       pr0|409             return_mac

DBG(167765281)> CPU TRACE: 002752  aa  6 00172 3735 20      epp7      pr6|122,*           mdp^M
DBG(167765283)> CPU TRACE: 002753  aa  7 00102 2351 00      lda       pr7|66              md.loaded^M
DBG(167765285)> CPU TRACE: 002754  aa   040000 3150 03      cana      16384,du^M
DBG(167765287)> CPU TRACE: 002755  aa  0 00631 6001 00      tze       pr0|409             return_mac^M

                                                            STATEMENT 1 ON LINE 634
          md.poll_in_progress = "0"b;

002756  aa   004137 2350 04   lda       2143,ic             007115 = 767777777777
002757  aa  7 00102 3551 00   ansa      pr7|66              md.poll_in_progress

DBG(167765289)> CPU TRACE: 002756  aa   004137 2350 04      lda       2143,ic             007115 = 767777777777^M
DBG(167765291)> CPU TRACE: 002757  aa  7 00102 3551 00      ansa      pr7|66              md.poll_in_progress^M

                                                            STATEMENT 1 ON LINE 635
          unspec (rtx_info) = interrupt_info;

002760  aa  6 00152 2371 00   ldaq      pr6|106             interrupt_info
002761  aa  6 00156 7571 00   staq      pr6|110

DBG(167765293)> CPU TRACE: 002760  aa  6 00152 2371 00      ldaq      pr6|106             interrupt_info^M
DBG(167765295)> CPU TRACE: 002761  aa  6 00156 7571 00      staq      pr6|110^M
DBG(167765295)> CPU REGDUMPAQI: A=016360016360 Q=000067400000 IR:~BAR ^M

                                                            STATEMENT 1 ON LINE 636
          chain_ptr = ptr (ttybp, rtx_info.chain_head);

002762  aa  6 00156 2351 00   lda       pr6|110             rtx_info.chain_head
002763  aa  0 00044 3771 00   anaq      pr0|36              = 777777000000 000000000000
002764  aa  6 00150 3521 20   epp2      pr6|104,*           ttybp
002765  aa   000000 3120 01   eawp2     0,au
002766  aa  6 00114 2521 00   spri2     pr6|76              chain_ptr

DBG(167765297)> CPU TRACE: 002762  aa  6 00156 2351 00      lda       pr6|110             rtx_info.chain_head^M
DBG(167765299)> CPU TRACE: 002763  aa  0 00044 3771 00      anaq      pr0|36              = 777777000000 000000000000^M
DBG(167765301)> CPU TRACE: 002764  aa  6 00150 3521 20      epp2      pr6|104,*           ttybp^M
DBG(167765303)> CPU TRACE: 002765  aa   000000 3120 01      eawp2     0,au^M
DBG(167765305)> CPU TRACE: 002766  aa  6 00114 2521 00      spri2     pr6|76              chain_ptr^M

                                                            STATEMENT 1 ON LINE 637
          if ^md.loaded then go to discard_input;

002767  aa  7 00102 2351 00   lda       pr7|66              md.loaded
002770  aa   040000 3150 03   cana      16384,du
002771  aa   000530 6000 04   tze       344,ic              003521

DBG(167765307)> CPU TRACE: 002767  aa  7 00102 2351 00      lda       pr7|66              md.loaded^M
DBG(167765309)> CPU TRACE: 002770  aa   040000 3150 03      cana      16384,du^M
DBG(167765311)> CPU TRACE: 002771  aa   000530 6000 04      tze       344,ic              003521^M

                                                            STATEMENT 1 ON LINE 639
          blockp = chain_ptr;

002772  aa  6 00160 2521 00   spri2     pr6|112             blockp

DBG(167765313)> CPU TRACE: 002772  aa  6 00160 2521 00      spri2     pr6|112             blockp^M

                                                            STATEMENT 1 ON LINE 640
          textp = addr (buffer.chars);

002773  aa  6 00160 3715 20   epp5      pr6|112,*           blockp
002774  aa  5 00001 3715 00   epp5      pr5|1               buffer.chars
002775  aa  6 00116 6515 00   spri5     pr6|78              textp

DBG(167765315)> CPU TRACE: 002773  aa  6 00160 3715 20      epp5      pr6|112,*           blockp^M
DBG(167765317)> CPU TRACE: 002774  aa  5 00001 3715 00      epp5      pr5|1               buffer.chars^M
DBG(167765319)> CPU TRACE: 002775  aa  6 00116 6515 00      spri5     pr6|78              textp^M

                                                            STATEMENT 1 ON LINE 641
          textl = buffer.tally;

002776  aa  6 00160 2361 20   ldq       pr6|112,*           buffer.tally
002777  aa  0 00416 3771 00   anaq      pr0|270             = 000000000000 000000000777
003000  aa  6 00120 7561 00   stq       pr6|80              textl

DBG(167765321)> CPU TRACE: 002776  aa  6 00160 2361 20      ldq       pr6|112,*           buffer.tally^M
DBG(167765323)> CPU TRACE: 002777  aa  0 00416 3771 00      anaq      pr0|270             = 000000000000 000000000777^M
DBG(167765325)> CPU TRACE: 003000  aa  6 00120 7561 00      stq       pr6|80              textl^M
DBG(167765325)> CPU REGDUMPAQI: A=000000000000 Q=000000000067 IR:~BAR ^M

                                                            STATEMENT 1 ON LINE 643
          if substr (text, 1, 1) = md.eot then do;

003001  aa  000 100 100 500   mlr       (pr),(pr),fill(000)
003002  aa  5 00000 00 0001   desc9a    pr5|0,1             text
003003  aa  6 00525 00 0004   desc9a    pr6|341,4           text
003004  aa  7 00027 2351 00   lda       pr7|23              md.eot
003005  aa   000011 7350 00   als       9
003006  aa  0 00022 3771 00   anaq      pr0|18              = 777000000000 000000000000
003007  aa  6 00525 1151 00   cmpa      pr6|341             text
003010  aa   000020 6010 04   tnz       16,ic               003030

DBG(167765327)> CPU TRACE: 003001  aa  000 100 100 500      mlr       (pr),(pr),fill(000)^M
DBG(167765329)> CPU TRACE: 003004  aa  7 00027 2351 00      lda       pr7|23              md.eot^M
DBG(167765331)> CPU TRACE: 003005  aa   000011 7350 00      als       9^M
DBG(167765333)> CPU TRACE: 003006  aa  0 00022 3771 00      anaq      pr0|18              = 777000000000 000000000000^M
DBG(167765335)> CPU TRACE: 003007  aa  6 00525 1151 00      cmpa      pr6|341             text^M
DBG(167765337)> CPU TRACE: 003010  aa   000020 6010 04      tnz       16,ic               003030^M

                                                            STATEMENT 1 ON LINE 652
          if substr (text, 1, 1) = md.soh then do;

003030  aa  7 00027 2351 00   lda       pr7|23              md.soh
003031  aa  0 00022 3771 00   anaq      pr0|18              = 777000000000 000000000000
003032  aa  6 00525 1151 00   cmpa      pr6|341             text
003033  aa   000147 6010 04   tnz       103,ic              003202

DBG(167765339)> CPU TRACE: 003030  aa  7 00027 2351 00      lda       pr7|23              md.soh^M
DBG(167765341)> CPU TRACE: 003031  aa  0 00022 3771 00      anaq      pr0|18              = 777000000000 000000000000^M
DBG(167765343)> CPU TRACE: 003032  aa  6 00525 1151 00      cmpa      pr6|341             text^M
DBG(167765345)> CPU TRACE: 003033  aa   000147 6010 04      tnz       103,ic              003202^M

                                                            STATEMENT 1 ON LINE 682
          if text_msg.stx ^= md.stx then go to bad_input;

003202  aa  040 100 106 500   cmpc      (pr),(pr),fill(040)
003203  aa  7 00025 40 0001   desc9a    pr7|21(2),1         md.stx
003204  aa  5 00000 00 0001   desc9a    pr5|0,1             text_msg.stx
003205  aa   000117 6010 04   tnz       79,ic               003324

DBG(167765347)> CPU TRACE: 003202  aa  040 100 106 500      cmpc      (pr),(pr),fill(040)^M
DBG(165743667)> CPU TRACE: cmpc tally 0 c1 163 c2 145^M

0163 = 0x73
0145  = 0x65
DBG(167765349)> CPU TRACE: 003205  aa   000117 6010 04      tnz       79,ic               003324^M

                                                            STATEMENT 1 ON LINE 683
          if textl < 2 then go to bad_input;

003206  aa  6 00120 2361 00   ldq       pr6|80              textl
003207  aa   000002 1160 07   cmpq      2,dl
003210  aa   000114 6040 04   tmi       76,ic               003324
                                                            STATEMENT 1 ON LINE 684
          if md.input_chain_ptr ^= null () then do;

003211  aa  7 00060 2371 00   ldaq      pr7|48              md.input_chain_ptr
003212  aa   774752 6770 04   eraq      -1558,ic            000164 = 077777000043 000001000000
003213  aa  0 00460 3771 00   anaq      pr0|304             = 077777000077 777777077077
003214  aa   000016 6000 04   tze       14,ic               003232
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License