Last active
November 30, 2020 05:29
-
-
Save tlindner/bcbd9d3a7cb3a1b9b1b4765151c76807 to your computer and use it in GitHub Desktop.
Disassembled joystick reading routine of Photon for the CoCo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SETDP $7F | |
65B7: 96 57 LDA $57 | |
65B9: 26 51 BNE $660C Branch if Z = 0 | |
65BB: 86 08 LDA #$08 | |
65BD: 97 57 STA $57 | |
65BF: 8E FF 00 LDX #$FF00 | |
65C2: 10 8E FF 01 LDY #$FF01 | |
65C6: CE FF 20 LDU #$FF20 | |
65C9: CC 34 0C LDD #$340C | |
65CC: 1A 40 ORCC #$40 inhibit firq | |
65CE: A7 43 STA $3,U 2nd PIA, set CB2 low. Disable Sound. | |
65D0: A6 C4 LDA ,U Read DAC | |
65D2: 97 56 STA $56 store it. | |
65D4: E7 C4 STB ,U set DAC to 3 | |
65D6: A6 84 LDA ,X get 1st PIA port A | |
65D8: 2A 33 BPL $660D Branch if N = 0. Branch if DAC is higher than JOY. | |
65DA: 86 F4 LDA #$F4 | |
65DC: A7 C4 STA ,U set DAC to 61 | |
65DE: 86 3C LDA #$3C | |
65E0: A7 A4 STA ,Y 1st PIA, set CA2 high. Vertical. Changes MUX in 140ns. | |
65E2: A6 84 LDA ,X get 1st PIA port A | |
65E4: 2B 36 BMI $661C Branch if N = 1. Branch if DAC is lower than JOY. | |
65E6: 86 20 LDA #$20 | |
65E8: A7 C4 STA ,U Set DAC to 8 | |
65EA: 12 NOP | |
65EB: 12 NOP | |
65EC: 12 NOP | |
65ED: 12 NOP | |
65EE: A6 84 LDA ,X | |
65F0: 2A 3D BPL $662F Branch if N = 0. Branch if DAC is higher than JOY. | |
65F2: 86 E0 LDA #$E0 | |
65F4: A7 C4 STA ,U set DAC to 56 | |
65F6: 86 34 LDA #$34 | |
65F8: A7 A4 STA ,Y 1st PIA, set CA2 low. Horizontal. Changes MUX in 140ns. | |
65FA: A6 84 LDA ,X | |
65FC: 2B 42 BMI $6640 Branch if N = 1. Branch if DAC is lower than JOY. | |
65FE: 96 56 LDA $56 retrieve stored value | |
6600: A7 C4 STA ,U set DAC to ? | |
6602: 86 3C LDA #$3C | |
6604: A7 43 STA $3,U 2nd PIA, set CB2 high. Enable Sound. Changes MUX in 140ns. | |
6606: 1C BF ANDCC #$BF un-inhibit firq | |
6608: C6 FF LDB #$FF | |
660A: D7 56 STB $56 $FF = don't move | |
660C: 39 RTS | |
660D: 96 56 LDA $56 retrieve stored value | |
660F: A7 C4 STA ,U set DAC to ? | |
6611: 86 3C LDA #$3C | |
6613: A7 43 STA $3,U 2nd PIA, set CB2 high. Enable Sound. Changes MUX in 140ns. | |
6615: 1C BF ANDCC #$BF un-inhibit firq | |
6617: C6 06 LDB #$06 | |
6619: D7 56 STB $56 6 = go left | |
661B: 39 RTS | |
661C: 86 34 LDA #$34 | |
661E: A7 A4 STA ,Y 1st PIA, set CA2 low. Horizontal. Changes MUX in 140ns. | |
6620: 96 56 LDA $56 retrieve stored value | |
6622: A7 C4 STA ,U Set DAC to ? | |
6624: 86 3C LDA #$3C | |
6626: A7 43 STA $3,U 2nd PIA, set CA2 high. Changes MUX in 140ns. | |
6628: 1C BF ANDCC #$BF un-inhibit firq | |
662A: C6 02 LDB #$02 | |
662C: D7 56 STB $56 2 = go right (change to 4) | |
662E: 39 RTS | |
662F: 86 34 LDA #$34 | |
6631: A7 A4 STA ,Y 1st PIA, set CA2 low. Horizontal. Changes MUX in 140ns. | |
6633: 96 56 LDA $56 retrieve stored value | |
6635: A7 C4 STA ,U Set DAC to ? | |
6637: 86 3C LDA #$3C | |
6639: A7 43 STA $3,U 2nd PIA, set CA2 high. Changes MUX in 140ns. | |
663B: 1C BF ANDCC #$BF un-inhibit firq | |
663D: 0F 56 CLR $56 0 = go up (change to 2) | |
663F: 39 RTS | |
6640: 96 56 LDA $56 retrieve stored value | |
6642: A7 C4 STA ,U set DAC to ? | |
6644: 86 3C LDA #$3C | |
6646: A7 43 STA $3,U 2nd PIA, set CB2 high. Enable Sound. | |
6648: 1C BF ANDCC #$BF un-inhibit firq | |
664A: C6 04 LDB #$04 4 = go down (change to 0) | |
664C: D7 56 STB $56 | |
664E: 39 RTS |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment