Skip to main content
Home Documents ADB Powerkey Rebound.Md
Powerkey Rebound.Md

Powerkey Rebound.Md

ADB · MD
Filenamepowerkey_rebound.md
Size0.00 MB
Subsection tashnotes_adb / other
Downloads3
Enjoying MacTrove? Anonymous downloads are free and unlimited. Create a free account to track favorites, contribute metadata corrections, and join the community chat.
Contents
# PowerKey Rebound!

This document contains experimentally-observed behavior of the ADB protocol of the Sophisticated Circuits PowerKey Rebound! (PKRB-M). It contains enough information to satisfactorally emulate the device, however, a few unknowns exist.

The Rebound!'s default address is 0x7 and its default handler ID is 0x87.

## ADB Registers

The Rebound! has eight registers that are accessed using ADB registers 1 and 2.  ADB register 1 controls which Rebound! register is reflected in ADB register 2 - Listen 2 will set the contents of the register, Talk 2 will read the contents of the register.

## Rebound! Registers

### Register 0

16 bits in length, purpose unknown, default value 0x0102.  Version 1.1 of the software does not read it.

### Register 1

16 bits in length, purpose unknown, default value 0x1000.  Version 1.1 of the software reads it when the extension is loaded.

### Register 2

32 bits in length, contains the serial number of the Rebound! dongle.  Version 1.1 of the software reads it when the extension is loaded.

### Registers 3-5

Register 3 is 16 bits in length and contains a counter which decrements by 1 once per second.  When it reaches 0, if register 5 is nonzero, register 5 is decremented, register 3 is set to the value in register 4, and the Mac is restarted by a Cmd-Ctrl-Reset keystroke emulated on the keyboard.  If register 5 is zero when register 3 decrements to zero, registers 3 and 5 remain at zero and the Mac is not restarted.

Version 1.1 of the software, by default, sets registers 3 and 4 to 0x11E (286) and register 5 to 1, then sets register 3 to 0x11E once per minute.

### Register 6

16 bits in length, purpose unknown, default value 0x0000.  Version 1.1 of the software does not read it.

### Register 7

16 bits in length, purpose unknown, default value 0x0000.  Version 1.1 of the software does not read it.
Home Documents ADB Jlc Media Control Station.Md
Jlc Media Control Station.Md

Jlc Media Control Station.Md

ADB · MD
Filenamejlc_media_control_station.md
Size0.01 MB
Subsection tashnotes_adb / other
Downloads4
Enjoying MacTrove? Anonymous downloads are free and unlimited. Create a free account to track favorites, contribute metadata corrections, and join the community chat.
Contents
# JLCooper Media Control Station

This document contains experimentally-observed behavior of the JLCooper Media Control Station. It contains enough information to program the device, however, some unknowns exist.

The device's default address is 0x7 and its default handler ID is 0x41, though much of the effect of using its controls is given as responses to Talk 0 commands on addresses 0x2 and 0x3, which are assumed to represent the keyboard and mouse, respectively.

## Selecting Banks

This is done with Listen 2 with the following payloads:

| Payload   | Bank Selected  |
| --------- | -------------- |
| 0x80 0x00 | Default bank 0 |
| 0xA0 0x00 | Default bank 1 |
| 0xC0 0x00 | Custom bank 0  |
| 0xE0 0x00 | Custom bank 1  |

Custom banks are stored in non-volatile memory.  Custom Bank 0 is selected on startup regardless of the last selected bank.

### Default Bank 0

Default Bank 0 contains idiosyncratic codes, most of which are read through Talk 0 commands on the MCS's own address.

### Default Bank 1

Default Bank 1 assigns the jog wheel to horizontal mouse movement and assigns the buttons as such:

| Button   | No Modifier | Shift    | Option    | Both            |
| -------- | ----------- | -------- | --------- | --------------- |
| (<<)     | F1          | Shift+F1 | Option+F1 | Shift+Option+F1 |
| (>>)     | F2          | Shift+F2 | Option+F2 | Shift+Option+F2 |
| (Stop)   | F3          | Shift+F3 | Option+F3 | Shift+Option+F3 |
| (Play)   | F4          | Shift+F4 | Option+F4 | Shift+Option+F4 |
| (Record) | F5          | Shift+F5 | Option+F5 | Shift+Option+F5 |

## Custom Banks

### Reading

When a custom bank is selected, 12 successive Talk 2 commands will read out the contents of the custom bank, four bytes at a time.

### Writing

Writing a custom bank is done with Listen 2 commands of five bytes each.  The first byte controls where the next four are to be written:

| Bit | Description                         |
| --- | ----------------------------------- |
| 7   | Always 0                            |
| 6   | Number of custom bank to be written |
| 5:0 | Offset within bank (multiple of 4)  |

### Memory Layout

| Offset | +0                           | +1                           | +2                           | +3                           |
| ------ | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
| 0x00   | (<<) Modifier                | (<<) Key Code                | (>>) Modifier                | (>>) Key Code                |
| 0x04   | (Stop) Modifier              | (Stop) Key Code              | (Play) Modifier              | (Play) Key Code              |
| 0x08   | (Record) Modifier            | (Record) Key Code            | Shift+(<<) Modifier          | Shift+(<<) Key Code          |
| 0x0C   | Shift+(>>) Modifier          | Shift+(>>) Key Code          | Shift+(Stop) Modifier        | Shift+(Stop) Key Code        |
| 0x10   | Shift+(Play) Modifier        | Shift+(Play) Key Code        | Shift+(Record) Modifier      | Shift+(Record) Key Code      |
| 0x14   | Option+(<<) Modifier         | Option+(<<) Key Code         | Option+(>>) Modifier         | Option+(>>) Key Code         |
| 0x18   | Option+(Stop) Modifier       | Option+(Stop) Key Code       | Option+(Play) Modifier       | Option+(Play) Key Code       |
| 0x1C   | Option+(Record) Modifier     | Option+(Record) Key Code     | Shift+Option+(<<) Modifier   | Shift+Option+(<<) Key Code   |
| 0x20   | Shift+Option+(>>) Modifier   | Shift+Option+(>>) Key Code   | Shift+Option+(Stop) Modifier | Shift+Option+(Stop) Key Code |
| 0x24   | Shift+Option+(Play) Modifier | Shift+Option+(Play) Key Code | Ignored                      | Ignored                      |
| 0x28   | Always 0x00                  | Jog Wheel Mode               | Always 0x00                  | Shift+Jog Wheel Mode         |
| 0x2C   | Always 0x00                  | Option+Jog Wheel Mode        | Always 0x00                  | Option+Shift+Jog Wheel Mode  |

### Modifier Key Bitmap

| Bit | Description  |
| --- | ------------ |
| 7:6 | Undetermined |
| 5   | Mouse button |
| 4   | Control      |
| 3   | Option       |
| 2   | Undetermined |
| 1   | Shift        |
| 0   | Command      |

### Jog Wheel Modes

| Mode | Description                                                                                                |
| ---- | ---------------------------------------------------------------------------------------------------------- |
| 0x00 | Jog wheel moves mouse horizontally                                                                         |
| 0x01 | Jog wheel moves mouse vertically                                                                           |
| 0x02 | Jog wheel presses 4 on numeric keypad when turned anticlockwise, + on numeric keypad when turned clockwise |
| 0x03 | Jog wheel moves mouse horizontally while holding down command key                                          |
| 0x05 | Talk 0 produces 0x3F 0xFF 0xFF when turned anticlockwise, 0x3F 0x00 0x01 when turned clockwise             |
| 0x06 | Talk 0 produces 0x3F plus 16-bit relative numbers (negative for anticlockwise, positive for clockwise)     |
| 0x07 | Jog wheel in apparent shuttle mode, behavior not understood                                                |
| 0x08 | Jog wheel presses left arrow when turned anticlockwise, right arrow when turned clockwise                  |
Home Documents ADB Powerkey.Md
Powerkey.Md

Powerkey.Md

ADB · MD
Filenamepowerkey.md
Size0.00 MB
Subsection tashnotes_adb / other
Downloads4
Enjoying MacTrove? Anonymous downloads are free and unlimited. Create a free account to track favorites, contribute metadata corrections, and join the community chat.
Contents
# PowerKey

This document contains experimentally-observed behavior of the ADB protocol of the Sophisticated Circuits PowerKey Classic (PK-1). It contains enough information to satisfactorally emulate the device, however, a few unknowns exist.

The PowerKey's default address is 0x7 and its default handler ID is 0x22.

## Register 0

Register 0 is a 16-bit register.  Its upper byte can be written by the host using a Listen 0 command, however its lower byte is read-only and its value in the Listen 0 command will be ignored.  Register 0 can only be read when its bit 8 is set, otherwise Talk 0 produces no reply.

| Bit  | Description                                                                                          |
| ---- | ---------------------------------------------------------------------------------------------------- |
| 15:9 | Undetermined, appears to always be set to 0                                                          |
| 8    | If set, Talk 0 returns the contents of register 0; if clear, it returns nothing                      |
| 7    | If set, relay is closed and outlets are powered; if clear, relay is open and outlets are not powered |
| 6    | If set, relay was last closed as a result of register 1 overflowing                                  |
| 5    | If set, relay was last closed as a result of the power key being pressed on the keyboard             |
| 4:2  | Undetermined, appears to always be set to 0                                                          |
| 1:0  | Undetermined, appears to always be set to 1                                                          |

## Registers 1 and 2

Registers 1 and 2 are both readable (with Talk) and writable (with Listen) 32-bit timers which increment 60 times per second when their high byte is nonzero.  When register 1 overflows from 0xFFFFFFFF to 0, if the relay was open, it closes and sets bits 7 and 6 of register 0.  When register 2 overflows from 0xFFFFFFFF to 0, if the relay was closed, it opens and clears bits 7, 6, and 5 of register 0.

## Register 3

The Exceptional Event bit is always set.  The Service Request Enable bit is always clear.

## Device Information

The software always appears to report the PowerKey Classic as having a serial number of 0 and a firmware revision of 1.4.  No register on the device appears to contain this information.
Subscribe to other
mp.ls