Added
This commit is contained in:
85
doc/pascal/rtl.doc
Normal file
85
doc/pascal/rtl.doc
Normal file
@@ -0,0 +1,85 @@
|
||||
.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
|
||||
Reference in New Issue
Block a user