_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

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 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL