[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: What exactly WAS Apple Pascal?
- Subject: Re: What exactly WAS Apple Pascal?
- From: "John B. Matthews" <nospam@nospam.com>
- Date: Sat, 17 Jul 2004 13:16:37 GMT
- Newsgroups: comp.sys.apple2
- Organization: Road Runner High Speed Online http://www.rr.com
- References: <cd7lc2$q52$1@ottoman.cs.fiu.edu> <cd8bk7$1sjg$1@merope.saaf.se> <40f7d453$1_5@corp.newsgroups.com> <cd92nt$24o1$1@merope.saaf.se> <40f8a550_5@corp.newsgroups.com>
- User-agent: MT-NewsWatcher/3.3b1 (PPC Mac OS X)
- Xref: g2news1.google.com comp.sys.apple2:2182
In article <40f8a550_5@corp.newsgroups.com>, exegete@nunya.biz
wrote:
> The 64K system allows 32 segments, the 128K system 64 segments (whatever
> that means) In addition, 64K allows one library on line per program,
> 128K allows up to six libraries on line per program.
Executables and libraries consist of code and (optional) data
segments. A code segment can be dynamically swapped into memory
as needed. You can use the program LIBRARY.CODE to create new
libraries by copying segments from other files. You can use the
program LIBMAP.CODE to examine existing executables.
For example, the program FORMATTER.CODE consists of just one
code segment (its data is in a separate file, FORMATTER,DATA):
LIBRARY MAP FOR formatter.code
Segment # 1:
System version = A2/1.3, code type is 6502
FORMATTE completely linked segment
In contrast, the pascal compiler itself is a mix of 6502 and
p-code segments:
LIBRARY MAP FOR system.compiler
COPYRIGHT 1979,1980,1983-1985 APPLE COMPUTER, INC. ALL RIGHTS
RESERVED
Segment # 1:
System version = A2/1.3, code type is 6502
PASCALCO completely linked segment
------------------------------------------------------------
Segment # 7:
System version = A2/1.3, code type is P-Code (least sig. 1st)
COMPINIT completely linked segment
------------------------------------------------------------
Segment # 8:
System version = A2/1.3, code type is P-Code (least sig. 1st)
DECLARAT completely linked segment
etc.
The SYSTEM.LIBRARY is especially revealing:
LIBRARY MAP FOR system.library
COPYRIGHT 1979,1980,1983-1985 APPLE COMPUTER, INC. ALL
RIGHTS RESERVED
Segment #30:
System version = A2/1.3, code type is 6502
LONGINTI library unit (LINKED INTRINSIC)
TYPE DECMAX = INTEGER[36];
STUNT = RECORD CASE INTEGER OF
2:(W2:INTEGER[4]);
3:(W3:INTEGER[8]);
4:(W4:INTEGER[12]);
5:(W5:INTEGER[16]);
6:(W6:INTEGER[20]);
7:(W7:INTEGER[24]);
8:(W8:INTEGER[28]);
9:(W9:INTEGER[32]);
10:(W10:INTEGER[36])
END;
PROCEDURE FREADDEC(VAR F: FIB; VAR D: STUNT; L: INTEGER);
PROCEDURE FWRITEDEC(VAR F: FIB; D: DECMAX; RLENG: INTEGER);
------------------------------------------------------------
Segment #31:
System version = A2/1.3, code type is P-Code (least sig. 1st)
PASCALIO library unit (LINKED INTRINSIC)
TYPE DECMAX = INTEGER[36];
STUNT = RECORD CASE INTEGER OF
2:(W2:INTEGER[4]);
3:(W3:INTEGER[8]);
4:(W4:INTEGER[12]);
5:(W5:INTEGER[16]);
6:(W6:INTEGER[20]);
7:(W7:INTEGER[24]);
8:(W8:INTEGER[28]);
9:(W9:INTEGER[32]);
10:(W10:INTEGER[36])
END;
PROCEDURE FSEEK(VAR F: FIB; RECNUM: INTEGER);
PROCEDURE FREADREAL(VAR F: FIB; VAR X: REAL);
PROCEDURE FWRITEREAL(VAR F: FIB; X: REAL; W, D: INTEGER);
PROCEDURE FREADDEC(VAR F: FIB; VAR D: STUNT; L: INTEGER);
PROCEDURE FWRITEDEC(VAR F: FIB; D: DECMAX; RLENG: INTEGER);
FUNCTION SUPER_MOD(A,B : INTEGER) : INTEGER;
FUNCTION SUPER_DIV(A,B : INTEGER) : INTEGER;
------------------------------------------------------------
Segment #28:
System version = A2/1.3, code type is P-Code (least sig. 1st)
CHAINSTU library unit (LINKED INTRINSIC)
PROCEDURE SETCHAIN(TYTLE:STRING);
PROCEDURE SETCVAL(VAL:STRING);
PROCEDURE GETCVAL(VAR VAL:STRING);
PROCEDURE SWAPON;
PROCEDURE SWAPOFF;
PROCEDURE SWAPGPON;
------------------------------------------------------------
Segment #29:
System version = A2/1.3, code type is P-Code (least sig. 1st)
TRANSCEN library unit (LINKED INTRINSIC)
FUNCTION SIN(X:REAL):REAL;
FUNCTION COS(X:REAL):REAL;
FUNCTION EXP(X:REAL):REAL;
FUNCTION ATAN(X:REAL):REAL;
FUNCTION LN(X:REAL):REAL;
FUNCTION LOG(X:REAL):REAL;
FUNCTION SQRT(X:REAL):REAL;
------------------------------------------------------------
Segment #20:
System version = A2/1.3, code type is 6502
TURTLEGR library unit (LINKED INTRINSIC)
TYPE
SCREENCOLOR=(none,white,black,reverse,radar,
black1,green,violet,white1,black2,orange,blue,white2);
PROCEDURE INITTURTLE;
PROCEDURE TURN(ANGLE: INTEGER);
PROCEDURE TURNTO(ANGLE: INTEGER);
PROCEDURE MOVE(DIST: INTEGER);
PROCEDURE MOVETO(X,Y: INTEGER);
PROCEDURE PENCOLOR(PENMODE: SCREENCOLOR);
PROCEDURE TEXTMODE;
PROCEDURE GRAFMODE;
PROCEDURE FILLSCREEN(FILLCOLOR: SCREENCOLOR);
PROCEDURE VIEWPORT(LEFT,RIGHT,BOTTOM,TOP: INTEGER);
FUNCTION TURTLEX: INTEGER;
FUNCTION TURTLEY: INTEGER;
FUNCTION TURTLEANG: INTEGER;
FUNCTION SCREENBIT(X,Y: INTEGER): BOOLEAN;
PROCEDURE DRAWBLOCK(VAR SOURCE;
ROWSIZE,XSKIP,YSKIP,WIDTH,HEIGHT,
XSCREEN,YSCREEN,MODE: INTEGER);
PROCEDURE WCHAR(CH: CHAR);
PROCEDURE WSTRING(S: STRING);
PROCEDURE CHARTYPE(MODE: INTEGER);
------------------------------------------------------------
Segment #21:
System version = A2/1.3, code type is P-Code (least sig. 1st)
TURTLEGR data segment
------------------------------------------------------------
Segment #22:
System version = A2/1.3, code type is 6502
APPLESTU library unit (LINKED INTRINSIC)
FUNCTION PADDLE(SELECT: INTEGER): INTEGER;
FUNCTION BUTTON(SELECT: INTEGER): BOOLEAN;
PROCEDURE TTLOUT(SELECT: INTEGER; DATA: BOOLEAN);
FUNCTION KEYPRESS: BOOLEAN;
FUNCTION RANDOM: INTEGER;
PROCEDURE RANDOMIZE;
PROCEDURE NOTE(PITCH,DURATION: INTEGER);
John
----
jmatthews at wright dot edu
www dot wright dot edu/~john.matthews/