<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://oldwiki.cpcwiki.eu/index.php?action=history&amp;feed=atom&amp;title=SF2%3Ascan_mouse</id>
		<title>SF2:scan mouse - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://oldwiki.cpcwiki.eu/index.php?action=history&amp;feed=atom&amp;title=SF2%3Ascan_mouse"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=SF2:scan_mouse&amp;action=history"/>
		<updated>2026-08-30T05:05:37Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=SF2:scan_mouse&amp;diff=94186&amp;oldid=prev</id>
		<title>TFM: OS function to work with the SF2 proportional mouse</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=SF2:scan_mouse&amp;diff=94186&amp;oldid=prev"/>
				<updated>2015-09-14T23:49:44Z</updated>
		
		<summary type="html">&lt;p&gt;OS function to work with the SF2 proportional mouse&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This code is part of [[FutureOS]]. Please give credit if you use it for your own applications. Questions can be posed to [[TFM]] who wrote this code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
06920                     ;PS/2-Mausabfrage(+) This is part of the FutureOS ROM D&lt;br /&gt;
06921                     &lt;br /&gt;
06922                     ;Subroutine&lt;br /&gt;
06923                     &lt;br /&gt;
06924  FB5C  22 00 60      MRNM    LD    (KS0XL),HL&lt;br /&gt;
06925                     &lt;br /&gt;
06926                     ;Call OS function here! by TFM of FutureSoft, please credit.&lt;br /&gt;
06927                     &lt;br /&gt;
06928  FB5F  01 10 FD      R_PS2   LD    BC,&amp;amp;FD10&lt;br /&gt;
06928  FB62  ED 78                 IN    A,(C)&lt;br /&gt;
06928  FB64  3C                    INC   A&lt;br /&gt;
06928  FB65  C8                    RET   Z&lt;br /&gt;
06928  FB66  3D                    DEC   A&lt;br /&gt;
06929                     &lt;br /&gt;
06930  FB67  57                    LD    D,A&lt;br /&gt;
06930  FB68  07                    RLCA  &lt;br /&gt;
06930  FB69  38 29                 JR    C,MVMB       ;Vertikal/Button&lt;br /&gt;
06931                     &lt;br /&gt;
06932  FB6B  07                    RLCA  &lt;br /&gt;
06932  FB6C  D0                    RET   NC           ;Mouse not moved&lt;br /&gt;
06933                     &lt;br /&gt;
06934  FB6D  07                    RLCA  &lt;br /&gt;
06934  FB6E  7A                    LD    A,D&lt;br /&gt;
06934  FB6F  38 13                 JR    C,MLMM       ;left&lt;br /&gt;
06935                     &lt;br /&gt;
06936  FB71  E6 1F                 AND   A,&amp;amp;1F        ;Mouse right, A = %000 00001 to %000 11111&lt;br /&gt;
06937                     &lt;br /&gt;
06938  FB73  16 00                 LD    D,&amp;amp;00&lt;br /&gt;
06938  FB75  5F                    LD    E,A&lt;br /&gt;
06939  FB76  2A 00 60              LD    HL,(KS0XL)&lt;br /&gt;
06939  FB79  19                    ADD   HL,DE&lt;br /&gt;
06940  FB7A  7C                    LD    A,H&lt;br /&gt;
06940  FB7B  FE 02                 CP    A,&amp;amp;02&lt;br /&gt;
06940  FB7D  20 DD                 JR    NZ,MRNM&lt;br /&gt;
06941  FB7F  21 FF 01              LD    HL,&amp;amp;01FF&lt;br /&gt;
06941  FB82  20 D8                 JR    NZ,MRNM&lt;br /&gt;
06942                     &lt;br /&gt;
06943                     ;Mouse left&lt;br /&gt;
06944                     &lt;br /&gt;
06945  FB84  F6 E0         MLMM    OR    A,&amp;amp;E0        ;A = %111 11111 (-1) to %111 00000&lt;br /&gt;
06946                     &lt;br /&gt;
06947  FB86  16 FF                 LD    D,&amp;amp;FF&lt;br /&gt;
06947  FB88  5F                    LD    E,A&lt;br /&gt;
06948  FB89  2A 00 60              LD    HL,(KS0XL)&lt;br /&gt;
06948  FB8C  19                    ADD   HL,DE&lt;br /&gt;
06948  FB8D  38 CD                 JR    C,MRNM&lt;br /&gt;
06949  FB8F  21 00 00              LD    HL,&amp;amp;0000&lt;br /&gt;
06949  FB92  38 C8                 JR    C,MRNM&lt;br /&gt;
06950                     &lt;br /&gt;
06951                     ;auf/ab od. Ohr&lt;br /&gt;
06952                     &lt;br /&gt;
06953  FB94  07            MVMB    RLCA  &lt;br /&gt;
06953  FB95  38 21                 JR    C,MBMW       ;Button/Wheel&lt;br /&gt;
06954                     &lt;br /&gt;
06955  FB97  07                    RLCA  &lt;br /&gt;
06955  FB98  7A                    LD    A,D&lt;br /&gt;
06955  FB99  30 0F                 JR    NC,MAMM&lt;br /&gt;
06956                     &lt;br /&gt;
06957  FB9B  F6 E0                 OR    A,&amp;amp;E0        ;Maus runter, A=11111111(-1) - 11100000&lt;br /&gt;
06958  FB9D  ED 44                 NEG   &lt;br /&gt;
06959  FB9F  21 02 60              LD    HL,KS0YL&lt;br /&gt;
06960  FBA2  86                    ADD   A,(HL)&lt;br /&gt;
06960  FBA3  30 02                 JR    NC,MUMO&lt;br /&gt;
06961  FBA5  3E FF                 LD    A,&amp;amp;FF&lt;br /&gt;
06962                     &lt;br /&gt;
06963  FBA7  77            MUMO    LD    (HL),A&lt;br /&gt;
06963  FBA8  18 B5                 JR    R_PS2&lt;br /&gt;
06964                     &lt;br /&gt;
06965                     ;Maus rauf&lt;br /&gt;
06966                     &lt;br /&gt;
06967  FBAA  E6 1F         MAMM    AND   A,&amp;amp;1F        ;A = 00000001 - 00011111&lt;br /&gt;
06968                     &lt;br /&gt;
06969  FBAC  ED 44                 NEG   &lt;br /&gt;
06970  FBAE  21 02 60              LD    HL,KS0YL&lt;br /&gt;
06971  FBB1  86                    ADD   A,(HL)&lt;br /&gt;
06971  FBB2  38 01                 JR    C,MAMO&lt;br /&gt;
06972  FBB4  AF                    XOR   A,A&lt;br /&gt;
06973                     &lt;br /&gt;
06974  FBB5  77            MAMO    LD    (HL),A&lt;br /&gt;
06974  FBB6  18 A7                 JR    R_PS2&lt;br /&gt;
06975                     &lt;br /&gt;
06976                     ;Maus-Ohren, -Rad&lt;br /&gt;
06977                     &lt;br /&gt;
06978  FBB8  07            MBMW    RLCA  &lt;br /&gt;
06978  FBB9  38 0B                 JR    C,MWSO&lt;br /&gt;
06979                     &lt;br /&gt;
06980  FBBB  07                    RLCA               ; CALL C,backward&lt;br /&gt;
06981  FBBC  07                    RLCA               ; CALL C,forward&lt;br /&gt;
06982  FBBD  07                    RLCA               ; CALL C,MIDDLE_Fire2&lt;br /&gt;
06983  FBBE  07                    RLCA  &lt;br /&gt;
06983  FBBF  38 11                 JR    C,F1_TUR_E   ;Fire 1 (right button)&lt;br /&gt;
06984  FBC1  07                    RLCA  &lt;br /&gt;
06984  FBC2  38 12                 JR    C,F0_KCF0    ;Fire 0 (left button)&lt;br /&gt;
06985  FBC4  18 99                 JR    R_PS2&lt;br /&gt;
06986                     &lt;br /&gt;
06987                     ;Mouse wheel was turned&lt;br /&gt;
06988                     &lt;br /&gt;
06989  FBC6  07            MWSO    RLCA  &lt;br /&gt;
06989  FBC7  7A                    LD    A,D&lt;br /&gt;
06989  FBC8  38 04                 JR    C,MWMM       ;Wheel turned in negative direction (back)&lt;br /&gt;
06990                     &lt;br /&gt;
06991  FBCA  E6 1F                 AND   A,&amp;amp;1F        ;A[Bits 3-0] = scroll wheel offset positive!&lt;br /&gt;
06992                     &lt;br /&gt;
06993                     ;0000 0001 = 1&lt;br /&gt;
06994                     ;0000 0010 = 2&lt;br /&gt;
06995                     ;0000 0011 = 3&lt;br /&gt;
06996                     ;0000 0100 = 4&lt;br /&gt;
06997                     &lt;br /&gt;
06998  FBCC  18 91                 JR    R_PS2&lt;br /&gt;
06999                     &lt;br /&gt;
07000                     ;Mouse turned wheel backward&lt;br /&gt;
07001                     &lt;br /&gt;
07002  FBCE  F6 F0         MWMM    OR    A,&amp;amp;F0        ;A[Bits 3-0] = scroll wheel offset (negative signed, 2s Complement)&lt;br /&gt;
07003                     &lt;br /&gt;
07004                     ;1111 1111 = -1&lt;br /&gt;
07005                     ;1111 1110 = -2&lt;br /&gt;
07006                     ;1111 1101 = -3&lt;br /&gt;
07007                     ;1111 1100 = -4&lt;br /&gt;
07008                     &lt;br /&gt;
07009  FBD0  18 8D                 JR    R_PS2&lt;br /&gt;
07010                     &lt;br /&gt;
07011                     ;Adjust Stack!&lt;br /&gt;
07012                     &lt;br /&gt;
07013  FBD2  E1            F1_TUR_E&lt;br /&gt;
                                   POP   HL&lt;br /&gt;
07013  FBD3  C3 6B F7              JP    TUR_E ;or where ever you want to go!&lt;br /&gt;
&lt;br /&gt;
07014  FBD6  E1            F0_KCF0 POP   HL&lt;br /&gt;
07014  FBD7  C3 75 FA              JP    KCF0 ;or where ever you want to go!&lt;br /&gt;
07015                     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Programming:SYMBiFACE_II|SYMBiFACE II documentations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>TFM</name></author>	</entry>

	</feed>