Share to: share facebook share twitter share wa share telegram print page

Macintosh Toolbox

The Macintosh Toolbox implements many of the high-level features of the Classic Mac OS, including a set of application programming interfaces for software development on the platform. The Toolbox consists of a number of "managers," software components such as QuickDraw, responsible for drawing onscreen graphics, and the Menu Manager, which maintain data structures describing the menu bar. As the original Macintosh was designed without virtual memory or memory protection, it was important to classify code according to when it should be loaded into memory or kept on disk, and how it should be accessed. The Toolbox consists of subroutines essential enough to be permanently kept in memory and accessible by a two-byte machine instruction; however it excludes core "kernel" functionality such as memory management and the file system. Note that the Toolbox does not draw the menu onscreen: menus were designed to have a customizable appearance, so the drawing code was stored in a resource, which could be on a disk.

Advent and implementation

On 68k systems

The original Motorola 68000 family implementation of the Macintosh operating system executes system calls using that processor's illegal opcode exception handling mechanism. Motorola specified that instructions beginning with 1111 and 1010 would never be used in future 68000 family processors, thus freeing them for use as such by an operating system. Further, they each had their own dedicated interrupt vector, separate from the generic illegal opcode handler. As 1111 was reserved for use by co-processors such as the 68881 FPU, Apple chose 1010 (A in hexadecimal) as the prefix for operating system calls. Handling illegal instructions is known as trapping, so these special instructions were called A-traps.[1] When the processor encounters such an instruction, it transfers control to the operating system, which looks up the appropriate task and performs it. There were two advantages to this mechanism:

  • It results in compact programs. Only two bytes are taken by every operating system access, in contrast to four or six when using regular jump instructions.
  • The table used to look up the appropriate function is stored in RAM. Then, even if the underlying code was stored in ROM, it could still be overridden (patched) by replacing the ROM memory address with a RAM address.

The system was further optimized by allotting some bits of the A-trap instruction to store parameters to the most common functions. For example, memory allocation is a very common task, so it should be expressed in as few bytes of code as possible. Sometimes the programmer wants to clear the memory block to zeros, so either the allocation function should take a boolean parameter, or there should be two allocation functions. To pass a parameter would require an additional two-byte instruction, which would be inefficient. Having two functions would require at least an extra four bytes of RAM used for the address in the function look-up table. The most efficient solution is to map multiple A-traps to the same subroutine, which then uses the A-trap as a parameter. This is true of the most commonly used subroutines. However, the Toolbox was composed of the less commonly used subroutines. The Toolbox was defined as the set of subroutines which took no parameters within the A-trap, and were indexed from a 1024-entry, 4-kilobyte dispatch table.[2] (Machines shipped with less than one megabyte of RAM use a single table of 512 entries, which corresponds to the 256-entry OS dispatch table of later ROM revisions.[3])

On PowerPC systems

In 1994, Apple released Macintoshes using the PowerPC architecture, which lacked hardware support for the A-trap mechanism available on 68k systems. Because of their use in applying software patches, however, the dispatch tables were retained. The API library code underlying any Toolbox routine then does nothing except reference the dispatch table. The dispatch table linked only to emulated 68000 family code. Toolbox functions implemented in native PowerPC code have to first disable the emulator using the Mixed Mode Manager. For the sake of uniformity and extensibility, new function entries even continued to be added to the Toolbox after the PowerPC transition.

An alternative mechanism did exist, however, in the Code Fragment Manager, which was used to load and dynamically link native PowerPC programs. The PowerPC system call facility, analogous to the A-trap mechanism, was used to interface with the Mac OS nanokernel, which offered few services directly useful to applications.

Functionality

Programming interfaces

The Toolbox is composed of commonly used functions, but not the most commonly used functions. As a result, it grew into a hodgepodge of different API libraries.[3] The Toolbox encompasses most of the basic functionality which distinguished the Classic Mac OS. Apple's references “Inside Macintosh: Macintosh Toolbox Essentials” and “Inside Macintosh: More Macintosh Toolbox”, similarly vague in scope, also document most of the Toolbox.

Use in booting

Because much of the Toolbox is implemented in ROM, alongside the computer's firmware, it was convenient to use as a bootloader environment. In conjunction with resources stored on the ROM chip, the Toolbox can turn the screen gray, show a dialog box with the signature "Welcome to Macintosh" greeting, and display the mouse cursor. By using Toolbox to help boot the machine, a rudimentary Mac-like environment can be initialized before ever loading the System suitcase from disk (in fact before ROMs on NuBus cards were executed), which is when the decision to use 24-bit or 32-bit addressing has to be made. (System 7's support for 32-bit addressing requires 32-bit clean ROMs, as older Mac ROMs do not have support for this). The need for diagnostics as in the BIOS resident for IBM PC compatibles' boards is not necessary since the Macintosh has most of its diagnostics in POST and automatically reports errors via the "Sad Mac" codes.

The similarity between the boot-up environment and the actual operating system should not be confused with being identical, however. Although the "Classic Mac OS" boot process is convoluted and largely undocumented, it is not more limited than an IBM PC compatible BIOS. Like a PC's master boot record, a ROM-based Mac reads and executes code from the first blocks ("boot blocks") of the disk partition selected as the boot device. The boot blocks then verify that a suitable rudimentary environment exists, and use it to load the System suitcase. A different operating system with a different file system can boot by simply using its own code in the boot blocks.[4] This system was not used for PowerPC Linux, however, because Open Firmware in New World ROM machines requires a bootloader within an HFS filesystem—a reason having nothing to do with the Toolbox or "old-fashioned" Macs in general. More narrowly, the Startup Disk control panel in the Classic Mac OS and later macOS only allows the user to select a mounted filesystem with very particular constraints.

Legacy

In Mac OS X, the Toolbox is not used at all, though the Classic Environment loads the Toolbox ROM file into its virtual machine. Much of the Toolbox was restructured and implemented as part of Apple's Carbon programming API, allowing programmers familiar with the Toolbox to port their program code more easily to Mac OS X.

See also

References

  1. ^ Apple Inc. (6 July 1996). "A-Line Instructions". Archived from the original on 2004-07-02. Alt URL
  2. ^ Apple Inc. (6 July 1996). "About the Trap Manager". Archived from the original on 2004-07-02. Alt URL
  3. ^ a b Olson, James H. (4 September 1997). "Mac Alamanac II". Linux/m68k for Macintosh.
  4. ^ Apple Inc. (6 July 1996). "Boot Blocks". Archived from the original on 2004-03-12. Alt URL

Read other articles:

Japanese film director, screenwriter and film producer (1935–2018) Isao Takahata高畑 勲Takahata at the 2014 Annecy International Animated Film FestivalBorn(1935-10-29)October 29, 1935Ise, JapanDiedApril 5, 2018(2018-04-05) (aged 82)Tokyo, JapanOther namesTakemoto Tetsu (武元 哲)EducationUniversity of TokyoOccupation(s)Film director, animation director, producerYears active1961–2018RelativesAsajirō Takahata (father)Shunji Iwai (relative) Part of a series onAnime and mang…

Eden Hazard Hazard bermain untuk Chelsea sebelum final Liga Eropa UEFA 2018–2019Informasi pribadiNama lengkap Eden Michael Hazard[1]Tanggal lahir 7 Januari 1991 (umur 32)[2]Tempat lahir La Louvière, BelgiaTinggi 175 cm (5 ft 9 in)[3]Posisi bermain Sayap, gelandang serangKarier junior1995–2003 Royal Stade Brainois2003–2005 Tubize2005–2007 LilleKarier senior*Tahun Tim Tampil (Gol)2007–2008 Lille B 13 (1)2007–2012 Lille 147 (36)2012–2019 Ch…

فورت سكوت     الإحداثيات 37°50′07″N 94°42′07″W / 37.835277777778°N 94.701944444444°W / 37.835277777778; -94.701944444444  تقسيم إداري  البلد الولايات المتحدة[1][2]  التقسيم الأعلى مقاطعة بوربون، كانزاس  عاصمة لـ مقاطعة بوربون، كانزاس  خصائص جغرافية  المساحة 14.467166 كيلومتر …

Der Titel dieses Artikels ist mehrdeutig. Weitere Bedeutungen sind unter Hotel Sacher (Begriffsklärung) aufgeführt. Sacher Hotels Betriebsgesellschaft mbH Logo Rechtsform GmbH Gründung 1876 Sitz Wien, Osterreich Österreich Leitung Familien Gürtler und Winkler Branche Hotels Website www.sacher.com Das Hotel Sacher vom Albertinaplatz aus gesehen Das Hotel Sacher Wien befindet sich im 1. Wiener Gemeindebezirk Innere Stadt hinter der Wiener Staatsoper. Bekannte Spezialität des Hauses ist …

Pfarrhaus in Ehrenberg Das Pfarrhaus in Ehrenberg, einem Ortsteil der Stadt Pfaffenhofen an der Ilm im oberbayerischen Landkreis Pfaffenhofen an der Ilm, wurde 1857 errichtet. Das Pfarrhaus am Kirchplatz 12, neben der katholischen Pfarrkirche St. Ulrich, gehört zu den geschützten Baudenkmälern in Bayern.[1] Der zweigeschossige, traufseitige Satteldachbau mit Gurtgesims besitzt fünf zu drei Fensterachsen. Das Waschhaus, ein erdgeschossiger Satteldachbau mit Holzlege, wurde im letzten …

Blankes Flat IUCN-Kategorie IV – Habitat/Species Management Area Lage in den Gemarkungen Esperke und Vesbeck Fläche 47,45 ha Kennung NSG HA 003 WDPA-ID 81412 Geographische Lage 52° 37′ N, 9° 37′ O52.61467059.6171998Koordinaten: 52° 36′ 53″ N, 9° 37′ 2″ O Blankes Flat (Niedersachsen) Meereshöhe von 32,8 bis 43,5 Einrichtungsdatum 9. März 1930 Verwaltung Region Hannover f2 Das Blanke Flat ist ein Naturschutzgebiet in den G…

黎明愛你演唱會黎明的香港演唱会场地 英屬香港大專會堂日期1991年6月21日场数2場来宾林珊珊、關淑怡观众約三千多人黎明演唱会年表 黎明愛你演唱會(1991) 黎明·我的感覺演唱會(1991) 黎明愛你演唱會是香港歌手黎明的個人演唱會,由香港商業電台主辦,演唱會於1991年6月21日在大專會堂舉行,設有日場和夜場[1]。 製作概念 大專會堂是1980至1990年代香港主要的藝

Korean history and language scholar (1932–2021) Gari Keith Ledyard (born 1932 in Syracuse, New York; died 29 October 2021[1]) was Sejong Professor of Korean History Emeritus at Columbia University. He is best known for his work on the history of the Hangul alphabet. Biography Ledyard was born while his family happened to be in Syracuse for work during the Depression. He grew up in Detroit and Ann Arbor, Michigan, and moved with his family to San Rafael, California, in 1948. After high …

Railway station in Midlothian, Scotland ShawfairGeneral informationLocationShawfair, MidlothianScotlandCoordinates55°55′04″N 3°05′25″W / 55.9176981°N 3.0902511°W / 55.9176981; -3.0902511Grid referenceNT318699Owned byNetwork RailManaged byScotRailPlatforms2Tracks2Other informationStation codeSFIHistoryOriginal companyNetwork RailKey dates6 September 2015OpenedPassengers2017/18 31,5882018/19 41,1382019/20 46,4882020/21 6,7022021/22 27,616 LocationShawfairLocatio…

تفتقر سيرة هذه الشخصية الحيّة إلى الاستشهاد بمصدر موثوق به يمكن التحقق منه. فضلاً، ساهم في تطويرها من خلال إضافة مصادر موثوقة. في سير الأحياء، يُزال المحتوى فوراً إذا كان من غير مصدر يدعمه أو إذا كان المصدر المُستشهد به مشكوكاً بأمره. (فبراير 2016) براين جرازير معلومات شخصية اس

Para otros usos de este término, véase Cali (desambiguación). CaliSantiago de Cali Distrito de Colombia Desde arriba y de izquierda a derecha: Skyline de Cali, Capilla de San Antonio, Museo La Tertulia, El Gato del Río, Cristo Rey, Iglesia la Ermita y el Bulevar de la Avenida Colombia. BanderaEscudo Otros nombres: La Sucursal del Cielo, La Sultana del Valle, La Capital Mundial de la Salsa, La Ciudad Deportiva de América. Lema: La Muy Noble y Muy Leal Himno: Himno a Santiago de Cali CaliLoca…

2022 Russian film1941. Wings Over BerlinDirected byKonstantin BuslovWritten by Anatoly Usov Aleksey Borodachyov Konstantin Buslov Produced byKonstantin BuslovStarring Maksim Bityukov Sergei Puskepalis Gela Meskhi Andrei Kharenko Sergei Gilev Yevgeny Antropov Vladimir Tyaptushkin Stepan Belozerov CinematographyKirill KlepalovEdited byMargarita SmirnovaMusic bySergei SternProductioncompanies R.B. Productions Planeta Inform Film Distribution Distributed byKaroProkat (English: KaroRental)Release dat…

Reality show Proving GroundTitle cardGenreRealityPresented byRyan DunnJessica ChobotMusic byEric HesterCountry of originUnited StatesOriginal languageEnglishNo. of seasons1No. of episodes9ProductionExecutive producersMichael BloomBruce KlassenProducersJenn van PersaudShayna WeberFarshad TehraniCinematographyJohnny MartinEditorsBuzz ChatmanJesus HuidobroNoah RosensteinCamera setupMulti-cameraRunning time22–24 minutesProduction companyBongo PicturesOriginal releaseNetworkG4ReleaseJune 14…

Class of antibiotics Chloramphenicol Thiamphenicol Amphenicols are a class of antibiotics with a phenylpropanoid structure. They function by blocking the enzyme peptidyl transferase on the 50S ribosome subunit of bacteria.[1] Examples of amphenicols include chloramphenicol, thiamphenicol, azidamfenicol, and florfenicol. The first-in-class compound was chloramphenicol, introduced in 1949. Chloramphenicol was initially discovered as a natural product and isolated from the soil bacteria Ste…

H. Mochtar Hasan, S.H.Lahir(1932-12-22)22 Desember 1932Kampung Rajabasa, Kota Agung, Tanggamus, Lampung, Hindia BelandaMeninggal2 September 2019(2019-09-02) (umur 86)Rumah Sakit Puri Cinere, Jakarta, IndonesiaAlmamaterUniversitas IndonesiaSuami/istriMis Zaurah ​(m. 1957)​AnakBerly HasanalEvi UnsriyaniNurul AdiyatiZuriyat Al AnsyoriSavitri NurnatiasIntan Nuryeni H. Mochtar Hasan, S.H. (22 Desember 1932 – 2 September 2019) adalah birokrat dan polit…

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (April 2020) (Learn how and when to remove this template message) This article relies largely or entirely on a single source. Relevant discussion may be found on t…

Series of German/American action films BourneOfficial franchise logoDirected by Doug Liman (1) Paul Greengrass (2–3, 5) Tony Gilroy (4) Based onThe Bourne Seriesby Robert LudlumMusic by John Powell (1–3, 5) James Newton Howard (4) David Buckley (5) Distributed byUniversal PicturesRelease date2002–presentCountries United States Germany[1] (1–3) Czech Republic (1) LanguageEnglishBudget$490-520 millionBox office$1.637 billion The Bourne franchise consists of action-thriller installm…

Insele CommandoInsele Commando insigniaDisbandedFebruary 14, 2003 (20 years ago) (2003-02-14)Country South AfricaAllegiance  Republic of South Africa  Republic of South Africa Branch  South African Army  South African Army TypeInfantryRoleLight InfantrySizeOne BattalionPart ofSouth African Infantry CorpsArmy Territorial ReserveGarrison/HQEmpangeniMotto(s)Protegimus (Protect)Military unit Insele Commando was a light infantry regiment of the South Africa…

Israeli tennis player Andy RamAndy Ram in 2013.Full nameAndy RamCountry (sports) IsraelResidenceTel Aviv, IsraelBorn (1980-04-10) April 10, 1980 (age 43)Montevideo, UruguayHeight1.80 m (5 ft 11 in)Turned pro1998Retired2014PlaysRight-handed (one-handed backhand)Prize moneyUS$ 2,647,616SinglesCareer record4–13Career titles0 1 Challenger, 3 Futures Highest rankingNo. 187 (14 August 2000)Grand Slam singles resultsAustralian OpenQ3 (2005)F…

RiverGuayape River The Guayape River (Spanish: Río Guayape) is a major river that drains much of the Department of Olancho and central Honduras. The largest tributary to the Guayape is the Río Jalán, which joins it at El Plomo, not far from the town of Juticalpa. From there the river passes many small towns, including El Esquilinchuche. The largest bridge over the Guayape is the Puente del Burro, a modern cement structure that replaced the huge steel suspension bridge that had stood for decad…

Kembali kehalaman sebelumnya

Lokasi Pengunjung: 18.116.62.238