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

MOUSE64.SRC

FILE INFORMATION

FILENAME(S): MOUSE64.SRC

FILE TYPE(S): SEQ

FILE SIZE: 1.6K

FIRST SEEN: 2025-10-20 14:30:19

APPEARS ON: 7 disk(s)

FILE HASH

be5b7c9e93e0965e368890787cc45972d781a38c9f02c225694691b5dab386d6

FOUND ON DISKS (7 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
1351 MOUSE DEMOS MOUSE64.SRC SEQ DuncanTwain, Sailor, Pbv, Treasure Chest - Klaus Der Suhler 19 0 DOWNLOAD FILE
MAUSTREIBER MOUSE64.SRC SEQ Treasure Chest - Klaus Der Suhler 17 2 DOWNLOAD FILE
DISK 50 SEITE A MOUSE64.SRC SEQ Treasure Chest - Klaus Der Suhler 19 0 DOWNLOAD FILE
1351 MOUSE DEMOS MOUSE64.SRC SEQ BrainSkull, Thomas Marosits 19 0 DOWNLOAD FILE
1351 MOUSE DEMO MOUSE64.SRC SEQ Sailor, Pbv 17 3 DOWNLOAD FILE
1351 MOUSE DEMOS MOUSE64.SRC SEQ DuncanTwain 19 0 DOWNLOAD FILE
1351 MOUSE DEMOS MOUSE64.SRC SEQ DuncanTwain 19 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 0D 3B 09 53 49 44 20  4D 4F 55 53 45 20 43 36  |;.;.SID MOUSE C6|
00000010: 34 20 42 41 53 49 43 20  43 4F 4D 50 41 54 49 42  |4 BASIC COMPATIB|
00000020: 4C 45 20 44 52 49 56 45  52 0D 3B 0D 49 49 52 51  |LE DRIVER.;.IIRQ|
00000030: 09 3D 20 24 30 33 31 34  0D 56 49 43 09 3D 20 24  |.= $0314.VIC.= $|
00000040: 44 30 30 30 0D 53 49 44  09 3D 20 24 44 34 30 30  |D000.SID.= $D400|
00000050: 0D 50 4F 54 58 09 3D 20  53 49 44 2B 24 31 39 0D  |.POTX.= SID+$19.|
00000060: 50 4F 54 59 09 3D 20 53  49 44 2B 24 31 41 0D 3B  |POTY.= SID+$1A.;|
00000070: 0D 56 49 43 44 41 54 41  09 3D 20 24 44 30 30 30  |.VICDATA.= $D000|
00000080: 09 09 3B 20 42 41 53 49  43 53 20 43 4F 50 59 20  |..; BASICS COPY |
00000090: 4F 46 20 56 49 43 20 52  45 47 49 53 54 45 52 20  |OF VIC REGISTER |
000000A0: 49 4D 41 47 45 0D 58 50  4F 53 09 3D 20 56 49 43  |IMAGE.XPOS.= VIC|
000000B0: 44 41 54 41 2B 24 30 30  09 3B 20 4C 4F 57 20 4F  |DATA+$00.; LOW O|
000000C0: 52 44 45 52 20 58 50 4F  53 49 54 49 4F 4E 0D 59  |RDER XPOSITION.Y|
000000D0: 50 4F 53 09 3D 20 56 49  43 44 41 54 41 2B 24 30  |POS.= VICDATA+$0|
000000E0: 31 09 3B 20 59 20 50 4F  53 49 54 49 4F 4E 0D 58  |1.; Y POSITION.X|
000000F0: 50 4F 53 4D 53 42 09 3D  20 56 49 43 44 41 54 41  |POSMSB.= VICDATA|
00000100: 2B 24 31 30 09 3B 20 42  49 54 20 30 20 49 53 20  |+$10.; BIT 0 IS |
00000110: 48 49 47 48 20 4F 52 44  45 52 20 58 20 50 4F 53  |HIGH ORDER X POS|
00000120: 49 54 49 4F 4E 0D 3B 0D  09 2A 3D 24 43 30 30 30  |ITION.;..*=$C000|
00000130: 0D 49 49 52 51 32 09 2A  3D 2A 2B 32 0D 4F 50 4F  |.IIRQ2.*=*+2.OPO|
00000140: 54 58 09 2A 3D 2A 2B 31  0D 4F 50 4F 54 59 09 2A  |TX.*=*+1.OPOTY.*|
00000150: 3D 2A 2B 31 0D 4E 45 57  56 41 4C 55 45 09 2A 3D  |=*+1.NEWVALUE.*=|
00000160: 2A 2B 31 0D 4F 4C 44 56  41 4C 55 45 09 2A 3D 2A  |*+1.OLDVALUE.*=*|
00000170: 2B 31 0D 3B 0D 09 2A 20  3D 20 24 43 31 30 30 0D  |+1.;..* = $C100.|
00000180: 3B 0D 49 4E 53 54 41 4C  4C 09 4C 44 41 20 49 49  |;.INSTALL.LDA II|
00000190: 52 51 2B 31 0D 09 43 4D  50 20 23 3E 4D 49 52 51  |RQ+1..CMP #>MIRQ|
000001A0: 0D 09 42 45 51 20 39 30  24 0D 09 50 48 50 0D 09  |..BEQ 90$..PHP..|
000001B0: 53 45 49 0D 09 4C 44 41  20 49 49 52 51 0D 09 53  |SEI..LDA IIRQ..S|
000001C0: 54 41 20 49 49 52 51 32  0D 09 4C 44 41 20 49 49  |TA IIRQ2..LDA II|
000001D0: 52 51 2B 31 0D 09 53 54  41 20 49 49 52 51 32 2B  |RQ+1..STA IIRQ2+|
000001E0: 31 0D 0D 09 4C 44 41 20  23 3C 4D 49 52 51 0D 09  |1...LDA #<MIRQ..|
000001F0: 53 54 41 20 49 49 52 51  0D 09 4C 44 41 20 23 3E  |STA IIRQ..LDA #>|
00000200: 4D 49 52 51 0D 09 53 54  41 20 49 49 52 51 2B 31  |MIRQ..STA IIRQ+1|
00000210: 0D 3B 0D 09 50 4C 50 0D  39 30 24 09 52 54 53 0D  |.;..PLP.90$.RTS.|
00000220: 3B 0D 4D 49 52 51 09 43  4C 44 09 09 3B 20 4A 55  |;.MIRQ.CLD..; JU|
00000230: 53 54 20 49 4E 20 43 41  53 45 2E 2E 2E 2E 2E 0D  |ST IN CASE......|
00000240: 09 4C 44 41 20 50 4F 54  58 09 3B 20 47 45 54 20  |.LDA POTX.; GET |
00000250: 44 45 4C 54 41 20 56 41  4C 55 45 53 20 46 4F 52  |DELTA VALUES FOR|
00000260: 20 58 0D 09 4C 44 59 20  4F 50 4F 54 58 0D 09 4A  | X..LDY OPOTX..J|
00000270: 53 52 20 4D 4F 56 43 48  4B 0D 09 53 54 59 20 4F  |SR MOVCHK..STY O|
00000280: 50 4F 54 58 0D 3B 0D 09  43 4C 43 09 09 3B 20 4D  |POTX.;..CLC..; M|
00000290: 4F 44 49 46 59 20 4C 4F  57 20 4F 52 44 45 52 20  |ODIFY LOW ORDER |
000002A0: 58 50 4F 53 49 54 49 4F  4E 0D 09 41 44 43 20 58  |XPOSITION..ADC X|
000002B0: 50 4F 53 0D 09 53 54 41  20 58 50 4F 53 0D 09 54  |POS..STA XPOS..T|
000002C0: 58 41 0D 09 41 44 43 20  23 24 30 30 0D 09 41 4E  |XA..ADC #$00..AN|
000002D0: 44 20 23 25 30 30 30 30  30 30 30 31 0D 09 45 4F  |D #%00000001..EO|
000002E0: 52 20 58 50 4F 53 4D 53  42 0D 09 53 54 41 20 58  |R XPOSMSB..STA X|
000002F0: 50 4F 53 4D 53 42 0D 3B  0D 09 4C 44 41 20 50 4F  |POSMSB.;..LDA PO|
00000300: 54 59 09 3B 20 47 45 54  20 44 45 4C 54 41 20 56  |TY.; GET DELTA V|
00000310: 41 4C 55 45 20 46 4F 52  20 59 0D 09 4C 44 59 20  |ALUE FOR Y..LDY |
00000320: 4F 50 4F 54 59 0D 09 4A  53 52 20 4D 4F 56 43 48  |OPOTY..JSR MOVCH|
00000330: 4B 0D 09 53 54 59 20 4F  50 4F 54 59 0D 3B 0D 09  |K..STY OPOTY.;..|
00000340: 53 45 43 09 09 3B 20 4D  4F 44 49 46 59 20 59 20  |SEC..; MODIFY Y |
00000350: 50 4F 53 49 54 49 4F 4E  20 28 20 44 45 43 52 45  |POSITION ( DECRE|
00000360: 41 53 45 20 59 20 46 4F  52 20 49 4E 43 52 45 53  |ASE Y FOR INCRES|
00000370: 45 20 49 4E 20 50 4F 54  20 29 0D 09 45 4F 52 20  |E IN POT )..EOR |
00000380: 23 24 46 46 0D 09 41 44  43 20 59 50 4F 53 0D 09  |#$FF..ADC YPOS..|
00000390: 53 54 41 20 59 50 4F 53  0D 3B 0D 39 30 24 09 4A  |STA YPOS.;.90$.J|
000003A0: 4D 50 20 28 49 49 52 51  32 29 09 3B 20 43 4F 4E  |MP (IIRQ2).; CON|
000003B0: 54 49 4E 55 45 20 57 2F  20 49 52 51 20 4F 50 45  |TINUE W/ IRQ OPE|
000003C0: 52 41 54 49 4F 4E 0D 3B  0D 3B 20 4D 4F 56 43 48  |RATION.;.; MOVCH|
000003D0: 4B 0D 3B 09 45 4E 54 52  59 09 59 20 3D 20 4F 4C  |K.;.ENTRY.Y = OL|
000003E0: 44 20 56 41 4C 55 45 20  4F 46 20 50 4F 54 20 52  |D VALUE OF POT R|
000003F0: 45 47 49 53 54 45 52 0D  3B 09 09 41 20 3D 20 43  |EGISTER.;..A = C|
00000400: 55 52 52 52 45 4E 54 20  56 41 4C 55 45 20 4F 46  |URRRENT VALUE OF|
00000410: 20 50 4F 54 20 52 45 47  49 53 54 45 52 0D 3B 09  | POT REGISTER.;.|
00000420: 45 58 49 54 09 59 20 3D  20 56 41 4C 55 45 20 54  |EXIT.Y = VALUE T|
00000430: 4F 20 55 53 45 20 46 4F  52 20 4F 4C 44 20 56 41  |O USE FOR OLD VA|
00000440: 4C 55 45 0D 3B 09 09 58  2C 41 20 3D 20 44 45 4C  |LUE.;..X,A = DEL|
00000450: 54 41 20 56 41 4C 55 45  20 46 4F 52 20 50 4F 53  |TA VALUE FOR POS|
00000460: 49 54 49 4F 4E 0D 3B 0D  4D 4F 56 43 48 4B 09 53  |ITION.;.MOVCHK.S|
00000470: 54 59 20 4F 4C 44 56 41  4C 55 45 09 53 41 56 45  |TY OLDVALUE.SAVE|
00000480: 20 4F 4C 44 20 26 20 20  4E 45 57 20 56 41 4C 55  | OLD &  NEW VALU|
00000490: 45 53 0D 09 53 54 41 20  4E 45 57 56 41 4C 55 45  |ES..STA NEWVALUE|
000004A0: 0D 09 4C 44 58 20 23 30  09 09 50 52 45 4C 4F 41  |..LDX #0..PRELOA|
000004B0: 44 20 58 20 57 2F 20 30  0D 3B 0D 09 53 45 43 09  |D X W/ 0.;..SEC.|
000004C0: 09 41 20 3C 3D 20 20 4D  4F 44 36 34 28 20 4E 45  |.A <=  MOD64( NE|
000004D0: 57 2D 4F 4C 44 20 29 0D  09 53 42 43 20 4F 4C 44  |W-OLD )..SBC OLD|
000004E0: 56 41 4C 55 45 0D 09 41  4E 44 20 23 25 30 31 31  |VALUE..AND #%011|
000004F0: 31 31 31 31 31 09 0D 09  43 4D 50 20 23 25 30 31  |11111...CMP #%01|
00000500: 30 30 30 30 30 30 09 49  46 09 3E 20 30 0D 09 42  |000000.IF.> 0..B|
00000510: 43 53 20 35 30 24 0D 09  4C 53 52 20 41 09 09 09  |CS 50$..LSR A...|
00000520: 41 20 3C 3D 20 41 2F 32  0D 09 42 45 51 20 38 30  |A <= A/2..BEQ 80|
00000530: 24 09 09 09 49 46 09 3C  3E 20 30 0D 09 4C 44 59  |$...IF.<> 0..LDY|
00000540: 20 4E 45 57 56 41 4C 55  45 09 09 09 59 20 3C 3D  | NEWVALUE...Y <=|
00000550: 20 4E 45 57 56 41 4C 55  45 0D 09 52 54 53 09 09  | NEWVALUE..RTS..|
00000560: 09 09 52 45 54 55 52 4E  0D 3B 0D 35 30 24 09 4F  |..RETURN.;.50$.O|
00000570: 52 41 20 23 25 31 31 30  30 30 30 30 30 09 45 4C  |RA #%11000000.EL|
00000580: 53 45 09 4F 52 20 49 4E  20 48 49 47 48 20 4F 52  |SE.OR IN HIGH OR|
00000590: 44 45 52 20 42 49 54 53  0D 09 43 4D 50 20 23 24  |DER BITS..CMP #$|
000005A0: 46 46 09 09 49 46 09 3C  3E 20 2D 31 0D 09 42 45  |FF..IF.<> -1..BE|
000005B0: 51 20 38 30 24 0D 09 53  45 43 09 09 09 09 41 20  |Q 80$..SEC....A |
000005C0: 3C 3D 20 41 2F 32 0D 09  52 4F 52 20 41 0D 09 4C  |<= A/2..ROR A..L|
000005D0: 44 58 20 23 24 46 46 09  09 09 58 20 3C 3D 20 2D  |DX #$FF...X <= -|
000005E0: 31 0D 09 4C 44 59 20 4E  45 57 56 41 4C 55 45 09  |1..LDY NEWVALUE.|
000005F0: 09 09 59 20 3C 3D 20 4E  45 57 56 41 4C 55 45 0D  |..Y <= NEWVALUE.|
00000600: 09 52 54 53 09 09 09 09  52 45 54 55 52 4E 0D 3B  |.RTS....RETURN.;|
00000610: 0D 38 30 24 09 4C 44 41  20 23 30 09 09 41 20 3C  |.80$.LDA #0..A <|
00000620: 3D 20 30 0D 09 52 54 53  09 09 52 45 54 55 52 4E  |= 0..RTS..RETURN|
00000630: 20 57 2F 20 59 20 3D 20  4F 4C 44 20 56 41 4C 55  | W/ Y = OLD VALU|
00000640: 45 0D 3B 0D 09 2E 45 4E  44 0D 45                 |E.;...END.E     |
;.;.SID MOUSE C64 BASIC COMPATIBLE DRIVE
R.;.IIRQ.= $0314.VIC.= $D000.SID.= $D400
.POTX.= SID+$19.POTY.= SID+$1A.;.VICDATA
.= $D000..; BASICS COPY OF VIC REGISTER 
IMAGE.XPOS.= VICDATA+$00.; LOW ORDER XPO
SITION.YPOS.= VICDATA+$01.; Y POSITION.X
POSMSB.= VICDATA+$10.; BIT 0 IS HIGH ORD
ER X POSITION.;..*=$C000.IIRQ2.*=*+2.OPO
TX.*=*+1.OPOTY.*=*+1.NEWVALUE.*=*+1.OLDV
ALUE.*=*+1.;..* = $C100.;.INSTALL.LDA II
RQ+1..CMP #>MIRQ..BEQ 90$..PHP..SEI..LDA
 IIRQ..STA IIRQ2..LDA IIRQ+1..STA IIRQ2+
1...LDA #<MIRQ..STA IIRQ..LDA #>MIRQ..ST
A IIRQ+1.;..PLP.90$.RTS.;.MIRQ.CLD..; JU
ST IN CASE.......LDA POTX.; GET DELTA VA
LUES FOR X..LDY OPOTX..JSR MOVCHK..STY O
POTX.;..CLC..; MODIFY LOW ORDER XPOSITIO
N..ADC XPOS..STA XPOS..TXA..ADC #$00..AN
D #%00000001..EOR XPOSMSB..STA XPOSMSB.;
..LDA POTY.; GET DELTA VALUE FOR Y..LDY 
OPOTY..JSR MOVCHK..STY OPOTY.;..SEC..; M
ODIFY Y POSITION ( DECREASE Y FOR INCRES
E IN POT )..EOR #$FF..ADC YPOS..STA YPOS
.;.90$.JMP (IIRQ2).; CONTINUE W/ IRQ OPE
RATION.;.; MOVCHK.;.ENTRY.Y = OLD VALUE 
OF POT REGISTER.;..A = CURRRENT VALUE OF
 POT REGISTER.;.EXIT.Y = VALUE TO USE FO
R OLD VALUE.;..X,A = DELTA VALUE FOR POS
ITION.;.MOVCHK.STY OLDVALUE.SAVE OLD &  
NEW VALUES..STA NEWVALUE..LDX #0..PRELOA
D X W/ 0.;..SEC..A <=  MOD64( NEW-OLD ).
.SBC OLDVALUE..AND #%01111111...CMP #%01
000000.IF.> 0..BCS 50$..LSR A...A <= A/2
..BEQ 80$...IF.<> 0..LDY NEWVALUE...Y <=
 NEWVALUE..RTS....RETURN.;.50$.ORA #%110
00000.ELSE.OR IN HIGH ORDER BITS..CMP #$
FF..IF.<> -1..BEQ 80$..SEC....A <= A/2..
ROR A..LDX #$FF...X <= -1..LDY NEWVALUE.
..Y <= NEWVALUE..RTS....RETURN.;.80$.LDA
 #0..A <= 0..RTS..RETURN W/ Y = OLD VALU
E.;...END.E
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL