MOUSE CODE.PAL
FILE INFORMATION
FILENAME(S): MOUSE CODE.PAL
FILE TYPE(S): PRG
FILE SIZE: 2.7K
FIRST SEEN: 2025-11-30 21:12:53
APPEARS ON: 1 disk(s)
FILE HASH
d92f88d89895d2960d458b45670307a99ce963f6367873664c49c40c2423fae2
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| TRANSACTOR DISK | MOUSE CODE.PAL | PRG | DuncanTwain | 28 | 1 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
> DETECTED: COMMODORE BASIC PROGRAM (LOAD ADDRESS $0801)
00000000: 01 08 1B 08 64 00 3B 96 49 4E 45 20 56 41 52 49 |....d.;.INE VARI| 00000010: 41 42 4C 45 20 4C 41 42 45 4C 53 00 3C 08 6E 00 |ABLE LABELS.<.n.| 00000020: 58 B9 20 20 20 20 2E 42 59 54 20 30 20 20 20 20 |X. .BYT 0 | 00000030: 20 20 3B 94 20 58 20 B9 49 54 49 91 00 5D 08 78 | ;. X .ITI..].x| 00000040: 00 59 B9 20 20 20 20 2E 42 59 54 20 30 20 20 20 |.Y. .BYT 0 | 00000050: 20 20 20 3B 94 20 59 20 B9 49 54 49 91 00 83 08 | ;. Y .ITI....| 00000060: 82 00 42 54 4E 53 20 20 20 20 2E 42 59 54 20 30 |..BTNS .BYT 0| 00000070: 20 20 20 20 20 20 3B 94 20 42 54 4E 20 53 54 41 | ;. BTN STA| 00000080: 54 55 53 00 89 08 8C 00 3B 00 A8 08 96 00 3B 53 |TUS.....;.....;S| 00000090: 55 42 52 4F 55 54 49 4E 45 20 A4 20 87 20 9A 52 |UBROUTINE . . .R| 000000A0: 4F 4C 20 50 B0 54 20 32 00 D2 08 A0 00 52 44 50 |OL P.T 2.....RDP| 000000B0: B0 54 20 20 53 45 49 20 20 20 20 20 20 20 20 20 |.T SEI | 000000C0: 3B 4C 4F 43 4B 20 4F 55 54 20 4B 45 59 42 4F 41 |;LOCK OUT KEYBOA| 000000D0: 52 44 00 E4 08 AA 00 4C 44 41 20 23 24 43 30 20 |RD.....LDA #$C0 | 000000E0: 20 20 20 3B 00 01 09 B4 00 53 54 41 20 24 44 43 | ;.....STA $DC| 000000F0: 30 32 20 20 20 3B 53 45 54 20 44 44 52 20 A4 20 |02 ;SET DDR . | 00000100: 87 00 13 09 BE 00 4C 44 41 20 23 24 38 30 20 20 |......LDA #$80 | 00000110: 20 20 3B 00 31 09 C8 00 53 54 41 20 24 44 43 30 | ;.1...STA $DC0| 00000120: 30 20 20 20 3B 87 20 9A 52 4F 4C 20 50 B0 54 20 |0 ;. .ROL P.T | 00000130: 32 00 4F 09 D2 00 4C 44 58 20 23 24 30 30 20 20 |2.O...LDX #$00 | 00000140: 20 20 3B 41 4C 4C 4F 57 20 54 49 4D 45 20 81 00 | ;ALLOW TIME ..| 00000150: 6F 09 DC 00 49 4E 58 3A 42 4E 45 20 AC AB 31 20 |o...INX:BNE ..1 | 00000160: 3B 4C 49 4E 45 53 20 A4 20 53 45 54 54 4C 45 00 |;LINES . SETTLE.| 00000170: 88 09 E6 00 4C 44 58 20 24 44 34 31 39 20 20 20 |....LDX $D419 | 00000180: 3B 87 20 50 4F 54 20 58 00 A1 09 F0 00 4C 44 59 |;. POT X.....LDY| 00000190: 20 24 44 34 31 41 20 20 20 3B 87 20 50 4F 54 20 | $D41A ;. POT | 000001A0: 59 00 B3 09 FA 00 4C 44 41 20 23 24 46 46 20 20 |Y.....LDA #$FF | 000001B0: 20 20 3B 00 D0 09 04 01 53 54 41 20 24 44 43 30 | ;.....STA $DC0| 000001C0: 30 20 20 20 3B 52 45 53 45 54 20 50 B0 54 20 32 |0 ;RESET P.T 2| 000001D0: 00 E2 09 0E 01 52 54 53 20 20 20 20 20 20 20 20 |.....RTS | 000001E0: 20 3B 00 E8 09 18 01 3B 00 12 0A 22 01 3B 53 55 | ;.....;...".;SU| 000001F0: 42 52 4F 55 54 49 4E 45 20 81 20 4D 4F 56 49 4E |BROUTINE . MOVIN| 00000200: 47 20 41 56 45 52 41 47 45 20 41 4C CB 52 49 54 |G AVERAGE AL.RIT| 00000210: 48 4D 00 39 0A 2C 01 41 56 52 47 20 20 20 20 42 |HM.9.,.AVRG B| 00000220: 43 53 20 41 56 52 47 50 20 20 20 3B 8B 20 53 49 |CS AVRGP ;. SI| 00000230: 47 4E 20 B9 49 54 49 56 45 00 60 0A 36 01 41 56 |GN .ITIVE.`.6.AV| 00000240: 52 47 4E 20 20 20 45 B0 20 23 AB 31 20 20 20 20 |RGN E. #.1 | 00000250: 20 3B 8B 20 4E 45 47 41 54 49 56 45 2C 20 44 4F | ;. NEGATIVE, DO| 00000260: 00 7E 0A 40 01 41 44 43 20 23 31 20 20 20 20 20 |.~.@.ADC #1 | 00000270: 20 3B 52 45 56 45 52 53 45 20 53 55 42 54 00 A1 | ;REVERSE SUBT..| 00000280: 0A 4A 01 4C 53 52 20 20 20 20 20 20 20 20 20 3B |.J.LSR ;| 00000290: 41 4C 4C 4F 57 20 48 41 4C 46 AB 57 45 49 47 48 |ALLOW HALF.WEIGH| 000002A0: 54 00 BD 0A 54 01 45 B0 20 23 AB 31 20 20 20 20 |T...T.E. #.1 | 000002B0: 20 3B 49 4E 56 45 52 54 20 42 59 54 45 00 DE 0A | ;INVERT BYTE...| 000002C0: 5E 01 43 4C 43 20 20 20 20 20 20 20 20 20 3B A4 |^.CLC ;.| 000002D0: 20 50 52 45 53 45 52 56 45 20 53 49 47 4E 00 F0 | PRESERVE SIGN..| 000002E0: 0A 68 01 41 44 43 20 23 31 20 20 20 20 20 20 3B |.h.ADC #1 ;| 000002F0: 00 02 0B 72 01 43 4C 43 3A 52 54 53 20 20 20 20 |...r.CLC:RTS | 00000300: 20 3B 00 2D 0B 7C 01 41 56 52 47 50 20 20 20 4C | ;.-.|.AVRGP L| 00000310: 53 52 20 20 20 20 20 20 20 20 20 3B 41 4C 4C 4F |SR ;ALLO| 00000320: 57 20 48 41 4C 46 AB 57 45 49 47 48 54 00 49 0B |W HALF.WEIGHT.I.| 00000330: 86 01 43 4C 43 3A 52 54 53 20 20 20 20 20 3B A4 |..CLC:RTS ;.| 00000340: 20 54 48 45 20 42 59 54 45 00 4F 0B 90 01 3B 00 | THE BYTE.O...;.| 00000350: 6F 0B 9A 01 3B 4D 41 49 4E 20 52 4F 55 54 49 4E |o...;MAIN ROUTIN| 00000360: 45 20 A4 20 87 20 54 48 45 20 53 54 49 43 4B 00 |E . . THE STICK.| 00000370: 88 0B A4 01 53 54 49 43 4B 20 20 20 4A 53 52 20 |....STICK JSR | 00000380: 52 44 50 B0 54 20 20 3B 00 A1 0B AE 01 4C 44 41 |RDP.T ;.....LDA| 00000390: 20 24 44 43 30 30 20 20 20 3B 87 20 50 B0 54 20 | $DC00 ;. P.T | 000003A0: 32 00 C1 0B B8 01 AF 20 23 24 30 43 20 20 20 20 |2...... #$0C | 000003B0: 3B 46 49 4C 54 45 52 20 42 54 4E 20 31 20 26 20 |;FILTER BTN 1 & | 000003C0: 32 00 DC 0B C2 01 45 B0 20 23 24 46 46 20 20 20 |2.....E. #$FF | 000003D0: 20 3B 49 4E 56 45 52 54 20 BC 49 43 00 FB 0B CC | ;INVERT .IC....| 000003E0: 01 53 54 41 20 42 54 4E 53 20 20 20 20 3B 94 20 |.STA BTNS ;. | 000003F0: 42 54 4E 31 20 26 20 42 54 4E 32 00 19 0C D6 01 |BTN1 & BTN2.....| 00000400: 54 58 41 3A 53 45 43 20 20 20 20 20 3B 53 A4 52 |TXA:SEC ;S.R| 00000410: 45 20 58 20 49 4E 20 58 B9 00 35 0C E0 01 53 42 |E X IN X..5...SB| 00000420: 43 20 58 B9 20 20 20 20 3B 55 BF 47 20 41 20 53 |C X. ;U.G A S| 00000430: 49 4D 50 4C 45 00 55 0C EA 01 4A 53 52 20 41 56 |IMPLE.U...JSR AV| 00000440: 52 47 20 20 20 20 3B 4D 4F 56 49 4E 47 20 41 56 |RG ;MOVING AV| 00000450: 45 52 41 47 45 00 6D 0C F4 01 41 44 43 20 58 B9 |ERAGE.m...ADC X.| 00000460: 20 20 20 20 3B 41 4C CB 52 49 54 48 4D 00 86 0C | ;AL.RITHM...| 00000470: FE 01 53 54 41 20 58 B9 20 20 20 20 3B 55 50 44 |..STA X. ;UPD| 00000480: 41 54 45 20 58 B9 00 A4 0C 08 02 54 59 41 3A 53 |ATE X......TYA:S| 00000490: 45 43 20 20 20 20 20 3B 53 A4 52 45 20 59 20 49 |EC ;S.RE Y I| 000004A0: 4E 20 59 B9 00 C0 0C 12 02 53 42 43 20 59 B9 20 |N Y......SBC Y. | 000004B0: 20 20 20 3B 55 BF 47 20 54 48 45 20 53 41 4D 45 | ;U.G THE SAME| 000004C0: 00 DA 0C 1C 02 4A 53 52 20 41 56 52 47 20 20 20 |.....JSR AVRG | 000004D0: 20 3B 41 4C CB 52 49 54 48 4D 00 F5 0C 26 02 41 | ;AL.RITHM...&.A| 000004E0: 44 43 20 59 B9 20 20 20 20 3B AF 20 55 50 44 41 |DC Y. ;. UPDA| 000004F0: 54 45 20 59 B9 00 05 0D 30 02 53 54 41 20 59 B9 |TE Y....0.STA Y.| 00000500: 20 20 20 20 3B 00 0B 0D 3A 02 3B 00 2B 0D 44 02 | ;...:.;.+.D.| 00000510: 3B 4E 4F 57 20 54 45 53 54 20 54 48 45 20 42 55 |;NOW TEST THE BU| 00000520: 54 A4 4E 53 20 AF 20 45 58 49 54 00 45 0D 4E 02 |T.NS . EXIT.E.N.| 00000530: 54 45 53 54 20 20 20 20 4C 44 58 20 23 24 46 46 |TEST LDX #$FF| 00000540: 20 20 20 20 3B 00 60 0D 58 02 53 54 58 20 24 44 | ;.`.X.STX $D| 00000550: 43 30 32 20 20 20 3B 52 45 53 45 54 20 44 44 52 |C02 ;RESET DDR| 00000560: 00 83 0D 62 02 43 4C 49 20 20 20 20 20 20 20 20 |...b.CLI | 00000570: 20 3B 46 49 4E 49 53 48 45 44 20 57 49 54 48 20 | ;FINISHED WITH | 00000580: 50 B0 54 00 9F 0D 6C 02 4C 44 41 20 23 34 20 20 |P.T...l.LDA #4 | 00000590: 20 20 20 20 3B 54 45 53 54 20 42 49 54 20 32 00 | ;TEST BIT 2.| 000005A0: B8 0D 76 02 42 49 54 20 42 54 4E 53 20 20 20 20 |..v.BIT BTNS | 000005B0: 3B 4F 46 20 42 54 4E 53 00 D8 0D 80 02 42 4E 45 |;OF BTNS.....BNE| 000005C0: 20 42 54 4E 31 20 20 20 20 3B 8B 20 42 54 4E 31 | BTN1 ;. BTN1| 000005D0: 20 50 52 45 53 53 45 44 00 F4 0D 8A 02 41 53 4C | PRESSED.....ASL| 000005E0: 20 20 20 20 20 20 20 20 20 3B 54 45 53 54 20 42 | ;TEST B| 000005F0: 49 54 20 33 00 0D 0E 94 02 42 49 54 20 42 54 4E |IT 3.....BIT BTN| 00000600: 53 20 20 20 20 3B 4F 46 20 42 54 4E 53 00 2D 0E |S ;OF BTNS.-.| 00000610: 9E 02 42 4E 45 20 42 54 4E 32 20 20 20 20 3B 8B |..BNE BTN2 ;.| 00000620: 20 42 54 4E 32 20 50 52 45 53 53 45 44 00 4F 0E | BTN2 PRESSED.O.| 00000630: A8 02 52 54 53 20 20 20 20 20 20 20 20 20 3B 45 |..RTS ;E| 00000640: 58 49 54 20 5A B2 31 20 4E 4F 20 42 54 4E 53 00 |XIT Z.1 NO BTNS.| 00000650: 74 0E B2 02 42 54 4E 31 20 20 20 20 4C 44 41 20 |t...BTN1 LDA | 00000660: 23 AB 31 20 20 20 20 20 3B 46 4C 41 47 20 81 20 |#.1 ;FLAG . | 00000670: 42 54 4E 31 00 90 0E BC 02 2E 42 59 54 20 24 32 |BTN1......BYT $2| 00000680: 43 20 20 20 20 20 3B 53 4B 49 50 20 4F 56 45 52 |C ;SKIP OVER| 00000690: 00 B5 0E C6 02 42 54 4E 32 20 20 20 20 4C 44 41 |.....BTN2 LDA| 000006A0: 20 23 31 20 20 20 20 20 20 3B 46 4C 41 47 20 81 | #1 ;FLAG .| 000006B0: 20 42 54 4E 32 00 CF 0E D0 02 52 54 53 20 20 20 | BTN2.....RTS | 000006C0: 20 20 20 20 20 20 3B 45 58 49 54 20 5A B2 30 00 | ;EXIT Z.0.| 000006D0: D5 0E DA 02 3B 00 F5 0E E4 02 3B 4D 41 49 4E 20 |....;.....;MAIN | 000006E0: 52 4F 55 54 49 4E 45 20 A4 20 87 20 54 48 45 20 |ROUTINE . . THE | 000006F0: 4D 4F 55 53 45 00 0E 0F EE 02 4D 4F 55 53 45 20 |MOUSE.....MOUSE | 00000700: 20 20 4A 53 52 20 52 44 50 B0 54 20 20 3B 00 27 | JSR RDP.T ;.'| 00000710: 0F F8 02 4C 44 41 20 24 44 43 30 30 20 20 20 3B |...LDA $DC00 ;| 00000720: 87 20 50 B0 54 20 32 00 42 0F 02 03 AF 20 23 24 |. P.T 2.B.... #$| 00000730: 31 30 20 20 20 20 3B 46 49 4C 54 45 52 20 42 54 |10 ;FILTER BT| 00000740: 4E 31 00 5B 0F 0C 03 53 54 41 20 42 54 4E 53 20 |N1.[...STA BTNS | 00000750: 20 20 20 3B 94 20 42 49 54 20 34 00 74 0F 16 03 | ;. BIT 4.t...| 00000760: 54 58 41 20 20 20 20 20 20 20 20 20 3B 87 20 50 |TXA ;. P| 00000770: 4F 54 20 58 00 93 0F 20 03 42 4D 49 20 4C 4F 57 |OT X... .BMI LOW| 00000780: 20 20 20 20 20 3B 44 49 53 43 45 52 4E 20 53 54 | ;DISCERN ST| 00000790: 41 54 45 00 B6 0F 2A 03 48 49 47 48 20 20 20 20 |ATE...*.HIGH | 000007A0: 4C 44 41 20 23 24 32 30 20 20 20 20 3B 53 45 54 |LDA #$20 ;SET| 000007B0: 20 42 49 54 20 35 00 D2 0F 34 03 2E 42 59 54 20 | BIT 5...4..BYT | 000007C0: 24 32 43 20 20 20 20 20 3B 53 4B 49 50 20 4F 56 |$2C ;SKIP OV| 000007D0: 45 52 00 F3 0F 3E 03 4C 4F 57 20 20 20 20 20 4C |ER...>.LOW L| 000007E0: 44 41 20 23 24 30 30 20 20 20 20 3B 9C 20 42 49 |DA #$00 ;. BI| 000007F0: 54 20 35 00 16 10 48 03 B0 41 20 42 54 4E 53 20 |T 5...H..A BTNS | 00000800: 20 20 20 3B 43 4F 4D 42 49 4E 45 20 42 49 54 53 | ;COMBINE BITS| 00000810: 20 34 20 26 20 35 00 39 10 52 03 4C 53 52 3A 4C | 4 & 5.9.R.LSR:L| 00000820: 53 52 20 20 20 20 20 3B 53 48 8B 54 20 A4 20 42 |SR ;SH.T . B| 00000830: 49 54 53 20 32 20 26 20 33 00 54 10 5C 03 45 B0 |ITS 2 & 3.T.\.E.| 00000840: 20 23 24 46 46 20 20 20 20 3B 49 4E 56 45 52 54 | #$FF ;INVERT| 00000850: 20 BC 49 43 00 73 10 66 03 53 54 41 20 42 54 4E | .IC.s.f.STA BTN| 00000860: 53 20 20 20 20 3B 94 20 42 54 4E 31 20 26 20 42 |S ;. BTN1 & B| 00000870: 54 4E 32 00 9D 10 70 03 3B 4E 4F 57 20 57 45 20 |TN2...p.;NOW WE | 00000880: 48 41 56 45 20 4F 55 52 20 4C 45 46 54 20 AF 20 |HAVE OUR LEFT . | 00000890: 52 49 47 48 54 20 42 55 54 A4 4E 53 21 00 B6 10 |RIGHT BUT.NS!...| 000008A0: 7A 03 4C 44 41 20 24 44 43 30 30 20 20 20 3B 87 |z.LDA $DC00 ;.| 000008B0: 20 50 B0 54 20 32 00 D6 10 84 03 AF 20 23 24 30 | P.T 2...... #$0| 000008C0: 46 20 20 20 20 3B 46 49 4C 54 45 52 20 44 49 52 |F ;FILTER DIR| 000008D0: 45 43 54 49 91 53 00 F7 10 8E 03 43 4D 50 20 23 |ECTI.S.....CMP #| 000008E0: 24 30 46 20 20 20 20 3B 22 41 4E 59 20 4D 4F 56 |$0F ;"ANY MOV| 000008F0: 45 4D 45 4E 54 20 3F 00 16 11 98 03 42 45 51 20 |EMENT ?.....BEQ | 00000900: 45 58 49 54 20 20 20 20 3B 4E 4F 2C 20 46 49 4E |EXIT ;NO, FIN| 00000910: 49 53 48 20 55 50 00 3A 11 A2 03 54 41 58 20 20 |ISH UP.:...TAX | 00000920: 20 20 20 20 20 20 20 3B 59 45 53 2C 20 4D 4F 55 | ;YES, MOU| 00000930: 53 45 20 52 4F 4C 4C 49 4E 47 00 5A 11 AC 03 55 |SE ROLLING.Z...U| 00000940: 50 20 20 20 20 20 20 AF 20 23 31 20 20 20 20 20 |P . #1 | 00000950: 20 3B 43 48 45 43 4B 20 55 50 00 6C 11 B6 03 42 | ;CHECK UP.l...B| 00000960: 4E 45 20 44 4E 20 20 20 20 20 20 3B 00 7C 11 C0 |NE DN ;.|..| 00000970: 03 49 4E 43 20 59 B9 20 20 20 20 3B 00 96 11 CA |.INC Y. ;....| 00000980: 03 44 4E 20 20 20 20 20 20 54 58 41 20 20 20 20 |.DN TXA | 00000990: 20 20 20 20 20 3B 00 B0 11 D4 03 AF 20 23 32 20 | ;...... #2 | 000009A0: 20 20 20 20 20 3B 43 48 45 43 4B 20 44 4F 57 4E | ;CHECK DOWN| 000009B0: 00 C2 11 DE 03 42 4E 45 20 4C 46 54 20 20 20 20 |.....BNE LFT | 000009C0: 20 3B 00 D2 11 E8 03 44 45 43 20 59 B9 20 20 20 | ;.....DEC Y. | 000009D0: 20 3B 00 EC 11 F2 03 4C 46 54 20 20 20 20 20 54 | ;.....LFT T| 000009E0: 58 41 20 20 20 20 20 20 20 20 20 3B 00 06 12 FC |XA ;....| 000009F0: 03 AF 20 23 34 20 20 20 20 20 20 3B 43 48 45 43 |.. #4 ;CHEC| 00000A00: 4B 20 4C 45 46 54 00 18 12 06 04 42 4E 45 20 52 |K LEFT.....BNE R| 00000A10: 48 54 20 20 20 20 20 3B 00 28 12 10 04 44 45 43 |HT ;.(...DEC| 00000A20: 20 58 B9 20 20 20 20 3B 00 42 12 1A 04 52 48 54 | X. ;.B...RHT| 00000A30: 20 20 20 20 20 54 58 41 20 20 20 20 20 20 20 20 | TXA | 00000A40: 20 3B 00 5D 12 24 04 AF 20 23 38 20 20 20 20 20 | ;.].$.. #8 | 00000A50: 20 3B 43 48 45 43 4B 20 52 49 47 48 54 00 6F 12 | ;CHECK RIGHT.o.| 00000A60: 2E 04 42 4E 45 20 45 58 49 54 20 20 20 20 3B 00 |..BNE EXIT ;.| 00000A70: 7F 12 38 04 49 4E 43 20 58 B9 20 20 20 20 3B 00 |..8.INC X. ;.| 00000A80: AA 12 42 04 45 58 49 54 20 20 20 20 4A 4D 50 20 |..B.EXIT JMP | 00000A90: 54 45 53 54 20 20 20 20 3B 54 45 53 54 20 42 55 |TEST ;TEST BU| 00000AA0: 54 A4 4E 20 AF 20 45 58 49 54 00 00 00 |T.N . EXIT... |
....D.;.INE VARIABLE LABELS.<.N.X. .B
YT 0 ;. X .ITI..].X.Y. .BYT 0
;. Y .ITI......BTNS .BYT 0 ;.
BTN STATUS.....;.....;SUBROUTINE . . .R
OL P.T 2.R. .RDP.T SEI ;LOCK OU
T KEYBOARD.....LDA #$C0 ;.....STA $DC
02 ;SET DDR . ......LDA #$80 ;.1.H.
STA $DC00 ;. .ROL P.T 2.O.R.LDX #$00
;ALLOW TIME ..O...INX:BNE ..1 ;LINES .
SETTLE.....LDX $D419 ;. POT X.....LDY
$D41A ;. POT Y.....LDA #$FF ;.P...
STA $DC00 ;RESET P.T 2.....RTS
;.....;...".;SUBROUTINE . MOVING AVERAG
E ALKRITHM.9.,.AVRG BCS AVRGP ;. SI
GN .ITIVE.`.6.AVRGN E. #.1 ;. NEGA
TIVE, DO.~.@.ADC #1 ;REVERSE SUBT..
.J.LSR ;ALLOW HALF.WEIGHT...T.E.
#.1 ;INVERT BYTE...^.CLC ;.
PRESERVE SIGN...H.ADC #1 ;...R.CLC
:RTS ;.-.|.AVRGP LSR ;ALLO
W HALF.WEIGHT.I...CLC:RTS ;. THE BYT
E.O...;.O...;MAIN ROUTINE . . THE STICK.
....STICK JSR RDP.T ;.....LDA $DC00
;. P.T 2.A.... #$0C ;FILTER BTN 1 &
2...B.E. #$FF ;INVERT .IC...L.STA BTN
S ;. BTN1 & BTN2...V.TXA:SEC ;S.R
E X IN X..5...SBC X. ;U.G A SIMPLE.U.
..JSR AVRG ;MOVING AVERAGE.M...ADC X.
;ALKRITHM.....STA X. ;UPDATE X...
...TYA:SEC ;S.RE Y IN Y......SBC Y.
;U.G THE SAME.Z...JSR AVRG ;ALKRIT
HM...&.ADC Y. ;. UPDATE Y....0.STA Y.
;...:.;.+.D.;NOW TEST THE BUT.NS . E
XIT.E.N.TEST LDX #$FF ;.`.X.STX $D
C02 ;RESET DDR...B.CLI ;FINISH
ED WITH P.T...L.LDA #4 ;TEST BIT 2.
..V.BIT BTNS ;OF BTNS.X...BNE BTN1
;. BTN1 PRESSED.....ASL ;TEST B
IT 3.....BIT BTNS ;OF BTNS.-...BNE BT
N2 ;. BTN2 PRESSED.O...RTS ;E
XIT Z.1 NO BTNS.T...BTN1 LDA #.1
;FLAG . BTN1......BYT $2C ;SKIP OVER
...F.BTN2 LDA #1 ;FLAG . BTN2.O.
P.RTS ;EXIT Z.0.U.Z.;.....;MAIN
ROUTINE . . THE MOUSE.....MOUSE JSR RD
P.T ;.'...LDA $DC00 ;. P.T 2.B.... #$
10 ;FILTER BTN1.[...STA BTNS ;. BI
T 4.T...TXA ;. POT X... .BMI LOW
;DISCERN STATE...*.HIGH LDA #$20
;SET BIT 5.R.4..BYT $2C ;SKIP OV
ER...>.LOW LDA #$00 ;. BIT 5...H.
.A BTNS ;COMBINE BITS 4 & 5.9.R.LSR:L
SR ;SH.T . BITS 2 & 3.T.\.E. #$FF
;INVERT .IC.S.F.STA BTNS ;. BTN1 & B
TN2...P.;NOW WE HAVE OUR LEFT . RIGHT BU
T.NS!...Z.LDA $DC00 ;. P.T 2.V.... #$0
F ;FILTER DIRECTI.S.....CMP #$0F ;
"ANY MOVEMENT ?.....BEQ EXIT ;NO, FIN
ISH UP.:...TAX ;YES, MOUSE ROLLI
NG.Z...UP . #1 ;CHECK UP.L...B
NE DN ;.|...INC Y. ;...J.DN
TXA ;...T.. #2 ;CHECK DOWN
.B...BNE LFT ;.R...DEC Y. ;.....L
FT TXA ;...... #4 ;CHEC
K LEFT.....BNE RHT ;.(...DEC X. ;
.B...RHT TXA ;.].$.. #8
;CHECK RIGHT.O...BNE EXIT ;..8.INC
X. ;...B.EXIT JMP TEST ;TEST BU
T.N . EXIT...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL