August 1987 Andrew Stewart Building The FM Ram Disk ======================== List of Parts Required. ======================= For each MSV11-Dx or MSV11-Ex Board. Qty Chip Description --------------------------------------------------------- 1 74LS11 Triple 3 Input And Gate 1 74S38 Quad Open Collector Nand Gate 1 74LS74 Dual D Flip Flop 1 74LS75 Quad Latch 4 74LS280 8 bit Octal Parity Generator 2 74LS373 8 Bit Latch, Tristate Output Wire Wrap Wire, 30 AWG. Fine Solder. Sharp Knife to cut copper traces on the board. A precision soldering Iron, Like a Weller Temperature Controlled job. Nerves Of Steel. A tool to lever chip pins, like a dental probe. Order of Building ================= Part Details --------------------------------------------------------- A/ Check that the Board Works as normal memory. B/ Lifting the Pins. C/ Inserting the four Parity Generators. D/ Address Decoding Wiring. E/ Mounting and Bending the inputs to the extra 373 Latches F/ Mounting and Bending the 75 Quad Latch G/ Mounting and Bending the 11 Triple Nand H/ Mounting and Bending the 38 Quad OC Nand I/ Mounting and Bending the 74 Dual F/F J/ Wiring between the 75 Quad Latch and the 11 Triple Nand K/ Wiring between from the other new chips to the 74 Dual F/F and the 11 Triple Nand. L/ Testing the Board as a very small Ram Disk. M/ Coffee Break N/ Changing the positive 12 volt rail to positive 5 volts. O/ Removing the existing Ram Chips. Q/ Adding Multiplex Memory Address line 7. R/ Adding Multiplex Memory Address line 8. S/ Adding Multiplex Memory Address line 9. T/ Testing the Board as a Ram Disk. U/ Hints for use in an RT-11 Environment. Appendix Details --------------------------------------------------------- 1 Chip Wiring Cross Check List 2 Soldering Chips onto Chips. 3 MSV11 Component Layout Diagram Part A/ Check that the Board Works as normal memory. ==================================================== This should be obvious but it still should be performed. Nothing is worse than trying to debug your modifications when there is another problem confusing the issue. Because testing the memory board depends so heavily on the existing QBUS memory configuration in your system, no details are given. Done? Action --------------------------------------------------------- [ ] Check that the Memory Board Works. Part B/ Lifting the Pins. ========================= Tense up your Nerves of Steel! This is the part that is liable to cause damage to the board. The pins listed below must be lifted out of the board or cut so there is no electrical connection to the board. A Warning Note -------------- The chip pin metal is very soft so do not bend violently or on a sharp radius. Suggested Method ---------------- Using a solder sucker, remove the solder from the pin and the hole. Make sure that the pin is free in the hole before proceeding. Note that this operation is more difficult for pin 4 of Chip E29, as it is connected to an internal ground plane. Now lever up the pin from the solder side of the board. A dentist probe is the ideal tool to get behind the pin and lever on an adjacent chip pin. Alternatively the pin can be removed "wet" by applying the soldering iron from the solder side while levering up on the component side, but you need three hands. Done? Action --------------------------------------------------------- Add an Extra Refresh signal. [ ] Lift Pin 4 Chip E29 and bend it out so it is parallel to the board. Trim the pin so it is tangential to the chip body and is short enough to get a reasonable solder pad. [ ] Connect Chip E29 Pin 4 to Chip E23 pin 8. Remove DAL14 from the low byte. [ ] Lift Pin 2 Chip E35 and remove as much of the pin as possible. Clear the hole of the remains of the pin. Free the Output Enable latch of the high byte. [ ] The copper trace from Pin 11 Chip E46 runs on the component side of the board towards the switch pack. Cut the trace, preferably near pin 11. Removing the Parity Signal from DAL 16 [ ] The copper trace from Pin 10 Chip E16 goes under the chip and through the board. On the solder side of the board there are three holes in a vertical line under Chip E16 near pin 10. The middle hole must have its copper trace cut on the solder side. [ ] Connect Pin 2 Chip E1 to Pin 8 of the same chip. This disables BDAL 16. Setting up the Jumper Post Area. [ ] The only jumper required is from Jumper post 17 to Jumper Post 14. Remove all other jumper wires. (12) (14) (10) Layout of Jumper Post Area ____/ ^Handles / (17) (15) (16) vFingers [ ] Solder a wire from pin 6 Chip E57 to Jumper post 15. Remove BDAL16 as an input to the Parity Generator. [ ] Cut the copper trace from pin 12 Chip E45 on the component side. [ ] Connect a wire from pin 12 Chip E45 to ground via the pin of C120 closest to pin 10 Chip E40. Disconnect the existing DAL 17, 16, 15, 14 and 13 signals from the Prom Decoder. [ ] The copper trace leading from Pin 3 Chip E9 runs via a plated through hole which appears on the solder side of the Board roughly on a line between Pins 3 and 16 of Chip E9 then the trace heads towards the edge connector. Cut the trace on the solder side of the board, near the plated through hole. [ ] The copper trace from Pin 4 Chip E9 runs on the component side of the board under the chip to run between Pins 11 and 12 of the same chip, then runs towards the edge connector and skirts under Capacitor C118. The easiest place to cut it on the component side is where the copper trace curves around Pin 10 Chip E9. [ ] The copper traces from Pins 5 and 6 Chip E9 run on the solder side of the board toward the handles. The easiest place to cut them is close to the pins. [ ] The copper trace from Pin 7 Chip E9 runs on the component side of the board between Pins 10 and 11 of Chip E16, the chip to the left of Chip E9. Cut this track here. Part C/ Inserting the four Parity Generators. ============================================= If you have an MSV11-Ex Board, skip this section and tell the author where you got it. He has never seen one. If you have an MSV11-Dx Board, you are about to convert it into an MSV11-Ex Board. There is space for three 74LS280 chips on the second bottom row of the board and space for one 74LS280 chip on the bottom row of the board. These are refered to on the M8044 Circuit Diagram as chips E64, E58, E52 and E45. Done? Action --------------------------------------------------------- [ ] Clear the holes for chips E64, E58, E52 and E45. [ ] Solder in chips E64, E58, E52 and E45. NB. Solder pins 7 and 14 first as a precaution. Part D/ Address Decoding Wiring. ================================ The basic change is to put the memory board into the I/O page. This involves changing the address lines into the Prom Decoder chip. Done? Action --------------------------------------------------------- Invert the Bank Seven signal into Chip Enable B of the Prom Decoder Chip. [ ] The copper trace leading from Pin 10 Chip E9 runs on the component side of the board between Pins 8 and 9 of the same chip to a plated through hole nearly under Capacitor C110. Cut the trace on the component side and clean out the plated through hole. [ ] Connect the plated through hole to Pin 15 Chip E1. [ ] Connect Pin 13 Chip E1 to Pin 10 Chip E9. Connect DAL 12, 11, 10, 9 and 8 to the Prom Decoder. [One user found it easier to put these wires on the solder side of the board. If you do this, beware of them catching on other boards below them in the backplane.] [ ] Connect Pin 3 Chip E9 to Pin 18 Chip E46 (DAL 12). [ ] Connect Pin 4 Chip E9 to Pin 7 Chip E46 (DAL 11). [ ] Connect Pin 5 Chip E9 to Pin 13 Chip E46 (DAL 8). [ ] Connect Pin 6 Chip E9 to Pin 8 Chip E46 (DAL 9). [ ] Connect Pin 7 Chip E9 to Pin 14 Chip E46 (DAL 10). [ ] Set the memory starting address to 440000 . Set S1-2, S1-3 and S1-5 to CLOSED (ON). Set S1-1 and S1-4 to OPEN (OFF). ------ | S1-1 | Off ^ Handles | S1-2 | On | S1-3 | On | S1-4 | Off | S1-5 | On v Fingers ------ Part E/ Mounting and Bending the inputs to the extra 373 Latches ================================================================ Each pin of a new chip has a broad part then a narrow part. When the text mentions trimming a pin, cut the narrow part of the pin off. Done? Action --------------------------------------------------------- Chip E46a mounts on top of Chip E46 Pins 1, 10, 11, and 20 must be left long. [ ] Trim pins 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18 and 19 of Chip E46a. [ ] Place Chip E46a on top of Chip E46, taking care to get the orientation correct. There will be a notch or dot at one end of the chips. Solder pins 1, 10, 11 and 20 of Chip E46a to the corresponding pin of chip E46. [ ] Test that pins 1, 10, 11 and 20 of Chip E46a are correctly soldered to the corresponding pin of chip E46. [ ] Solder a wire from pin 13 of Chip E46a to pin 6 of Chip E69 (DAL 15 H). [ ] Solder a wire from pin 14 of Chip E46a to pin 3 of Chip E35 (DAL 14 H). Chip E35a mounts on top of Chip E35 Pins 1, 7, 10, 14, 18 and 20 must be left long. [ ] Trim pins 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 16, 17 and 19 of Chip E35a. [ ] Place Chip E35a on top of Chip E35, taking care to get the orientation correct. There will be a notch or dot at one end of the chips. Solder pins 1, 7, 10, 14, 18 and 20 of Chip E35a to the corresponding pin of chip E35. [ ] Test that pins 1, 7, 10, 14, 18 and 20 of Chip E35a are soldered correctly to the corresponding pin of chip E35. [ ] Solder a wire from pin 19 of Chip E35a to the hole vacated by pin 2 of Chip E35. [ ] Solder a wire from pin 11 of Chip E35a to pin 11 of Chip E46a (LD BR H). [ ] Solder a wire from pin 6 of Chip E35a to pin 12 of Chip E46a (MA9). [ ] Solder a wire from pin 15 of Chip E35a to pin 15 of Chip E46a (MA8). [ ] Solder a wire from pin 15 of Chip E 35a (or chip E46a - same signal, as per last instruction!) to pin 5 of Chip E29 (MA8). Part F/ Mounting and Bending the 75 Quad Latch ============================================== Done? Action --------------------------------------------------------- Chip E16a mounts on top of Chip E16 Pins 4, 5, 12 and 13 must be left long. [ ] Trim pins 1, 2, 3, 6, 7, 8, 9, 10, 11, 14, 15 and 16 of Chip E16a. [ ] Bend pin 4 Chip E16a and solder it to pin 5 of the same chip. NB. All good TTL design books say that you should use a 1k Ohm resistor to tie a signal high. You can do so if you desire. [ ] Place Chip E16a on top of Chip E16, taking care to get the orientation correct. There will be a notch or dot at one end of the chips. Solder pins 5, 12 and 13 of Chip E16a to the corresponding pin of chip E16. [ ] Test that pins 5, 12 and 13 of Chip E16a are well attached to the corresponding pin of chip E16. [ ] Solder a wire from pin 3 Chip E16a to Jumper Post 17. [ ] Solder a wire from pin 2 Chip E16a to Jumper Post 12. [ ] Solder a wire from Pin 6 Chip E16a to Pin 11 Chip E15. Layout of Jumper Post Area: (12) (14) (10) /\ Handles (17) (15) (16) \/ Fingers Part G/ Mounting and Bending the 11 Triple Nand =============================================== Done? Action --------------------------------------------------------- Chip E15a mounts on top of Chip E15 Pins 7 and 14 must be left long. [ ] Trim pins 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12 and 13 of Chip E15a. [ ] Solder pin 3 Chip E15a to pin 2 of the same chip. [ ] Solder pin 10 Chip E15a to pin 2 of the same chip. String the wire around the chip, not over or under. [ ] Solder pin 9 Chip E15a to pin 13 of the same chip. [ ] Solder pin 4 Chip E15a to pin 13 of the same chip. String the wire around the chip, not over or under. [ ] Place Chip E15a on top of Chip E15, taking care to get the orientation correct. There will be a notch or dot at one end of the chips. Solder pins 7 and 14 of Chip E15a to the corresponding pin of chip E15. [ ] Test that pins 7 and 14 of Chip E15a are soldered correctly to the corresponding pin of chip E15. [ ] Solder a wire from Pin 1 Chip E15a to Pin 10 Chip E8. [ ] Solder a wire from Pin 5 Chip E15a to Pin 10 Chip E1. [ ] Solder a wire from Pin 6 Chip E15a to Pin 11 Chip E35a (LD BR H). Part H/ Mounting and Bending the 38 Quad OC Nand ================================================ Done? Action --------------------------------------------------------- Chip E45a mounts on top of Chip E45 Pins 7 and 14 must be left long. [ ] Trim pins 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12 and 13 of Chip E45a. [ ] Place Chip E45a on top of Chip E45, taking care to get the orientation correct. There will be a notch or dot at one end of the chips. Solder pins 7 and 14 of Chip E45a to the corresponding pin of chip E45. [ ] Test that pins 7 and 14 of Chip E45a are soldered correctly to the corresponding pin of chip E45. [ ] Solder pin 4 Chip E45a to pin 5 of the same chip. [ ] Solder a wire from Pin 6 Chip E45a to Pin 15 Chip E8. [ ] Do not solder the wire from Pin 3 Chip E45a to Pin 4 Chip E69 at this stage. This will be done after the big RAMs are installed. Part I/ Mounting and Bending the 74 Dual F/F ============================================ Done? Action --------------------------------------------------------- Chip E28a mounts on top of Chip E28 Pins 7 and 14 must be left long. [ ] Trim pins 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12 and 13 of Chip E28a. [ ] Place Chip E28a on top of Chip E28, taking care to get the orientation correct. There will be a notch or dot at one end of the chips. Solder pins 7 and 14 of Chip E28a to the corresponding pin of chip E28. [ ] Test that pins 7 and 14 of Chip E28a are soldered correctly to the corresponding pin of chip E28. [ ] Solder pin 4 Chip E28a to pin 6 of the same chip. [ ] Solder a wire from Pin 3 Chip E28a to Pin 5 Chip E12. [ ] Solder a wire from Pin 2 Chip E28a to Pin 12 Chip E20. Part J/ Wiring between the 75 Quad Latch and the 11 Triple Nand =============================================================== Done? Action --------------------------------------------------------- [ ] Solder a wire from Pin 1 Chip E16a to Pin 2 Chip E15a. [ ] Solder a wire from Pin 15 Chip E16a to Pin 13 Chip E15a. [ ] Solder a wire from Pin 11 Chip E16a to Pin 11 Chip E15a. [ ] Solder a wire from Pin 7 Chip E16a to Pin 6 Chip E15a. Part K/ Wiring between from the other new chips to the 74 Dual Latch and the 11 Triple Nand. =============================================================== Done? Action --------------------------------------------------------- [ ] Solder a wire from Pin 5 Chip E28a to Pin 1 Chip E45a. [ ] Solder a wire from Pin 5 Chip E45a to Pin 8 Chip E15a. [ ] Solder a wire from Pin 1 Chip E28a to Pin 8 Chip E16a. [ ] Solder a wire from Pin 12 Chip E15a to Pin 2 Chip E45a (RD PE H). Part L/ Testing the Board as a very small Ram Disk. =================================================== The FM handler auto sizes start up and will handle 4k and 16K chips installed. Done? Action --------------------------------------------------------- [ ] Check that the FM RAM disk Board Works. Part M/ Coffee Break ===================== This section was superceded so have a coffee break (or go to bed you fool!). Part N/ Changing the positive 12 volt rail to positive 5 volts. =============================================================== The positive 12 volt rail is no longer required. Positive 5 volts is put in its place. All the capacitors on the old positive 5 volts to the RAM chips must be removed. Done? Action --------------------------------------------------------- [ ] Remove Capacitor C5 (2.2uF Electrolytic). It is located above Chip E39. This disconnects the -5 volt generator. [ ] Remove Resistor R27 and replace it with an 18 ohm resistor (preferably), or a piece of wire. [ ] Remove Resistor R16. [ ] Remove link W2 and put in a link from the input pad of W3 to the output pad of W2 (this is the bigger pad). O / W3 ^ Handles /-O | \ W5 | O | | O | / W2 \-O \ W4 v Fingers O [ ] Remove Capacitors C124 to C127 (0.22uF). They are located just to the right of the RAM Chip arrays. [ ] Remove Resistors R14 and R15 (220 Ohm). They are located just to the right of the RAM Chip arrays. Part O/ Replacing the Ram Chips. ================================ If you have access to a desoldering station, then use it to remove the 4K or 16K RAM Chips CAREFULLY. They are not very useful. If you have to remove the RAM Chips by hand then the best method is to use a pair of fine nippers to cut each leg of the RAM chip then remove each leg and clean out each hole. The point here is that the printed circuit board is far more valuable to you than the chips are. If someone else desires the chips, then let them remove them. Then sue them for lifting tracks. Note: Despite the above, it has been done to remove all 32 chips using a solder sucker without destroying the board or the chips, with the chips being successfully re-used. It is risky and extremely tedious however. The original plan was to supply MUX A8 H and MUX A9 H using the tracks that previously supplied +5V (pin 1) and -5V (pin 9). However, the +5V was supplied via a ground plane within the board which has a very high capacitance (900 pF) relative to ground. This could be driven with a schottky sledgehammer, but could make operation unreliable. The only alternative is to trim (or bend) pin 1 on ALL the RAM chips, and connect them with wire. The -5V was supplied via a track, which has a low capacitance, so the same drastic solution does not apply. Done? Action --------------------------------------------------------- [ ] Check that there are no solder bridges between holes. [ ] If it is intended to install the parity RAM chips (E47-E50), solder a wire from Pin 3 Chip E45a to Pin 4 Chip E69. If this wire is installed and the chips aren't, the FM handler will give continuous bad block errors. [ ] Trim (or bend) pin 1 on all the RAM chips, then install them. It is possible (to preserve the chips) to bend the pins up so they lie on top of the adjacent chip. This also simplifies the connection, but makes them susceptable to shorting on the underside of the next board in the backplane. If you do this, insulate it well. [ ] Connect pin 1 of all RAM chips together. Part Q/ Adding Multiplex Memory Address line 7. =============================================== If the board was a 32K byte or 64K byte memory board then skip to the next section. Otherwise, you must enable line MUX A7. Done? Action --------------------------------------------------------- [ ] Remove jumper W1. [ ] Install a 22 Ohm resistor as R3. Part R/ Adding Multiplex Memory Address line 8. =============================================== Done? Action --------------------------------------------------------- [ ] Solder one end of an 8cm wire onto a 22 Ohm resistor. [ ] Solder the other end of the resistor into the ex-R14 mounting hole which is nearer to the handles. [ ] Solder a wire from that hole to the ex-R15 mounting hole which is nearer to the handles. [ ] Solder the other end of the wire onto pin 15 Chip E46a. Part S/ Adding Multiplex Memory Address line 9. =============================================== Done? Action --------------------------------------------------------- [ ] Solder one end of a 22 ohm resistor to Pin 12 of Chip E46a. Bend the lead so the resistor sits on top of IC E40. [ ] Solder the other end of the resistor to the wire connecting Pin 1 of all the RAM chips together. Part T/ Testing the Board as a Ram Disk. ======================================== The FM handler will auto-size on start up and will configure to have a smaller "sector" size if only half the 256K RAM chips are installed. Well, eventually it will. Done? Action --------------------------------------------------------- [ ] Check that the FM RAM disk Board Works. Part U/ Hints for use in an RT-11 Environment. ============================================== The FM driver is bootable. You can boot from your normal disk drive and have the startup command file copy the operating system files to the RAM disk and reboot. A neat trick to speed things up when rebooting a system which hasn't been powered-down is to have in the command file to INIT FM:, and then to INIT FM:/RESTORE with the error level set so that only if the restore fails will it copy all the system files to FM: (this was a suggestion for use from Decus for use with VM:). Be careful only to "format" FM: after the restore has failed, as this erases everything no matter what (see below). Note that if the parity chips have been installed, it will be necessary to "format" the FM RAM disk when power is first applied, to set the parity bits in memory correctly. Otherwise, read accesses will return a bad block error. This "formatting" is performed by writing blocks of zeroes to the entire RAM disk by the program FMAT. __________ \--------/ Appendix 3 \---------/ \ / \ / ============================================================================= | -- - - - - - - - --- - - --- --- --- | | ------------------- ( Q1 )|D|D|R|C|R|R|R|| ||R| |R| | | | | | | | | | C2 | -- |2|1|1|8|2|2|2||E34||1| |2| | | | | | | | | ------------------- [C10] - -|7| |5|6|7| --- |6| |4| |E21| |E14| |E7 | | | ------------------- - - - - - - - | | | | | | | | | C1 | ______ ______ [C146] --- --- --- | | ------------------- [__C6__] [_C5___] [ C7 ] - [C102][C101][C100]| | --- --- --- --- --- --- --- --- --- |R| --- --- --- | | | | | | | | | | | | | | | | | | | ||4|| | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | |E74| |E68| |E62| |E56| |E50| |E44| |E39| |E33| |E37||C||E20| |E13| |E6 | | | | | | | | | | | | | | | | | | | | ||1|| | | | | | | | | | | | | | | | | | | | | | | | | ||2|| | | | | | | | --- --- --- --- --- --- --- --- --- |4| --- --- --- | | [C145][ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] - [ ] [ ][C103] | | --- --- --- --- --- --- --- --- --- |R| --- --- --- | | | | | | | | | | | | | | | | | | | ||1|| | | | | | | | | | | | | | | | | | | | | | | | | ||5|| | | | | | | | |E73| |E67| |E61| |E55| |E49| |E43| |E38| |E32| |E26| - |E19| |E12| |E5 | | | | | | | | | | | | | | | | | | | | ||C|| | | | | | | | | | | | | | | | | | | | | | | | | ||1|| | | | | | | | --- --- --- --- --- --- --- --- --- |2| --- --- | | | | [C155][ ] [ ] [ ] [ ] [ ] [ ] [ ][C147]|5|[R19] [C107]| | | | --- --- --- --- --- --- --- --- --- - [R20] --- --- | | | | | | | | | | | | | | | | | | | | [R18] | |[C109] | | | | | | | | | | | | | | | | | | | | - [C12] | | --- | | |E72| |E66| |E60| |E54| |E48| |E42| |E37| |E31| |E25||C| --- |E11| | | | | | | | | | | | | | | | | | | | | | ||1|| | | | | | | | | | | | | | | | | | | | | | | | | ||2|| | | | |E4 | | | --- --- --- --- --- --- --- --- --- |6||E18| --- | | | | [C136][ ] [ ] [ ] [ ] [ ] [ ] [ ][C128] - | | [C106]| | | | --- --- --- --- --- --- --- --- --- |C|| | ---- --- | | | | | | | | | | | | | | | | | | | ||1|| | |RRRR| ___ | | | | | | | | | | | | | | | | | | | ||2|| | |2211|| | | | |E71| |E65| |E59| |E53| |E47| |E41| |E36| |E30| |E24||7| --- |2132||E3 | | | | | | | | | | | | | | | | | | | | | - [C109] ---- | | | | | | | | | | | | | | | | | | | | | ||R| --- --- | | | | --- --- --- --- --- --- --- --- --- |1|| | | | --- | | [C99] [ C4 ] [W1 ] [ R2 ] - - |4||E17| |E10|[C115] | | [ ] [R3 ] [ R1 ] |R|R| - | | | | - - - | | --- --- --- --- --- |8|7| | | | ||R|R|R|| | | | --- --- --- | | | | | | | | | | | --- --- |5|6|1|| | | | | | | | | | | | | | | | | | - - --- [C116]| | |1|| | |E70| |E64| |E58| |E52| |E46| |E40| |E35| |E29| --- | | --- - - - | | | | | | | | | | | | | | | | | | | | |E16| |E9 | --- | | | | | | | | | | | | | | | | | | |E23| | | | | |E2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- --- --- | | [C123][ ] [ ] [ ] [ ][C120] [ ] [ ][C111] [C110][C118] O O O | | --- --- --- --- --- --- --- --- --- O O O | | | | | | | | | | | | -- O -- | | | | | | | |[C117] | | | | | | | | | | | | | |O | | | | | | O | | | | --- | | |E69| |E63| |E57| |E51| |E45| |C3| O |C9| |E28| |E22| O |E15| |E8 | | | | | | | | | | | | | | | | | | | | | | | O | | | | |E1 | | | | | | | | | | | --- | | O -- | | | | | | | | | | | | --- --- --- --- -- O - --- --- --- --- | | | | O O O O | | --- | | ---- | | | | | | | | | | -------------------------------- ---------------------------------