|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: ! 26: ! 27: SInt8 cmdLengthTable[256] = { ! 28: -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0x00 - 0x0F ! 29: // 0x10 - 0x1F ! 30: 1, // 0x10 Subsystem Power/Clock Control ! 31: 1, // 0x11 Subsystem Power/Clock Control (yet more) ! 32: -1,-1,-1,-1,-1,-1, // 0x12 - 0x17 ! 33: 0, // 0x18 Read Power/Clock Status ! 34: 0, // 0x19 Read Power/Clock Status (yet more) ! 35: -1,-1,-1,-1,-1, // 0x1A ! 36: 0, // 0x1F RESERVED FOR MSC/PG&E EMULATION ! 37: // 0x20 - 0x2F ! 38: -1, // 0x20 Set New Apple Desktop Bus Command ! 39: 0, // 0x21 ADB Autopoll Abort ! 40: 2, // 0x22 ADB Set Keyboard Addresses ! 41: 1, // 0x23 ADB Set Hang Threshold ! 42: 1, // 0x24 ADB Enable/Disable Programmers Key ! 43: -1,-1,-1, // 0x25 ! 44: 0, // 0x28 ADB Transaction Read ! 45: -1,-1,-1,-1,-1,-1,-1, // 0x29 ! 46: // 0x30 - 0x3F ! 47: 4, // 0x30 Set Realtime Clock. ! 48: 20, // 0x31 Write Parameter RAM ! 49: -1, // 0x32 Write Extended Parameter RAM. ! 50: 3, // 0x33 Write NVRAM ! 51: -1,-1,-1,-1, // 0x34 ! 52: 0, // 0x38 Read Realtime Clock. ! 53: 0, // 0x39 Read Parameter RAM ! 54: 2, // 0x3A Read Extended Parameter RAM. ! 55: 2, // 0x3B Read NVRAM ! 56: -1,-1,-1,-1, // 0x3C ! 57: // 0x40 - 0x4F ! 58: 1, // 0x40 Set Screen Contrast ! 59: 1, // 0x41 Set Screen Brightness ! 60: -1,-1,-1,-1,-1,-1, // 0x42 ! 61: 0, // 0x48 Read Screen Contrast ! 62: 0, // 0x49 Read Screen Brightness ! 63: -1,-1, // 0x4A ! 64: 1, // 0x4C PCMCIA card eject ! 65: -1,-1,-1, // 0x4D ! 66: // 0x50 - 0x5F ! 67: 1, // 0x50 Set Internal Modem Control Bits ! 68: 0, // 0x51 Clear FIFOs ! 69: 2, // 0x52 Set FIFO Interrupt Marks ! 70: 2, // 0x53 Set FIFO Sizes ! 71: -1, // 0x54 Write Data to Modem ! 72: 1, // 0x55 Set Data Mode ! 73: 3, // 0x56 Set Flow Control Mode ! 74: 1, // 0x57 Set DAA control lines ! 75: 0, // 0x58 Read Internal Modem Status ! 76: 1, // 0x59 Get DAA Identification ! 77: 0, // 0x5A Get FIFO Counts ! 78: 0, // 0x5B Get Maximum FIFO Sizes ! 79: 0, // 0x5C Read Data From Modem ! 80: -1, // 0x5D General Purpose modem command (modem dependent) ! 81: -1,-1, // 0x5E ! 82: // 0x60 - 0x6F ! 83: 2, // 0x60 Set low power warning and cutoff levels ! 84: -1, // 0x61 ! 85: 2, // 0x62 Set low power first dialog and 10 second warning levels ! 86: 0, // 0x63 Get low power first dialog and 10 second warning levels ! 87: -1,-1,-1,-1, // 0x64 ! 88: 0, // 0x68 Read Charger State, Battery Voltage, Temperature ! 89: 0, // 0x69 Read Instantaneous Charger, Battery, Temperature ! 90: 0, // 0x6A Read low power warning and cutoff levels ! 91: 0, // 0x6B Read Extended Battery Status ! 92: 0, // 0x6C Read Battery ID ! 93: 0, // 0x6D Battery Parameters ! 94: -1,-1, // 0x6E ! 95: // 0x70 - 0x7F ! 96: 1, // 0x70 Set One-Second Interrupt ! 97: 1, // 0x71 Modem Interrupt Control ! 98: 1, // 0x72 Set Modem Interrupt ! 99: -1,-1,-1,-1,-1, // 0x73 ! 100: 0, // 0x78 Read Interrupt Flag Register. ! 101: 0, // 0x79 Read Modem Interrupt Data ! 102: -1,-1,-1,-1, // 0x7A ! 103: 4, // 0x7E Enter Shutdown Mode ! 104: 4, // 0x7F Enter Sleep Mode ! 105: // 0x80 - 0x8F ! 106: 4, // 0x80 Set Wakeup Timer ! 107: -1, // 0x81 ! 108: 0, // 0x82 Disable Wakeup Timer ! 109: -1,-1,-1,-1,-1, // 0x83 ! 110: 0, // 0x88 Read Wakeup Timer ! 111: -1,-1,-1,-1,-1,-1,-1,// 0x89 ! 112: // 0x90 - 0x9F ! 113: 1, // 0x90 Set Sound Control Bits ! 114: 2, // 0x91 Set DFAC Control Register ! 115: -1,-1,-1,-1,-1,-1, // 0x92 ! 116: 0, // 0x98 Read Sound Control Status ! 117: 0, // 0x99 Read DFAC Control Register ! 118: -1,-1,-1,-1,-1,-1, // 0x9A ! 119: // 0xA0 - 0xAF ! 120: 2, // 0xA0 Write Modem Register ! 121: 2, // 0xA1 Clear Modem Register Bits ! 122: 2, // 0xA2 Set Modem Register Bits ! 123: 4, // 0xA3 Write DSP RAM ! 124: -1, // 0xA4 Set Filter Coefficients ! 125: 0, // 0xA5 Reset Modem ! 126: -1,-1, // 0xA6 ! 127: 1, // 0xA8 Read Modem Register ! 128: 1, // 0xA9 Send Break ! 129: 3, // 0xAA Dial Digit ! 130: 2, // 0xAB Read DSP RAM ! 131: -1,-1,-1,-1, // 0xAC ! 132: -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0xB0 - 0xBF ! 133: -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0xC0 - 0xCF ! 134: // 0xD0 - 0xDF ! 135: 0, // 0xD0 Reset CPU ! 136: -1,-1,-1,-1,-1,-1,-1, // 0xD1 ! 137: 1, // 0xD8 Read A/D Status ! 138: 1, // 0xD9 Read User Input ! 139: -1,-1, // 0xDA ! 140: 0, // 0xDC read external switches ! 141: 0, // 0xDD - ! 142: -1,-1, // 0xDE ! 143: // 0xE0 - 0xEF ! 144: -1, // 0xE0 Write to internal PMGR memory ! 145: 4, // 0xE1 Download Flash EEPROM Code ! 146: 0, // 0xE2 Get Flash EEPROM Status ! 147: -1,-1,-1,-1,-1, // 0xE3 ! 148: 3, // 0xE8 Read PMGR internal memory ! 149: -1, // 0xE9 - ! 150: 0, // 0xEA Read PMGR firmware version number ! 151: -1, // 0xEB - ! 152: 0, // 0xEC Execute self test ! 153: -1, // 0xED PMGR diagnostics (selector-based) ! 154: -1, // 0xEE - ! 155: 0, // 0xEF PMGR soft reset ! 156: // 0xF0 - 0xFF ! 157: -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ! 158: }; ! 159: ! 160: ! 161: ! 162: // This table is used to determine how to handle the reply: ! 163: ! 164: //=0:no reply should be expected. ! 165: //=1: only a reply byte will be sent (this is a special case for a couple of commands) ! 166: //<0:a reply is expected and the PMGR will send a count byte. ! 167: //>1:a reply is expected and the PMGR will not send a count byte, ! 168: //but the count will be (value-1). ! 169: // ! 170: //Unused commands in the range $x8 to $xF will be marked as expecting a reply (with count) ! 171: //so that commands may be added without having to change the ROM. ! 172: ! 173: SInt8 rspLengthTable[256] = { ! 174: // 0x00 - 0x0F ! 175: 0,0,0,0,0,0,0,0, // 0x00 - ! 176: -1,-1,-1,-1,-1,-1,-1,-1, // 0x08 - ! 177: // 0x10 - 0x1F ! 178: 0, // 0x10 Subsystem Power/Clock Control ! 179: 0, // 0x11 Subsystem Power/Clock Control (yet more) ! 180: 0,0,0,0,0,0, // 0x12 - ! 181: 1+1, // 0x18 Read Power/Clock Status ! 182: 1+1, // 0x19 Read Power/Clock Status (yet more) ! 183: -1,-1,-1,-1,-1, // 0x1A - ! 184: 0, // 0x1F RESERVED FOR MSC/PG&E EMULATION ! 185: // 0x20 - 0x2F ! 186: 0, // 0x20 Set New Apple Desktop Bus Command ! 187: 0, // 0x21 ADB Autopoll Abort ! 188: 0, // 0x22 ADB Set Keyboard Addresses ! 189: 0, // 0x23 ADB Set Hang Threshold ! 190: 0, // 0x24 ADB Enable/Disable Programmers Key ! 191: 0,0,0, // 0x25 - ! 192: -1, // 0x28 ADB Transaction Read ! 193: -1,-1,-1,-1,-1,-1,-1, // 0x29 - ! 194: // 0x30 - 0x3F ! 195: 0, // 0x30 Set Realtime Clock. ! 196: 0, // 0x31 Write Parameter RAM ! 197: 0, // 0x32 Write Extended Parameter RAM. ! 198: 0, // 0x33 Write NVRAM ! 199: 0,0,0,0, // 0x34 - ! 200: 4+1, // 0x38 Read Realtime Clock. ! 201: 20+1, // 0x39 Read Parameter RAM ! 202: -1, // 0x3A Read Extended Parameter RAM. ! 203: 1+1, // 0x3B Read NVRAM ! 204: -1,-1,-1,-1, // 0x3C - ! 205: // 0x40 - 0x4F ! 206: 0, // 0x40 Set Screen Contrast ! 207: 0, // 0x41 Set Screen Brightness ! 208: 0,0,0,0,0,0, // 0x42 - ! 209: 1+1, // 0x48 Read Screen Contrast ! 210: 1+1, // 0x49 Read Screen Brightness ! 211: -1,-1, // 0x4A - ! 212: 0, // 0x4C PCMCIA card eject ! 213: -1,-1,-1, // 0x4D - ! 214: // 0x50 - 0x5F ! 215: 0, // 0x50 Set Internal Modem Control Bits ! 216: 0, // 0x51 Clear FIFOs ! 217: 0, // 0x52 Set FIFO Interrupt Marks ! 218: 0, // 0x53 Set FIFO Sizes ! 219: 0, // 0x54 Write Data to Modem ! 220: 0, // 0x55 Set Data Mode ! 221: 0, // 0x56 Set Flow Control Mode ! 222: 0, // 0x57 Set DAA control lines ! 223: 1+1, // 0x58 Read Internal Modem Status ! 224: 0, // 0x59 Get DAA Identification ! 225: 2+1, // 0x5A Get FIFO Counts ! 226: 2+1, // 0x5B Get Maximum FIFO Sizes ! 227: -1, // 0x5C Read Data From Modem ! 228: -1, // 0x5D General Purpose modem command (modem dependent) ! 229: -1,-1, // 0x5E - ! 230: // 0x60 - 0x6F ! 231: 0, // 0x60 Set low power warning and cutoff levels ! 232: 0, // 0x61 - ! 233: 0, // 0x62 Set low power first dialog and 10 second warning levels ! 234: 2+1, // 0x63 Get low power first dialog and 10 second warning levels ! 235: 0,0,0,0, // 0x64 - ! 236: 3+1, // 0x68 Read Charger State, Battery Voltage, Temperature ! 237: 3+1, // 0x69 Read Instantaneous Charger, Battery, Temperature ! 238: 2+1, // 0x6A Read low power warning and cutoff levels ! 239: 8+1, // 0x6B Read Extended Battery Status ! 240: -1, // 0x6C Read Battery ID ! 241: -1, // 0x6D Battery Parameters (10+1 for AJ, 22+1 for Malcolm) ! 242: -1,-1, // 0x6E - ! 243: // 0x70 - 0x7F ! 244: 0, // 0x70 Set One-Second Interrupt ! 245: 0, // 0x71 Modem Interrupt Control ! 246: 0, // 0x72 Set Modem Interrupt ! 247: 0,0,0,0,0, // 0x73 - ! 248: -1, // 0x78 Read Interrupt Flag Register. ! 249: -1, // 0x79 Read Modem Interrupt Data ! 250: -1,-1,-1,-1, // 0x7A - ! 251: 0+1, // 0x7E Enter Shutdown Mode ! 252: 0+1, // 0x7F Enter Sleep Mode ! 253: // 0x80 - 0x8F ! 254: 0, // 0x80 Set Wakeup Timer ! 255: 0, // 0x81 - ! 256: 0, // 0x82 Disable Wakeup Timer ! 257: 0,0,0,0,0, // 0x83 - ! 258: 5+1, // 0x88 Read Wakeup Timer ! 259: -1,-1,-1,-1,-1,-1,-1, // 0x89 - ! 260: // 0x90 - 0x9F ! 261: 0, // 0x90 Set Sound Control Bits ! 262: 0, // 0x91 Set DFAC Control Register ! 263: 0,0,0,0,0,0, // 0x92 - ! 264: 1+1, // 0x98 Read Sound Control Status ! 265: 1+1, // 0x99 Read DFAC Control Register ! 266: 1,-1,-1,-1,-1,-1, // 0x9A - ! 267: // 0xA0 - 0xAF ! 268: 0, // 0xA0 Write Modem Register ! 269: 0, // 0xA1 Clear Modem Register Bits ! 270: 0, // 0xA2 Set Modem Register Bits ! 271: 0, // 0xA3 Write DSP RAM ! 272: 0, // 0xA4 Set Filter Coefficients ! 273: 0, // 0xA5 Reset Modem ! 274: 0,0, // 0xA6 - ! 275: 1+1, // 0xA8 Read Modem Register ! 276: 0, // 0xA9 Send Break ! 277: 0, // 0xAA Dial Digit ! 278: 0, // 0xAB Read DSP RAM ! 279: -1,-1,-1,-1, // 0xAC - ! 280: // 0xB0 - 0xBF ! 281: 0,0,0,0,0,0,0,0, // 0xB0 - ! 282: -1,-1,-1,-1,-1,-1,-1,-1, // 0xB8 - ! 283: // 0xC0 - 0xCF ! 284: 0,0,0,0,0,0,0,0, // 0xC0 - ! 285: -1,-1,-1,-1,-1,-1,-1,-1, // 0xC8 - ! 286: // 0xD0 - 0xDF ! 287: 0,0,0,0,0,0,0,0, // 0xD0 Reset CPU ! 288: 1+1, // 0xD8 Read A/D Status ! 289: 1+1, // 0xD9 Read User Input ! 290: -1,-1, // 0xDA - ! 291: 1+1, // 0xDC read external switches ! 292: -1,-1,-1, // 0xDD - ! 293: // 0xE0 - 0xEF ! 294: 0, // 0xE0 Write to internal PMGR memory ! 295: 0, // 0xE1 Download Flash EEPROM Code ! 296: 0+1, // 0xE2 Get Flash EEPROM Status ! 297: 0,0,0,0,0, // 0xE3 - ! 298: -1, // 0xE8 Read PMGR internal memory ! 299: -1, // 0xE9 - ! 300: 1+1, // 0xEA Read PMGR firmware version number ! 301: -1, // 0xEB - ! 302: -1, // 0xEC Execute self test ! 303: -1, // 0xED PMGR diagnostics (selector-based) ! 304: -1, // 0xEE - ! 305: 0, // 0xEF PMGR soft reset ! 306: // 0xF0 - 0xFF ! 307: 0,0,0,0,0,0,0,0, // 0xF0 - ! 308: -1,-1,-1,-1,-1,-1,-1,-1 // 0xF8 - ! 309: }; ! 310: ! 311:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.