GBDK - отправка данных из RaspPi через кабель связи GB

Я провел некоторое время в папке «examples» в gbdk, и у меня возникло несколько вопросов, связанных с примером «comm.c», с которыми я надеялся, что кто-то может мне помочь.

Во-первых, я бы предположил, что отправка буфера данных с Raspberry Pi на Gameboy через кабель последовательной связи потребует отправки его с тактовой частотой gameboy. Я понимаю, что контакт 5 кабеля является контактом часов, но я не уверен, как мне пришлось бы адаптировать свой код Python на моем Raspberry Pi, чтобы иметь возможность отправлять на него. Я понимаю, что тактовая частота старых Gameboys (которые я использую для этого проекта) составляет 8192 Гц. Я бы предположил, что мне просто нужно проверить нарастающий фронт часов перед отправкой данных, но я не был уверен, придется ли мне каким-то образом изменить скорость передачи (если такая вещь существует на raspPi) для правильной отправки информации.

Кроме того, пример comm.c, кажется, представляет собой отличный пример того, как отправлять / получать данные из ГБ в ГБ через соединительный кабель. Хотя кажется, что в сборке, на которой написана библиотека, скрыто много деталей. Если бы я хотел написать программу на python для взаимодействия с gameboy или хотя бы просто пересылать байты, как я мог бы этого добиться? В этом примере кажется, что метод send_byte автоматически отправляет данные в буфер _io_out по кабелю, а оператор while(_io_status == IO_SENDING && joypad() == 0) используется для ожидания полной отправки. Затем проверяется _io_status, чтобы убедиться, что данные были отправлены правильно.

Присмотревшись к сборке send_byte из serial.s, я получаю следующий код:

          ;; Send byte in __io_out to the serial port
.send_byte:
_send_byte::
    LD  A,#.IO_SENDING
    LD  (__io_status),A ; Store status
    LD  A,#0x01
    LDH (.SC),A     ; Use internal clock
    LD  A,(__io_out)
    LDH (.SB),A     ; Send data byte
    LD  A,#0x81
    LDH (.SC),A     ; Use internal clock
    RET

Я хотел бы иметь возможность реализовать эту функциональность в скрипте python, который будет отправлять байты в мою программу gb, но я не совсем уверен, как это сделать. Я не очень уверен в сборке, и мне нужно лучше понять, как работает этот фрагмент кода, я думаю, прежде чем я смогу заставить последовательную передачу работать так, как я хочу. Любая помощь приветствуется :)

РЕДАКТИРОВАТЬ: Кроме того, если я хочу иметь возможность отправлять байт из моего rasp pi в мой gameboy с помощью нажатия кнопки, например, будет ли моя программа gb должна иметь постоянное состояние ввода-вывода IO_RECEIVING?

0 ответов

Другие вопросы по тегам