MOUSE0 ASM ;
;*** haftmann#software ***
;*** MOUSE0 ohne Anspr}che ***
;*** nur 1.V24, nur Kanal 2 ***
;*** voll verschieblich ***
;*** 10.04.92 ***
OS EQU 0F003H
RC EQU 0F00FH
ORG 200H
ISRD
DEFB 0 ;EMPFANGSBYTENR
DEFB 7 ;TASTENSTATI
DEFB 0F6H ;USERTASTE
DEFB 0 ;FREIGABE
DEFB 8 ;MICKEY X
DEFB 10H ;STEP X
DEFB 8 ;MICKEY Y
DEFB 10H ;STEP Y
ISR
PUSH HL
PUSH AF
PUSH DE
PUSH BC
;
CALL RC
DEFW 0
NEXT POP HL
LD DE,ISRD-NEXT
ADD HL,DE ;Datenzeiger
CHAR IN A,9
LD D,A ;Byte holen
;
XOR A
OR M ;Null?
JR NZ,DIRECT
LD A,D
AND 0F8H
CP 80H
JR NZ,EXIT
INC M
INC HL ;^Tastenstati
LD A,D ;gelesenes Byte
CPL
AND M
LD M,D
INC HL ;^Usertaste
RRA
JR NC,NRIGHT
LD C,M
LD A,M
JR EINTR
NRIGHT RRA
JR NC,NMIDDL
INC HL
LD A,M
CPL
JR NOVER
NMIDDL RRA
JR NC,EXIT
LD C,13
LD A,M
JR EINTR
DIRECT
INC A
CP 5
JR C,DIR1
XOR A
DIR1 RR M
LD M,A ;neue Nummer
INC HL
INC HL
INC HL
LD B,M ;Freigabe
INC HL
LD C,8 ;CUL
JR C,DIR2
INC HL
INC HL
LD C,10 ;CUD
DIR2 LD A,M ;Mickey
INC HL
LD E,M ;Step
DEC HL
ADD D
BIT 7,A
JR Z,POSI
ADD E
BIT 7,A
JR Z,EINTR1
XOR A
JR EINTR1
;
POSI CP E
JR C,NOVER
INC C
SUB E
CP E
JR C,EINTR1
LD A,E
DEC A
JR EINTR1
;
EINTR1 INC B ;Null?
DJNZ EXIT
EINTR LD (IX+13),C
SET 0,(IX+8)
NOVER LD M,A
EXIT POP BC
POP DE
POP AF
POP HL
EI
RETI
;
INITTB DEFB 47H
DEFB 2EH
DEFW 0E202H
DEFB 18H
DEFW 4414H
DEFW 0E103H
DEFW 0EA05H
DEFW 1811H
DEFW 0011H ;DI
;
DEFW 7F7FH
DEFM 'MOUSE'
DEFB 1
;nur Zeichen und Empfindlichkeit
LD C,L ;Zeichen
PUSH DE
CALL RC
DEFW 0
NXT POP HL ;=NXT
LD DE,ISR-NXT
ADD HL,DE ;HL=ISR
POP DE
DI
LD (1E2H),HL
DEC HL ;Interruptbeginn
LD A,(0B781H)
CP 2
JR C,NSTEPY
LD M,D
NSTEPY DEC HL
DEC HL ;^StepX
JR C,NSTEPX
LD M,E
NSTEPX DEC HL
DEC HL ;^Freigabe
LD M,0 ;Freigabe
DEC HL ;Usertaste
OR A
JR Z,NUSER
LD A,C
OR A
LD D,A
JR Z,SIOTOT
LD M,C
NUSER LD D,M
SIOTOT LD BC,780H
MM03 INC B
JR Z,NM03
IN A,(C)
CP 0EEH
JR NZ,MM03 ;nicht gef.
LD A,1
OUT (C),A
LD C,B
LD B,0B8H
LD (BC),A
NM03 LD BC,INITTB-ISRD-2
ADD HL,BC
LD BC,20DH
OTIR
LD BC,0B0BH
OTIR
LD A,D
OR A
JR NZ,NTOT
LD B,2
OTIR
NTOT EI
RET
ÆÌ0fÆ `00` ÿ f<ÿ<f f<ÿ<f f<ÿ<f f<ÿ<f ÆæöÞÎÆÆ 0p0000ü f<ÿ<f f<ÿ<f
Detected encoding: ANSI (CP1252) | 4
|
|