12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- .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
|