64kramsystem / 64kramsystem/ghidra-vice-connector
Keyboard input injection via BMP (0x72)
- Ngôn ngữ chính
- Python
- Star
- 1
- Fork
- 0
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
## Summary
Inject PETSCII text into the C64 keyboard buffer from Ghidra. Useful for typing BASIC commands, entering game passwords, or triggering text-based input handlers during a debugging session without switching focus to VICE.
Source: VICE BMP `Keyboard Feed` (0x72); confirmed in VICE source `src/monitor/monitor_binary.c`.
---
## BMP protocol details
**Command:** `CMD_KEYBOARD_FEED = 0x72`
Request payload:
```
text_len (2 LE)
text (text_len bytes, PETSCII encoding)
```
Response: standard ACK. VICE inserts the bytes into the keyboard buffer as if typed.
**PETSCII encoding notes:**
- Uppercase letters: same as ASCII (`A`=0x41)
- Lowercase letters in PETSCII graphics mode: offset; in text mode same as ASCII
- Common control chars: `RETURN`=0x0D, `SPACE`=0x20, `HOME`=0x13, `CLR`=0x93, `RUN`=0x83
- For plain ASCII text injected as BASIC input, standard ASCII bytes work for printable chars
---
## Implementation plan
### 1. `util.py`
```python
CMD_KEYBOARD_FEED = 0x72
def keyboard_feed(self, text: str):
"""
Inject text into the VICE keyboard buffer.
`text` should be ASCII; for RETURN append '\\r'.
"""
enc = text.encode('ascii')
payload = struct.pack('
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Đánh giá
Issue này chưa được đánh giá.