Menu

#63 Pascal programs won't run.

1.0
closed
None
2017-01-09
2015-08-09
No

Program Hello(Input, Output);
Begin
WriteLn('Hello, world!');
End.

Error: out_of_bounds at >user_dir_dir>SysEng>Cooper>hello|15 (line 1)
referencing !BBBJbPkCGGwHDg.area.linker|777777 (in process dir)
Attempt to access beyond end of segment.

I found some example Pascal source in pascal.changes.info; they fail as well, indicating the probem is probably related to Pascal runtime, not a source code bug.

The meesages are not consistent:

hello

Error: fault_tag_1 by >user_dir_dir>User>Anthony>hello|15 (line 1)
referencing !BBBJfCpmlxDlLd.area.linker|40040 (in process dir)
Ascii data where pointer expected.

hello

Error: out_of_bounds at >user_dir_dir>User>Anthony>hello|15 (line 1)
referencing !BBBJfCpmlxDlLd.area.linker|777777 (in process dir)
Attempt to access beyond end of segment.

pascal hello -db

hello

Error: out_of_bounds at >user_dir_dir>User>Anthony>hello|15 (line 1)
referencing !BBBJfCpmlxDlLd.area.linker|777777 (in process dir)
Attempt to access beyond end of segment.
r 07:13 0.136 0 level 2

pascal_area_status
Pascal standard area:
Size: 255 pages of 1024 words, free: 100.00%, new: 261094 words max

release

caller

Error: out_of_bounds at >user_dir_dir>User>Anthony>caller|22 (line 14)
(while in operator ext_call)
referencing !BBBJfCpmlxDlLd.area.linker|777777 (in process dir)
Attempt to access beyond end of segment.

rl

caller

Error: Illegal machine operation by >user_dir_dir>User>Anthony>caller|22 (line
\c 14)
Current instruction is:
0 000000000001 .... 0
r 07:31 0.159 1 level 2

rl

caller

Error: Illegal machine operation by >user_dir_dir>User>Anthony>caller|22 (line
\c 14)
Current instruction is:
1 776000000000 .... -2000

logout/login

caller

Error: out_of_bounds at >user_dir_dir>User>Anthony>caller|22 (line 14)
(while in operator ext_call)
referencing !BBBJfCppZCdQbG.area.linker|777777 (in process dir)
Attempt to access beyond end of segment.

caller

Error: Illegal machine operation by >user_dir_dir>User>Anthony>caller|22 (line
\c 14)
Current instruction is:
0 000000000001 .... 0

logout/login

hello

Error: pascal_error condition by >user_dir_dir>User>Anthony>hello|17 (line 1)
PASCAL file status block is inconsistent
pascal_io_$REWRITE: Error during REWRITE on Pascal sequential file \000\000\000
\c\000\000\000\000\000\000\000\000\000\024\026\001\754\000\000\000\000\000\000\
\c000\000\000\000\000\000\000\000\000\000

probe
Condition pascal_error raised at line 1 of hello (level 4).
sk
9 command_processor_ (pl1)
8 release_stack (pl1)
7 unclaimed_signal (pl1)
6 wall (pl1)
5 any_other.2 (pl1)
4 hello (line 1) pascal_error
3 command_processor_ (pl1)
2 listen_ (pl1)
1 initialize_process_ (pl1)

pascal_display
probe: Unknown request. "pascal_display"
q
r 07:38 0.549 16 level 2

pascal_display
Active procedures in the Multics stack are:
234|13000 command_processor_$command_processor_|412 (bound_multics_bce_|412) (P
\cL/I)
234|12500 listen_$release_stack|72 (bound_command_loop_|34040) (PL/I)
234|12100 get_to_cl_$unclaimed_signal|77 (bound_command_loop_|35421) (PL/I)
234|7320 default_error_handler_$wall|413 (bound_error_handlers_|413) (PL/I)
234|7220 initialize_process_$any_other.2|415 (bound_process_init_|415) (PL/I)
234|6660 signal_$signal_|52 (bound_library_1_|7570) (PL/I)
234|4000 pascal_io_$REWRITE|6031 (bound_pascal_runtime_|32125) (PL/I)
234|3640 hello$hello|2 (PASCAL) (line 1)

  • main -

234|2700 command_processor_$command_processor_|412 (bound_multics_bce_|412) (P
\cL/I)
234|2400 listen_$listen_|50 (bound_command_loop_|34016) (PL/I)
234|2000 initialize_process_$initialize_process_|232 (bound_process_init_|232)
\c (PL/I)

      - globals for >user_dir_dir>User>Anthony>hello are :

input =
- Multics io switch :
syn_ user_input
stream_input_output
- Pascal file status :
text file input interactive eoln
input^ = '#'
output =
(file status block is not initialized)

The issue seems to be in the Pascal runtime initialization:
234|4000 pascal_io_$REWRITE|6031 (bound_pascal_runtime_|32125) (PL/I)

Discussion

  • Charles Anthony

    Charles Anthony - 2017-01-02
    • status: open --> closed
     
  • Charles Anthony

    Charles Anthony - 2017-01-02

    " return zero operator
    " --------------------
    "
    " calling sequence:
    " tsp3 0|87
    "
    " Sets to zero return code if any (last arg must be integer)

    Note the comment: "last arg....". What args?

    Try running the program:

    test

    Error: fault_tag_1 by >user_dir_dir>SysAdmin>Repair>test|12 (line 3)

    try a little differently:

    test foo
    r 10:22 0.048 0

    I do not understand the underlying mechanism but apparently was are just using Pascal incorrectly -- we do not understand the the Multics command line/Pascal runtime interface.

    I am declaring the Pascal bug to be operator error and not an emulator bug.

     
  • Charles Anthony

    Charles Anthony - 2017-01-03
    • status: closed --> open
     
  • Charles Anthony

    Charles Anthony - 2017-01-03

    pascal_operators_$return_zero does not properly check the argument count.

     
  • Gary Dixon

    Gary Dixon - 2017-01-09

    Ticket 113 replaces ticket 63. Ticket 113 contains a more complete discussion of this problem, its underlying cause, and proposed repair. I therefore am closing ticket 63.

     
    • Charles Anthony

      Charles Anthony - 2017-01-09

      On Sun, Jan 8, 2017 at 4:21 PM, Gary Dixon g-dixon@users.sf.net wrote:

      Ticket 113 replaces
      ticket 63. Ticket 113 contains a more complete discussion of this problem,
      its underlying cause, and proposed repair. I therefore am closing ticket
      63.

      Actually ticket 63 references an earlier issue related to an emulator bug,
      since fixed.

      -- Charles

       
  • Gary Dixon

    Gary Dixon - 2017-01-09
    • status: open --> closed
     

Log in to post a comment.

MongoDB Logo MongoDB