add directory Minix
This commit is contained in:
10
Minix/pascal/INDEX
Normal file
10
Minix/pascal/INDEX
Normal file
@@ -0,0 +1,10 @@
|
||||
Contents of directory pub/minix/mirrors/ftp.cs.vu.nl/pascal:
|
||||
|
||||
qck.tar.gz
|
||||
|
||||
|
||||
README
|
||||
|
||||
|
||||
|
||||
This file was automatically generated from file descriptions.
|
||||
321
Minix/pascal/README
Normal file
321
Minix/pascal/README
Normal file
@@ -0,0 +1,321 @@
|
||||
Hi minixers and pascalers,
|
||||
here comes the first public pascal compiler and pascal debugger/interpreter
|
||||
for Minix 16-Bit. It is developed for Prof. Dr. Tanenbaum's Minix 1.6.25,
|
||||
1.6.30 and the newest version 1.7.0. It does NOT work under Minix 1.5.
|
||||
This package is copyrighted by Henrik Quintel 1994, 1995 but you can give
|
||||
the package away to your friends without anything. This package contains
|
||||
no source code. But in the future all my publications will contain the source
|
||||
code. I think this will happen, when I have 'learned' to program a compiler
|
||||
which understands a OOP-language under a 16-Bit Operating-System like Minix.
|
||||
I am working on it.
|
||||
|
||||
This package contains the following files :
|
||||
-------------------------------------------
|
||||
file what it is div.
|
||||
-------------------------------------------
|
||||
qpascal compiler executable
|
||||
Qpas small driver shell script
|
||||
qpascal_cpp preprocessor executabale
|
||||
pas_as assembler executable
|
||||
pas_ld linker executable
|
||||
pas_ncrtso.o lib opject-code
|
||||
paslib.o lib object-code
|
||||
pas_libd.a lib object-code
|
||||
pas_libc.a lib object-code
|
||||
pas_libfp.a lib object-code
|
||||
pas_libe.a lib object-code
|
||||
pas_end.a lib object-code
|
||||
pas_cv conversion executable
|
||||
Qdb small driver shell script
|
||||
qdebugger debugger /
|
||||
interpreter executable
|
||||
physik.pas testprogram pascal-source
|
||||
README this file ascii-text
|
||||
qpas man-page ascii-text
|
||||
qdb man-page ascii-text
|
||||
|
||||
A very important thing is that the size of qdebugger is 20000.
|
||||
If you are missing something in the package, please let me know immediately !
|
||||
|
||||
Not implemented are the following features :
|
||||
Filehandling
|
||||
Packed array
|
||||
Packed records
|
||||
'Set of'-construct
|
||||
Here is an example to port a set-of construct to an array construct.
|
||||
|
||||
var a, b: set of [1..10]
|
||||
|
||||
=> const lwb=1; upb=10;
|
||||
type set10 = array [lwb..upb] of boolean;
|
||||
var a, b: set10
|
||||
|
||||
a:= (1; 4; 6);
|
||||
=> for i:= lwb to upb do a[i]:= false;
|
||||
a[2]:=true; a[4]:=true; a[6]:=true;
|
||||
|
||||
a:=a*b
|
||||
=> procedure intersect(a,b:set10; var res: set10);
|
||||
var i: integer;
|
||||
begin
|
||||
for i:=lwb to upb do res[i]:= a[i] and b[i];
|
||||
end;
|
||||
|
||||
intersect(a, b, a);
|
||||
...
|
||||
|
||||
How can you get the package ?
|
||||
Make a ftp to ftp.cs.vu.nl
|
||||
Directory : minix/pascal
|
||||
set bin
|
||||
set hash
|
||||
set prompt
|
||||
mget *
|
||||
-------------------------------------------
|
||||
On your system do the following:
|
||||
(QCK = Quintel's Compiler Kit)
|
||||
Then make a dirrectory in /usr (cd /usr ; mkdir pascal ; cd pascal)
|
||||
Put the file QCK.tar there.
|
||||
Uncompress the file. (uncompress QCK.tar.Z)
|
||||
Then extract the tar file QCK.tar (tar xvf QCK.tar)
|
||||
After extracting there are four directories :
|
||||
1. compiler
|
||||
2. debugger
|
||||
3. test
|
||||
4. man
|
||||
|
||||
In the first directory is the compiler and in the second the debugger.
|
||||
Make (cd test). Here you find the file testsuite.tar.
|
||||
Make (tar xvf testsuite.tar and you have extracted the testsuite.
|
||||
So you can see how programming in pascal.
|
||||
In the man directory is this file and the man pages.
|
||||
|
||||
Copy the following files in the mentioned directories
|
||||
|
||||
qpascal /usr/bin
|
||||
Qpas /usr/bin
|
||||
qpascal_cpp /usr/lib
|
||||
pas_as /usr/lib
|
||||
pas_ld /usr/lib
|
||||
pas_ncrtso.o /usr/lib
|
||||
paslib.o /usr/lib
|
||||
pas_libd.A /usr/lib
|
||||
pas_libc.A /usr/lib
|
||||
pas_libfp.A /usr/lib
|
||||
pas_libe.A /usr/lib
|
||||
pas_end.A /usr/lib
|
||||
pas_cv /usr/lib
|
||||
Qdb /usr/bin
|
||||
qdebugger /usr/bin
|
||||
qpas /usr/man/man1
|
||||
qdb /usr/man/man1
|
||||
|
||||
Of course you can install the files where you want. But then you have to
|
||||
change all the PATH in Qpas and in Qdb.
|
||||
|
||||
IF YOU HAVE PROBLEMS WITH INSTALLING OR PROBLEMS WITH
|
||||
COMPILING OR DEBUGGUNG/INTERPRETING YOUR PASCAL-PROGRAMS
|
||||
SEND ME THE FOLLOWING FILES :
|
||||
|
||||
Your PASCAL-PROGRAM (hallo.pas)
|
||||
The .qcpp file (hallo.qcpp)
|
||||
The assembler output (hallo.as)
|
||||
The object file (hallo.o)
|
||||
If possible the outputfile (output)
|
||||
|
||||
TRY *******NNEEVVEERR********* to make changes inside the
|
||||
OBJECT FILES WHICH ARE DISTRIBUTED.
|
||||
|
||||
If I have forgotten a file or have you any questions for
|
||||
the standard-pascal or how to use, install the compiler, debugger/interpreter,
|
||||
FEEEEEEL FREE and mail to me.
|
||||
|
||||
Example for the compiler (use the file physik.pas)
|
||||
|
||||
Starting the compiler :
|
||||
Qpas physik (You do not have to write qpas newton.pas, but if you want so,
|
||||
you can change it in qpas.)
|
||||
|
||||
Starting and working with the debugger :
|
||||
(The words in the brackets are only commets by me)
|
||||
|
||||
qdb physik
|
||||
(You will see the listing)
|
||||
Command ? break 15 (Press Enter)
|
||||
Command ? (Press Enter)
|
||||
|
||||
Enter new number (0 to quit) : 9 (Press Enter)
|
||||
|
||||
Breakpoint
|
||||
At 15: If number = 0
|
||||
|
||||
Command ?
|
||||
9.00000 3.0000
|
||||
|
||||
5.000000 66.67%
|
||||
3.400000 13.33%
|
||||
3.023530 0.78%
|
||||
3.000092 0.00%
|
||||
3.000000 0.00%
|
||||
|
||||
Enter new number (0 to quit) : (Press CTRL-C)
|
||||
(Now you see a heart)
|
||||
(Press Enter)
|
||||
(There are two error messages - ignore them :-))
|
||||
|
||||
Command ? assign number := 16
|
||||
|
||||
Command ? show sqrt(number)
|
||||
4
|
||||
|
||||
Command ? pi/number
|
||||
|
||||
****Error : undefinded identifier.
|
||||
|
||||
****Error : Incompatible types.
|
||||
|
||||
Command ? where
|
||||
|
||||
At 15: if number = 0
|
||||
|
||||
Command ? step
|
||||
|
||||
Command ?
|
||||
|
||||
At 15 if number = 0
|
||||
|
||||
Command ?
|
||||
|
||||
At 18: if number < 0
|
||||
|
||||
Command ?
|
||||
|
||||
At 22: sqroot := sqrt(number)
|
||||
|
||||
Command ?
|
||||
|
||||
At 23: writeln (number : 12 : 6, sqroot: 12 : 6)
|
||||
16.000000 4.0000000
|
||||
|
||||
Command ?
|
||||
|
||||
At 24 : writeln
|
||||
|
||||
Command ?
|
||||
|
||||
At 26 : root := 1
|
||||
|
||||
Command ? unstep
|
||||
|
||||
Command ? trace
|
||||
|
||||
Command ? (Here you will see a lot of information)
|
||||
...
|
||||
Enter new number (0 to quit) : <13> 36
|
||||
|
||||
Breakpoint
|
||||
At 15 : If number = 0
|
||||
|
||||
(Press CTRL-C like at the beginning of the session. You will see a heart)
|
||||
(Press Enter)
|
||||
|
||||
Command ? untrace
|
||||
|
||||
Command ? store root
|
||||
|
||||
Command ? watch
|
||||
Variables being watched:
|
||||
root (store)
|
||||
|
||||
Command ? break
|
||||
Statement breakpoints at:
|
||||
15
|
||||
|
||||
Command ?
|
||||
36.000000 6.000000
|
||||
..... (There are a lot of stores now)
|
||||
|
||||
Enter new number (0 to quit) : 0
|
||||
(Exit...)
|
||||
|
||||
Here are the commands for the debugger:
|
||||
|
||||
Command: break (number)
|
||||
breakpoint at each one of them.
|
||||
|
||||
Command: break
|
||||
Print the line numbers of all the breakpoints.
|
||||
|
||||
Command: unbreak (number)
|
||||
Remove the breakpoint from the statement beginning on line (number).
|
||||
|
||||
Command unbreak
|
||||
Remove all breakpoints from all statements.
|
||||
|
||||
Command: trace
|
||||
Turn on statement tracing.
|
||||
|
||||
Command: untrace
|
||||
Turn off statement tracing.
|
||||
|
||||
Command: entry
|
||||
Turn on tracing of procedure and function entries
|
||||
|
||||
Command: unentry
|
||||
Turn off tracing of procedure and function entries.
|
||||
|
||||
Command: exit
|
||||
Turn on tracing of procedure and function exits.
|
||||
|
||||
Command: unexit
|
||||
Turn off tracing of procedure and function exits.
|
||||
|
||||
Command: step
|
||||
Turn on single-stepping
|
||||
|
||||
Command: unstep
|
||||
Turn off single stepping
|
||||
|
||||
Command: fetch (variable)
|
||||
store (variable)
|
||||
watch (variable)
|
||||
|
||||
Command: show (expression)
|
||||
Print the value of expression.
|
||||
|
||||
Command: assign (variable) := (expression)
|
||||
(See example)
|
||||
|
||||
Command: where
|
||||
Print the line number followed by the text of the statement to be executed next.
|
||||
|
||||
Killing the program
|
||||
The kill command terminates the program execution.
|
||||
|
||||
Command: kill
|
||||
|
||||
If you have questions about the commands or the usage, mail to me.
|
||||
|
||||
At the moment I program :
|
||||
an ansi c compiler
|
||||
a modula-2 compiler
|
||||
a new assembler / loader
|
||||
a new lib
|
||||
a forth interpreter
|
||||
|
||||
BTW, I make some brainstorming sessions to produce a compiler/interpreter
|
||||
which understands the concepts of an OOP-language.
|
||||
|
||||
|
||||
If you have ideas or tips, feel free and mail to me.
|
||||
|
||||
If someone has ideas or something else please write to me !
|
||||
|
||||
SPECIAL THANKS FOR SUPPORT TO THE FOLLOWING PERSONS :
|
||||
Prof. Dr. Andrew S. Tanenbaum ast@cs.vu.nl
|
||||
Kees J. Bot kjb@cs.vu.nl
|
||||
|
||||
--
|
||||
quintel@nibelung.Worms.Fh-Rpl.DE | compilers for Minix
|
||||
------------------------------------------------------
|
||||
compilerwriters use cat > a.out ...
|
||||
BIN
Minix/pascal/qck.tar.gz
Normal file
BIN
Minix/pascal/qck.tar.gz
Normal file
Binary file not shown.
Reference in New Issue
Block a user