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)
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)
" 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.
pascal_operators_$return_zero does not properly check the argument count.
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.
On Sun, Jan 8, 2017 at 4:21 PM, Gary Dixon g-dixon@users.sf.net wrote:
-- Charles