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/