MOUSEWARE.SRC
FILE INFORMATION
FILENAME(S): MOUSEWARE.SRC
FILE TYPE(S): PRG
FILE SIZE: 4.9K
FIRST SEEN: 2025-10-20 14:31:04
APPEARS ON: 3 disk(s)
FILE HASH
8fe9b3faeb198c46fce9d1c0cd555df9eb6896a46d551011edf78fb7c013069e
FOUND ON DISKS (3 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| GRUNDW NACHDRUCK | MOUSEWARE.SRC | PRG | Treasure Chest - Klaus Der Suhler | 9 | 0 | DOWNLOAD FILE |
| GRUNDWERKSDISK 2 | MOUSEWARE.SRC | PRG | Treasure Chest - Klaus Der Suhler | 23 | 1 | DOWNLOAD FILE |
| GRUNDW NACHDRUCK | MOUSEWARE.SRC | PRG | Treasure Chest - Klaus Der Suhler | 9 | 0 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 6E 13 3B 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |n.;*************| 00000010: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000020: 2A 2A 2A 2A 00 3B 2A 20 4D 4F 55 53 45 57 41 52 |****.;* MOUSEWAR| 00000030: 45 20 4F 4E 20 54 48 45 20 43 4F 4D 4D 4F 44 4F |E ON THE COMMODO| 00000040: 52 45 20 36 34 20 2A 00 3B 2A 20 3D 3D 3D 3D 3D |RE 64 *.;* =====| 00000050: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D |================| 00000060: 3D 3D 3D 3D 3D 3D 3D 3D 20 2A 00 3B 2A 20 20 20 |======== *.;* | 00000070: 20 20 43 4F 50 59 52 49 47 48 54 20 28 43 29 20 | COPYRIGHT (C) | 00000080: 31 39 38 33 20 42 59 20 20 20 20 20 2A 00 3B 2A |1983 BY *.;*| 00000090: 20 20 20 20 20 20 20 20 20 20 4E 41 54 48 41 4E | NATHAN| 000000A0: 53 4F 46 54 20 20 20 20 20 20 20 20 20 20 20 2A |SOFT *| 000000B0: 00 3B 2A 20 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D |.;* ============| 000000C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D |================| 000000D0: 3D 20 2A 00 3B 2A 20 41 55 54 48 4F 52 3A 20 52 |= *.;* AUTHOR: R| 000000E0: 41 49 4E 45 52 20 4B 4F 45 4E 49 47 20 20 20 20 |AINER KOENIG | 000000F0: 20 20 20 20 20 2A 00 3B 2A 20 20 20 20 20 20 20 | *.;* | 00000100: 20 20 48 4F 46 41 43 4B 45 52 53 54 52 2E 20 31 | HOFACKERSTR. 1| 00000110: 33 20 20 20 20 20 20 20 2A 00 3B 2A 20 20 20 20 |3 *.;* | 00000120: 20 20 20 20 20 38 39 30 30 20 41 55 47 53 42 55 | 8900 AUGSBU| 00000130: 52 47 20 32 31 20 20 20 20 20 20 2A 00 3B 2A 20 |RG 21 *.;* | 00000140: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D |================| 00000150: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 20 2A 00 |============= *.| 00000160: 3B 2A 20 44 41 54 45 2D 57 52 49 54 54 45 4E 3A |;* DATE-WRITTEN:| 00000170: 20 32 36 2E 4F 43 54 2E 31 39 38 33 20 20 20 20 | 26.OCT.1983 | 00000180: 20 2A 00 3B 2A 20 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D | *.;* ==========| 00000190: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D |================| 000001A0: 3D 3D 3D 20 2A 00 3B 2A 20 41 4C 4C 20 52 49 47 |=== *.;* ALL RIG| 000001B0: 48 54 53 20 52 45 53 45 52 56 45 44 20 42 59 20 |HTS RESERVED BY | 000001C0: 41 55 54 48 4F 52 20 2A 00 3B 2A 2A 2A 2A 2A 2A |AUTHOR *.;******| 000001D0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 000001E0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 3B 2A 2A 2A |***********.;***| 000001F0: 2A 2A 20 53 59 53 54 45 4D 2D 41 44 52 45 53 53 |** SYSTEM-ADRESS| 00000200: 2D 4C 49 53 54 20 2A 2A 2A 2A 2A 2A 00 56 49 43 |-LIST ******.VIC| 00000210: 3A 2E 45 51 24 44 30 30 30 3B 56 49 44 45 4F 2D |:.EQ$D000;VIDEO-| 00000220: 43 4F 4E 54 52 4F 4C 4C 45 52 00 53 58 30 3A 2E |CONTROLLER.SX0:.| 00000230: 45 51 56 49 43 3B 53 50 52 49 54 45 2D 30 2D 58 |EQVIC;SPRITE-0-X| 00000240: 00 53 59 30 3A 2E 45 51 56 49 43 2B 31 3B 53 50 |.SY0:.EQVIC+1;SP| 00000250: 52 49 54 45 2D 30 2D 59 00 53 58 48 3A 2E 45 51 |RITE-0-Y.SXH:.EQ| 00000260: 56 49 43 2B 31 36 3B 53 50 52 49 54 45 2D 58 2D |VIC+16;SPRITE-X-| 00000270: 48 49 47 48 42 59 54 45 53 00 45 4E 41 42 4C 45 |HIGHBYTES.ENABLE| 00000280: 3A 2E 45 51 56 49 43 2B 32 31 3B 53 50 52 49 54 |:.EQVIC+21;SPRIT| 00000290: 45 2D 45 4E 41 42 4C 45 00 3B 00 49 52 51 56 45 |E-ENABLE.;.IRQVE| 000002A0: 43 3A 2E 45 51 37 38 38 3B 49 52 51 2D 56 45 43 |C:.EQ788;IRQ-VEC| 000002B0: 54 4F 52 2D 41 44 44 52 45 53 53 00 49 52 51 53 |TOR-ADDRESS.IRQS| 000002C0: 45 52 3A 2E 45 51 24 45 41 33 31 3B 49 52 51 2D |ER:.EQ$EA31;IRQ-| 000002D0: 53 45 52 56 49 43 45 2D 50 52 47 00 3B 00 44 44 |SERVICE-PRG.;.DD| 000002E0: 52 41 3A 2E 45 51 35 36 33 32 32 3B 44 41 54 41 |RA:.EQ56322;DATA| 000002F0: 2D 44 49 52 45 43 54 49 4F 4E 2D 52 45 47 49 53 |-DIRECTION-REGIS| 00000300: 54 45 52 00 50 4F 52 54 41 3A 2E 45 51 35 36 33 |TER.PORTA:.EQ563| 00000310: 32 30 3B 50 4F 52 54 2D 52 45 47 49 53 54 45 52 |20;PORT-REGISTER| 00000320: 00 3B 00 50 4F 49 4E 54 45 52 3A 2E 45 51 24 46 |.;.POINTER:.EQ$F| 00000330: 42 3B 50 4F 49 4E 54 45 52 20 46 4F 52 20 49 4E |B;POINTER FOR IN| 00000340: 56 45 52 54 49 4E 47 20 54 45 58 54 00 3B 00 56 |VERTING TEXT.;.V| 00000350: 49 44 45 4F 3A 2E 45 51 36 34 38 3B 43 4F 4E 54 |IDEO:.EQ648;CONT| 00000360: 41 49 4E 53 20 53 54 41 52 54 20 4F 46 20 56 49 |AINS START OF VI| 00000370: 44 45 4F 2D 52 41 4D 00 3B 00 3B 2A 2A 2A 2A 20 |DEO-RAM.;.;**** | 00000380: 54 48 45 20 50 52 4F 47 52 41 4D 20 2A 2A 2A 2A |THE PROGRAM ****| 00000390: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 2E 42 41 24 43 |**********..BA$C| 000003A0: 30 30 30 3B 53 54 41 52 54 20 41 44 52 45 53 53 |000;START ADRESS| 000003B0: 3A 20 24 43 30 30 30 00 3B 00 3B 2A 2A 2A 2A 2A |: $C000.;.;*****| 000003C0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 000003D0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 3B 2A 20 20 20 |**********.;* | 000003E0: 20 20 20 54 55 52 4E 20 4D 4F 55 53 45 20 4F 4E | TURN MOUSE ON| 000003F0: 2F 4F 46 46 20 20 20 20 20 20 2A 00 3B 2A 2A 2A |/OFF *.;***| 00000400: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000410: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 3B 00 54 |************.;.T| 00000420: 4F 47 47 4C 45 3A 53 45 49 3B 44 49 53 41 42 4C |OGGLE:SEI;DISABL| 00000430: 45 20 49 52 51 00 4C 44 41 53 58 30 3B 54 52 41 |E IRQ.LDASX0;TRA| 00000440: 4E 53 46 45 52 20 53 50 52 49 54 45 2D 43 4F 4F |NSFER SPRITE-COO| 00000450: 52 44 49 4E 41 54 45 53 00 53 54 41 4D 41 55 53 |RDINATES.STAMAUS| 00000460: 58 3B 54 4F 20 4D 4F 55 53 45 2D 43 4F 4F 52 44 |X;TO MOUSE-COORD| 00000470: 49 4E 41 54 45 53 00 4C 44 41 53 58 48 00 41 4E |INATES.LDASXH.AN| 00000480: 44 23 25 30 30 30 30 30 30 30 31 3B 4D 41 53 4B |D#%00000001;MASK| 00000490: 20 42 49 54 20 46 4F 52 20 53 50 52 49 54 45 2D | BIT FOR SPRITE-| 000004A0: 30 00 53 54 41 4D 41 55 53 58 2B 31 00 4C 44 41 |0.STAMAUSX+1.LDA| 000004B0: 53 59 30 00 43 4C 43 00 41 44 43 4F 46 46 53 45 |SY0.CLC.ADCOFFSE| 000004C0: 54 59 3B 43 41 4C 43 55 4C 41 54 45 20 48 49 52 |TY;CALCULATE HIR| 000004D0: 45 53 2D 43 4F 4F 52 44 49 4E 41 54 45 53 00 53 |ES-COORDINATES.S| 000004E0: 45 43 00 53 42 43 23 35 30 00 53 54 41 4D 41 55 |EC.SBC#50.STAMAU| 000004F0: 53 59 00 43 4C 43 00 4C 44 41 4D 41 55 53 58 00 |SY.CLC.LDAMAUSX.| 00000500: 41 44 43 4F 46 46 53 45 54 58 00 53 54 41 4D 41 |ADCOFFSETX.STAMA| 00000510: 55 53 58 00 4C 44 41 4D 41 55 53 58 2B 31 00 41 |USX.LDAMAUSX+1.A| 00000520: 44 43 23 30 00 53 54 41 4D 41 55 53 58 2B 31 00 |DC#0.STAMAUSX+1.| 00000530: 53 45 43 00 4C 44 41 4D 41 55 53 58 00 53 42 43 |SEC.LDAMAUSX.SBC| 00000540: 23 32 34 00 53 54 41 4D 41 55 53 58 00 4C 44 41 |#24.STAMAUSX.LDA| 00000550: 4D 41 55 53 58 2B 31 00 53 42 43 23 30 00 53 54 |MAUSX+1.SBC#0.ST| 00000560: 41 4D 41 55 53 58 2B 31 00 4A 53 52 48 4F 4C 44 |AMAUSX+1.JSRHOLD| 00000570: 00 4C 44 41 45 4E 41 42 4C 45 00 45 4F 52 23 25 |.LDAENABLE.EOR#%| 00000580: 30 30 30 30 30 30 30 31 3B 53 57 49 54 43 48 20 |00000001;SWITCH | 00000590: 53 50 52 49 54 45 00 53 54 41 45 4E 41 42 4C 45 |SPRITE.STAENABLE| 000005A0: 00 4C 44 41 49 52 51 56 45 43 00 45 4F 52 23 24 |.LDAIRQVEC.EOR#$| 000005B0: 45 45 3B 49 52 51 56 45 43 20 45 58 4F 52 20 4D |EE;IRQVEC EXOR M| 000005C0: 4F 55 53 45 00 53 54 41 49 52 51 56 45 43 3B 43 |OUSE.STAIRQVEC;C| 000005D0: 48 41 4E 47 45 20 49 52 51 2D 56 45 43 54 4F 52 |HANGE IRQ-VECTOR| 000005E0: 00 4C 44 41 49 52 51 56 45 43 2B 31 00 45 4F 52 |.LDAIRQVEC+1.EOR| 000005F0: 23 24 32 41 00 53 54 41 49 52 51 56 45 43 2B 31 |#$2A.STAIRQVEC+1| 00000600: 00 43 4C 49 3B 45 4E 41 42 4C 45 20 49 4E 54 45 |.CLI;ENABLE INTE| 00000610: 52 52 55 50 54 53 00 52 54 53 00 3B 00 3B 2A 2A |RRUPTS.RTS.;.;**| 00000620: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000630: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 3B 2A |*************.;*| 00000640: 20 48 4F 4C 44 20 4D 4F 55 53 45 20 49 4E 20 46 | HOLD MOUSE IN F| 00000650: 52 41 4D 45 20 41 4E 44 20 53 45 54 20 2A 00 3B |RAME AND SET *.;| 00000660: 2A 20 49 54 20 4F 4E 20 53 43 52 45 45 4E 2D 50 |* IT ON SCREEN-P| 00000670: 4F 53 49 54 49 4F 4E 53 20 20 20 20 20 20 2A 00 |OSITIONS *.| 00000680: 3B 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |;***************| 00000690: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 000006A0: 00 3B 00 48 4F 4C 44 3A 4C 44 41 4D 41 55 53 59 |.;.HOLD:LDAMAUSY| 000006B0: 3B 4D 4F 55 53 45 20 3C 20 59 4D 49 4E 20 3F 00 |;MOUSE < YMIN ?.| 000006C0: 43 4D 50 59 4D 49 4E 00 42 43 53 4E 4F 4D 49 4E |CMPYMIN.BCSNOMIN| 000006D0: 59 00 4C 44 41 59 4D 49 4E 00 53 54 41 4D 41 55 |Y.LDAYMIN.STAMAU| 000006E0: 53 59 00 4E 4F 4D 49 4E 59 3A 4C 44 41 59 4D 41 |SY.NOMINY:LDAYMA| 000006F0: 58 3B 4D 4F 55 53 45 20 3E 20 59 4D 41 58 20 3F |X;MOUSE > YMAX ?| 00000700: 00 43 4D 50 4D 41 55 53 59 00 42 43 53 4E 4F 4D |.CMPMAUSY.BCSNOM| 00000710: 41 58 59 00 4C 44 41 59 4D 41 58 00 53 54 41 4D |AXY.LDAYMAX.STAM| 00000720: 41 55 53 59 00 4E 4F 4D 41 58 59 3A 4C 44 41 4D |AUSY.NOMAXY:LDAM| 00000730: 41 55 53 58 3B 4D 4F 55 53 45 20 3C 20 58 4D 49 |AUSX;MOUSE < XMI| 00000740: 4E 20 3F 00 43 4D 50 58 4D 49 4E 00 4C 44 41 4D |N ?.CMPXMIN.LDAM| 00000750: 41 55 53 58 2B 31 00 53 42 43 58 4D 49 4E 2B 31 |AUSX+1.SBCXMIN+1| 00000760: 00 42 43 53 4E 4F 4D 49 4E 58 00 4C 44 41 58 4D |.BCSNOMINX.LDAXM| 00000770: 49 4E 00 53 54 41 4D 41 55 53 58 00 4C 44 41 58 |IN.STAMAUSX.LDAX| 00000780: 4D 49 4E 2B 31 00 53 54 41 4D 41 55 53 58 2B 31 |MIN+1.STAMAUSX+1| 00000790: 00 4E 4F 4D 49 4E 58 3A 4C 44 41 58 4D 41 58 3B |.NOMINX:LDAXMAX;| 000007A0: 4D 4F 55 53 45 20 3E 20 58 4D 41 58 20 3F 00 43 |MOUSE > XMAX ?.C| 000007B0: 4D 50 4D 41 55 53 58 00 4C 44 41 58 4D 41 58 2B |MPMAUSX.LDAXMAX+| 000007C0: 31 00 53 42 43 4D 41 55 53 58 2B 31 00 42 43 53 |1.SBCMAUSX+1.BCS| 000007D0: 4E 4F 4D 41 58 58 00 4C 44 41 58 4D 41 58 00 53 |NOMAXX.LDAXMAX.S| 000007E0: 54 41 4D 41 55 53 58 00 4C 44 41 58 4D 41 58 2B |TAMAUSX.LDAXMAX+| 000007F0: 31 00 53 54 41 4D 41 55 53 58 2B 31 00 4E 4F 4D |1.STAMAUSX+1.NOM| 00000800: 41 58 58 3A 4C 44 41 4D 41 55 53 59 3B 43 4F 4E |AXX:LDAMAUSY;CON| 00000810: 56 45 52 54 20 54 4F 20 53 50 52 49 54 45 43 4F |VERT TO SPRITECO| 00000820: 4F 52 44 49 4E 41 54 45 53 00 43 4C 43 00 41 44 |ORDINATES.CLC.AD| 00000830: 43 23 35 30 00 53 45 43 00 53 42 43 4F 46 46 53 |C#50.SEC.SBCOFFS| 00000840: 45 54 59 00 53 54 41 53 59 30 00 4C 44 41 4D 41 |ETY.STASY0.LDAMA| 00000850: 55 53 58 00 43 4C 43 00 41 44 43 23 32 34 00 54 |USX.CLC.ADC#24.T| 00000860: 41 58 00 4C 44 41 4D 41 55 53 58 2B 31 00 41 44 |AX.LDAMAUSX+1.AD| 00000870: 43 23 30 00 54 41 59 3B 58 20 26 20 59 20 41 52 |C#0.TAY;X & Y AR| 00000880: 45 20 42 55 46 46 45 52 53 00 54 58 41 00 53 45 |E BUFFERS.TXA.SE| 00000890: 43 00 53 42 43 4F 46 46 53 45 54 59 00 53 54 41 |C.SBCOFFSETY.STA| 000008A0: 53 58 30 00 54 59 41 00 53 42 43 23 30 00 4C 53 |SX0.TYA.SBC#0.LS| 000008B0: 52 3B 48 49 47 48 2D 42 49 54 20 54 4F 20 43 41 |R;HIGH-BIT TO CA| 000008C0: 52 52 59 00 4C 44 41 53 58 48 00 41 4E 44 23 25 |RRY.LDASXH.AND#%| 000008D0: 31 31 31 31 31 31 31 30 3B 4D 41 53 4B 20 42 49 |11111110;MASK BI| 000008E0: 54 20 46 4F 52 20 53 50 52 49 54 45 2D 30 00 42 |T FOR SPRITE-0.B| 000008F0: 43 43 45 58 48 4F 4C 44 00 4F 52 41 23 25 30 30 |CCEXHOLD.ORA#%00| 00000900: 30 30 30 30 30 31 3B 53 45 54 20 48 49 47 48 2D |000001;SET HIGH-| 00000910: 42 49 54 00 45 58 48 4F 4C 44 3A 53 54 41 53 58 |BIT.EXHOLD:STASX| 00000920: 48 00 52 54 53 00 3B 00 3B 2A 2A 2A 2A 2A 2A 2A |H.RTS.;.;*******| 00000930: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000940: 2A 2A 2A 2A 2A 2A 2A 2A 00 3B 2A 20 20 20 4D 4F |********.;* MO| 00000950: 55 53 45 2D 49 4E 54 45 52 52 55 50 54 2D 52 4F |USE-INTERRUPT-RO| 00000960: 55 54 49 4E 45 20 20 20 2A 00 3B 2A 2A 2A 2A 2A |UTINE *.;*****| 00000970: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000980: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 3B 00 4D 4F 55 |**********.;.MOU| 00000990: 53 45 3A 4C 44 41 23 30 3B 52 45 53 45 54 20 46 |SE:LDA#0;RESET F| 000009A0: 49 52 45 2D 46 4C 41 47 00 53 54 41 4D 42 55 54 |IRE-FLAG.STAMBUT| 000009B0: 54 4F 4E 00 4C 44 41 23 25 31 30 31 30 30 30 30 |TON.LDA#%1010000| 000009C0: 30 3B 50 52 4F 47 52 41 4D 20 50 4F 52 54 00 53 |0;PROGRAM PORT.S| 000009D0: 54 41 44 44 52 41 00 4C 44 41 50 4F 52 54 41 3B |TADDRA.LDAPORTA;| 000009E0: 52 45 41 44 20 4A 4F 59 53 54 49 43 4B 00 41 4E |READ JOYSTICK.AN| 000009F0: 44 23 25 30 30 30 31 31 31 31 31 3B 4D 41 53 4B |D#%00011111;MASK| 00000A00: 20 42 49 54 53 00 45 4F 52 23 25 30 30 30 31 31 | BITS.EOR#%00011| 00000A10: 31 31 31 3B 49 4E 56 45 52 54 20 42 49 54 53 00 |111;INVERT BITS.| 00000A20: 54 41 58 3B 53 41 56 45 20 49 4E 20 58 00 4C 44 |TAX;SAVE IN X.LD| 00000A30: 59 23 25 31 31 31 31 31 31 31 31 3B 52 45 53 45 |Y#%11111111;RESE| 00000A40: 54 20 50 4F 52 54 00 53 54 59 44 44 52 41 00 41 |T PORT.STYDDRA.A| 00000A50: 4E 44 23 25 30 30 30 31 30 30 30 30 3B 46 49 52 |ND#%00010000;FIR| 00000A60: 45 3F 00 42 45 51 4D 4F 56 45 00 4C 44 41 23 32 |E?.BEQMOVE.LDA#2| 00000A70: 35 35 00 53 54 41 4D 42 55 54 54 4F 4E 3B 53 45 |55.STAMBUTTON;SE| 00000A80: 54 20 46 4C 41 47 00 4C 44 41 49 4E 56 45 52 54 |T FLAG.LDAINVERT| 00000A90: 00 42 45 51 4D 4F 56 45 00 4A 53 52 43 4F 4E 56 |.BEQMOVE.JSRCONV| 00000AA0: 45 52 54 3B 49 4E 56 45 52 54 20 54 45 58 54 21 |ERT;INVERT TEXT!| 00000AB0: 00 4D 4F 56 45 3A 54 58 41 00 41 4E 44 23 25 30 |.MOVE:TXA.AND#%0| 00000AC0: 30 30 30 30 30 30 31 3B 55 50 3F 00 42 45 51 4E |0000001;UP?.BEQN| 00000AD0: 55 50 00 44 45 43 4D 41 55 53 59 00 4E 55 50 3A |UP.DECMAUSY.NUP:| 00000AE0: 54 58 41 00 41 4E 44 23 25 30 30 30 30 30 30 31 |TXA.AND#%0000001| 00000AF0: 30 3B 44 4F 57 4E 3F 00 42 45 51 4E 44 4F 57 4E |0;DOWN?.BEQNDOWN| 00000B00: 00 49 4E 43 4D 41 55 53 59 00 4E 44 4F 57 4E 3A |.INCMAUSY.NDOWN:| 00000B10: 54 58 41 00 41 4E 44 23 25 30 30 30 30 30 31 30 |TXA.AND#%0000010| 00000B20: 30 3B 4C 45 46 54 3F 00 42 45 51 4E 4C 45 46 54 |0;LEFT?.BEQNLEFT| 00000B30: 00 44 45 43 4D 41 55 53 58 00 4C 44 41 4D 41 55 |.DECMAUSX.LDAMAU| 00000B40: 53 58 00 43 4D 50 23 24 46 46 3B 43 41 52 52 59 |SX.CMP#$FF;CARRY| 00000B50: 3F 00 42 4E 45 4E 4C 45 46 54 00 4C 44 41 4D 41 |?.BNENLEFT.LDAMA| 00000B60: 55 53 58 2B 31 00 45 4F 52 23 25 30 30 30 30 30 |USX+1.EOR#%00000| 00000B70: 30 30 31 3B 49 4E 56 45 52 54 20 48 49 47 48 2D |001;INVERT HIGH-| 00000B80: 42 49 54 00 53 54 41 4D 41 55 53 58 2B 31 00 4E |BIT.STAMAUSX+1.N| 00000B90: 4C 45 46 54 3A 54 58 41 00 41 4E 44 23 25 30 30 |LEFT:TXA.AND#%00| 00000BA0: 30 30 31 30 30 30 3B 52 49 47 48 54 3F 00 42 45 |001000;RIGHT?.BE| 00000BB0: 51 4E 52 49 47 48 54 00 49 4E 43 4D 41 55 53 58 |QNRIGHT.INCMAUSX| 00000BC0: 00 42 4E 45 4E 52 49 47 48 54 3B 4E 4F 20 43 41 |.BNENRIGHT;NO CA| 00000BD0: 52 52 59 3A 20 2D 3E 00 4C 44 41 4D 41 55 53 58 |RRY: ->.LDAMAUSX| 00000BE0: 2B 31 00 45 4F 52 23 25 30 30 30 30 30 30 30 31 |+1.EOR#%00000001| 00000BF0: 3B 49 4E 56 45 52 54 20 48 49 47 48 2D 42 49 54 |;INVERT HIGH-BIT| 00000C00: 00 53 54 41 4D 41 55 53 58 2B 31 00 4E 52 49 47 |.STAMAUSX+1.NRIG| 00000C10: 48 54 3A 54 58 41 00 41 4E 44 23 25 30 30 30 30 |HT:TXA.AND#%0000| 00000C20: 31 31 31 31 3B 4A 4F 59 53 54 49 43 4B 20 4D 4F |1111;JOYSTICK MO| 00000C30: 56 45 44 3F 00 42 45 51 47 4F 49 52 51 00 4A 53 |VED?.BEQGOIRQ.JS| 00000C40: 52 48 4F 4C 44 3B 4D 4F 56 45 20 4D 4F 55 53 45 |RHOLD;MOVE MOUSE| 00000C50: 20 49 4E 20 53 43 52 45 45 4E 00 47 4F 49 52 51 | IN SCREEN.GOIRQ| 00000C60: 3A 4A 4D 50 49 52 51 53 45 52 00 3B 00 3B 2A 2A |:JMPIRQSER.;.;**| 00000C70: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000C80: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 3B 2A |*************.;*| 00000C90: 20 20 43 4F 4E 56 45 52 54 20 4D 4F 55 53 45 2D | CONVERT MOUSE-| 00000CA0: 43 4F 4F 52 44 49 4E 41 54 45 53 20 20 2A 00 3B |COORDINATES *.;| 00000CB0: 2A 20 20 54 4F 20 52 45 4C 41 54 49 56 45 2D 50 |* TO RELATIVE-P| 00000CC0: 4F 53 49 54 49 4F 4E 20 54 4F 20 20 20 20 2A 00 |OSITION TO *.| 00000CD0: 3B 2A 20 20 53 54 41 52 54 20 4F 46 20 56 49 44 |;* START OF VID| 00000CE0: 45 4F 2D 52 41 4D 20 20 20 20 20 20 20 20 20 2A |EO-RAM *| 00000CF0: 00 3B 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |.;**************| 00000D00: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000D10: 2A 00 3B 00 43 4F 4E 56 45 52 54 3A 4C 44 41 23 |*.;.CONVERT:LDA#| 00000D20: 30 00 53 54 41 54 45 58 54 48 00 4C 44 41 4D 41 |0.STATEXTH.LDAMA| 00000D30: 55 53 59 00 41 4E 44 23 25 31 31 31 31 31 30 30 |USY.AND#%1111100| 00000D40: 30 3B 49 4E 54 28 4D 41 55 53 59 2F 38 29 2A 38 |0;INT(MAUSY/8)*8| 00000D50: 00 54 41 59 3B 53 41 56 45 20 49 54 00 41 53 4C |.TAY;SAVE IT.ASL| 00000D60: 3B 4D 55 4C 54 49 50 4C 59 20 42 59 20 54 57 4F |;MULTIPLY BY TWO| 00000D70: 00 52 4F 4C 54 45 58 54 48 00 41 53 4C 3B 4D 55 |.ROLTEXTH.ASL;MU| 00000D80: 4C 54 49 50 4C 59 20 42 59 20 54 57 4F 00 52 4F |LTIPLY BY TWO.RO| 00000D90: 4C 54 45 58 54 48 00 53 54 41 54 45 58 54 4C 00 |LTEXTH.STATEXTL.| 00000DA0: 54 59 41 3B 47 45 54 20 4F 4C 44 20 56 41 4C 55 |TYA;GET OLD VALU| 00000DB0: 45 00 43 4C 43 00 41 44 43 54 45 58 54 4C 3B 2B |E.CLC.ADCTEXTL;+| 00000DC0: 31 2A 20 2D 2D 3E 20 54 4F 54 41 4C 20 35 2A 00 |1* --> TOTAL 5*.| 00000DD0: 53 54 41 54 45 58 54 4C 00 4C 44 41 54 45 58 54 |STATEXTL.LDATEXT| 00000DE0: 48 00 41 44 43 23 30 00 53 54 41 54 45 58 54 48 |H.ADC#0.STATEXTH| 00000DF0: 00 4C 44 41 4D 41 55 53 58 2B 31 00 4C 53 52 3B |.LDAMAUSX+1.LSR;| 00000E00: 48 49 47 48 2D 42 49 54 20 54 4F 20 43 41 52 52 |HIGH-BIT TO CARR| 00000E10: 59 00 4C 44 41 4D 41 55 53 58 00 41 4E 44 23 25 |Y.LDAMAUSX.AND#%| 00000E20: 31 31 31 31 31 30 30 30 00 52 4F 52 3B 44 49 56 |11111000.ROR;DIV| 00000E30: 49 44 45 20 4D 41 55 53 58 20 42 59 20 38 00 4C |IDE MAUSX BY 8.L| 00000E40: 53 52 00 4C 53 52 00 41 44 43 54 45 58 54 4C 3B |SR.LSR.ADCTEXTL;| 00000E50: 43 41 52 52 59 20 49 53 20 41 4C 52 45 41 44 59 |CARRY IS ALREADY| 00000E60: 20 43 4C 45 41 52 00 53 54 41 54 45 58 54 4C 00 | CLEAR.STATEXTL.| 00000E70: 4C 44 41 54 45 58 54 48 00 41 44 43 23 30 00 53 |LDATEXTH.ADC#0.S| 00000E80: 54 41 54 45 58 54 48 3B 43 4F 4E 56 45 52 53 49 |TATEXTH;CONVERSI| 00000E90: 4F 4E 20 46 49 4E 49 53 48 45 44 00 3B 00 3B 2A |ON FINISHED.;.;*| 00000EA0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000EB0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 3B |**************.;| 00000EC0: 2A 20 52 45 56 45 52 53 45 20 54 48 45 20 54 45 |* REVERSE THE TE| 00000ED0: 58 54 2D 46 49 45 4C 44 20 49 46 20 20 20 2A 00 |XT-FIELD IF *.| 00000EE0: 3B 2A 20 49 54 20 49 53 20 4E 4F 54 20 41 20 53 |;* IT IS NOT A S| 00000EF0: 50 41 43 45 20 46 49 45 4C 44 20 20 20 20 20 2A |PACE FIELD *| 00000F00: 00 3B 2A 20 28 20 46 4F 52 20 52 45 2D 52 45 56 |.;* ( FOR RE-REV| 00000F10: 45 52 53 45 20 55 53 45 20 54 48 49 53 20 29 20 |ERSE USE THIS ) | 00000F20: 2A 00 3B 2A 20 28 20 52 4F 55 54 49 4E 45 20 41 |*.;* ( ROUTINE A| 00000F30: 53 20 41 20 53 55 42 52 4F 55 54 49 4E 45 20 29 |S A SUBROUTINE )| 00000F40: 20 2A 00 3B 2A 20 28 20 4F 46 20 59 4F 55 52 20 | *.;* ( OF YOUR | 00000F50: 4D 41 49 4E 2D 50 52 4F 47 52 41 4D 20 20 20 20 |MAIN-PROGRAM | 00000F60: 29 20 2A 00 3B 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |) *.;***********| 00000F70: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000F80: 2A 2A 2A 2A 00 3B 00 52 45 56 45 52 53 45 3A 4C |****.;.REVERSE:L| 00000F90: 44 41 50 4F 49 4E 54 45 52 3B 53 41 56 45 20 50 |DAPOINTER;SAVE P| 00000FA0: 4F 49 4E 54 45 52 00 50 48 41 00 4C 44 41 50 4F |OINTER.PHA.LDAPO| 00000FB0: 49 4E 54 45 52 2B 31 00 50 48 41 00 4C 44 41 54 |INTER+1.PHA.LDAT| 00000FC0: 45 58 54 4C 3B 43 4F 4E 56 45 52 54 20 54 4F 20 |EXTL;CONVERT TO | 00000FD0: 41 42 53 4F 4C 55 54 45 00 53 54 41 50 4F 49 4E |ABSOLUTE.STAPOIN| 00000FE0: 54 45 52 00 43 4C 43 00 4C 44 41 54 45 58 54 48 |TER.CLC.LDATEXTH| 00000FF0: 00 41 44 43 56 49 44 45 4F 00 53 54 41 50 4F 49 |.ADCVIDEO.STAPOI| 00001000: 4E 54 45 52 2B 31 00 4C 44 59 23 30 00 4C 44 41 |NTER+1.LDY#0.LDA| 00001010: 28 50 4F 49 4E 54 45 52 29 2C 59 3B 54 45 53 54 |(POINTER),Y;TEST| 00001020: 20 46 4F 52 20 42 4C 41 4E 4B 00 43 4D 50 23 33 | FOR BLANK.CMP#3| 00001030: 32 00 42 45 51 45 58 49 54 00 53 41 4C 4F 4F 50 |2.BEQEXIT.SALOOP| 00001040: 3A 44 45 43 50 4F 49 4E 54 45 52 3B 53 45 41 52 |:DECPOINTER;SEAR| 00001050: 43 48 20 46 4F 52 20 53 54 41 52 54 00 4C 44 41 |CH FOR START.LDA| 00001060: 50 4F 49 4E 54 45 52 00 43 4D 50 23 24 46 46 00 |POINTER.CMP#$FF.| 00001070: 42 4E 45 4E 4F 43 41 52 52 59 00 44 45 43 50 4F |BNENOCARRY.DECPO| 00001080: 49 4E 54 45 52 2B 31 00 4E 4F 43 41 52 52 59 3A |INTER+1.NOCARRY:| 00001090: 4C 44 41 28 50 4F 49 4E 54 45 52 29 2C 59 00 43 |LDA(POINTER),Y.C| 000010A0: 4D 50 23 33 32 00 42 45 51 46 4F 55 4E 44 00 4C |MP#32.BEQFOUND.L| 000010B0: 44 41 50 4F 49 4E 54 45 52 2B 31 3B 53 54 4F 50 |DAPOINTER+1;STOP| 000010C0: 20 49 46 20 4C 45 41 56 49 4E 47 20 53 43 52 45 | IF LEAVING SCRE| 000010D0: 45 4E 00 43 4D 50 56 49 44 45 4F 00 42 43 53 53 |EN.CMPVIDEO.BCSS| 000010E0: 41 4C 4F 4F 50 00 46 4F 55 4E 44 3A 49 4E 43 50 |ALOOP.FOUND:INCP| 000010F0: 4F 49 4E 54 45 52 3B 53 45 54 20 50 4F 49 4E 54 |OINTER;SET POINT| 00001100: 45 52 20 54 4F 20 53 54 41 52 54 00 42 4E 45 52 |ER TO START.BNER| 00001110: 46 49 45 4C 44 00 49 4E 43 50 4F 49 4E 54 45 52 |FIELD.INCPOINTER| 00001120: 2B 31 00 52 46 49 45 4C 44 3A 4C 44 41 50 4F 49 |+1.RFIELD:LDAPOI| 00001130: 4E 54 45 52 3B 43 4F 4E 56 45 52 54 20 54 4F 20 |NTER;CONVERT TO | 00001140: 52 45 4C 41 54 49 56 45 00 53 54 41 54 45 58 54 |RELATIVE.STATEXT| 00001150: 4C 00 53 45 43 00 4C 44 41 50 4F 49 4E 54 45 52 |L.SEC.LDAPOINTER| 00001160: 2B 31 00 53 42 43 56 49 44 45 4F 00 53 54 41 54 |+1.SBCVIDEO.STAT| 00001170: 45 58 54 48 00 4C 44 41 23 30 00 53 54 41 49 4E |EXTH.LDA#0.STAIN| 00001180: 56 45 52 54 3B 52 45 53 45 54 20 49 4E 56 45 52 |VERT;RESET INVER| 00001190: 54 2D 46 4C 41 47 00 52 56 4C 4F 4F 50 3A 4C 44 |T-FLAG.RVLOOP:LD| 000011A0: 41 28 50 4F 49 4E 54 45 52 29 2C 59 3B 52 45 56 |A(POINTER),Y;REV| 000011B0: 45 52 53 45 20 54 45 58 54 00 43 4D 50 23 33 32 |ERSE TEXT.CMP#32| 000011C0: 00 42 45 51 45 58 49 54 00 45 4F 52 23 25 31 30 |.BEQEXIT.EOR#%10| 000011D0: 30 30 30 30 30 30 00 53 54 41 28 50 4F 49 4E 54 |000000.STA(POINT| 000011E0: 45 52 29 2C 59 00 49 4E 59 00 42 4E 45 52 56 4C |ER),Y.INY.BNERVL| 000011F0: 4F 4F 50 00 45 58 49 54 3A 50 4C 41 3B 52 45 53 |OOP.EXIT:PLA;RES| 00001200: 54 4F 52 45 20 50 4F 49 4E 54 45 52 00 53 54 41 |TORE POINTER.STA| 00001210: 50 4F 49 4E 54 45 52 2B 31 00 50 4C 41 00 53 54 |POINTER+1.PLA.ST| 00001220: 41 50 4F 49 4E 54 45 52 00 52 54 53 00 3B 00 3B |APOINTER.RTS.;.;| 00001230: 2A 2A 2A 2A 2A 20 4D 4F 55 53 45 2D 50 41 52 41 |***** MOUSE-PARA| 00001240: 4D 45 54 45 52 53 20 2A 2A 2A 2A 2A 00 4D 43 42 |METERS *****.MCB| 00001250: 3A 2E 45 51 2A 3B 4D 4F 55 53 45 2D 43 4F 4E 54 |:.EQ*;MOUSE-CONT| 00001260: 52 4F 4C 2D 42 4C 4F 43 4B 00 58 4D 49 4E 3A 2E |ROL-BLOCK.XMIN:.| 00001270: 44 42 32 3B 4D 4F 55 53 45 2D 46 52 41 4D 45 00 |DB2;MOUSE-FRAME.| 00001280: 59 4D 49 4E 3A 2E 44 42 31 00 58 4D 41 58 3A 2E |YMIN:.DB1.XMAX:.| 00001290: 44 42 32 00 59 4D 41 58 3A 2E 44 42 31 00 4F 46 |DB2.YMAX:.DB1.OF| 000012A0: 46 53 45 54 58 3A 2E 44 42 31 3B 50 4F 49 4E 54 |FSETX:.DB1;POINT| 000012B0: 45 52 2D 4F 46 46 53 45 54 00 4F 46 46 53 45 54 |ER-OFFSET.OFFSET| 000012C0: 59 3A 2E 44 42 31 00 49 4E 56 45 52 54 3A 2E 44 |Y:.DB1.INVERT:.D| 000012D0: 42 31 3B 49 4E 56 45 52 54 2D 46 4C 41 47 00 4D |B1;INVERT-FLAG.M| 000012E0: 41 55 53 58 3A 2E 44 42 32 3B 43 4F 4F 52 44 49 |AUSX:.DB2;COORDI| 000012F0: 4E 41 54 45 53 00 4D 41 55 53 59 3A 2E 44 42 31 |NATES.MAUSY:.DB1| 00001300: 00 4D 42 55 54 54 4F 4E 3A 2E 44 42 31 3B 4D 4F |.MBUTTON:.DB1;MO| 00001310: 55 53 45 2D 42 55 54 54 4F 4E 00 54 45 58 54 4C |USE-BUTTON.TEXTL| 00001320: 3A 2E 44 42 31 3B 54 45 58 54 2D 53 54 41 52 54 |:.DB1;TEXT-START| 00001330: 2D 00 54 45 58 54 48 3A 2E 44 42 31 3B 43 4F 4F |-.TEXTH:.DB1;COO| 00001340: 52 44 49 4E 41 54 45 53 00 2E 45 4E 00 3B 2A 2A |RDINATES..EN.;**| 00001350: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00001360: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 |***************.| 00001370: 00 00 00 |... |
N.;*********************************.;*
MOUSEWARE ON THE COMMODORE 64 *.;* =====
======================== *.;* COPYRI
GHT (C) 1983 BY *.;* NATHAN
SOFT *.;* ====================
========= *.;* AUTHOR: RAINER KOENIG
*.;* HOFACKERSTR. 13
*.;* 8900 AUGSBURG 21 *.;*
============================= *.;* DATE-
WRITTEN: 26.OCT.1983 *.;* ==========
=================== *.;* ALL RIGHTS RESE
RVED BY AUTHOR *.;**********************
***********.;***** SYSTEM-ADRESS-LIST **
****.VIC:.EQ$D000;VIDEO-CONTROLLER.SX0:.
EQVIC;SPRITE-0-X.SY0:.EQVIC+1;SPRITE-0-Y
.SXH:.EQVIC+16;SPRITE-X-HIGHBYTES.ENABLE
:.EQVIC+21;SPRITE-ENABLE.;.IRQVEC:.EQ788
;IRQ-VECTOR-ADDRESS.IRQSER:.EQ$EA31;IRQ-
SERVICE-PRG.;.DDRA:.EQ56322;DATA-DIRECTI
ON-REGISTER.PORTA:.EQ56320;PORT-REGISTER
.;.POINTER:.EQ$FB;POINTER FOR INVERTING
TEXT.;.VIDEO:.EQ648;CONTAINS START OF VI
DEO-RAM.;.;**** THE PROGRAM ************
**..BA$C000;START ADRESS: $C000.;.;*****
**************************.;* TURN
MOUSE ON/OFF *.;*******************
************.;.TOGGLE:SEI;DISABLE IRQ.LD
ASX0;TRANSFER SPRITE-COORDINATES.STAMAUS
X;TO MOUSE-COORDINATES.LDASXH.AND#%00000
001;MASK BIT FOR SPRITE-0.STAMAUSX+1.LDA
SY0.CLC.ADCOFFSETY;CALCULATE HIRES-COORD
INATES.SEC.SBC#50.STAMAUSY.CLC.LDAMAUSX.
ADCOFFSETX.STAMAUSX.LDAMAUSX+1.ADC#0.STA
MAUSX+1.SEC.LDAMAUSX.SBC#24.STAMAUSX.LDA
MAUSX+1.SBC#0.STAMAUSX+1.JSRHOLD.LDAENAB
LE.EOR#%00000001;SWITCH SPRITE.STAENABLE
.LDAIRQVEC.EOR#$EE;IRQVEC EXOR MOUSE.STA
IRQVEC;CHANGE IRQ-VECTOR.LDAIRQVEC+1.EOR
#$2A.STAIRQVEC+1.CLI;ENABLE INTERRUPTS.R
TS.;.;*******************************.;*
HOLD MOUSE IN FRAME AND SET *.;* IT ON
SCREEN-POSITIONS *.;***************
****************.;.HOLD:LDAMAUSY;MOUSE <
YMIN ?.CMPYMIN.BCSNOMINY.LDAYMIN.STAMAU
SY.NOMINY:LDAYMAX;MOUSE > YMAX ?.CMPMAUS
Y.BCSNOMAXY.LDAYMAX.STAMAUSY.NOMAXY:LDAM
AUSX;MOUSE < XMIN ?.CMPXMIN.LDAMAUSX+1.S
BCXMIN+1.BCSNOMINX.LDAXMIN.STAMAUSX.LDAX
MIN+1.STAMAUSX+1.NOMINX:LDAXMAX;MOUSE >
XMAX ?.CMPMAUSX.LDAXMAX+1.SBCMAUSX+1.BCS
NOMAXX.LDAXMAX.STAMAUSX.LDAXMAX+1.STAMAU
SX+1.NOMAXX:LDAMAUSY;CONVERT TO SPRITECO
ORDINATES.CLC.ADC#50.SEC.SBCOFFSETY.STAS
Y0.LDAMAUSX.CLC.ADC#24.TAX.LDAMAUSX+1.AD
C#0.TAY;X & Y ARE BUFFERS.TXA.SEC.SBCOFF
SETY.STASX0.TYA.SBC#0.LSR;HIGH-BIT TO CA
RRY.LDASXH.AND#%11111110;MASK BIT FOR SP
RITE-0.BCCEXHOLD.ORA#%00000001;SET HIGH-
BIT.EXHOLD:STASXH.RTS.;.;***************
****************.;* MOUSE-INTERRUPT-RO
UTINE *.;*****************************
**.;.MOUSE:LDA#0;RESET FIRE-FLAG.STAMBUT
TON.LDA#%10100000;PROGRAM PORT.STADDRA.L
DAPORTA;READ JOYSTICK.AND#%00011111;MASK
BITS.EOR#%00011111;INVERT BITS.TAX;SAVE
IN X.LDY#%11111111;RESET PORT.STYDDRA.A
ND#%00010000;FIRE?.BEQMOVE.LDA#255.STAMB
UTTON;SET FLAG.LDAINVERT.BEQMOVE.JSRCONV
ERT;INVERT TEXT!.MOVE:TXA.AND#%00000001;
UP?.BEQNUP.DECMAUSY.NUP:TXA.AND#%0000001
0;DOWN?.BEQNDOWN.INCMAUSY.NDOWN:TXA.AND#
%00000100;LEFT?.BEQNLEFT.DECMAUSX.LDAMAU
SX.CMP#$FF;CARRY?.BNENLEFT.LDAMAUSX+1.EO
R#%00000001;INVERT HIGH-BIT.STAMAUSX+1.N
LEFT:TXA.AND#%00001000;RIGHT?.BEQNRIGHT.
INCMAUSX.BNENRIGHT;NO CARRY: ->.LDAMAUSX
+1.EOR#%00000001;INVERT HIGH-BIT.STAMAUS
X+1.NRIGHT:TXA.AND#%00001111;JOYSTICK MO
VED?.BEQGOIRQ.JSRHOLD;MOVE MOUSE IN SCRE
EN.GOIRQ:JMPIRQSER.;.;******************
*************.;* CONVERT MOUSE-COORDINA
TES *.;* TO RELATIVE-POSITION TO *.
;* START OF VIDEO-RAM *.;******
*************************.;.CONVERT:LDA#
0.STATEXTH.LDAMAUSY.AND#%11111000;INT(MA
USY/8)*8.TAY;SAVE IT.ASL;MULTIPLY BY TWO
.ROLTEXTH.ASL;MULTIPLY BY TWO.ROLTEXTH.S
TATEXTL.TYA;GET OLD VALUE.CLC.ADCTEXTL;+
1* --> TOTAL 5*.STATEXTL.LDATEXTH.ADC#0.
STATEXTH.LDAMAUSX+1.LSR;HIGH-BIT TO CARR
Y.LDAMAUSX.AND#%11111000.ROR;DIVIDE MAUS
X BY 8.LSR.LSR.ADCTEXTL;CARRY IS ALREADY
CLEAR.STATEXTL.LDATEXTH.ADC#0.STATEXTH;
CONVERSION FINISHED.;.;*****************
**************.;* REVERSE THE TEXT-FIELD
IF *.;* IT IS NOT A SPACE FIELD *
.;* ( FOR RE-REVERSE USE THIS ) *.;* ( R
OUTINE AS A SUBROUTINE ) *.;* ( OF YOUR
MAIN-PROGRAM ) *.;*******************
************.;.REVERSE:LDAPOINTER;SAVE P
OINTER.PHA.LDAPOINTER+1.PHA.LDATEXTL;CON
VERT TO ABSOLUTE.STAPOINTER.CLC.LDATEXTH
.ADCVIDEO.STAPOINTER+1.LDY#0.LDA(POINTER
),Y;TEST FOR BLANK.CMP#32.BEQEXIT.SALOOP
:DECPOINTER;SEARCH FOR START.LDAPOINTER.
CMP#$FF.BNENOCARRY.DECPOINTER+1.NOCARRY:
LDA(POINTER),Y.CMP#32.BEQFOUND.LDAPOINTE
R+1;STOP IF LEAVING SCREEN.CMPVIDEO.BCSS
ALOOP.FOUND:INCPOINTER;SET POINTER TO ST
ART.BNERFIELD.INCPOINTER+1.RFIELD:LDAPOI
NTER;CONVERT TO RELATIVE.STATEXTL.SEC.LD
APOINTER+1.SBCVIDEO.STATEXTH.LDA#0.STAIN
VERT;RESET INVERT-FLAG.RVLOOP:LDA(POINTE
R),Y;REVERSE TEXT.CMP#32.BEQEXIT.EOR#%10
000000.STA(POINTER),Y.INY.BNERVLOOP.EXIT
:PLA;RESTORE POINTER.STAPOINTER+1.PLA.ST
APOINTER.RTS.;.;***** MOUSE-PARAMETERS *
****.MCB:.EQ*;MOUSE-CONTROL-BLOCK.XMIN:.
DB2;MOUSE-FRAME.YMIN:.DB1.XMAX:.DB2.YMAX
:.DB1.OFFSETX:.DB1;POINTER-OFFSET.OFFSET
Y:.DB1.INVERT:.DB1;INVERT-FLAG.MAUSX:.DB
2;COORDINATES.MAUSY:.DB1.MBUTTON:.DB1;MO
USE-BUTTON.TEXTL:.DB1;TEXT-START-.TEXTH:
.DB1;COORDINATES..EN.;******************
***************....
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL