09 Jun 2020
Abfrage des Joysticks am VC-20
Wie ich leider feststellen musste, ist die Abfrage des Joysticks am VC-20 ja leider ein Ding, über das sogar Youtube-Videos gedreht werden. Ich habe hier mal eine Schnell-Lösung.
Syntax ist ACME Assembler. Kann sicher noch optimiert werden.
;; joystick bits are returned in accumulator. x reg is changed.
joystick
ldx #$7f
stx $9122 ;; change DDR PortB
lda $911f ;; Read PortA
lsr ;; bit 1 - up, bit 2 - down, bit 3 - left, bit 4 - fire
eor #$3f ;; bits are inverted
tax
lda $9120 ;; Read PortB
and #$80 ;; bit 7 = right
eor #$80 ;; bit is inverted
beq +
inx ;; bit 0 - right
+ txa
ldx #$ff ;; Restore DDR PortB
stx $9122
rts
Vielleicht trage ich nocheinmal nach, warum das so ist. Hat mit der kruden VC-20-internen Verkabelung zu tun.