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]> ; ; <[MAIN INT]> ;
BLOCK #38-$,#C7 ; 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 ;!TEST SIO INT
; reg 0 - error reset ; reg 0 - error reset
IF KEYBOARD_INT_ENABLED && MOUSE_INT_ENABLED == 0 IF KEYBOARD_INT_ENABLED && MOUSE_INT_ENABLED == 0
@ -179,6 +150,15 @@ A0038: ;
ENDIF ENDIF
EI ; EI ;
RETI ; 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]> ; <[MAIN INT]>
_mInfoBLOCK #38-$,#FF _mInfoBLOCK #38-$,#FF
RST_38: ;¤«ï ⮣®, ç⮡ á®äâë ¬®£«¨ ¬¥­ïâì ®¡à ¡®â稪 ­  ᢮©. ;¤«ï ⮣®, ç⮡ á®äâë ¬®£«¨ ¬¥­ïâì ®¡à ¡®â稪 ­  ᢮©.
JP RST_0x38 RST_38_IM1: JP .Handler
RST_0x38: .Handler: CALL INTx38_Handler
INT_: PUSH AF EI
EX AF,AF' RETI
PUSH AF ;
PUSH BC .Portal: PUSH AF
PUSH DE LD A,(RST_0x30.drv_page)
PUSH HL OUT (SLOT0),A
EXX POP AF
PUSH BC CALL INTx38_Handler
PUSH DE JR .Portal
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
EI
RETI
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
; ;
NMI: RETN ;NMI: RETN
; ;
; ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[ NMI ]> ; ; <[ NMI ]> ;
_mInfoBLOCK #66-$,#FF ; _mInfoBLOCK #66-$,#FF ;
NMI_0x66: JP NMI ; NMI_0x66: RETN ;JP NMI ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; ;
@ -278,6 +256,39 @@ CLEAR_BUFFER_AND_INIT_PROC:
JP VERSION 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 ;R03
;R07Allocate memory ;R07Allocate memory
; LD BC,#03C2 ; LD BC,#03C2

View File

@ -7,24 +7,24 @@
; ;
; ;
DEFINE SHORT_RSTx10_TABLE 0 ; 㪮à®ç¥­­ ï â ¡«¨æ  ä㭪権 rst #10. 96 ä㭪権. DEFINE SHORT_RSTx10_TABLE 0 ; 㪮à®ç¥­­ ï â ¡«¨æ  ä㭪権 rst #10. 96 ä㭪権.
DEFINE COMPILE_UNUSED_CODE 0 DEFINE COMPILE_UNUSED_CODE 0
; ;
; MOUSE ; MOUSE
DEFINE MOUSE_COM_BAUD 0 ; 1 - 2485, 2 - 4807, else - 1215 (default) DEFINE MOUSE_COM_BAUD 0 ; 1 - 2485, 2 - 4807, else - 1215 (default)
DEFINE MOUSE_INT_ENABLED 0 ; INT from SIO ch. B 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 ; KEYBOARD
DEFINE KEYBOARD_INT_ENABLED 0 ; INT from SIO ch. A DEFINE KEYBOARD_INT_ENABLED 0 ; INT from SIO ch. A
DEFINE CHANGE_LANG_CTRL_SHIFT 1 ; [x] 0: Ctrl + Space, 1: Ctrl + Shift. DEFINE CHANGE_LANG_CTRL_SHIFT 1 ; [x] 0: Ctrl + Space, 1: Ctrl + Shift.
DEFINE BREAK_PROCESS_CODE #AC00 ; CTRL+C DEFINE BREAK_PROCESS_CODE #AC00 ; CTRL+C
DEFINE USE_E1_SCANCODE 0 DEFINE USE_E1_SCANCODE 0
DEFINE CLASSIC_CURSOR 0 DEFINE CLASSIC_CURSOR 0
; ;
;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì­®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥ ;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì­®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥
///////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////
DEFINE CHANGE_FREE_CLU_AFTER_DEL 1 DEFINE CHANGE_FREE_CLU_AFTER_DEL 1

View File

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

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