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

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 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL