Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site spuxll.UUCP Path: utzoo!watmath!clyde!burl!ulysses!gamma!epsilon!zeta!sabre!bellcore!decvax!harpo!whuxlm!spuxll!ech From: ech@spuxll.UUCP (Ned Horvath) Newsgroups: net.micro Subject: Re: ANOTHER 32-BIT MACHINE??? Message-ID: <655@spuxll.UUCP> Date: Sat, 4-May-85 01:29:02 EDT Article-I.D.: spuxll.655 Posted: Sat May 4 01:29:02 1985 Date-Received: Mon, 6-May-85 11:43:59 EDT References: <9254@brl-tgr.ARPA> <1549@watcgl.UUCP> <5355@utzoo.UUCP> Organization: AT&T Information Systems, South Plainfield NJ Lines: 30 clif@intelca.UUCP (Clif Purkiser) writes: > As a Mac owner, and largely an Apple fan, I found it interesting that > the Mac is really a segmented machine, except that they restrict segments > to 32K!!. So, I really don't think segmentation is bad, just the fact that > aren't as large as you want. Whoops, I can't let that go by: there is nothing in the architecture of the 68k, or its deployment in the Mac, that limits one to 32k text segments. That is strictly a limitation of the Pascal compiler, which prefers to generate only PC-relative text references (which use signed 16-bit offsets). In turn, that allows segments up to 32k to move around in memory without being relocated (as long as you don't try to cache absolute code pointers!). In fact, one does need to exercise some minimal care -- code only floats if you cut it loose. The SUMacC system creates arbitrary-sized segments (although all hell breaks loose if the thing is allowed to move -- the compiler there DOES compile absolute addresses which get relocated at launch time). Indeed, intersegment calls in the Mac, even using Pascal, can be to absolutely anywhere in a 2^24 byte namespace; the particular trick they use is a jump table pointed to by a dedicated address register, thus jsr a5(offset) actually calls the instruction jmp [absolute address of entry] the last being a full 24 bit address. My sole affiliation with Motorola is as a satisfied end-user and programmer of 68k-based products (Mac & CT Miniframe). =Ned=