.sp 1.5i .ft B Appendix B: Changes to the run time library .ft R .nh .sp Some minor changes in the run time library have been made concerning the external files (i.e. program arguments). The old compiler reserved space for the file structures of the external files in one \fBhol\fR block. In the new compiler, every file structure is placed in a separate \fBbss\fR block. This implies that the arguments with which \fI_ini\fR is called are slightly different. The second argument was the base of the \fBhol\fR block to relocate the buffer addresses, it is changed into an integer denoting the size of the array passed as third argument. The third argument was a pointer to an array of integers containing the description of external files, this argument is changed into a pointer to an array of pointers to file structures. The differences in the generated EM code for an arbitrary Pascal program are listed below (only the relevant parts are shown): .in +5m .nf \fBprogram\fR external_files(output,f); \fBvar\fR f : \fBfile of \fIsome-type\fR; . . \fBend\fR. .in -5m EM code generated by Pascal-VU: .in +5m . . hol 1088,-2147483648,0 ; space belonging to file structures of the program arguments . . . \&.2 con 3, -1, 544, 0 \h'80u'; description of external files lxl 0 lae .2 lae 0 \h'146u'; base of hol block, to relocate buffer addresses lxa 0 cal $_ini asp 16 . . .in -5m EM code generated by our compiler: .in +5m . . f bss 540,0,0 \h'100u'; space belonging to file structure of program argument f output bss 540,0,0 \h'100u'; space belonging to file structure of standard output . . . \&.2 con 0U4, output, f \h'50u'; the absence of standard input is denoted by a null pointer lxl 0 lae .2 loc 3 \h'144u'; denotes the size of the array of pointers to file structures lxa 0 cal $_ini asp 16 . . .in -5m .po The following files in the run time library have been changed: .in +1m pc_file.h hlt.c ini.c opn.c pentry.c pexit.c .in -1m .fi .bp .po