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

MOUSE128.SRC

FILE INFORMATION

FILENAME(S): MOUSE128.SRC

FILE TYPE(S): SEQ

FILE SIZE: 1.7K

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

APPEARS ON: 6 disk(s)

FILE HASH

1c42f89151637072f15eaa55f268cc032a9a4773db9a3e4b2b3ad7db43051791

FOUND ON DISKS (6 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
1351 MOUSE DEMOS MOUSE128.SRC SEQ DuncanTwain, Sailor, Pbv, Treasure Chest - Klaus Der Suhler 16 6 DOWNLOAD FILE
DISK 50 SEITE A MOUSE128.SRC SEQ Treasure Chest - Klaus Der Suhler 16 6 DOWNLOAD FILE
1351 MOUSE DEMOS MOUSE128.SRC SEQ BrainSkull, Thomas Marosits 16 6 DOWNLOAD FILE
1351 MOUSE DEMO MOUSE128.SRC SEQ Sailor, Pbv 19 9 DOWNLOAD FILE
1351 MOUSE DEMOS MOUSE128.SRC SEQ DuncanTwain 16 6 DOWNLOAD FILE
1351 MOUSE DEMOS MOUSE128.SRC SEQ DuncanTwain 16 6 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 0D 3B 09 53 49 44 20  4D 4F 55 53 45 20 42 41  |;.;.SID MOUSE BA|
00000010: 53 43 49 20 43 4F 4D 50  41 54 49 42 4C 45 20 44  |SCI COMPATIBLE D|
00000020: 52 49 56 45 52 0D 3B 0D  49 49 52 51 09 3D 20 24  |RIVER.;.IIRQ.= $|
00000030: 30 33 31 34 0D 56 49 43  09 3D 20 24 44 30 30 30  |0314.VIC.= $D000|
00000040: 0D 53 49 44 09 3D 20 24  44 34 30 30 0D 50 4F 54  |.SID.= $D400.POT|
00000050: 58 09 3D 20 53 49 44 2B  24 31 39 0D 50 4F 54 59  |X.= SID+$19.POTY|
00000060: 09 3D 20 53 49 44 2B 24  31 41 0D 3B 0D 41 43 54  |.= SID+$1A.;.ACT|
00000070: 49 56 45 09 3D 20 24 31  31 37 45 09 09 3B 20 49  |IVE.= $117E..; I|
00000080: 46 20 5A 45 52 4F 2C 20  54 48 45 4E 20 4D 4F 56  |F ZERO, THEN MOV|
00000090: 45 20 53 50 52 49 54 45  0D 3B 0D 56 49 43 44 41  |E SPRITE.;.VICDA|
000000A0: 54 41 09 3D 20 24 31 31  44 36 09 09 3B 20 42 41  |TA.= $11D6..; BA|
000000B0: 53 49 43 53 20 43 4F 50  59 20 4F 46 20 56 49 43  |SICS COPY OF VIC|
000000C0: 20 52 45 47 49 53 54 45  52 20 49 4D 41 47 45 0D  | REGISTER IMAGE.|
000000D0: 58 50 4F 53 09 3D 20 56  49 43 44 41 54 41 2B 24  |XPOS.= VICDATA+$|
000000E0: 30 30 09 3B 20 4C 4F 57  20 4F 52 44 45 52 20 58  |00.; LOW ORDER X|
000000F0: 50 4F 53 49 54 49 4F 4E  0D 59 50 4F 53 09 3D 20  |POSITION.YPOS.= |
00000100: 56 49 43 44 41 54 41 2B  24 30 31 09 3B 20 59 20  |VICDATA+$01.; Y |
00000110: 50 4F 53 49 54 49 4F 4E  0D 58 50 4F 53 4D 53 42  |POSITION.XPOSMSB|
00000120: 09 3D 20 56 49 43 44 41  54 41 2B 24 31 30 09 3B  |.= VICDATA+$10.;|
00000130: 20 42 49 54 20 30 20 49  53 20 48 49 47 48 20 4F  | BIT 0 IS HIGH O|
00000140: 52 44 45 52 20 58 20 50  4F 53 49 54 49 4F 4E 0D  |RDER X POSITION.|
00000150: 3B 0D 09 2A 3D 24 31 38  46 30 0D 49 49 52 51 32  |;..*=$18F0.IIRQ2|
00000160: 09 2A 3D 2A 2B 32 0D 4F  50 4F 54 58 09 2A 3D 2A  |.*=*+2.OPOTX.*=*|
00000170: 2B 31 0D 4F 50 4F 54 59  09 2A 3D 2A 2B 31 0D 4E  |+1.OPOTY.*=*+1.N|
00000180: 45 57 56 41 4C 55 45 09  2A 3D 2A 2B 31 0D 4F 4C  |EWVALUE.*=*+1.OL|
00000190: 44 56 41 4C 55 45 09 2A  3D 2A 2B 31 0D 3B 0D 09  |DVALUE.*=*+1.;..|
000001A0: 2A 20 3D 20 24 31 38 30  30 0D 3B 0D 49 4E 53 54  |* = $1800.;.INST|
000001B0: 41 4C 4C 09 4C 44 41 20  49 49 52 51 2B 31 0D 09  |ALL.LDA IIRQ+1..|
000001C0: 43 4D 50 20 23 3E 4D 49  52 51 0D 09 42 45 51 20  |CMP #>MIRQ..BEQ |
000001D0: 39 30 24 0D 09 50 48 50  0D 09 53 45 49 0D 09 4C  |90$..PHP..SEI..L|
000001E0: 44 41 20 49 49 52 51 0D  09 53 54 41 20 49 49 52  |DA IIRQ..STA IIR|
000001F0: 51 32 0D 09 4C 44 41 20  49 49 52 51 2B 31 0D 09  |Q2..LDA IIRQ+1..|
00000200: 53 54 41 20 49 49 52 51  32 2B 31 0D 0D 09 4C 44  |STA IIRQ2+1...LD|
00000210: 41 20 23 3C 4D 49 52 51  0D 09 53 54 41 20 49 49  |A #<MIRQ..STA II|
00000220: 52 51 0D 09 4C 44 41 20  23 3E 4D 49 52 51 0D 09  |RQ..LDA #>MIRQ..|
00000230: 53 54 41 20 49 49 52 51  2B 31 0D 3B 0D 09 50 4C  |STA IIRQ+1.;..PL|
00000240: 50 0D 39 30 24 09 52 54  53 0D 3B 0D 4D 49 52 51  |P.90$.RTS.;.MIRQ|
00000250: 09 43 4C 44 09 09 3B 20  4A 55 53 54 20 49 4E 20  |.CLD..; JUST IN |
00000260: 43 41 53 45 2E 2E 2E 2E  2E 0D 09 4C 44 41 20 41  |CASE.......LDA A|
00000270: 43 54 49 56 45 09 3B 20  49 46 09 42 41 53 49 43  |CTIVE.; IF.BASIC|
00000280: 20 49 53 20 4D 4F 56 45  49 4E 47 20 53 50 52 49  | IS MOVEING SPRI|
00000290: 54 45 0D 09 42 4E 45 20  39 30 24 09 09 3B 09 4C  |TE..BNE 90$..;.L|
000002A0: 45 54 20 42 41 53 49 43  20 48 41 56 45 20 49 54  |ET BASIC HAVE IT|
000002B0: 20 28 A0 57 48 59 20 4E  4F 54 20 3F 20 29 0D 09  | (.WHY NOT ? )..|
000002C0: 4C 44 41 20 50 4F 54 58  09 3B 20 47 45 54 20 44  |LDA POTX.; GET D|
000002D0: 45 4C 54 41 20 56 41 4C  55 45 53 20 46 4F 52 20  |ELTA VALUES FOR |
000002E0: 58 0D 09 4C 44 59 20 4F  50 4F 54 58 0D 09 4A 53  |X..LDY OPOTX..JS|
000002F0: 52 20 4D 4F 56 43 48 4B  0D 09 53 54 59 20 4F 50  |R MOVCHK..STY OP|
00000300: 4F 54 58 0D 3B 0D 09 43  4C 43 09 09 3B 20 4D 4F  |OTX.;..CLC..; MO|
00000310: 44 49 46 59 20 4C 4F 57  20 4F 52 44 45 52 20 58  |DIFY LOW ORDER X|
00000320: 50 4F 53 49 54 49 4F 4E  0D 09 41 44 43 20 58 50  |POSITION..ADC XP|
00000330: 4F 53 0D 09 53 54 41 20  58 50 4F 53 0D 09 54 58  |OS..STA XPOS..TX|
00000340: 41 0D 09 41 44 43 20 23  24 30 30 0D 09 41 4E 44  |A..ADC #$00..AND|
00000350: 20 23 25 30 30 30 30 30  30 30 31 0D 09 45 4F 52  | #%00000001..EOR|
00000360: 20 58 50 4F 53 4D 53 42  0D 09 53 54 41 20 58 50  | XPOSMSB..STA XP|
00000370: 4F 53 4D 53 42 0D 3B 0D  09 4C 44 41 20 50 4F 54  |OSMSB.;..LDA POT|
00000380: 59 09 3B 20 47 45 54 20  44 45 4C 54 41 20 56 41  |Y.; GET DELTA VA|
00000390: 4C 55 45 20 46 4F 52 20  59 0D 09 4C 44 59 20 4F  |LUE FOR Y..LDY O|
000003A0: 50 4F 54 59 0D 09 4A 53  52 20 4D 4F 56 43 48 4B  |POTY..JSR MOVCHK|
000003B0: 0D 09 53 54 59 20 4F 50  4F 54 59 0D 3B 0D 09 53  |..STY OPOTY.;..S|
000003C0: 45 43 09 09 3B 20 4D 4F  44 49 46 59 20 59 20 50  |EC..; MODIFY Y P|
000003D0: 4F 53 49 54 49 4F 4E 20  28 20 44 45 43 52 45 41  |OSITION ( DECREA|
000003E0: 53 45 20 59 20 46 4F 52  20 49 4E 43 52 45 53 45  |SE Y FOR INCRESE|
000003F0: 20 49 4E 20 50 4F 54 20  29 0D 09 45 4F 52 20 23  | IN POT )..EOR #|
00000400: 24 46 46 0D 09 41 44 43  20 59 50 4F 53 0D 09 53  |$FF..ADC YPOS..S|
00000410: 54 41 20 59 50 4F 53 0D  3B 0D 39 30 24 09 4A 4D  |TA YPOS.;.90$.JM|
00000420: 50 20 28 49 49 52 51 32  29 09 3B 20 43 4F 4E 54  |P (IIRQ2).; CONT|
00000430: 49 4E 55 45 20 57 2F 20  49 52 51 20 4F 50 45 52  |INUE W/ IRQ OPER|
00000440: 41 54 49 4F 4E 0D 3B 0D  3B 20 4D 4F 56 43 48 4B  |ATION.;.; MOVCHK|
00000450: 0D 3B 09 45 4E 54 52 59  09 59 20 3D 20 4F 4C 44  |.;.ENTRY.Y = OLD|
00000460: 20 56 41 4C 55 45 20 4F  46 20 50 4F 54 20 52 45  | VALUE OF POT RE|
00000470: 47 49 53 54 45 52 0D 3B  09 09 41 20 3D 20 43 55  |GISTER.;..A = CU|
00000480: 52 52 52 45 4E 54 20 56  41 4C 55 45 20 4F 46 20  |RRRENT VALUE OF |
00000490: 50 4F 54 20 52 45 47 49  53 54 45 52 0D 3B 09 45  |POT REGISTER.;.E|
000004A0: 58 49 54 09 59 20 3D 20  56 41 4C 55 45 20 54 4F  |XIT.Y = VALUE TO|
000004B0: 20 55 53 45 20 46 4F 52  20 4F 4C 44 20 56 41 4C  | USE FOR OLD VAL|
000004C0: 55 45 0D 3B 09 09 58 2C  41 20 3D 20 44 45 4C 54  |UE.;..X,A = DELT|
000004D0: 41 20 56 41 4C 55 45 20  46 4F 52 20 50 4F 53 49  |A VALUE FOR POSI|
000004E0: 54 49 4F 4E 0D 3B 0D 4D  4F 56 43 48 4B 09 53 54  |TION.;.MOVCHK.ST|
000004F0: 59 20 4F 4C 44 56 41 4C  55 45 09 53 41 56 45 20  |Y OLDVALUE.SAVE |
00000500: 4F 4C 44 20 26 20 20 4E  45 57 20 56 41 4C 55 45  |OLD &  NEW VALUE|
00000510: 53 0D 09 53 54 41 20 4E  45 57 56 41 4C 55 45 0D  |S..STA NEWVALUE.|
00000520: 09 4C 44 58 20 23 30 09  09 50 52 45 4C 4F 41 44  |.LDX #0..PRELOAD|
00000530: 20 58 20 57 2F 20 30 0D  3B 0D 09 53 45 43 09 09  | X W/ 0.;..SEC..|
00000540: 41 20 3C 3D 20 20 4D 4F  44 36 34 28 20 4E 45 57  |A <=  MOD64( NEW|
00000550: 2D 4F 4C 44 20 29 0D 09  53 42 43 20 4F 4C 44 56  |-OLD )..SBC OLDV|
00000560: 41 4C 55 45 0D 09 41 4E  44 20 23 25 30 31 31 31  |ALUE..AND #%0111|
00000570: 31 31 31 31 09 0D 09 43  4D 50 20 23 25 30 31 30  |1111...CMP #%010|
00000580: 30 30 30 30 30 09 49 46  09 3E 20 30 0D 09 42 43  |00000.IF.> 0..BC|
00000590: 53 20 35 30 24 0D 09 4C  53 52 20 41 09 09 09 41  |S 50$..LSR A...A|
000005A0: 20 3C 3D 20 41 2F 32 0D  09 42 45 51 20 38 30 24  | <= A/2..BEQ 80$|
000005B0: 09 09 09 49 46 09 3C 3E  20 30 0D 09 4C 44 59 20  |...IF.<> 0..LDY |
000005C0: 4E 45 57 56 41 4C 55 45  09 09 09 59 20 3C 3D 20  |NEWVALUE...Y <= |
000005D0: 4E 45 57 56 41 4C 55 45  0D 09 52 54 53 09 09 09  |NEWVALUE..RTS...|
000005E0: 09 52 45 54 55 52 4E 0D  3B 0D 35 30 24 09 4F 52  |.RETURN.;.50$.OR|
000005F0: 41 20 23 25 31 31 30 30  30 30 30 30 09 45 4C 53  |A #%11000000.ELS|
00000600: 45 09 4F 52 20 49 4E 20  48 49 47 48 20 4F 52 44  |E.OR IN HIGH ORD|
00000610: 45 52 20 42 49 54 53 0D  09 43 4D 50 20 23 24 46  |ER BITS..CMP #$F|
00000620: 46 09 09 49 46 09 3C 3E  20 2D 31 0D 09 42 45 51  |F..IF.<> -1..BEQ|
00000630: 20 38 30 24 0D 09 53 45  43 09 09 09 09 41 20 3C  | 80$..SEC....A <|
00000640: 3D 20 41 2F 32 0D 09 52  4F 52 20 41 0D 09 4C 44  |= A/2..ROR A..LD|
00000650: 58 20 23 24 46 46 09 09  09 58 20 3C 3D 20 2D 31  |X #$FF...X <= -1|
00000660: 0D 09 4C 44 59 20 4E 45  57 56 41 4C 55 45 09 09  |..LDY NEWVALUE..|
00000670: 09 59 20 3C 3D 20 4E 45  57 56 41 4C 55 45 0D 09  |.Y <= NEWVALUE..|
00000680: 52 54 53 09 09 09 09 52  45 54 55 52 4E 0D 3B 0D  |RTS....RETURN.;.|
00000690: 38 30 24 09 4C 44 41 20  23 30 09 09 41 20 3C 3D  |80$.LDA #0..A <=|
000006A0: 20 30 0D 09 52 54 53 09  09 52 45 54 55 52 4E 20  | 0..RTS..RETURN |
000006B0: 57 2F 20 59 20 3D 20 4F  4C 44 20 56 41 4C 55 45  |W/ Y = OLD VALUE|
000006C0: 0D 3B 0D 09 2E 45 4E 44  0D 45                    |.;...END.E      |
;.;.SID MOUSE BASCI COMPATIBLE DRIVER.;.
IIRQ.= $0314.VIC.= $D000.SID.= $D400.POT
X.= SID+$19.POTY.= SID+$1A.;.ACTIVE.= $1
17E..; IF ZERO, THEN MOVE SPRITE.;.VICDA
TA.= $11D6..; BASICS COPY OF VIC REGISTE
R IMAGE.XPOS.= VICDATA+$00.; LOW ORDER X
POSITION.YPOS.= VICDATA+$01.; Y POSITION
.XPOSMSB.= VICDATA+$10.; BIT 0 IS HIGH O
RDER X POSITION.;..*=$18F0.IIRQ2.*=*+2.O
POTX.*=*+1.OPOTY.*=*+1.NEWVALUE.*=*+1.OL
DVALUE.*=*+1.;..* = $1800.;.INSTALL.LDA 
IIRQ+1..CMP #>MIRQ..BEQ 90$..PHP..SEI..L
DA IIRQ..STA IIRQ2..LDA IIRQ+1..STA IIRQ
2+1...LDA #<MIRQ..STA IIRQ..LDA #>MIRQ..
STA IIRQ+1.;..PLP.90$.RTS.;.MIRQ.CLD..; 
JUST IN CASE.......LDA ACTIVE.; IF.BASIC
 IS MOVEING SPRITE..BNE 90$..;.LET BASIC
 HAVE IT ( WHY NOT ? )..LDA POTX.; GET D
ELTA VALUES FOR X..LDY OPOTX..JSR MOVCHK
..STY OPOTX.;..CLC..; MODIFY LOW ORDER X
POSITION..ADC XPOS..STA XPOS..TXA..ADC #
$00..AND #%00000001..EOR XPOSMSB..STA XP
OSMSB.;..LDA POTY.; GET DELTA VALUE FOR 
Y..LDY OPOTY..JSR MOVCHK..STY OPOTY.;..S
EC..; MODIFY Y POSITION ( DECREASE Y FOR
 INCRESE IN POT )..EOR #$FF..ADC YPOS..S
TA YPOS.;.90$.JMP (IIRQ2).; CONTINUE W/ 
IRQ OPERATION.;.; MOVCHK.;.ENTRY.Y = OLD
 VALUE OF POT REGISTER.;..A = CURRRENT V
ALUE OF POT REGISTER.;.EXIT.Y = VALUE TO
 USE FOR OLD VALUE.;..X,A = DELTA VALUE 
FOR POSITION.;.MOVCHK.STY OLDVALUE.SAVE 
OLD &  NEW VALUES..STA NEWVALUE..LDX #0.
.PRELOAD X W/ 0.;..SEC..A <=  MOD64( NEW
-OLD )..SBC OLDVALUE..AND #%01111111...C
MP #%01000000.IF.> 0..BCS 50$..LSR A...A
 <= A/2..BEQ 80$...IF.<> 0..LDY NEWVALUE
...Y <= NEWVALUE..RTS....RETURN.;.50$.OR
A #%11000000.ELSE.OR IN HIGH ORDER BITS.
.CMP #$FF..IF.<> -1..BEQ 80$..SEC....A <
= A/2..ROR A..LDX #$FF...X <= -1..LDY NE
WVALUE...Y <= NEWVALUE..RTS....RETURN.;.
80$.LDA #0..A <= 0..RTS..RETURN W/ Y = O
LD VALUE.;...END.E
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL