From: ol.sc
Date: Sat, 4 Feb 2012 17:51:17 +0000 (+0000)
Subject: Moved the 'mousesprite' files from 'geos-cbm' to 'geos-common' which are believed...
X-Git-Tag: V2.13.3~22
X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=a525fdafb0a33233793de557666735410d10e2d5;p=cc65
Moved the 'mousesprite' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5443 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
diff --git a/libsrc/geos-cbm/Makefile b/libsrc/geos-cbm/Makefile
index 59d914fc6..057e07363 100644
--- a/libsrc/geos-cbm/Makefile
+++ b/libsrc/geos-cbm/Makefile
@@ -50,7 +50,6 @@ DIRS = common \
disk \
file \
memory \
- mousesprite \
process \
runtime \
system
diff --git a/libsrc/geos-cbm/mousesprite/Makefile b/libsrc/geos-cbm/mousesprite/Makefile
deleted file mode 100644
index f76ea33be..000000000
--- a/libsrc/geos-cbm/mousesprite/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# makefile for CC65 runtime library
-#
-
-#--------------------------------------------------------------------------
-# Object files
-
-S_OBJS += startmousemode.o \
- clearmousemode.o \
- mouseup.o \
- mouseoff.o \
- drawsprite.o \
- possprite.o \
- enablsprite.o \
- disablsprite.o \
- ismseinregion.o \
- inittextprompt.o \
- promptoff.o \
- prompton.o \
- getnextchar.o \
- mouse.o
diff --git a/libsrc/geos-cbm/mousesprite/clearmousemode.s b/libsrc/geos-cbm/mousesprite/clearmousemode.s
deleted file mode 100644
index 17186cc9d..000000000
--- a/libsrc/geos-cbm/mousesprite/clearmousemode.s
+++ /dev/null
@@ -1,13 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 30.10.99
-
-; void ClearMouseMode (void);
-
- .export _ClearMouseMode
-
- .include "jumptab.inc"
-
-_ClearMouseMode = ClearMouseMode
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/disablsprite.s b/libsrc/geos-cbm/mousesprite/disablsprite.s
deleted file mode 100644
index 37625d361..000000000
--- a/libsrc/geos-cbm/mousesprite/disablsprite.s
+++ /dev/null
@@ -1,16 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 30.10.99
-
-; void DisablSprite (char spritenum);
-
- .export _DisablSprite
-
- .include "jumptab.inc"
- .include "geossym.inc"
-
-_DisablSprite:
- sta r3L
- jmp DisablSprite
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/drawsprite.s b/libsrc/geos-cbm/mousesprite/drawsprite.s
deleted file mode 100644
index c5a071ebf..000000000
--- a/libsrc/geos-cbm/mousesprite/drawsprite.s
+++ /dev/null
@@ -1,23 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 30.10.99
-
-;
-; void DrawSprite (char spritenum, char *tab63 );
-;
-
- .import popa
- .export _DrawSprite
-
- .include "jumptab.inc"
- .include "geossym.inc"
-
-_DrawSprite:
-
- sta r4L
- stx r4H
- jsr popa
- sta r3L
- jmp DrawSprite
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/enablsprite.s b/libsrc/geos-cbm/mousesprite/enablsprite.s
deleted file mode 100644
index 7c8328421..000000000
--- a/libsrc/geos-cbm/mousesprite/enablsprite.s
+++ /dev/null
@@ -1,16 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 30.10.99
-
-; void EnablSprite (char spritenum);
-
- .export _EnablSprite
-
- .include "jumptab.inc"
- .include "geossym.inc"
-
-_EnablSprite:
- sta r3L
- jmp EnablSprite
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/getnextchar.s b/libsrc/geos-cbm/mousesprite/getnextchar.s
deleted file mode 100644
index 0ddbf1e99..000000000
--- a/libsrc/geos-cbm/mousesprite/getnextchar.s
+++ /dev/null
@@ -1,18 +0,0 @@
-
-;
-; Maciej 'YTM/Elysium' Witkowiak
-;
-; 21.12.1999, 2.1.2003
-
-; char GetNextChar (void);
-; note that if it returns 0 (FALSE) then no characters are available
-
- .export _GetNextChar
-
- .include "jumptab.inc"
-
-_GetNextChar:
- jsr GetNextChar
- ldx #0
- tay ; preserve Z flag
- rts
diff --git a/libsrc/geos-cbm/mousesprite/inittextprompt.s b/libsrc/geos-cbm/mousesprite/inittextprompt.s
deleted file mode 100644
index 21c213544..000000000
--- a/libsrc/geos-cbm/mousesprite/inittextprompt.s
+++ /dev/null
@@ -1,13 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 21.12.99
-
-; void InitTextPrompt (char height);
-
- .export _InitTextPrompt
-
- .include "jumptab.inc"
-
-_InitTextPrompt = InitTextPrompt
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/ismseinregion.s b/libsrc/geos-cbm/mousesprite/ismseinregion.s
deleted file mode 100644
index 554ca58ef..000000000
--- a/libsrc/geos-cbm/mousesprite/ismseinregion.s
+++ /dev/null
@@ -1,19 +0,0 @@
-
-;
-; Maciej 'YTM/Elysium' Witkowiak
-;
-; 21.12.1999, 2.1.2003
-
-; char IsMseInRegion (struct window *mywindow);
-
- .import _InitDrawWindow
-
- .export _IsMseInRegion
-
- .include "jumptab.inc"
-
-_IsMseInRegion:
- jsr _InitDrawWindow
- jsr IsMseInRegion
- ldx #0
- rts
diff --git a/libsrc/geos-cbm/mousesprite/mouse.s b/libsrc/geos-cbm/mousesprite/mouse.s
deleted file mode 100644
index 1889c4f95..000000000
--- a/libsrc/geos-cbm/mousesprite/mouse.s
+++ /dev/null
@@ -1,194 +0,0 @@
-;
-; Maciej 'YTM/Elysium' Witkowiak
-;
-; 2.7.2001
-;
-; Wrapper for GEOS standard input device interface
-;
-
- .export _mouse_init, _mouse_done
- .export _mouse_hide, _mouse_show
- .export _mouse_box
- .export _mouse_pos, _mouse_info
- .export _mouse_move, _mouse_buttons
-
- .import popsreg, addysp1
- .importzp sp, sreg, ptr1
-
- .include "const.inc"
- .include "jumptab.inc"
- .include "geossym.inc"
-
-
-.code
-
-; --------------------------------------------------------------------------
-;
-; unsigned char __fastcall__ mouse_init (unsigned char type);
-;
-
-_mouse_init:
- jsr StartMouseMode
- jsr MouseOff
-
- lda #0
- sta mouseTop
- sta mouseLeft
- sta mouseLeft+1
-.ifdef __GEOS_CBM__
- lda #199
- sta mouseBottom
- lda graphMode
- bpl _mse_screen320
-
- lda #<639 ; 80 columns on C128
- ldx #>639
- bne _mse_storex
-_mse_screen320:
- lda #<319 ; 40 columns on C64/C128
- ldx #>319
-_mse_storex:
-.else
- lda #191
- sta mouseBottom
- lda #<559
- ldx #>559
-.endif
- sta mouseRight
- stx mouseRight+1
-_mse_initend:
- lda #0
- tax
-; --------------------------------------------------------------------------
-;
-; void mouse_done (void);
-;
-_mouse_done:
- rts
-
-; --------------------------------------------------------------------------
-;
-; void mouse_hide (void);
-;
-
-_mouse_hide = MouseOff
-
-; --------------------------------------------------------------------------
-;
-; void mouse_show (void);
-;
-
-_mouse_show = MouseUp
-
-; --------------------------------------------------------------------------
-;
-; void __fastcall__ mouse_box (int minx, int miny, int maxx, int maxy);
-;
-
-_mouse_box:
- ldy #0 ; Stack offset
-
- sta mouseBottom
-
- lda (sp),y
- sta mouseRight
- iny
- lda (sp),y
- sta mouseRight+1 ; maxx
-
- iny
- lda (sp),y
- sta mouseTop
- iny ; Skip high byte
-
- iny
- lda (sp),y
- sta mouseLeft
- iny
- lda (sp),y
- sta mouseLeft+1 ; minx
-
- jmp addysp1 ; Drop params, return
-
-; --------------------------------------------------------------------------
-;
-; void __fastcall__ mouse_pos (struct mouse_pos* pos);
-; /* Return the current mouse position */
-;
-
-_mouse_pos:
- sta ptr1
- stx ptr1+1 ; Remember the argument pointer
-
- ldy #0 ; Structure offset
-
- php
- sei ; Disable interrupts
-
- lda mouseXPos ; Transfer the position
- sta (ptr1),y
- lda mouseXPos+1
- iny
- sta (ptr1),y
- lda mouseYPos
- iny
- sta (ptr1),y
- lda #$00
- iny
- sta (ptr1),y
-
- plp ; Reenable interrupts
- rts ; Done
-
-; --------------------------------------------------------------------------
-;
-; void __fastcall__ mouse_info (struct mouse_info* info);
-; /* Return the state of the mouse buttons and the position of the mouse */
-;
-
-_mouse_info:
-
-; We're cheating here to keep the code smaller: The first fields of the
-; mouse_info struct are identical to the mouse_pos struct, so we will just
-; call _mouse_pos to initialize the struct pointer and fill the position
-; fields.
-
- jsr _mouse_pos
-
-; Fill in the button state
-
- jsr _mouse_buttons ; Will not touch ptr1
- iny
- sta (ptr1),y
-
- rts
-
-; --------------------------------------------------------------------------
-;
-; void __fastcall__ mouse_move (int x, int y);
-;
-
-_mouse_move:
- jsr popsreg ; Get X
- php
- sei ; Disable interrupts
- sta mouseYPos
- lda sreg
- ldx sreg+1
- sta mouseXPos
- stx mouseXPos+1
- plp ; Enable interrupts
- rts
-
-; --------------------------------------------------------------------------
-;
-; unsigned char mouse_buttons (void);
-;
-
-_mouse_buttons:
- ldx #0
- lda pressFlag
- and #SET_MOUSE
- lsr
- rts
-
diff --git a/libsrc/geos-cbm/mousesprite/mouseoff.s b/libsrc/geos-cbm/mousesprite/mouseoff.s
deleted file mode 100644
index 84f34701d..000000000
--- a/libsrc/geos-cbm/mousesprite/mouseoff.s
+++ /dev/null
@@ -1,13 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 30.10.99
-
-; void MouseOff (void);
-
- .export _MouseOff
-
- .include "jumptab.inc"
-
-_MouseOff = MouseOff
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/mouseup.s b/libsrc/geos-cbm/mousesprite/mouseup.s
deleted file mode 100644
index 08f831ce4..000000000
--- a/libsrc/geos-cbm/mousesprite/mouseup.s
+++ /dev/null
@@ -1,13 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 30.10.99
-
-; void MouseUp (void);
-
- .export _MouseUp
-
- .include "jumptab.inc"
-
-_MouseUp = MouseUp
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/possprite.s b/libsrc/geos-cbm/mousesprite/possprite.s
deleted file mode 100644
index 1ffda37b4..000000000
--- a/libsrc/geos-cbm/mousesprite/possprite.s
+++ /dev/null
@@ -1,32 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 30.10.99
-
-;
-; void PosSprite (char spritenum, struct pixel *position );
-;
-
- .importzp ptr4
- .import popa
- .export _PosSprite
-
- .include "jumptab.inc"
- .include "geossym.inc"
-
-_PosSprite:
- sta ptr4
- stx ptr4+1
- ldy #0
- lda (ptr4),y
- sta r4L
- iny
- lda (ptr4),y
- sta r4H
- iny
- lda (ptr4),y
- sta r5L
- jsr popa
- sta r3L
- jmp PosSprite
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/promptoff.s b/libsrc/geos-cbm/mousesprite/promptoff.s
deleted file mode 100644
index 11088cb59..000000000
--- a/libsrc/geos-cbm/mousesprite/promptoff.s
+++ /dev/null
@@ -1,13 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 21.12.99
-
-; void PromptOff (void);
-
- .export _PromptOff
-
- .include "jumptab.inc"
-
-_PromptOff = PromptOff
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/prompton.s b/libsrc/geos-cbm/mousesprite/prompton.s
deleted file mode 100644
index 3de1b01f4..000000000
--- a/libsrc/geos-cbm/mousesprite/prompton.s
+++ /dev/null
@@ -1,24 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 21.12.99
-
-; void PromptOn (struct pixel *);
-
- .importzp ptr4
- .export _PromptOn
-
- .include "jumptab.inc"
- .include "geossym.inc"
-
-_PromptOn:
- sta ptr4
- stx ptr4+1
- ldy #0
-promptLp: lda (ptr4),y
- sta stringX,y
- iny
- cpy #3
- bne promptLp
- jmp PromptOn
\ No newline at end of file
diff --git a/libsrc/geos-cbm/mousesprite/startmousemode.s b/libsrc/geos-cbm/mousesprite/startmousemode.s
deleted file mode 100644
index cefde425e..000000000
--- a/libsrc/geos-cbm/mousesprite/startmousemode.s
+++ /dev/null
@@ -1,15 +0,0 @@
-
-;
-; Maciej 'YTM/Alliance' Witkowiak
-;
-; 30.10.99
-
-; void StartMouseMode (void);
-
- .export _StartMouseMode
-
- .include "jumptab.inc"
-
-_StartMouseMode:
- clc
- jmp StartMouseMode
\ No newline at end of file
diff --git a/libsrc/geos-common/Makefile b/libsrc/geos-common/Makefile
index be86b288f..7751ec811 100644
--- a/libsrc/geos-common/Makefile
+++ b/libsrc/geos-common/Makefile
@@ -33,7 +33,8 @@ DIRS = dlgbox \
file \
graph \
memory \
- menuicon
+ menuicon \
+ mousesprite
#--------------------------------------------------------------------------
# Directives
diff --git a/libsrc/geos-common/mousesprite/Makefile b/libsrc/geos-common/mousesprite/Makefile
new file mode 100644
index 000000000..f76ea33be
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/Makefile
@@ -0,0 +1,21 @@
+#
+# makefile for CC65 runtime library
+#
+
+#--------------------------------------------------------------------------
+# Object files
+
+S_OBJS += startmousemode.o \
+ clearmousemode.o \
+ mouseup.o \
+ mouseoff.o \
+ drawsprite.o \
+ possprite.o \
+ enablsprite.o \
+ disablsprite.o \
+ ismseinregion.o \
+ inittextprompt.o \
+ promptoff.o \
+ prompton.o \
+ getnextchar.o \
+ mouse.o
diff --git a/libsrc/geos-common/mousesprite/clearmousemode.s b/libsrc/geos-common/mousesprite/clearmousemode.s
new file mode 100644
index 000000000..17186cc9d
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/clearmousemode.s
@@ -0,0 +1,13 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 30.10.99
+
+; void ClearMouseMode (void);
+
+ .export _ClearMouseMode
+
+ .include "jumptab.inc"
+
+_ClearMouseMode = ClearMouseMode
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/disablsprite.s b/libsrc/geos-common/mousesprite/disablsprite.s
new file mode 100644
index 000000000..37625d361
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/disablsprite.s
@@ -0,0 +1,16 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 30.10.99
+
+; void DisablSprite (char spritenum);
+
+ .export _DisablSprite
+
+ .include "jumptab.inc"
+ .include "geossym.inc"
+
+_DisablSprite:
+ sta r3L
+ jmp DisablSprite
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/drawsprite.s b/libsrc/geos-common/mousesprite/drawsprite.s
new file mode 100644
index 000000000..c5a071ebf
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/drawsprite.s
@@ -0,0 +1,23 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 30.10.99
+
+;
+; void DrawSprite (char spritenum, char *tab63 );
+;
+
+ .import popa
+ .export _DrawSprite
+
+ .include "jumptab.inc"
+ .include "geossym.inc"
+
+_DrawSprite:
+
+ sta r4L
+ stx r4H
+ jsr popa
+ sta r3L
+ jmp DrawSprite
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/enablsprite.s b/libsrc/geos-common/mousesprite/enablsprite.s
new file mode 100644
index 000000000..7c8328421
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/enablsprite.s
@@ -0,0 +1,16 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 30.10.99
+
+; void EnablSprite (char spritenum);
+
+ .export _EnablSprite
+
+ .include "jumptab.inc"
+ .include "geossym.inc"
+
+_EnablSprite:
+ sta r3L
+ jmp EnablSprite
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/getnextchar.s b/libsrc/geos-common/mousesprite/getnextchar.s
new file mode 100644
index 000000000..0ddbf1e99
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/getnextchar.s
@@ -0,0 +1,18 @@
+
+;
+; Maciej 'YTM/Elysium' Witkowiak
+;
+; 21.12.1999, 2.1.2003
+
+; char GetNextChar (void);
+; note that if it returns 0 (FALSE) then no characters are available
+
+ .export _GetNextChar
+
+ .include "jumptab.inc"
+
+_GetNextChar:
+ jsr GetNextChar
+ ldx #0
+ tay ; preserve Z flag
+ rts
diff --git a/libsrc/geos-common/mousesprite/inittextprompt.s b/libsrc/geos-common/mousesprite/inittextprompt.s
new file mode 100644
index 000000000..21c213544
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/inittextprompt.s
@@ -0,0 +1,13 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 21.12.99
+
+; void InitTextPrompt (char height);
+
+ .export _InitTextPrompt
+
+ .include "jumptab.inc"
+
+_InitTextPrompt = InitTextPrompt
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/ismseinregion.s b/libsrc/geos-common/mousesprite/ismseinregion.s
new file mode 100644
index 000000000..554ca58ef
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/ismseinregion.s
@@ -0,0 +1,19 @@
+
+;
+; Maciej 'YTM/Elysium' Witkowiak
+;
+; 21.12.1999, 2.1.2003
+
+; char IsMseInRegion (struct window *mywindow);
+
+ .import _InitDrawWindow
+
+ .export _IsMseInRegion
+
+ .include "jumptab.inc"
+
+_IsMseInRegion:
+ jsr _InitDrawWindow
+ jsr IsMseInRegion
+ ldx #0
+ rts
diff --git a/libsrc/geos-common/mousesprite/mouse.s b/libsrc/geos-common/mousesprite/mouse.s
new file mode 100644
index 000000000..1889c4f95
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/mouse.s
@@ -0,0 +1,194 @@
+;
+; Maciej 'YTM/Elysium' Witkowiak
+;
+; 2.7.2001
+;
+; Wrapper for GEOS standard input device interface
+;
+
+ .export _mouse_init, _mouse_done
+ .export _mouse_hide, _mouse_show
+ .export _mouse_box
+ .export _mouse_pos, _mouse_info
+ .export _mouse_move, _mouse_buttons
+
+ .import popsreg, addysp1
+ .importzp sp, sreg, ptr1
+
+ .include "const.inc"
+ .include "jumptab.inc"
+ .include "geossym.inc"
+
+
+.code
+
+; --------------------------------------------------------------------------
+;
+; unsigned char __fastcall__ mouse_init (unsigned char type);
+;
+
+_mouse_init:
+ jsr StartMouseMode
+ jsr MouseOff
+
+ lda #0
+ sta mouseTop
+ sta mouseLeft
+ sta mouseLeft+1
+.ifdef __GEOS_CBM__
+ lda #199
+ sta mouseBottom
+ lda graphMode
+ bpl _mse_screen320
+
+ lda #<639 ; 80 columns on C128
+ ldx #>639
+ bne _mse_storex
+_mse_screen320:
+ lda #<319 ; 40 columns on C64/C128
+ ldx #>319
+_mse_storex:
+.else
+ lda #191
+ sta mouseBottom
+ lda #<559
+ ldx #>559
+.endif
+ sta mouseRight
+ stx mouseRight+1
+_mse_initend:
+ lda #0
+ tax
+; --------------------------------------------------------------------------
+;
+; void mouse_done (void);
+;
+_mouse_done:
+ rts
+
+; --------------------------------------------------------------------------
+;
+; void mouse_hide (void);
+;
+
+_mouse_hide = MouseOff
+
+; --------------------------------------------------------------------------
+;
+; void mouse_show (void);
+;
+
+_mouse_show = MouseUp
+
+; --------------------------------------------------------------------------
+;
+; void __fastcall__ mouse_box (int minx, int miny, int maxx, int maxy);
+;
+
+_mouse_box:
+ ldy #0 ; Stack offset
+
+ sta mouseBottom
+
+ lda (sp),y
+ sta mouseRight
+ iny
+ lda (sp),y
+ sta mouseRight+1 ; maxx
+
+ iny
+ lda (sp),y
+ sta mouseTop
+ iny ; Skip high byte
+
+ iny
+ lda (sp),y
+ sta mouseLeft
+ iny
+ lda (sp),y
+ sta mouseLeft+1 ; minx
+
+ jmp addysp1 ; Drop params, return
+
+; --------------------------------------------------------------------------
+;
+; void __fastcall__ mouse_pos (struct mouse_pos* pos);
+; /* Return the current mouse position */
+;
+
+_mouse_pos:
+ sta ptr1
+ stx ptr1+1 ; Remember the argument pointer
+
+ ldy #0 ; Structure offset
+
+ php
+ sei ; Disable interrupts
+
+ lda mouseXPos ; Transfer the position
+ sta (ptr1),y
+ lda mouseXPos+1
+ iny
+ sta (ptr1),y
+ lda mouseYPos
+ iny
+ sta (ptr1),y
+ lda #$00
+ iny
+ sta (ptr1),y
+
+ plp ; Reenable interrupts
+ rts ; Done
+
+; --------------------------------------------------------------------------
+;
+; void __fastcall__ mouse_info (struct mouse_info* info);
+; /* Return the state of the mouse buttons and the position of the mouse */
+;
+
+_mouse_info:
+
+; We're cheating here to keep the code smaller: The first fields of the
+; mouse_info struct are identical to the mouse_pos struct, so we will just
+; call _mouse_pos to initialize the struct pointer and fill the position
+; fields.
+
+ jsr _mouse_pos
+
+; Fill in the button state
+
+ jsr _mouse_buttons ; Will not touch ptr1
+ iny
+ sta (ptr1),y
+
+ rts
+
+; --------------------------------------------------------------------------
+;
+; void __fastcall__ mouse_move (int x, int y);
+;
+
+_mouse_move:
+ jsr popsreg ; Get X
+ php
+ sei ; Disable interrupts
+ sta mouseYPos
+ lda sreg
+ ldx sreg+1
+ sta mouseXPos
+ stx mouseXPos+1
+ plp ; Enable interrupts
+ rts
+
+; --------------------------------------------------------------------------
+;
+; unsigned char mouse_buttons (void);
+;
+
+_mouse_buttons:
+ ldx #0
+ lda pressFlag
+ and #SET_MOUSE
+ lsr
+ rts
+
diff --git a/libsrc/geos-common/mousesprite/mouseoff.s b/libsrc/geos-common/mousesprite/mouseoff.s
new file mode 100644
index 000000000..84f34701d
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/mouseoff.s
@@ -0,0 +1,13 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 30.10.99
+
+; void MouseOff (void);
+
+ .export _MouseOff
+
+ .include "jumptab.inc"
+
+_MouseOff = MouseOff
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/mouseup.s b/libsrc/geos-common/mousesprite/mouseup.s
new file mode 100644
index 000000000..08f831ce4
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/mouseup.s
@@ -0,0 +1,13 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 30.10.99
+
+; void MouseUp (void);
+
+ .export _MouseUp
+
+ .include "jumptab.inc"
+
+_MouseUp = MouseUp
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/possprite.s b/libsrc/geos-common/mousesprite/possprite.s
new file mode 100644
index 000000000..1ffda37b4
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/possprite.s
@@ -0,0 +1,32 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 30.10.99
+
+;
+; void PosSprite (char spritenum, struct pixel *position );
+;
+
+ .importzp ptr4
+ .import popa
+ .export _PosSprite
+
+ .include "jumptab.inc"
+ .include "geossym.inc"
+
+_PosSprite:
+ sta ptr4
+ stx ptr4+1
+ ldy #0
+ lda (ptr4),y
+ sta r4L
+ iny
+ lda (ptr4),y
+ sta r4H
+ iny
+ lda (ptr4),y
+ sta r5L
+ jsr popa
+ sta r3L
+ jmp PosSprite
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/promptoff.s b/libsrc/geos-common/mousesprite/promptoff.s
new file mode 100644
index 000000000..11088cb59
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/promptoff.s
@@ -0,0 +1,13 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 21.12.99
+
+; void PromptOff (void);
+
+ .export _PromptOff
+
+ .include "jumptab.inc"
+
+_PromptOff = PromptOff
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/prompton.s b/libsrc/geos-common/mousesprite/prompton.s
new file mode 100644
index 000000000..3de1b01f4
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/prompton.s
@@ -0,0 +1,24 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 21.12.99
+
+; void PromptOn (struct pixel *);
+
+ .importzp ptr4
+ .export _PromptOn
+
+ .include "jumptab.inc"
+ .include "geossym.inc"
+
+_PromptOn:
+ sta ptr4
+ stx ptr4+1
+ ldy #0
+promptLp: lda (ptr4),y
+ sta stringX,y
+ iny
+ cpy #3
+ bne promptLp
+ jmp PromptOn
\ No newline at end of file
diff --git a/libsrc/geos-common/mousesprite/startmousemode.s b/libsrc/geos-common/mousesprite/startmousemode.s
new file mode 100644
index 000000000..cefde425e
--- /dev/null
+++ b/libsrc/geos-common/mousesprite/startmousemode.s
@@ -0,0 +1,15 @@
+
+;
+; Maciej 'YTM/Alliance' Witkowiak
+;
+; 30.10.99
+
+; void StartMouseMode (void);
+
+ .export _StartMouseMode
+
+ .include "jumptab.inc"
+
+_StartMouseMode:
+ clc
+ jmp StartMouseMode
\ No newline at end of file