bug fixes

This commit is contained in:
Anatoliy Belyanskiy 2024-06-23 03:48:41 +10:00
parent 35fbce1274
commit 7c9c4311a4
5 changed files with 102 additions and 107 deletions

View File

@ -115,36 +115,7 @@ RST_30: JP MOUSE_DRV.API
////////////////////////////////////////////////////////////////////////
; <[MAIN INT]> ;
BLOCK #38-$,#C7 ;
A0038: ;
; JP RST_38 ;
; RST_38: ;
; INT_: PUSH AF ;
; EX AF,AF' ;
; PUSH AF ;
; PUSH BC ;
; PUSH DE ;
; PUSH HL ;
; EXX ;
; PUSH BC ;
; PUSH DE ;
; PUSH HL ;
; PUSH IX ;
; PUSH IY ;
; CALL KEYSCAN ;
; LD C,#80 ;
; RST ToDSS.Mouse ;
; POP IY ;
; POP IX ;
; POP HL ;
; POP DE ;
; POP BC ;
; EXX ;
; POP HL ;
; POP DE ;
; POP BC ;
; POP AF ;
; EX AF,AF' ;
; POP AF ;
/*
;!TEST SIO INT
; reg 0 - error reset
IF KEYBOARD_INT_ENABLED && MOUSE_INT_ENABLED == 0
@ -179,6 +150,15 @@ A0038: ;
ENDIF
EI ;
RETI ;
*/
RST_38_DRV: JP .Portal
BLOCK RST_38_IM1.Portal - $,0
.Portal: PUSH AF
LD A,(DRV_PAGE.MAIN_PAGE_NUMBER)
OUT (SLOT0),A
POP AF
EI
RETI
////////////////////////////////////////////////////////////////////////

View File

@ -139,53 +139,31 @@ RST_0x30: PUSH AF
////////////////////////////////////////////////////////////////////////
; <[MAIN INT]>
_mInfoBLOCK #38-$,#FF
RST_38: ;¤«ï ⮣®, ç⮡ á®äâë ¬®£«¨ ¬¥­ïâì ®¡à ¡®â稪 ­  ᢮©.
JP RST_0x38
RST_0x38:
INT_: PUSH AF
EX AF,AF'
PUSH AF
PUSH BC
PUSH DE
PUSH HL
EXX
PUSH BC
PUSH DE
PUSH HL
PUSH IX
PUSH IY
CALL KEYSCAN
LD C,Dss.Mouse.GetPackets
RST ToDSS.Mouse
;CALL M_INT
IFN CLASSIC_CURSOR
CALL cursor_interrupt; ¢¥ªâ®à ®¡á«ã¦. ªãàá®à  ;!!!!! VASIL
ENDIF
POP IY
POP IX
POP HL
POP DE
POP BC
EXX
POP HL
POP DE
POP BC
POP AF
EX AF,AF'
POP AF
;¤«ï ⮣®, ç⮡ á®äâë ¬®£«¨ ¬¥­ïâì ®¡à ¡®â稪 ­  ᢮©.
RST_38_IM1: JP .Handler
.Handler: CALL INTx38_Handler
EI
RETI
;
.Portal: PUSH AF
LD A,(RST_0x30.drv_page)
OUT (SLOT0),A
POP AF
CALL INTx38_Handler
JR .Portal
;
////////////////////////////////////////////////////////////////////////
;
NMI: RETN
;NMI: RETN
;
;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[ NMI ]> ;
_mInfoBLOCK #66-$,#FF ;
NMI_0x66: JP NMI ;
NMI_0x66: RETN ;JP NMI ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
@ -278,6 +256,39 @@ CLEAR_BUFFER_AND_INIT_PROC:
JP VERSION
INTx38_Handler: PUSH AF
EX AF,AF'
PUSH AF
PUSH BC
PUSH DE
PUSH HL
EXX
PUSH BC
PUSH DE
PUSH HL
PUSH IX
PUSH IY
CALL KEYSCAN
LD C,Dss.Mouse.GetPackets
RST ToDSS.Mouse
;CALL M_INT
IFN CLASSIC_CURSOR
CALL cursor_interrupt; ¢¥ªâ®à ®¡á«ã¦. ªãàá®à  ;!!!!! VASIL
ENDIF
POP IY
POP IX
POP HL
POP DE
POP BC
EXX
POP HL
POP DE
POP BC
POP AF
EX AF,AF'
POP AF
RET
;R03
;R07Allocate memory
; LD BC,#03C2

View File

@ -14,7 +14,7 @@
; MOUSE
DEFINE MOUSE_COM_BAUD 0 ; 1 - 2485, 2 - 4807, else - 1215 (default)
DEFINE MOUSE_INT_ENABLED 0 ; INT from SIO ch. B
DEFINE MOUSE_READ_PORT_TIMEOUT 16*1024 ; Š®áâë«ì­ë© â ©¬- ãâ ­  ®¦¨¤ ­¨¥ ¡ ©â  ®â ¬ë誨.
DEFINE MOUSE_READ_PORT_TIMEOUT 5*512 ; Š®áâë«ì­ë© â ©¬- ãâ ­  ®¦¨¤ ­¨¥ ¡ ©â  ®â ¬ë誨. …᫨ = 0, â® «¨è­¨© ª®¤ ­¥ ª®¬¯¨«¨âáï
; KEYBOARD
DEFINE KEYBOARD_INT_ENABLED 0 ; INT from SIO ch. A

View File

@ -14,20 +14,25 @@ PORT_MOUSE.Data EQU Z84.SIO.Ch_B.Data
RRCA
RET NC
ELSE
;[x] mouse freeeeezzzz
;LD BC,MOUSE_READ_PORT_TIMEOUT
IF MOUSE_READ_PORT_TIMEOUT != 0
;[x] mouse bug
LD BC,MOUSE_READ_PORT_TIMEOUT
;
ENDIF
.READ_BYTE: IN A,(PORT_MOUSE.Ctrl)
RRCA
;[x] mouse freeeeezzzz
;JR C,.NEXT
;DEC BC
;LD A,B
;OR C
;JR NZ,.READ_BYTE
;RET
JR NC,.READ_BYTE
IF MOUSE_READ_PORT_TIMEOUT != 0
;[x] mouse bug
JR C,.NEXT
DEC BC
LD A,B
OR C
JR NZ,.READ_BYTE
RET
.NEXT: ;
ELSE
JR NC,.READ_BYTE
ENDIF
ENDIF
ENDM
////////////////////////////////////////////////////////////////////////
@ -678,7 +683,7 @@ CLEAR_MOUSE_BUFFER:
;----------------------------------------------------------------------;
READ_M: /*;[ ] 18/02/2024 能恥丞<E681A5> <20> 砲鄍祚垠平言 <EFBD9E>
READ_M: ;[ ] 18/02/2024 能恥丞<E681A5> <20> 砲鄍祚垠平言 <EFBD9E>
; reg 1
LD A,1
OUT (PORT_MOUSE.Ctrl),A
@ -698,7 +703,6 @@ READ_M: /*;[ ] 18/02/2024
;
JR CLEAR_MOUSE_BUFFER
;
*/
IF MOUSE_INT_ENABLED
.Prepare: LD HL,.Step
LD A,(HL)
@ -722,8 +726,8 @@ READ_M: /*;[ ] 18/02/2024
LD L,A
ENDIF
AND %0100'0000
RET Z
;JP Z,CLEAR_MOUSE_BUFFER
;RET Z
JP Z,CLEAR_MOUSE_BUFFER
;
IF MOUSE_INT_ENABLED
INC (HL)
@ -745,10 +749,10 @@ READ_M: /*;[ ] 18/02/2024
LD E,A
AND %0100'0000
;!TEST
RET NZ
;JR Z,.READ_THIRD_BYTE
;LD L,E
;JR .READ_SECOND_BYTE
;RET NZ
JR Z,.READ_THIRD_BYTE
LD L,E
JR .READ_SECOND_BYTE
ENDIF
;
.READ_THIRD_BYTE:
@ -769,10 +773,10 @@ READ_M: /*;[ ] 18/02/2024
LD D,A
AND %0100'0000
;!TEST
RET NZ
;JR Z,.packet_end
;LD L,D
;JR .READ_SECOND_BYTE
;RET NZ
JR Z,.packet_end
LD L,D
JR .READ_SECOND_BYTE
.packet_end: ;
ENDIF
;
@ -924,10 +928,10 @@ SENSE: LD HL,(SENSEXY)
.next: LD E,B
; [x] 15/03/2024 ⥯¥àì ¯®¯à ¢ª¨ çã¢á⢨⥫쭮á⨠¯® ª®®à¤¨­ â ¬ à ¡®â îâ ª®à४⭮
.check_Y:
LD A,H
CP 2
CCF
RET NC
; LD A,H
; CP 2
; CCF
; RET NC
;
LD A,D
BIT 7,A
@ -1055,7 +1059,7 @@ MIN_Y: DW 0
MAX_Y: DW 255
SENSEXY: ; ‘í­ ‘íªá¨
.X: DB 0
.Y: DB 2
.Y: DB 0
XHOT_SP: DW 0
YHOT_SP: DW 0

@ -1 +1 @@
Subproject commit 399bf41c5cbd12d2866204ee3ff1cc357a3d3a99
Subproject commit 1cb8eb13fb8e8b20bba324a5ab9f4e18d6bf8b3c