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
This commit is contained in:
ol.sc
2012-02-04 17:51:17 +00:00
parent a589fdca80
commit a525fdafb0
17 changed files with 2 additions and 2 deletions

View File

@@ -33,7 +33,8 @@ DIRS = dlgbox \
file \
graph \
memory \
menuicon
menuicon \
mousesprite
#--------------------------------------------------------------------------
# Directives

View File

@@ -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

View File

@@ -0,0 +1,13 @@
;
; Maciej 'YTM/Alliance' Witkowiak
;
; 30.10.99
; void ClearMouseMode (void);
.export _ClearMouseMode
.include "jumptab.inc"
_ClearMouseMode = ClearMouseMode

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,13 @@
;
; Maciej 'YTM/Alliance' Witkowiak
;
; 21.12.99
; void InitTextPrompt (char height);
.export _InitTextPrompt
.include "jumptab.inc"
_InitTextPrompt = InitTextPrompt

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,13 @@
;
; Maciej 'YTM/Alliance' Witkowiak
;
; 30.10.99
; void MouseOff (void);
.export _MouseOff
.include "jumptab.inc"
_MouseOff = MouseOff

View File

@@ -0,0 +1,13 @@
;
; Maciej 'YTM/Alliance' Witkowiak
;
; 30.10.99
; void MouseUp (void);
.export _MouseUp
.include "jumptab.inc"
_MouseUp = MouseUp

View File

@@ -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

View File

@@ -0,0 +1,13 @@
;
; Maciej 'YTM/Alliance' Witkowiak
;
; 21.12.99
; void PromptOff (void);
.export _PromptOff
.include "jumptab.inc"
_PromptOff = PromptOff

View File

@@ -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

View File

@@ -0,0 +1,15 @@
;
; Maciej 'YTM/Alliance' Witkowiak
;
; 30.10.99
; void StartMouseMode (void);
.export _StartMouseMode
.include "jumptab.inc"
_StartMouseMode:
clc
jmp StartMouseMode