64kramsystem / 64kramsystem/ghidra-vice-connector

Keyboard input injection via BMP (0x72)

Đang mở
#30 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
priority: low
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á.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.