From 4ce5af75c2cbd4c7a0bc07403a2e2d1bd6607056 Mon Sep 17 00:00:00 2001 From: Andrew Makousky Date: Thu, 6 Aug 2020 18:02:37 -0500 Subject: [PATCH] Initial commit --- LICENSE | 129 + README.md | 64 + RECAPPING.md | 7 + VIDEO.md | 28 + firmware/README.md | 4 + firmware/adb/README.md | 4 + firmware/rom/README.md | 9 + firmware/rtc/MacPlusRTC.cpp | 206 + firmware/rtc/README.md | 11 + hardware/3d_print/README.md | 4 + hardware/README.md | 4 + hardware/fpga/README.md | 6 + hardware/fpga/bbu/README.md | 37 + hardware/fpga/bbu/bbu_pinout.csv | 85 + hardware/fpga/glu/README.md | 6 + hardware/fpga/rtc/README.md | 14 + hardware/pcb/README.md | 3 + hardware/pcb/mlb/README.md | 13 + hardware/pcb/mlb/output/README.md | 4 + old_artifacts/README.md | 12 + old_artifacts/mlb_stock_photos/.gitignore | 2 + old_artifacts/mlb_stock_photos/README.md | 11 + old_artifacts/mlb_stock_photos/get_photos.sh | 8 + old_artifacts/schems/.gitignore | 3 + old_artifacts/schems/Makefile | 17 + old_artifacts/schems/README.md | 51 + old_artifacts/schems/get_scans.sh | 7 + old_artifacts/schems/resize-mlb-scan.sh | 43 + old_artifacts/schems/retrace_se_mlb_p1.pdf | Bin 0 -> 65806 bytes old_artifacts/schems/retrace_se_mlb_p1.svg | 25132 +++++++++++++++++ 30 files changed, 25924 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 RECAPPING.md create mode 100644 VIDEO.md create mode 100644 firmware/README.md create mode 100644 firmware/adb/README.md create mode 100644 firmware/rom/README.md create mode 100644 firmware/rtc/MacPlusRTC.cpp create mode 100644 firmware/rtc/README.md create mode 100644 hardware/3d_print/README.md create mode 100644 hardware/README.md create mode 100644 hardware/fpga/README.md create mode 100644 hardware/fpga/bbu/README.md create mode 100644 hardware/fpga/bbu/bbu_pinout.csv create mode 100644 hardware/fpga/glu/README.md create mode 100644 hardware/fpga/rtc/README.md create mode 100644 hardware/pcb/README.md create mode 100644 hardware/pcb/mlb/README.md create mode 100644 hardware/pcb/mlb/output/README.md create mode 100644 old_artifacts/README.md create mode 100644 old_artifacts/mlb_stock_photos/.gitignore create mode 100644 old_artifacts/mlb_stock_photos/README.md create mode 100755 old_artifacts/mlb_stock_photos/get_photos.sh create mode 100644 old_artifacts/schems/.gitignore create mode 100644 old_artifacts/schems/Makefile create mode 100644 old_artifacts/schems/README.md create mode 100755 old_artifacts/schems/get_scans.sh create mode 100755 old_artifacts/schems/resize-mlb-scan.sh create mode 100644 old_artifacts/schems/retrace_se_mlb_p1.pdf create mode 100644 old_artifacts/schems/retrace_se_mlb_p1.svg diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c8c5711 --- /dev/null +++ b/LICENSE @@ -0,0 +1,129 @@ +CC0 1.0 Universal + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically +confer exclusive Copyright and Related Rights (defined below) upon the +creator and subsequent owner(s) (each and all, an "owner") of an +original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work +for the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without +fear of later claims of infringement build upon, modify, incorporate +in other works, reuse and redistribute as freely as possible in any +form whatsoever and for any purposes, including without limitation +commercial purposes. These owners may contribute to the Commons to +promote the ideal of a free culture and the further production of +creative, cultural and scientific works, or to gain reputation or +greater distribution for their Work in part through the use and +efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or +she is an owner of Copyright and Related Rights in the Work, +voluntarily elects to apply CC0 to the Work and publicly distribute +the Work under its terms, with knowledge of his or her Copyright and +Related Rights in the Work and the meaning and intended legal effect +of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may +be protected by copyright and related or neighboring rights +("Copyright and Related Rights"). Copyright and Related Rights +include, but are not limited to, the following: + +i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + +ii. moral rights retained by the original author(s) and/or + performer(s); + +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + +iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + +v. rights protecting the extraction, dissemination, use and reuse of + data in a Work; + +vi. database rights (such as those arising under Directive 96/9/EC of + the European Parliament and of the Council of 11 March 1996 on the + legal protection of databases, and under any national + implementation thereof, including any amended or successor version + of such directive); and + +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in +contravention of, applicable law, Affirmer hereby overtly, fully, +permanently, irrevocably and unconditionally waives, abandons, and +surrenders all of Affirmer's Copyright and Related Rights and +associated claims and causes of action, whether now known or unknown +(including existing as well as future claims and causes of action), in +the Work (i) in all territories worldwide, (ii) for the maximum +duration provided by applicable law or treaty (including future time +extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"Waiver"). Affirmer makes the Waiver for the benefit of each member of +the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal +or equitable action to disrupt the quiet enjoyment of the Work by the +public as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any +reason be judged legally invalid or ineffective under applicable law, +then the Waiver shall be preserved to the maximum extent permitted +taking into account Affirmer's express Statement of Purpose. In +addition, to the extent the Waiver is so judged Affirmer hereby grants +to each affected person a royalty-free, non transferable, non +sublicensable, non exclusive, irrevocable and unconditional license to +exercise Affirmer's Copyright and Related Rights in the Work (i) in +all territories worldwide, (ii) for the maximum duration provided by +applicable law or treaty (including future time extensions), (iii) in +any current or future medium and for any number of copies, and (iv) +for any purpose whatsoever, including without limitation commercial, +advertising or promotional purposes (the "License"). The License shall +be deemed effective as of the date CC0 was applied by Affirmer to the +Work. Should any part of the License for any reason be judged legally +invalid or ineffective under applicable law, such partial invalidity +or ineffectiveness shall not invalidate the remainder of the License, +and in such case Affirmer hereby affirms that he or she will not (i) +exercise any of his or her remaining Copyright and Related Rights in +the Work or (ii) assert any associated claims and causes of action +with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, + abandoned, surrendered, licensed or otherwise affected by this + document. + + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties + of title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, + accuracy, or the present or absence of errors, whether or not + discoverable, all to the greatest extent permissible under + applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other + persons that may apply to the Work or any use thereof, including + without limitation any person's Copyright and Related Rights in + the Work. Further, Affirmer disclaims responsibility for + obtaining any necessary consents, permissions or other rights + required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is + not a party to this document and has no duty or obligation with + respect to this CC0 or use of the Work. + +For more information, please see + diff --git a/README.md b/README.md new file mode 100644 index 0000000..92437a2 --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +# Macintosh SE Hardware + +This is my effort to assemble all the pertinent hardware design +information on the Macintosh SE into a single coherent information +repository. The goal is to be able to have sufficiently detailed +information to, in theory, reproduce an identical (or nearly so) +physical, functional copy of the Macintosh SE. + +However, my primary interest in having this information available is +to have detailed information for studying the Macintosh SE hardware, +and for maintaining existing Macintosh SE computers. + +Conventional Macintosh emulator software prioritizes access to +application software without regard to the mechanical and electrical +design of the actual machine itself. My hope is that this repository +of information will enable the same kind of virtual access to the +hardware as we have to the vintage Macintosh software through the use +of conventional Macintosh emulators. + +## What is currently available? + +Currently, this repository only contains a vector graphics hand +trace-over of page 1 of the Macintosh SE Main Logic Board (MLB) +schematics. Typed text is used for all legible text. Since pages 2 +and 3 of the MLB schematics are missing and nowhere to be found on the +Internet, they will have to be redrawn from the reverse engineered +printed circuit board layout. + +Follow this link to [jump to the redrawn +schematic](old_artifacts/schems/retrace_se_mlb_p1.pdf). + +There are lots of other independent projects with good pieces of +information out and about on the Macintosh SE. For the time being, +these are linked from documentation in the repository. In the event +the project has a potentially insecure future or lacks a durable +storage location, the pertinent information is copied into this +repository. + +## See also + +Check out the GitHub repository repository with redrawn schematics for +the Macintosh SE/30: + +https://github.com/mishimasensei/macse30mlb + +## License + +Since a primary goal of this project is to assemble historic +information into a coherent repository, as much as possible, new +developments are released into the public domain. After all, as is +well understood in the vintage computing community, all patents and +copyrights are destined to eventually expire with the passing of +enough time, at which point the covered works cede into the public +domain. + +Therefore, if you don't have an interest in exercising any exclusive +rights covered under copyright, you might as well simply declare your +works to enter the public domain early, rather than using a permissive +license or a copyleft license. For example, the CERN Open Hardware +Licence. + +In the event that your jurisdiction does not have the concept of the +public domain, the Creative Commons Public Domain Dedication License +(CC0) is used as a fallback permissive license. diff --git a/RECAPPING.md b/RECAPPING.md new file mode 100644 index 0000000..5699e5e --- /dev/null +++ b/RECAPPING.md @@ -0,0 +1,7 @@ +# Recap project links and info + +Here is a list of links to various Macintosh SE recapping projects. + +---------- + +https://recapamac.com.au/macintosh-se/ diff --git a/VIDEO.md b/VIDEO.md new file mode 100644 index 0000000..400116f --- /dev/null +++ b/VIDEO.md @@ -0,0 +1,28 @@ +# Macintosh SE Internal CRT Replacement + +Got a Macintosh SE with a non-functional CRT? No worries, there is +actually an easy workaround to get video on your Macintosh SE! + +The CRT is controlled by 3 digital output signals: + +* `VIDOUT` +* `*HSYNC` +* `*VSYNC` + +These are all 5 V logic signals. Therefore, they can be packed up +into a DB-9 connector for TTL or ECL video. Commercially available +flat panel displays are avaiable with adapter electronics that can +accept TTL or ECL video, since it apparently became very popular in +specialized industrial equipment. Once you've got your monitor and +connectors all set up, you should be good to go. + +* Visited 2020-08-06: + https://allpinouts.org/pinouts/connectors/computer_video/ecl-video/ +* Visited 2020-08-06: + https://allpinouts.org/pinouts/connectors/computer_video/monochrome-ttl/ + +It might be relevant that ECL stands for "Emitter Coupled Logic" in +other contexts, here is a source for reference. + +* Visited 2020-08-06: + https://technobyte.org/logic-families-ttl-cmos-ecl-bicmos-difference/ diff --git a/firmware/README.md b/firmware/README.md new file mode 100644 index 0000000..3ce8861 --- /dev/null +++ b/firmware/README.md @@ -0,0 +1,4 @@ +# firmware + +This directory contains firmware images required for the various ROM +chips in the hardware design. diff --git a/firmware/adb/README.md b/firmware/adb/README.md new file mode 100644 index 0000000..8134067 --- /dev/null +++ b/firmware/adb/README.md @@ -0,0 +1,4 @@ +# adb + +This directory contains the firmware for the ADB (Apple Desktop Bus) +chip, which is actually an Apple-branded PIC16CR54 microcontroller. diff --git a/firmware/rom/README.md b/firmware/rom/README.md new file mode 100644 index 0000000..be0537b --- /dev/null +++ b/firmware/rom/README.md @@ -0,0 +1,9 @@ +# rom + +This directory can contain ROM dumps of the Macintosh SE's main system +firmware boot ROM that is directly accessible to the CPU. However, +due to their uncertain copyright status, they are currently not +included in the repository. + +Additionally, links to other projects to provide a modern replacement +ROM for the Macintosh SE are also provided here. diff --git a/firmware/rtc/MacPlusRTC.cpp b/firmware/rtc/MacPlusRTC.cpp new file mode 100644 index 0000000..796c708 --- /dev/null +++ b/firmware/rtc/MacPlusRTC.cpp @@ -0,0 +1,206 @@ +#include +#include +#include + +/**************************************** + * * + * A drop-in replacement for the custom * + * RTC chip in early Apple Macintosh * + * computers, using an ATtiny85. * + * Uses an external 32.768kHz crystal * + * on pins 2 and 3 as a clock source. * + * __ __ * + * 1SEC -|1 \/ 8|- VCC * + * XTAL2 -|2 7|- RTC.CLK * + * XTAL1 -|3 6|- RTC.DATA * + * GND -|4____5|- !RTC * + * * + ****************************************/ + +const int ONE_SEC_PIN = 1; // A 1Hz square wave on PB5 +const int RTC_ENABLE_PIN = 5; // Active low chip enable on PB0 +const int SERIAL_DATA_PIN = 6; // Bi-directional serial data line on PB1 +const int SERIAL_CLOCK_PIN = 7; // Serial clock input on PB2 + +const int PRAM_SIZE = 256; // Mac Plus used the xPRAM chip with 256 bytes, time is a separate 4 additional bytes +//const int PRAM_SIZE = 20; // Models earlier than the Plus had 20 bytes of PRAM + +volatile byte serialBitNum = 0; +volatile byte address = 0; +volatile byte serialData = 0; + + +enum SerialStateType { SERIAL_DISABLED, RECEIVING_COMMAND, SENDING_DATA, RECEIVING_DATA }; +volatile SerialStateType serialState = SERIAL_DISABLED; + +volatile unsigned long seconds = 0; +volatile byte pram[PRAM_SIZE] = {}; // 256 Bytes of PRAM, the first four of which count the number of seconds since 1/1/1904 + +/* + * The following is potential locations of various bits of PRAM data, none of this is in any way certain: + * Sound volume is in pram[0x08] + * Alert sound is in param[0x7c - 0x7d] + * Machine location and timezone is in pram[0xE4 - 0xEF] + */ + + +/* + * An interrupt to both increment the seconds counter and generate the square wave + */ +void halfSecondInterrupt() { + PINB = 1<>(8*i))&0xff); + } + interrupts(); // Go ahead and interrupt us while we save the rest + for(int i = 0; i < PRAM_SIZE; i++) { + EEPROM.update(i+4,pram[i]); + } +} + + +void goToSleep() { + bitClear(MCUCR,SM0); // The two SM bits must be set to 00 to enter idle mode + bitClear(MCUCR,SM1); // Sleeping in other modes will disable the timer + bitSet(MCUCR,SE); + __asm__("sleep" "\n\t"); + bitClear(MCUCR,SE); +} + +void setup() { + noInterrupts(); // Disable interrupts while we set things up + + pinMode(ONE_SEC_PIN, OUTPUT); // The 1Hz square wave (used, I think, for interrupts elsewhere in the system) + pinMode(RTC_ENABLE_PIN, INPUT_PULLUP); // The processor pulls this pin low when it wants access + pinMode(SERIAL_CLOCK_PIN, INPUT_PULLUP); // The serial clock is driven by the processor + pinMode(SERIAL_DATA_PIN, INPUT_PULLUP); // We'll need to switch this to output when sending data + + wdt_disable(); // Disable watchdog + bitSet(ACSR,ACD); // Disable Analog Comparator, don't need it, saves power + bitSet(PRR,PRTIM1); // Disable Timer 1, only using Timer 0, Timer 1 uses around ten times as much current + bitSet(PRR,PRUSI); // Disable Universal Serial Interface, using Apple's RTC serial interface on pins 6 and 7 + bitSet(PRR,PRADC); // Disable Analog/Digital Converter + + bitSet(GIMSK,PCIE); // Pin Change Interrupt Enable + bitSet(PCMSK,PCINT0); // turn on RTC enable interrupt + +// for(int i = 0; i < 4; i++) { +// seconds += ((unsigned long)EEPROM.read(i))<<(8*i); +// } +// for(int i = 0; i < PRAM_SIZE; i--) { // Preload PRAM with saved values +// pram[i] = EEPROM.read(i+4); +// } + + //set up timer + bitSet(GTCCR,TSM); // Turns off timers while we set it up + bitSet(TIMSK,TOIE0); // Set Timer/Counter0 Overflow Interrupt Enable + TCCR0B = 0b111; // Set prescaler, 32,768Hz/64 = 512Hz, fills up the 8-bit counter (256) once every half second + TCNT0 = 0; // Clear the counter + bitClear(GTCCR,TSM); // Turns timers back on + + interrupts(); //We're done setting up, enable those interrupts again +} + +void loop() { + if(digitalRead(RTC_ENABLE_PIN)) { + clearState(); + goToSleep(); + } else if(digitalRead(SERIAL_CLOCK_PIN)) { + switch(serialState) { + + case RECEIVING_COMMAND: + bitWrite(address,7-serialBitNum,digitalRead(SERIAL_DATA_PIN)); + serialBitNum++; + if(serialBitNum > 7) { + boolean writeRequest = address&(1<<7); // the MSB determines if it's a write request or not + address &= ~(1<<7); // Discard the first bit, it's not part of the address + serialBitNum = 0; + if(writeRequest) { + serialState = RECEIVING_DATA; + serialBitNum = 0; + } else { + if (address < 4) { + serialData = (seconds>>(8*address))&0xff; + } if(!(address&0b0110000)) { // Apparently this address range is off-limits for reading + serialData = pram[address]; + } + serialState = SENDING_DATA; + serialBitNum = 0; + pinMode(SERIAL_DATA_PIN, OUTPUT); // Set the pin to output mode + } + } + break; + + case RECEIVING_DATA: + bitWrite(serialData,7-serialBitNum,digitalRead(SERIAL_DATA_PIN)); + serialBitNum++; + if(serialBitNum > 7) { + if(address < 4) { + noInterrupts(); // Don't update the seconds counter while we're updating it, bad stuff could happen + seconds = (seconds & ~(((long)0xff)< 7) { + clearState(); + } + } + } +} + +/* + * Actually attach the interrupt functions + */ +ISR(PCINT0_vect) { + handleRTCEnableInterrupt(); +} + +ISR(TIMER0_OVF) { + halfSecondInterrupt(); +} diff --git a/firmware/rtc/README.md b/firmware/rtc/README.md new file mode 100644 index 0000000..c3843be --- /dev/null +++ b/firmware/rtc/README.md @@ -0,0 +1,11 @@ +# RTC + +This directory contains a work-in-progress firmware for implementing a +drop-in replacement for the RTC on ATTiny85 microcontroller. I've +made a few modification to this particular copy, but it still needs +more work to be fully functional. + +Source, Visited 2020-08-05: + +* https://www.reddit.com/r/VintageApple/comments/91e5cf/couldnt_find_a_replacement_for_the_rtcpram_chip/e2xqq60/ +* https://pastebin.com/baPZ4nN4 diff --git a/hardware/3d_print/README.md b/hardware/3d_print/README.md new file mode 100644 index 0000000..b132d87 --- /dev/null +++ b/hardware/3d_print/README.md @@ -0,0 +1,4 @@ +# 3d_prints + +This directory contains 3D printable parts like the external enclosure +case, etc. diff --git a/hardware/README.md b/hardware/README.md new file mode 100644 index 0000000..fb03cf2 --- /dev/null +++ b/hardware/README.md @@ -0,0 +1,4 @@ +# hardware + +This directory contains design files, schematics, and related +documentation for hardware components. diff --git a/hardware/fpga/README.md b/hardware/fpga/README.md new file mode 100644 index 0000000..d607c7c --- /dev/null +++ b/hardware/fpga/README.md @@ -0,0 +1,6 @@ +# fpga + +This directory contains hardware description language (Verilog/VHDL) +source files for the Field Programmable Gate Arrays (FPGAs) that +implement the functions of the custom Application Specific Integrated +Circuits (ASICs) found in the original hardware. diff --git a/hardware/fpga/bbu/README.md b/hardware/fpga/bbu/README.md new file mode 100644 index 0000000..ac24664 --- /dev/null +++ b/hardware/fpga/bbu/README.md @@ -0,0 +1,37 @@ +# "BBU" Apple Custom Silicon + +The "BBU", as it is called on the Macintosh SE's printed circuit board +silkscreen, is a relatively complex Apple custom silicon chip, +compared to the other custom chips on the Macintosh SE's Main Logic +Board (MLB). Despite its intimidating look as a chip with a huge +number of pins, its purpose can be summarized as follows. + +* Provide a single address bus interface to ROM, RAM, and I/O devices, + including simple digital I/O pins. + +* Scan the CRT by driving the primary digital control signals + (`*VSYNC`, `*HSYNC`, `VIDOUT`). + +There might be additional processing functions it may provide as a +convenience between the CPU and the various other hardware chips, but +chances are these processing functions are relatively simple. + +Most of the I/O pins that are connected to the BBU are single-bit +digital I/O signals that are relatively easy to understand. Reverse +engineering the Macintosh SE's firmware may be required to determine +how these pins are mapped into the CPU's address space, but once that +determination is made, providing a replica interface to most of the +connected hardware should be super-easy. + +The following I/O chips are connected to the BBU: + +* VIA interrupt controller + +* IWM/SWIM floppy disk controller + +* SCSI Controller + +* Serial Communications Controller (SCC) + +Other chips that are connected to the BBU are mainly interfaced via +only simple, single-pin interfaces. diff --git a/hardware/fpga/bbu/bbu_pinout.csv b/hardware/fpga/bbu/bbu_pinout.csv new file mode 100644 index 0000000..a033ba0 --- /dev/null +++ b/hardware/fpga/bbu/bbu_pinout.csv @@ -0,0 +1,85 @@ +BBU Pin,Signal Name,Description,Device Connection,Device Pin +1,GND,,, +2,RD7,,, +3,RD8,,, +4,RD9,,, +5,RD10,,, +6,RD11,,, +7,RD12,,, +8,RD13,,, +9,RD14,,, +10,RD15,,, +11,EXTPDS,,, +12,EN245,Select Data Buffer,74LS245, +13,VCC,,, +14,/WR,,, +15,/CAS-SIMM3,,SIMM3,2 +16,/CAS-SIMM1,,SIMM1,2 +17,/EOP,,53C80, +18,/CAS-SIMM4,,SIMM4,2 +19,/CAS-SIMM2,,SIMM2,2 +20,/RAS,,, +21,GND,,, +22,VCC,,, +23,A23,,, +24,A22,,, +25,A21,,, +26,A20,,, +27,A19,,, +28,A17,,, +29,A9,,, +30,/IPL1,,68000, +31,/IPL0,,68000, +32,IRQ,,65C22/6523, +33,/LDS,,68000, +34,/BERR,,68000, +35,/UDS,,, +36,/VPA,,68000, +37,CK,,68000, +38,/DTACK,,68000, +39,SELROM,Select ROM,ROM,"20 on ROM HI, LO" +40,"RTxCB, PCLK, ADB CLK",All the things,"85C30, ADB, GLU","20 & 28 on 85C30, 16 on ADB, 9 on GLU" +41,/AS,,, +42,VCC,,, +43,GND,,, +44,FCLK,,"SWIM, GLU","24 on SWIM, 19 on GLU" +45,SELSCC,Select SCC,85C30,32 on /CE +46,/RD,,85C30, +47,R/W,,, +48,SELSWIM,Select SWIM,SWIM,7 on /DEV +49,EXTFLP,PWM,External Floppy,10 on PWM +50,PB7,,65C22/6523, +51,SELSND,Select Sound,SND, +52,EXTPDS,,, +53,PA6,,65C22/6523, +54,/LDS,,, +55,DRQ,,53C80,22 on DRQ +56,/DACK,,53C80,26 on /DACK +57,SELSCSI,Select SCSI,53C80,21 on /CS +58,SELVIA,Select VIA,65C22/6523,24 on RS0 +59,/RST,,, +60,HSYNC,Horizontal Sync,J12,Pin 10 on J12 +61,VSYNC,Veritcal Sync,"J12, 65C22/6523","Pin 11 on J12, 40 on DB7" +62,VIDOUT,Composite Video Out,"J12, 65C22/6523","Pin 9 on J12, 28 on PC3" +63,GND,,, +64,VCC,,, +65,RA9,,, +66,RA7,,, +67,RA8,,, +68,RA6,,, +69,RD0,,, +70,RA5,,, +71,RA4,,, +72,RD1,,, +73,RA3,,, +74,RD2,,, +75,RD3,,, +76,RA2,,, +77,RD4,,, +78,RA1,,, +79,RA0,,, +80,RD5,,, +81,/PMCYC,,74F257,/OE +82,EN257,Select Address Buffer,74F257, +83,RD6,,, +84,VCC,,, \ No newline at end of file diff --git a/hardware/fpga/glu/README.md b/hardware/fpga/glu/README.md new file mode 100644 index 0000000..fdbd74a --- /dev/null +++ b/hardware/fpga/glu/README.md @@ -0,0 +1,6 @@ +# GLU + +The GLU chip is a Programmable Array Logic (PAL) chip used to +facilitate I/O logic and the like. In particular, it is a PAL16L8. +The equation list and fusemap that can be used to program a modern +ATF16V8 chip is contained here. diff --git a/hardware/fpga/rtc/README.md b/hardware/fpga/rtc/README.md new file mode 100644 index 0000000..ac6bb0a --- /dev/null +++ b/hardware/fpga/rtc/README.md @@ -0,0 +1,14 @@ +# RTC Apple Custom Silicon + +The RTC (Real-Time Clock) chip within the Macintosh SE is an Apple +custom silicon chip that implements the real-time clock and +battery-backed PRAM (Parameter RAM). Fortunately, its simplicity has +yielded a fairly complete replacement chip design that is based around +the pin-compatible ATTiny85 chip running appropriate firmware. See +the `firmware` directory for details. + +Nevertheless, if we do get a microscopic chip scan of the original +silicon, this directory would contain corresponding design files to +replicate the original design as-is. Since the chip design is so +simple, this might be easily doable with conventional DSLR macro +photography after the packaging is opened up. diff --git a/hardware/pcb/README.md b/hardware/pcb/README.md new file mode 100644 index 0000000..60788db --- /dev/null +++ b/hardware/pcb/README.md @@ -0,0 +1,3 @@ +# pcb + +This directory contains Printed Circuit Board (PCB) designs. diff --git a/hardware/pcb/mlb/README.md b/hardware/pcb/mlb/README.md new file mode 100644 index 0000000..25cd428 --- /dev/null +++ b/hardware/pcb/mlb/README.md @@ -0,0 +1,13 @@ +# mlb + +This directory contains the schematics and circuit board design for +the Macintosh SE Main Logic Board (MLB). + +PDF schematics, Gerber files, and other generated files are found in +the [output](output) directory. + +Check out this forum thread on the 68kMLA where development on reverse +engineering and replicating the Macintosh SE's MLB is happening. + +https://68kmla.org/forums/index.php?app=forums&module=forums&controller=topic&id=60059 + diff --git a/hardware/pcb/mlb/output/README.md b/hardware/pcb/mlb/output/README.md new file mode 100644 index 0000000..a9789fe --- /dev/null +++ b/hardware/pcb/mlb/output/README.md @@ -0,0 +1,4 @@ +# Generated Artifacts + +This directory contains files/data that have been generated from +source files within. diff --git a/old_artifacts/README.md b/old_artifacts/README.md new file mode 100644 index 0000000..a8be47f --- /dev/null +++ b/old_artifacts/README.md @@ -0,0 +1,12 @@ +# old_artifacts + +This directory contains pertinent information that came from the +original manufactured and distributed artifacts. + +* [schems](schems): Scans and vector retraces of photocopied + schematics distributed to anyone who requested them. + +* [mlb_stock_photos](mlb_stock_photos): Photographs of the + mass-production manufactured Macintosh SE main logic board, as is + typically photographed for the sake of Internet forum communications + and sales, as opposed to reproduction-oriented photos. diff --git a/old_artifacts/mlb_stock_photos/.gitignore b/old_artifacts/mlb_stock_photos/.gitignore new file mode 100644 index 0000000..8f87457 --- /dev/null +++ b/old_artifacts/mlb_stock_photos/.gitignore @@ -0,0 +1,2 @@ +recapamac_se_mlb.jpg +wikipedia_se_mlb.jpg diff --git a/old_artifacts/mlb_stock_photos/README.md b/old_artifacts/mlb_stock_photos/README.md new file mode 100644 index 0000000..1118f14 --- /dev/null +++ b/old_artifacts/mlb_stock_photos/README.md @@ -0,0 +1,11 @@ +These are links to helpful photos of the of the Macintosh SE Main +Logic Board (MLB). + +PLEASE NOTE: The MLB in the photo from `recapamac.com` is hacked. + +Source URLs of accompanying web pages and photos: + +* Visited 2020-08-05: https://en.wikipedia.org/wiki/Macintosh_SE +* Visited 2020-08-05: https://upload.wikimedia.org/wikipedia/commons/6/65/Apple_Macintosh_SE_Main_PCB.jpg +* Visited 2020-08-05: https://recapamac.com.au/macintosh-se/ +* Visited 2020-08-05: https://recapamac.com.au/wp-content/uploads/2019/08/mac_se_logic.jpg diff --git a/old_artifacts/mlb_stock_photos/get_photos.sh b/old_artifacts/mlb_stock_photos/get_photos.sh new file mode 100755 index 0000000..d335b45 --- /dev/null +++ b/old_artifacts/mlb_stock_photos/get_photos.sh @@ -0,0 +1,8 @@ +#! /bin/sh +# Use a shell script to download the photos so that we do not add +# bloat to the repository size that we don't strictly need. GitHub +# has bandwidth limits, so let's try to keep away from those as much +# as possible. + +curl -L https://upload.wikimedia.org/wikipedia/commons/6/65/Apple_Macintosh_SE_Main_PCB.jpg -o wikipedia_se_mlb.jpg +curl -L https://recapamac.com.au/wp-content/uploads/2019/08/mac_se_logic.jpg -o recapamac_se_mlb.jpg diff --git a/old_artifacts/schems/.gitignore b/old_artifacts/schems/.gitignore new file mode 100644 index 0000000..b0772e0 --- /dev/null +++ b/old_artifacts/schems/.gitignore @@ -0,0 +1,3 @@ +se_mlb_p1.gif +se_mlb_p1_tmp.png +se_mlb_p1_proc.png diff --git a/old_artifacts/schems/Makefile b/old_artifacts/schems/Makefile new file mode 100644 index 0000000..0d9035b --- /dev/null +++ b/old_artifacts/schems/Makefile @@ -0,0 +1,17 @@ +all: retrace_se_mlb_p1.pdf + +se_mlb_p1.gif: + ./get_scans.sh + +se_mlb_p1_proc.png: se_mlb_p1.gif + ./resize-mlb-scan.sh + +retrace_se_mlb_p1.pdf: retrace_se_mlb_p1.svg se_mlb_p1_proc.png + inkscape --export-pdf=$@ $< + +mostlyclean: + rm -f se_mlb_p1_tmp.png + rm -f se_mlb_p1_proc.png + +clean: mostlyclean + rm -f se_mlb_p1.gif diff --git a/old_artifacts/schems/README.md b/old_artifacts/schems/README.md new file mode 100644 index 0000000..f5ea65d --- /dev/null +++ b/old_artifacts/schems/README.md @@ -0,0 +1,51 @@ +These are links to the official Apple Macintosh SE schematics. + +Source website: https://museo.freaknet.org/gallery/apple/stuff/mac/andreas.kann/schemat.html + +Unfortunately, there are no BOMARC schematics available for the +Macintosh SE. + +The Internet Archive also has a copy of purportedly the same Macintosh +SE schematics scan. + +https://archive.org/details/Macintosh68kSchematics + +---------- + +Due to the illegiblity of the original Main Logic Board (MLB) page 1 +scan, this repository also contains a retrace of the schematic, +striving to be as faithful as possible to the original. The retrace +was done by hand and careful eyeing in Inkscape, after doing some +simple image processing on the input scan. A script that uses the +ImageMagick `convert` command is included to reproduce the processing +steps. + +Notes related to the accuracy of the retrace. + +* The pinouts of all integrated circuit components have been verified + with second sources. + +* The pinouts of the PDS slot and RAM SIMMs have **not** yet been + verified with second sources. + +* The resistor values have been checked to be consistent with the + reference designators, but **not all reference designators** have + been verified to be consistent with the placement on the printed + circuit board. + +* The schematic info blocks in the upper and lower left corners have + been cross-checked with scans of other official Apple schematics to + attempt to make them as faithful as possible to the original + contents. + +Notes on the source SVG file: + +* The processed scan is linked as a hidden and locked image object. + To view both the retrace and the original scan together, find the + image object (possibly in the XML hierarchy) and make it visible. + The image object is locked to make it easier to draw on top of. + +* The specific `sans-serif` font I used on my system is DejaVu Sans. + So long as your system `sans-serif` font has similar metrics, + everything should work just fine, otherwise you can replace the font + family name with DejaVu Sans. diff --git a/old_artifacts/schems/get_scans.sh b/old_artifacts/schems/get_scans.sh new file mode 100755 index 0000000..33afa87 --- /dev/null +++ b/old_artifacts/schems/get_scans.sh @@ -0,0 +1,7 @@ +#! /bin/sh +# Use a shell script to download the scans so that we do not add bloat +# to the repository size that we don't strictly need. GitHub has +# bandwidth limits, so let's try to keep away from those as much as +# possible. + +curl -L -o 'se_mlb_p1.gif' https://museo.freaknet.org/gallery/apple/stuff/mac/andreas.kann/SE_P1.GIF diff --git a/old_artifacts/schems/resize-mlb-scan.sh b/old_artifacts/schems/resize-mlb-scan.sh new file mode 100755 index 0000000..ba881e7 --- /dev/null +++ b/old_artifacts/schems/resize-mlb-scan.sh @@ -0,0 +1,43 @@ +#! /bin/sh +# Given the input illegible scan of the Macintosh SE Main Logic Board +# Page 1 schematic, apply some image processing magic on it to make it +# somewhat more legible. + +# Here's how our image processing operations work. +# +# 1. The original scanned image is monochrome. Gradation is expressed +# linearly through the means of error-diffusion half-toning. +# +# 2. To convert to grayscale, we simply convert to 8-bit grayscale and +# then resize to 80%, using a cubic resize image filtering +# algorithm. The resulting 8-bit intensity values will be +# expressed in a linear sample space. We then resize by 250% to +# get a grayscale image, linear intensity samples, that is twice +# the spatial resolution of the original. +# +# The second resizing step is mainly to ease looking at zoomed in +# copies of the image, which you must do almost all the time due to +# the illegibility of the original. +# +# 3. If the image is displayed directly on sRGB displays, it will +# appear artificially dark because it is currently using linear +# intensity samples, but an sRGB display uses a curve +# (approximately gamma = 2.2) to map the image samples to linear +# light intensities. Just leave it this way because the source +# image is already pretty light to begin with. The artificial +# darkening makes the image easier to read. +# +# To get a gamma-correct image, we would need to apply a `gamma = +# 0.45` curve to the image. Or, in other words, "gamma-correct" by +# a factor of `1/0.45 = 2.2`. Alternatively, we could use the more +# precise sRGB colorspace conversion function. + +set -e # Exit on errors. + +# N.B. We use two conversion command lines because I think otherwise +# ImageMagick just replaces the previous resize command with the new +# resize command and would only end up resizing the image once. + +convert -depth 8 -resize 80% -filter cubic se_mlb_p1.gif se_mlb_p1_tmp.png +convert -resize 250% -filter cubic se_mlb_p1_tmp.png se_mlb_p1_proc.png +rm se_mlb_p1_tmp.png diff --git a/old_artifacts/schems/retrace_se_mlb_p1.pdf b/old_artifacts/schems/retrace_se_mlb_p1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9bd6917e58f1ba35e004a94d650fc949f1adb6f4 GIT binary patch literal 65806 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

(bs_#kM>kjaX*=beS3}C&G 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 + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + 7 + 6 + 5 + 4 + 3 + 2 + A2 + A1 + A0 + A1 + 2A + B0 + B1 + 2B + VCC + U2F + F257 + 2D + D1 + D0 + 9 + 10 + 11 + 12 + 2C + C1 + C0 + OE + + S + 1 + C2M + + + + + + + +5V + 16 + + A9 + A17 + A4 + A12 + + 13 + 14 + 15 + GND + 8 + + + + + + + + + + + + + + +5V + R34 + A23 + A22 + A21 + A20 + A19 + A17 + A9 + RA2 + RA3 + 10K + MBRAM + + + + +5V + + + + 64 + 42 + 84 + 22 + 79 + 78 + RA0 + RA1 + RA2 + RA3 + RA4 + RA5 + RA6 + RA8 + 71 + 70 + 68 + 67 + 66 + 65 + 14 + 20 + 19 + 18 + 72 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 12 + 77 + RP2 + RP1 + 39Ω + 39Ω + 51P + 51P + RA4F + RA4 + RA3F + RA3 + RA2F + RA2 + RA1F + RA1 + RA0F + RA0 + RA5 + RA5F + RA6 + RA6F + RA7 + RA7F + RA8 + RA8F + RA9 + RA9F + 1 + 2 + 5 + 6 + 3 + 4 + 7 + 8 + 9 + 10 + 1 + 2 + 10 + 9 + 6 + 7 + 8 + 5 + 4 + 3 + RA9 + RA7 + RA1 + RA8 + RA6 + A8 + A16 + RA0 + A18 + A11 + A3 + RA0 + A16 + 10 + 11 + 12 + 9 + 13 + 14 + 15 + C1 + C0 + OE + + 2C + D0 + D1 + 2D + 2B + B1 + B0 + 2A + A1 + A0 + F257 + U2E + VCC + 16 + GND + 8 + S + 1 + 2 + 3 + 4 + 5 + 6 + 7 + A7 + A15 + A6 + A14 + RA5 + RA4 + (2)(1) + A1-A23 + (2)(3) + (2)(1) + (3)(2) + (1)(2) + (2) + (2) + (2) + (3) + (2) + (2) + (2) + (2) + (2) + (2) + (3) + (2) + (3) + (3) + (3) + (3) + (3) + (2) + 47Ω + R23 + C3.7M + C3.7M + 2 + VIA.CS1 + VIAIRQ + + IOW + + SCCRD + + SCSIDRQ + SNDRES + SCSI + + SCCEN + + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10 + A11 + A12 + A13 + A14 + A15 + A16 + A17 + A18 + A19 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 17 + 15 + 7 + 24 + 21 + 10 + 8 + 25 + 9 + 11 + 12 + 13 + 3.3K + R43 + R45 3.3K + +5V + + + + + GND + GND + 16 + 53 + + + + + + + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10 + A11 + A12 + A13 + A14 + A15 + A16 + A17 + A18 + A19 + U7E + 68000 + RES + AS + VMA + BERR + + + + + + IPL2 + E + A23 + A22 + A21 + A20 + FC0 + FC1 + FC2 + D0 + D1 + D2 + D3 + D4 + D5 + D6 + D7 + D8 + D9 + D10 + D11 + D12 + D13 + D14 + D15 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 61 + 62 + 63 + 64 + 1 + 2 + 3 + 4 + 5 + 26 + 27 + 28 + D0 + D1 + D2 + D3 + D4 + D5 + D6 + D7 + D8 + D9 + D10 + D11 + D12 + D13 + D14 + D15 + + + + + + + + + + + + + + + + + D15 + D14 + D13 + D12 + D11 + D10 + D9 + D8 + D7 + D6 + D5 + D4 + D3 + D2 + D1 + D0 + 32 + 31 + 30 + 29 + 28 + 27 + 26 + 25 + 24 + 23 + 22 + 21 + 20 + 19 + 18 + 17 + 16 + 15 + 14 + 13 + 12 + 11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + -12V + - 12 V + GND + D15 + D14 + D13 + D12 + D11 + D10 + D9 + D8 + D7 + D6 + D5 + D4 + D3 + D2 + D1 + D0 + J13-C + + + + + + + + + + + + + + + + + + + + + + + + + + + NC + +5V + +5V + + + + + + + + + + + + + + + + + + + + RES + RES + + + AS.CPU + A23CPU + A22CPU + A21CPU + A20CPU + 48 + 50 + 51 + 52 + 20 + 6 + 22 + 18 + 19 + 23 + R27 + +5V + 3.3K + SW1 + (INTERRUPT) + + + + + + + + SPARE + 4 + 17 + U2B + + + + + + + U12F + LS245 + GND + A8 + A7 + A6 + A5 + A4 + A3 + A2 + A1 + T/R + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + EO + + B7 + B6 + B5 + B4 + B3 + B2 + B1 + B0 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + VCC + RDO8 + RDO9 + RDO10 + RDO11 + RDO12 + RDO13 + RDO14 + RDO15 + D15 + D14 + D13 + D12 + D11 + D10 + D9 + D8 + + + + + + + + + + + + 20 + +5V + 10 + + + + + U11F + LS245 + GND + A8 + A7 + A6 + A5 + A4 + A3 + A2 + A1 + T/R + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + EO + + B7 + B6 + B5 + B4 + B3 + B2 + B1 + B0 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + VCC + + + 20 + +5V + 10 + + + + + + RDO0 + RDO1 + RDO2 + RDO3 + RDO4 + RDO5 + RDO6 + RDO7 + R/W + D7 + D6 + D5 + D4 + D3 + D2 + D1 + D0 + EN245 + + + + + + + + + + R/W + + + + + + + + + GATE + ARRAY + U4E + +5V + + + + + + + + + + + + + + + + + + + + + UDS + + + + C16M-BUF.F2 + C16M-BUF.F1 + + + + + IWM + + PWMF + R/W + + + + + + + VIDPG2 + + DACK + + + + SND + + PWM + VIDOUT + HSYNC + + + REFERENCE DESIGNATION + LAST USED + NOT USED + C67 + CR3 + L7 + R47 + RP2 + Q1 + Y1 + B1 + J19 + + + + + J13 + + + + + + + + + + + PMCYC + + C2M + + C2M + + + + VMA + E + (2) + (2)(3) + (3) + (3) + RES + AS + + AS + + + VMA + + RES + + + + + + + + + + + + + + + + + + + + + + 1. ALL RESISTANCE VALUES ARE IN OHMS, + 2. ALL CAPACITANCE VALUES ARE IN MICROFARADS + 3 COMPONENT CRT NOT INSERTED + 4 J16:PN515-0050 (2 POSITION, 2 PIN HEADER JUMPER) + 6 L4 FERRITE BEAD + NOTE: + + + + + + + + + + + + + + + + + + + + + + + 16 + 15 + 76 + 73 + + R28 + + + + + + BERR + + E.CPU + + + + + + + + A23CPU + A22CPU + A21CPU + A20CPU + E.CPU + A18 + A17 + A16 + A15 + A14 + A13 + A12 + A11 + A10 + A9 + A8 + A7 + A6 + A5 + A4 + A3 + A2 + A1 + + + + + + + + + + + + + + + + + + + + A19 + A19 + A18 + A17 + A16 + A15 + A14 + A13 + A12 + A11 + A10 + A9 + A8 + A7 + A6 + A5 + A4 + A3 + A2 + A1 + FC0 + FC1 + FC0 + FC1 + FC2 + + + FC2 + GND + GND + GND + GND + GND + GND + GND + GND + GND + AS + + ASCPU + + UDS + UDS + + + LDS + LDS + + + UDS + + VIDOUT + + + + + + + + + + + + + + + + + + + + + + + + + + + A23CPU + A22CPU + A21CPU + A20CPU + + + + + + + +12V + +12V + +12V + + + + GND + E.CPU + A23 + A22 + A21 + A20 + + + + + + + + + 32 + 31 + 30 + 29 + 28 + 27 + 26 + 25 + 24 + 23 + 22 + 21 + 20 + 19 + 18 + 17 + 16 + 15 + 14 + 13 + 12 + 11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + C8MF + C16MBUF.F1 + R30 + 47:Ω + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5V + +5V + +5V + +5V + +5V + + + + + + + + + + + + + + + + + + + + + + + + + + J13-B + +12V + +12V + -5V + -5V + + + + + + +12V + GND + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + NC + 22 + + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + + E + + + + +5V + + + + +5V + + + + + AS + + ASCPU + + + + + + + + U60 + U70 + ROM + HI + ROM + LOW + A0 + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10 + A11 + A12 + A13 + A0 + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10 + A11 + A12 + A13 + A16 + A15 + A14 + A16 + A15 + A14 + GND + GND + CE + CE + + + D0 + D1 + D2 + D3 + D4 + D5 + D6 + D7 + D0 + D1 + D2 + D3 + D4 + D5 + D6 + D7 + VCC + VCC + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10 + A11 + A12 + A13 + A14 + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10 + A11 + A12 + A13 + A14 + A17 + A16 + A15 + A17 + A16 + A15 + + + + + + + + + + + RDO15 + RDO14 + RDO13 + RDO12 + RDO11 + RDO10 + RDO9 + RDO8 + + + + + + + + R/W + + RDO0 + RDO1 + RDO2 + RDO3 + RDO4 + RDO5 + RDO6 + RDO7 + HALT + + HALT + + + + + + UDS + UDS + + + R/W + + R/W + + + + + + + + BG + + BG + + + + + + + + + + + + + ROMEN + ROMEN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5V + +5V + 39Ω + R37 + RAM R/W + + RAS + + + + + + + + + + 3.3K + R44 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 25 + 24 + 21 + 23 + 2 + 26 + 27 + 14 + 1 + 22 + 20 + 19 + 18 + 17 + 16 + 15 + 13 + 12 + 11 + 28 + 23 + 21 + 24 + 25 + 3 + 4 + 5 + 6 + 7 + 8 + 2 + 26 + 14 + 27 + 1 + 22 + 20 + 19 + 18 + 17 + 16 + 15 + 13 + 12 + 11 + 28 + 10 + 9 + + + + + + + + + + + + + + + D8 + D9 + D10 + D11 + D12 + D13 + D14 + D15 + D0 + D1 + D2 + D3 + D4 + D5 + D6 + D7 + VCC + VCC + + + + 49 + 14 + +5V + +5V + + R41 + 3.3K + RES + + FC0 + FC1 + FC2 + + + + + + + + + + + + BG + + BG + + + + + + + + + + + ONLY + R35 + 150Ω + 256K + RAMS + + + + + + + + + + + + J16 + + + +5V + ROW2 + R36 + RAMS ONLY + R31 + 10K + +5V + + + R47 3.3K + RAM + ROW#1 + R33 + 47Ω + + + + +5V + CAS + + CAS0L + CAS1L + + + RAM + ROW#2 + + + +5V + R32 + 47Ω + RAM + ROW#1 + RAM + ROW#2 + + BERR + + VMA + + + IPL2 + BERR + IPL2 + IPL1 + IPL0 + + + + IPL0 + IPL1 + IPL2 + SPARE + + + + + HALT + + IPL2 + + CLK + IPL1 + + DTACK + + + LDS + IPL0 + BGACK + + VPA + + ER + + IPL0 + + LDS + + DTACK + + IPL1 + + C8MF + J13-A + + + + + + + + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 81 + 82 + 80 + 83 + 74 + 69 + 11 + 13 + 17 + 1 + 21 + 43 + 63 + 59 + 55 + 39 + 46 + 49 + 57 + 56 + 48 + 45 + 40 + 50 + 58 + 53 + 52 + 41 + 51 + 60 + 32 + 62 + 31 + 35 + 54 + 61 + 30 + 33 + 36 + 37 + 47 + 38 + LDS + + IPL1 + + R/W + + CAS1L + CAS0L + + + + + + AS + + BERR + + + + + + + + + + + + + + PWM + SCSIDRQ + IWM + SCCRD + + + + + + + + R21 + 3.3K + +5V + IPL0 + + + + + SND + + + + SNDRES + SCSI + SCCEN + + C3.7M + VSYNC + + VSYNC + + IPL1 + + DACK + + EN245 + VPA + + + + + + + + 47Ω + R24 + C8M + C8MF + + EN245 + + EAREN + + + ENTD1K + ENTD1K + + ENTD1K + + E + A23 + A22 + A21 + A20 + EAREN + + EAREN + + HALT + + HALT + + R/W + + R/W + + DTACK + + DTACK + + BGACK + + BGACK + + + + + + + + + + E.CPU + PMCYC + + PMCYC + + RESET + + ER + + ER + + + + + VPA + + VPA + VPA + VMA + VMA + + + + + ER + + BGACK + + 96 - PIN + EURO-DIN + BUS CONNECTOR + A + B + C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + C16M + C16MBUFF1 + C8M + C8MF6 + DTACK + + R46 + 3.3K + + + +5V + CAS1H + CAS0H + + + R42 + 39Ω + RAS + + RAS2F + + J15 + J14 + SIMM4 + SIMM2 + SIMM3 + SIMM1 + HSYNC + + A0 + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + NC + DO5 + DO4 + DO3 + VSS + DO6 + WE + + DO2 + VSS + DO1 + DO0 + VCC + NC + DO7 + NC + RAS + + NC + NC + VCC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NC(A9) + CAS + + A0 + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + NC + DO5 + DO4 + DO3 + VSS + DO6 + WE + + DO2 + VSS + DO1 + DO0 + VCC + NC + DO7 + NC + RAS + + NC + NC + VCC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NC(A9) + + RAM R/WE + + RAM R/WE + + + 51 + 51 + + IMISC IN:WD COME SMCARD + WHEN USING THE D-P SAMI OPTION: DO NOT ASSEMBLE R32,R33, R39, OR R40. ASSEMBLE R32A, R33A, R39A, R40A, AND R42. + 5 + + + + PMCYC + + (1) + PMCYC + + BERR + + 34 + 75 + 150Ω + + + LDS + + VIAIRQ + + VIA.CS1 + 44 + VIDPG2 + C16MRSF2 + ROMEN + + + + + + + + + RAS + + NC + NC + NC + NC + NC + RA0F + RA1F + RDO1 + RDO0 + RA2F + RA3F + RDO2 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 31 + + + + + 40 + + + + + + + + + + + + RA4F + RA5F + RDO3 + RDO4 + RDO5 + RDO6 + RDO7 + RA6F + RA7F + RA8F + RA9F + + + + + + + + + + + + 21RAMR1 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + +5V + + + + + + RAS1F + + + + + 50 + 49 + + 48 + 47 + 46 + 45 + 44 + 43 + 42 + 41 + + 51 + 22 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + + + + + + + + + + + + + + + + + + + + + + + + + + RAS1F + + + + + +5V + NC + NC + NC + NC + NC + + + + + RDO0 + RDO1 + RDO2 + RDO3 + RA0F + RA1F + RA2F + RA3F + RA4F + RA5F + RA6F + RA7F + RA8F + RA9F + RDO5 + RDO6 + RDO7 + 39Ω + R38 + + R33A + R32A + METRIC + + + + + + + + + + + 050-0432-6 + E + + + + + + SCHEMATIC,LOGIC CB,MAC SE, DIP SIMM + CAS1H + CAS0H + + + VCC + CAS + DO0 + A0 + A1 + DO1 + A2 + A3 + VSS + DO2 + A4 + A5 + DO3 + A6 + A7 + DO4 + A8 + NC(A9) + NC + DO5 + WE + VSS + DO6 + NC + DO7 + NC + RAS + NC + NC + VCC + + + RAS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5V + +5V + + + + + + + + + 21RAMR1 + 51 + NC + + + + + + + + + + + + + + + + + + + + + + + + + RDO8 + + + +5V + R39 + 47Ω + +5V + + + R40 + 47Ω + RDO8 + + + + RDO4 + + 5 + 5 + R39A + RDO9 + RDO10 + RDO11 + RDO11 + RDO13 + RDO14 + RDO14 + + + + + + + + + + + RAS2F + + RAS2F + + + NC + NC + NC + NC + RDO15 + RDO15 + NC + NC + NC + NC + NC + RDO13 + RDO11 + RDO11 + RDO10 + + + + + + RDO9 + + + + RA0F + RA1F + RA2F + RA3F + RA4F + RA5F + RA6F + RA7F + RA8F + RA9F + VCC + CAS + DO0 + A0 + A1 + A2 + A3 + VSS + DO2 + A4 + A5 + DO3 + A6 + A7 + DO4 + A8 + DO5 + VSS + DO6 + NC + DO7 + NC + NC + NC + VCC + NC + NC(A9) + DO1 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + + + 31 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + + + + + + A + B + C + D + E + F + G + H + + + + + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + + + + + + + + PRODUCTION RELEASE + V999 + A + B + V1085 + + + + + + + + + REVIEW RELEASE + HCN # + A + C + D + E + F + G + H + + + + + + + + 47Ω + 47Ω + 47Ω + 47Ω + R40A + + + + + + + + + + + + + + + + + + + + + + + J. RtiY + + + + + + + + + + + + + + + + + + + + + Apple Computer, Inc. + + + + 1 + 3 + + + + + + 5 + 5 + + + + + + + + + + 47Ω + + + + + 050 -0432 -6 + + + + + + + 1 + 3 + + + 1/4W, 5?V + 1MB H.+ OF + REDRAW AMBIGUITIES/ERRORS MARKED IN RED,CORRECTIONS/ANNOTATIONS MARKED IN BLUE + 7. + DESCRIPTION + + + + + + + + SHT + SHT + + + + + THE INFORMATION CONTAINED HEREBY IS THE PROPRIETARYPROPERTY OF APPLE COMPUTER INC. THE POSSESSOR AGREES TOTHE FOLLOWING: (I) TO MAINTAIN THIS DOCUMENT IN CONFIDENCE (II) NOT TO REPRODUCE OR COPY IT(III) NOT TO REVEAL OR PUBLISH IT IN WHOLE OR PART + NOTICE OF PROPRIETARY PROPERTY + SIZE + MATERIALS/FINISHNOTED ASAPPLICABLE + REV. + ZONE + DRAWING NUMBER + TOLERANCES + + + + + + + + + DIMENSIONS ARE IN MILLIMETERS + ANGLES ± + X.XXX ± + X.XX ± + X.X ± + DO NOT SCALE DRAWINGS + ?? ??? ???? ??? ??? ??? ? ???? ? + ??? ?? ??? ???? + DRAFTER + ENG APPD + QA APPD + RELEASE + DESIGN CK + MFG APPD + DESIGNER + SCALE + ® + CK APPD + ENG APPD + +