mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
...
This commit is contained in:
parent
336436ee76
commit
a18f382470
@ -49,4 +49,4 @@ SCANDRV:
|
|||||||
RET
|
RET
|
||||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
;///////////////////////////////////////////////////////////////////////
|
;///////////////////////////////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
@ -287,7 +287,7 @@ F_START: DI
|
|||||||
|
|
||||||
.good: CALL DEPLOY ;R07 ;íâ ¯à®æ¥¤ãà § âàñâáï ¯®á«¥ ¨á¯®«¥¨ï
|
.good: CALL DEPLOY ;R07 ;íâ ¯à®æ¥¤ãà § âàñâáï ¯®á«¥ ¨á¯®«¥¨ï
|
||||||
RET C ;R10
|
RET C ;R10
|
||||||
CALL KINIT
|
CALL KEYBOARD_INIT
|
||||||
CALL PRINT_INIT
|
CALL PRINT_INIT
|
||||||
LD C,Dss.Mouse.Init
|
LD C,Dss.Mouse.Init
|
||||||
RST ToDSS.Mouse
|
RST ToDSS.Mouse
|
||||||
|
|||||||
@ -156,44 +156,42 @@ M_RESR LD A,DSS_Error.mouse.INVALID_COMMAND
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
;!TODO ¡¨®á.
|
;!TODO ¡¨®á.
|
||||||
MS_INIT DI
|
MS_INIT:
|
||||||
;!TEST mouse
|
DI
|
||||||
;LD A,#55
|
; reg 0
|
||||||
;OUT (#10),A
|
XOR A ;LD A,0
|
||||||
;LD A,#2D
|
|
||||||
;OUT (#10),A
|
|
||||||
;
|
|
||||||
XOR A ;LD A,0
|
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
INC A ;LD A,1
|
; reg 4
|
||||||
|
LD A,4
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
DEC A ;LD A,0
|
LD A,+(7 | MOUSE_BAUD.multiplier_1) ; ¯¥à¢ë© ¬®¦¨â¥«ì
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
; reg 3
|
||||||
LD A,3
|
LD A,3
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
LD A,#41
|
LD A,#41
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
LD A,4
|
; reg 5
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
|
||||||
;!TEST mouse
|
|
||||||
LD A,MOUSE_BAUD.multiplier_1 ; ¯¥à¢ë© ¬®¦¨â¥«ì
|
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
|
||||||
;
|
|
||||||
LD A,5
|
LD A,5
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
; [ ] ¤«ï ª®à४⮣® ¨¨â Sega ¤¦®©á⨪ ¢ ¯®àâã ª¥¬¯áâ® ¤¦®©á⨪
|
LD A,%1110'0000 ; bit7 ¤«ï ª®à४⮣® ¨¨â Sega ¤¦®©á⨪ ¢ ¯®àâã ª¥¬¯áâ® ¤¦®©á⨪
|
||||||
LD A,%1110'0000
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
;LD A,%0110'0000
|
;
|
||||||
;
|
; reg 1
|
||||||
|
LD A,1
|
||||||
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
IF MOUSE_INT_ENABLED
|
||||||
|
LD A,%0001'1001
|
||||||
|
ELSE
|
||||||
|
XOR A
|
||||||
|
ENDIF
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
|
||||||
;!TEST mouse
|
;!TEST mouse
|
||||||
LD A,#55
|
LD A,#55
|
||||||
OUT (Z84.CTC.Ch_0),A
|
OUT (Z84.CTC.Ch_0),A
|
||||||
LD A,MOUSE_BAUD.multiplier_2 ; ¢â®à®© ¬®¦¨â¥«ì
|
LD A,MOUSE_BAUD.multiplier_2 ; ¢â®à®© ¬®¦¨â¥«ì
|
||||||
OUT (Z84.CTC.Ch_0),A
|
OUT (Z84.CTC.Ch_0),A
|
||||||
;
|
;
|
||||||
|
|
||||||
EI
|
EI
|
||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
@ -516,7 +514,7 @@ MOUSE: LD A,(MODE_M)
|
|||||||
JR SET_RESTORE_EXIT
|
JR SET_RESTORE_EXIT
|
||||||
;
|
;
|
||||||
;set gfx-mode
|
;set gfx-mode
|
||||||
.GFX: CP #82 ;640x256x16
|
.GFX: CP Dss.SetVMod.grf640x256
|
||||||
JR NZ,.NOFIX_640
|
JR NZ,.NOFIX_640
|
||||||
SRL H
|
SRL H
|
||||||
RR L
|
RR L
|
||||||
|
|||||||
@ -435,8 +435,16 @@ KEYSCAN:
|
|||||||
LD IX,KEYFLAG
|
LD IX,KEYFLAG
|
||||||
.RESCAN:
|
.RESCAN:
|
||||||
IN A,(Z84.SIO.Ch_A.Ctrl)
|
IN A,(Z84.SIO.Ch_A.Ctrl)
|
||||||
BIT 0,A
|
AND 1
|
||||||
RET Z
|
RET Z
|
||||||
|
;[ ] 18/02/2024 能恥丞<E681A5> <20> 砲鄍祚垠平言 ~銗<EFBD9E>
|
||||||
|
; A = 1
|
||||||
|
; reg 1
|
||||||
|
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
|
IN A,(Z84.SIO.Ch_A.Ctrl)
|
||||||
|
AND %0010'0000 ; check receiver overrun error
|
||||||
|
JP NZ,Receiver_Overrun
|
||||||
|
;
|
||||||
IN A,(Z84.SIO.Ch_A.Data)
|
IN A,(Z84.SIO.Ch_A.Data)
|
||||||
CP #F0
|
CP #F0
|
||||||
JR Z,FULL_BF.F0_KEY
|
JR Z,FULL_BF.F0_KEY
|
||||||
@ -451,10 +459,10 @@ KEYSCAN:
|
|||||||
CALL SHIFTS
|
CALL SHIFTS
|
||||||
RES FLAG_E0,(IX+KEYFLG)
|
RES FLAG_E0,(IX+KEYFLG)
|
||||||
RES FLAG_E1,(IX+KEYFLG)
|
RES FLAG_E1,(IX+KEYFLG)
|
||||||
RET Z ;IT'S SHIFT KEY
|
;RET Z ;IT'S SHIFT KEY
|
||||||
|
;
|
||||||
CALL INPCODE ;L - AT POS. CODE
|
CALL INPCODE ;L - AT POS. CODE
|
||||||
PUTCODE:
|
;PUTCODE
|
||||||
LD HL,#1C00 ;Caps Lock
|
LD HL,#1C00 ;Caps Lock
|
||||||
AND A
|
AND A
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
@ -479,16 +487,24 @@ PUTCODE:
|
|||||||
AND A
|
AND A
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
CALL Z,SCL_X
|
CALL Z,SCL_X
|
||||||
|
;[x] small optimization)))
|
||||||
;small optimization
|
; LD HL,#CF00 ;Ctrl + Alt + Del
|
||||||
; LD HL,#CF00 ;Ctrl + Alt + Del
|
; AND A
|
||||||
; AND A
|
; SBC HL,DE
|
||||||
; SBC HL,DE
|
; CALL Z,RST_X
|
||||||
; CALL Z,RST_X
|
;
|
||||||
;;;
|
|
||||||
LD BC,(KEYFLAG)
|
LD BC,(KEYFLAG)
|
||||||
CALL PUTSYM
|
CALL PUTSYM
|
||||||
RET
|
RET
|
||||||
|
;[ ] 18/02/2024 能恥丞<E681A5> <20> 砲鄍祚垠平言 ~銗<EFBD9E>
|
||||||
|
; .Receiver_Overrun:
|
||||||
|
; LD (IX+K_SHIFT),0
|
||||||
|
; LD (IX+KEYFLG),0
|
||||||
|
; ; reg 0 - reset errors
|
||||||
|
; LD A,%0011'0000
|
||||||
|
; OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
|
; RET
|
||||||
|
|
||||||
|
|
||||||
UN_KEY RES FLAG_F0,(IX+KEYFLG)
|
UN_KEY RES FLAG_F0,(IX+KEYFLG)
|
||||||
LD L,A
|
LD L,A
|
||||||
@ -922,29 +938,30 @@ SHF2RUS DB #F1,Esc,"!",#22,"#","$",":",#2C,".",";","?","%","_","+",Bcs
|
|||||||
|
|
||||||
;================================
|
;================================
|
||||||
|
|
||||||
BEEP LD A,#10
|
BEEP: LD A,#10
|
||||||
OUT (#FE),A
|
OUT (ZX_Beeper),A
|
||||||
LD B,D
|
LD B,D
|
||||||
LD C,E
|
LD C,E
|
||||||
BPP DEC BC
|
.loop1: DEC BC
|
||||||
LD A,B
|
LD A,B
|
||||||
OR C
|
OR C
|
||||||
JR NZ,BPP
|
JR NZ,.loop1
|
||||||
LD A,#00
|
XOR A ;LD A,#00
|
||||||
OUT (#FE),A
|
OUT (ZX_Beeper),A
|
||||||
LD B,D
|
LD B,D
|
||||||
LD C,E
|
LD C,E
|
||||||
BPP2 DEC BC
|
.loop2: DEC BC
|
||||||
LD A,B
|
LD A,B
|
||||||
OR C
|
OR C
|
||||||
JR NZ,BPP2
|
JR NZ,.loop2
|
||||||
DEC HL
|
DEC HL
|
||||||
LD A,H
|
LD A,H
|
||||||
OR L
|
OR L
|
||||||
JR NZ,BEEP
|
JR NZ,BEEP
|
||||||
RET
|
RET
|
||||||
|
|
||||||
KINIT XOR A ;LD A,0
|
KEYBOARD_INIT:
|
||||||
|
XOR A ;LD A,0
|
||||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
INC A ;LD A,1
|
INC A ;LD A,1
|
||||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
@ -964,5 +981,24 @@ KINIT XOR A ;LD A,0
|
|||||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
;[ ] 18/02/2024 能恥丞<E681A5> <20> 砲鄍祚垠平言 ~銗<EFBD9E>
|
||||||
|
Receiver_Overrun:
|
||||||
|
; empty the buffer
|
||||||
|
IN A,(Z84.SIO.Ch_A.Data)
|
||||||
|
IN A,(Z84.SIO.Ch_A.Ctrl)
|
||||||
|
RRCA
|
||||||
|
JR C,Receiver_Overrun
|
||||||
|
; reg 0 - reset errors
|
||||||
|
LD A,%0011'0000
|
||||||
|
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
|
;
|
||||||
|
LD (IX+K_SHIFT),0
|
||||||
|
LD (IX+KEYFLG),0
|
||||||
|
;
|
||||||
|
; LD A,(HOST)
|
||||||
|
; LD (HEAD),A
|
||||||
|
;
|
||||||
|
AND A
|
||||||
|
RET
|
||||||
;//MODULE: KEYINTER
|
;//MODULE: KEYINTER
|
||||||
;[END]
|
;[END]
|
||||||
@ -1 +1 @@
|
|||||||
912
|
926
|
||||||
@ -3,17 +3,18 @@
|
|||||||
;
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
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
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
DEFINE MOUSE_COM_BAUD 0 ; 1 - 2404, 2 - 4807, else - 1215 (default)
|
DEFINE MOUSE_COM_BAUD 0 ; 1 - 2485, 2 - 4807, else - 1215 (default)
|
||||||
|
DEFINE MOUSE_INT_ENABLED 0
|
||||||
DEFINE MOUSE_READ_PORT_TIMEOUT 1280
|
DEFINE MOUSE_READ_PORT_TIMEOUT 1280
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥
|
;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
define _bit (1<?((FAT_CACHE.Sectors-1)
|
define _bit (1<?((FAT_CACHE.Sectors-1)
|
||||||
@ -94,18 +95,18 @@ HANDBUF.SIZE EQU 32
|
|||||||
;
|
;
|
||||||
;----------------------------------------------------;
|
;----------------------------------------------------;
|
||||||
|
|
||||||
IF MOUSE_COM_BAUD = 1
|
IF MOUSE_COM_BAUD = 1
|
||||||
MOUSE_BAUD:
|
MOUSE_BAUD:
|
||||||
.multiplier_1 EQU #02 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 2. 875000/Œ1*Œ2=2404
|
.multiplier_1 EQU %0100'0000 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 16.
|
||||||
.multiplier_2 EQU #B6 ; ¢â®à®© ¬®¦¨â¥«ì = 182. 875000/Œ1*Œ2=2404
|
.multiplier_2 EQU 22 ; ¢â®à®© ¬®¦¨â¥«ì = 22. 875000/Œ1*Œ2=2485
|
||||||
ELSEIF MOUSE_COM_BAUD = 2
|
ELSEIF MOUSE_COM_BAUD = 2
|
||||||
MOUSE_BAUD:
|
MOUSE_BAUD:
|
||||||
.multiplier_1 EQU #04 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 1. 875000/Œ1*Œ2=4807
|
.multiplier_1 EQU %0000'0000 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 1.
|
||||||
.multiplier_2 EQU #B6 ; ¢â®à®© ¬®¦¨â¥«ì = 182. 875000/Œ1*Œ2=4807
|
.multiplier_2 EQU 182 ; ¢â®à®© ¬®¦¨â¥«ì = 182. 875000/Œ1*Œ2=4807
|
||||||
ELSE
|
ELSE
|
||||||
MOUSE_BAUD:
|
MOUSE_BAUD:
|
||||||
.multiplier_1 EQU #47 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 16. 875000/Œ1*Œ2=1215
|
.multiplier_1 EQU %0100'0000 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 16.
|
||||||
.multiplier_2 EQU #2D ; ¢â®à®© ¬®¦¨â¥«ì = 45. 875000/Œ1*Œ2=1215
|
.multiplier_2 EQU 45 ; ¢â®à®© ¬®¦¨â¥«ì = 45. 875000/Œ1*Œ2=1215
|
||||||
ENDIF
|
ENDIF
|
||||||
;----------------------------------------------------;
|
;----------------------------------------------------;
|
||||||
;
|
;
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 9a8cc2fa8438c6e27c72b60a7cfd3a2e3470b314
|
Subproject commit dbf3e86b6290d71e5789cabf7af6981a5a42db0e
|
||||||
Loading…
Reference in New Issue
Block a user