X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=converter%2Fpc98_usb%2Fconfig.h;h=b7a00ed7bd51bdc82476dc9b6f68b3b34be69709;hb=f016476d83b86737fa9bffd26c08f7ede4bf0805;hp=6f9f8fc3cf17d948634cc7730dfaa3e924a62c40;hpb=eb776c1b7918f320b717cedfd8957f55e53c5adf;p=max%2Ftmk_keyboard.git diff --git a/converter/pc98_usb/config.h b/converter/pc98_usb/config.h index 6f9f8fc3..b7a00ed7 100644 --- a/converter/pc98_usb/config.h +++ b/converter/pc98_usb/config.h @@ -19,79 +19,119 @@ along with this program. If not, see . #define CONFIG_H #define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3333 -#define DEVICE_VER 0x0100 +#define PRODUCT_ID 0x9801 +#define DEVICE_VER 0x0101 #define MANUFACTURER t.m.k. #define PRODUCT PC98 keyboard converter #define DESCRIPTION converts PC98 keyboard protocol into USB /* matrix size */ -#define MATRIX_ROWS 16 -#define MATRIX_COLS 8 - +#define MATRIX_ROWS 16 +#define MATRIX_COLS 8 /* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) || \ - keyboard_report->mods == (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) || \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +#define IS_COMMAND() ( \ + matrix_is_on(12, 0) || /* STOP */ \ + keyboard_report->mods == (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) \ ) -/* PC98 control */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Control LED indicatiors, which doesn't work well with locking support */ +#define PC98_LED_CONTROL + + +/* PC98 Reset Port shared with TXD */ #define PC98_RST_DDR DDRD #define PC98_RST_PORT PORTD -#define PC98_RST_BIT 1 +#define PC98_RST_BIT 3 +/* PC98 Ready Port */ #define PC98_RDY_DDR DDRD #define PC98_RDY_PORT PORTD #define PC98_RDY_BIT 4 +/* PC98 Retry Port */ #define PC98_RTY_DDR DDRD #define PC98_RTY_PORT PORTD -#define PC98_RTY_BIT 5 +#define PC98_RTY_BIT 1 -/* Serial(USART) configuration - * asynchronous, negative logic, 19200baud, no flow control +/* + * PC98 Serial(USART) configuration + * asynchronous, positive logic, 19200baud, bit order: LSB first * 1-start bit, 8-data bit, odd parity, 1-stop bit */ -#define SERIAL_BAUD 19200 -#define SERIAL_PARITY_ODD -#define SERIAL_BIT_ORDER_LSB - -#define SERIAL_RXD_DDR DDRD -#define SERIAL_RXD_PORT PORTD -#define SERIAL_RXD_PIN PIND -#define SERIAL_RXD_BIT 2 -#define SERIAL_RXD_VECT INT2_vect -#define SERIAL_RXD_INIT() do { \ + +/* + * Software Serial + * Add protocol/serial_soft.c to SRC in Makefile + */ +#define SERIAL_SOFT_BAUD 19200 +#define SERIAL_SOFT_PARITY_ODD +#define SERIAL_SOFT_BIT_ORDER_LSB +#define SERIAL_SOFT_LOGIC_POSITIVE +/* RXD Port */ +#define SERIAL_SOFT_RXD_DDR DDRD +#define SERIAL_SOFT_RXD_PORT PORTD +#define SERIAL_SOFT_RXD_PIN PIND +#define SERIAL_SOFT_RXD_BIT 2 +#define SERIAL_SOFT_RXD_READ() (SERIAL_SOFT_RXD_PIN&(1<>8); /* baud rate */ \ + UCSR1B |= (1<