MOUSE2ASM ; ;*** haftmann#software *** ;*** MOUSE2 f}r 2 V.24-Module*** ;*** voll verschieblich *** ;*** 10.04.92 *** OS EQU 0F003H RC EQU 0F00FH ORG 3000H ISRD DEFB 14H ;SCHACHT1 DEFB 14H ;SCHACHT2 DEFB 9 ;SIOADR 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 AF PUSH HL PUSH DE PUSH BC ; CALL RC DEFW 0 NEXT POP HL LD DE,ISRD-NEXT ADD HL,DE ;Datenzeiger LD B,M LD C,80H XOR A OUT (C),A ;M003 (1) aus INC HL LD B,M INC A OUT (C),A ;M003 (2) ein PUSH HL ; INC HL LD C,M ;SIOADR IN D,(C) ;Byte holen INC HL ; 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 HL IN A,88H LD E,A ;Kein PUSH!! SET 2,A OUT 88H LD C,M LD B,0B8H LD A,(BC) LD B,C LD C,80H OUT (C),A ;M003 (2) alt DEC HL LD C,M LD B,0B8H LD A,(BC) LD B,C LD C,80H OUT (C),A ;M003 (1) alt LD A,E OUT 88H ; POP BC POP DE POP HL POP AF EI RETI ; INITTB DEFB 47H DEFB 2EH DEFW 0E002H DEFB 18H DEFW 4414H DEFW 0E103H DEFW 0EA05H DEFW 1811H DEFW 0011H ;DI ; DEFW 7F7FH DEFM 'MOUSE' DEFB 1 LD D,L PUSH DE CALL RC DEFW 0 NXT POP HL ;=NXT LD DE,ISR-NXT ADD HL,DE ;HL=ISR DI LD (1E0H),HL ; DEC HL ;Interruptbeginn LD DE,0B789H ;ARG4+1 LD A,(0B781H) LD B,A CP 4 JR C,NSTEPY LD A,(DE) ;STEPY LD M,A NSTEPY DEC HL DEC HL ;^StepX JR C,NSTEPX DEC DE LD A,(DE) ;STEPX LD M,A NSTEPX DEC HL DEC HL ;^Freigabe LD M,0 ;Freigabe DEC HL ;Usertaste LD A,B CP 3 JR C,NUSER LD M,C NUSER DEC HL DEC HL DEC HL ;^SIOPORT POP DE ;D=Slot,E=Port CP 2 JR C,NSIOK LD A,E CP 10H JR NC,USERSIO CP 4 JR NC,KANNR DEC A KANNR AND 1 ADD 8 ;V.24 USERSIO LD M,A NSIOK LD A,B OR A DEC HL ;^Schacht2 JR Z,SIOSL LD A,D OR A JR Z,SIOTOT LD M,D SIOSL LD D,M ;D=0: SIO t|ten SIOTOT DEC HL ;^Schacht1 LD BC,780H MM03 INC B JR Z,NM03 IN A,(C) CP 0EEH JR NZ,MM03 NM03 LD M,B ;merken XOR A OUT (C),A ;aus INC HL ;^Schacht2 LD B,M INC A OUT (C),A ;ein INC HL ;^SIOPort LD A,M ADD 4 ;CTC PUSH HL LD BC,INITTB-ISRD-2 ADD HL,BC LD C,A LD B,2 OTIR SUB 2 LD C,A SET 0,C ;f.Kanal B LD B,2 OTIR LD C,A LD B,9 OTIR LD A,D OR A JR NZ,NTOT LD B,2 OTIR NTOT POP HL ;^Port EI DEC HL LD B,M LD E,B LD C,80H LD D,0B8H LD A,(DE) OUT (C),A DEC HL LD B,M LD E,B LD A,(DE) OUT (C),A RET  À@Àt(Àp6ÀnTop of Text: End of Text: Start of MC: ASM-Offset : õÛˆö$ÓˆñÉõÛˆæÛÓˆñÉÍMÀ~#ÍDÀôÉED(DE) OUT (C),A RET  À@Àt(Àp6ÀnTop of Text: End of Text: Start of MC: ASM-Offset : õÛˆö$ÓˆñÉõÛˆæÛÓˆñÉÍMÀ~#ÍDÀôÉED