mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
эксперименты с SIO
This commit is contained in:
parent
63c527ace8
commit
54b1e804ba
@ -167,27 +167,38 @@ MS_INIT:
|
|||||||
; reg 4 - ᪮à®áâì ¯®àâ ¯¥à¢ë© ¬®¦¨â¥«ì
|
; reg 4 - ᪮à®áâì ¯®àâ ¯¥à¢ë© ¬®¦¨â¥«ì
|
||||||
LD A,4
|
LD A,4
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
LD A,+(7 | MOUSE_BAUD.multiplier_1)
|
;LD A,+(5 | MOUSE_BAUD.multiplier_1) ; parity
|
||||||
|
LD A,+(4 | MOUSE_BAUD.multiplier_1) ; no parity
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
; reg 3
|
; reg 3
|
||||||
LD A,3
|
LD A,3
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
LD A,#41
|
LD A,#41
|
||||||
|
;LD A,#C1
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
; reg 5
|
; reg 5
|
||||||
LD A,5
|
LD A,5
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
LD A,%1110'0000 ; bit7 ¤«ï ª®à४⮣® ¨¨â Sega ¤¦®©á⨪ ¢ ¯®àâã ª¥¬¯áâ® ¤¦®©á⨪
|
LD A,%1110'0000 ; bit7 ¤«ï ª®à४⮣® ¨¨â Sega ¤¦®©á⨪ ¢ ¯®àâã ª¥¬¯áâ® ¤¦®©á⨪
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
IF MOUSE_INT_ENABLED
|
||||||
; reg 1
|
; reg 1
|
||||||
LD A,1
|
LD A,1
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
IF MOUSE_INT_ENABLED
|
|
||||||
LD A,%0001'1001
|
LD A,%0001'1001
|
||||||
ELSE
|
|
||||||
XOR A
|
|
||||||
ENDIF
|
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
; reg 2
|
||||||
|
LD A,2
|
||||||
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
LD A,#FF ; ¢¥ªâ®à ¯à¥àë¢ ¨ï #FF
|
||||||
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
ELSE
|
||||||
|
; reg 1
|
||||||
|
LD A,1
|
||||||
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
XOR A
|
||||||
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
ENDIF
|
||||||
; ᪮à®áâì ¯®àâ - ¢â®à®© ¬®¦¨â¥«ì
|
; ᪮à®áâì ¯®àâ - ¢â®à®© ¬®¦¨â¥«ì
|
||||||
LD A,#55
|
LD A,#55
|
||||||
OUT (Z84.CTC.Ch_0),A
|
OUT (Z84.CTC.Ch_0),A
|
||||||
@ -622,22 +633,29 @@ MOUSE: LD A,(MODE_M)
|
|||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
CLEAR_MOUSE_BUFFER:
|
||||||
|
IN A,(Z84.SIO.Ch_B.Data)
|
||||||
|
IN A,(Z84.SIO.Ch_B.Ctrl)
|
||||||
|
RRCA
|
||||||
|
JR C,CLEAR_MOUSE_BUFFER
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
READ_M:
|
READ_M: ;[ ] 18/02/2024 ¯à®¢¥àª ¯¥à¥¯®«¥¨¥ ¡ãä¥à
|
||||||
;[ ] 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
|
||||||
IN A,(PORT_MOUSE.Ctrl)
|
IN A,(PORT_MOUSE.Ctrl)
|
||||||
AND %0010'0000 ; check receiver overrun error
|
AND %0010'0000 ; check receiver overrun error
|
||||||
; JP NZ,.Receiver_Overrun
|
; JP NZ,.Receiver_Overrun
|
||||||
JR Z,.NEXT
|
JR Z,.READ_FIRST_BYTE
|
||||||
; reg 0 - error reset
|
; reg 0 - error reset
|
||||||
LD A,%0011'0000
|
LD A,%0011'0000
|
||||||
OUT (Z84.SIO.Ch_B.Ctrl),A
|
OUT (Z84.SIO.Ch_B.Ctrl),A
|
||||||
.NEXT: ;
|
JP CLEAR_MOUSE_BUFFER
|
||||||
|
.READ_FIRST_BYTE:
|
||||||
IN A,(PORT_MOUSE.Ctrl)
|
IN A,(PORT_MOUSE.Ctrl)
|
||||||
RRCA
|
RRCA
|
||||||
RET NC
|
RET NC
|
||||||
@ -652,47 +670,52 @@ READ_M:
|
|||||||
RET Z
|
RET Z
|
||||||
|
|
||||||
;[x] mouse freeeeezzzz
|
;[x] mouse freeeeezzzz
|
||||||
LD BC,MOUSE_READ_PORT_TIMEOUT
|
;LD BC,MOUSE_READ_PORT_TIMEOUT
|
||||||
;
|
;
|
||||||
.TST_01:
|
.READ_SECOND_BYTE:
|
||||||
IN A,(PORT_MOUSE.Ctrl)
|
IN A,(PORT_MOUSE.Ctrl)
|
||||||
RRCA
|
RRCA
|
||||||
;[x] mouse freeeeezzzz
|
;[x] mouse freeeeezzzz
|
||||||
JR C,.NXT_1
|
;JR C,.NXT_1
|
||||||
DEC BC
|
;DEC BC
|
||||||
LD A,B
|
;LD A,B
|
||||||
OR C
|
;OR C
|
||||||
JR NZ,.TST_01
|
;JR NZ,.TST_01
|
||||||
RET
|
;RET
|
||||||
;JR NC,TST_01
|
JR NC,.READ_SECOND_BYTE
|
||||||
;
|
;
|
||||||
|
|
||||||
.NXT_1: IN A,(PORT_MOUSE.Data)
|
;.NXT_1:
|
||||||
|
IN A,(PORT_MOUSE.Data)
|
||||||
LD E,A
|
LD E,A
|
||||||
BIT 6,A
|
AND %0100'0000
|
||||||
CCF
|
;CCF
|
||||||
RET NZ
|
RET NZ
|
||||||
|
|
||||||
;[x] mouse freeeeezzzz
|
;[x] mouse freeeeezzzz
|
||||||
LD BC,MOUSE_READ_PORT_TIMEOUT
|
;LD BC,MOUSE_READ_PORT_TIMEOUT
|
||||||
;
|
;
|
||||||
.TST_02:
|
.READ_LAST_BYTE:
|
||||||
IN A,(PORT_MOUSE.Ctrl)
|
IN A,(PORT_MOUSE.Ctrl)
|
||||||
RRCA
|
RRCA
|
||||||
;[x] mouse freeeeezzzz
|
;[x] mouse freeeeezzzz
|
||||||
JR C,.NXT_2
|
;JR C,.NXT_2
|
||||||
DEC BC
|
;DEC BC
|
||||||
LD A,B
|
;LD A,B
|
||||||
OR C
|
;OR C
|
||||||
JR NZ,.TST_02
|
;JR NZ,.READ_LAST_BYTE
|
||||||
RET
|
;RET
|
||||||
;JR NC,TST_02
|
JR NC,.READ_LAST_BYTE
|
||||||
;
|
;
|
||||||
.NXT_2: IN A,(PORT_MOUSE.Data)
|
;.NXT_2:
|
||||||
|
IN A,(PORT_MOUSE.Data)
|
||||||
LD D,A
|
LD D,A
|
||||||
BIT 6,A
|
;BIT 6,A
|
||||||
CCF
|
AND %0100'0000
|
||||||
|
;CCF
|
||||||
RET NZ
|
RET NZ
|
||||||
|
; ¢á¥ âਠ¡ ©â ¯ ª¥â ¯à®ç¨â ë
|
||||||
|
;
|
||||||
LD A,E
|
LD A,E
|
||||||
AND #3F
|
AND #3F
|
||||||
LD E,A
|
LD E,A
|
||||||
@ -814,7 +837,7 @@ DECY: LD A,E
|
|||||||
|
|
||||||
SENSE: LD HL,(SENSEXY)
|
SENSE: LD HL,(SENSEXY)
|
||||||
LD A,L
|
LD A,L
|
||||||
;!TEST
|
; [ ] 15/03/2024 ⥯¥àì ¯®¯à ¢ª¨ çã¢á⢨⥫ì®á⨠¯® ª®®à¤¨ â ¬ à ¡®â îâ ª®à४â®
|
||||||
;OR L
|
;OR L
|
||||||
;RET Z
|
;RET Z
|
||||||
;DEC A
|
;DEC A
|
||||||
@ -840,7 +863,7 @@ SENSE: LD HL,(SENSEXY)
|
|||||||
LD B,A
|
LD B,A
|
||||||
;
|
;
|
||||||
.next: LD E,B
|
.next: LD E,B
|
||||||
; !TEST
|
; [ ] 15/03/2024 ⥯¥àì ¯®¯à ¢ª¨ çã¢á⢨⥫ì®á⨠¯® ª®®à¤¨ â ¬ à ¡®â îâ ª®à४â®
|
||||||
.check_Y:
|
.check_Y:
|
||||||
LD A,H
|
LD A,H
|
||||||
CP 2
|
CP 2
|
||||||
@ -971,7 +994,7 @@ MIN_X: DW 0
|
|||||||
MAX_X: DW 319
|
MAX_X: DW 319
|
||||||
MIN_Y: DW 0
|
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 2
|
||||||
|
|
||||||
|
|||||||
@ -978,7 +978,7 @@ KEYBOARD_INIT:
|
|||||||
; reg 4
|
; reg 4
|
||||||
LD A,4
|
LD A,4
|
||||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
LD A,#07 ;#05
|
;LD A,5 ; parity
|
||||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
; reg 3
|
; reg 3
|
||||||
LD A,3
|
LD A,3
|
||||||
@ -996,7 +996,7 @@ KEYBOARD_INIT:
|
|||||||
IF KEYBOARD_INT_ENABLED
|
IF KEYBOARD_INT_ENABLED
|
||||||
LD A,%0001'1001
|
LD A,%0001'1001
|
||||||
ELSE
|
ELSE
|
||||||
XOR A ;#18
|
XOR A
|
||||||
ENDIF
|
ENDIF
|
||||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
;
|
;
|
||||||
@ -1025,9 +1025,6 @@ KBD_Receiver_Overrun:
|
|||||||
LD (IX+K_SHIFT),0
|
LD (IX+K_SHIFT),0
|
||||||
LD (IX+KEYFLG),0
|
LD (IX+KEYFLG),0
|
||||||
;
|
;
|
||||||
; LD A,(HOST)
|
|
||||||
; LD (HEAD),A
|
|
||||||
;
|
|
||||||
;AND A
|
;AND A
|
||||||
RET
|
RET
|
||||||
;//MODULE: KEYINTER
|
;//MODULE: KEYINTER
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
944
|
958
|
||||||
@ -10,7 +10,7 @@
|
|||||||
;
|
;
|
||||||
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 3072 ; Š®áâë«ìë© â ©¬- ãâ ®¦¨¤ ¨¥ ¡ ©â ®â ¬ë誨. <EFBFBD>à®áâ® ¥áâì ªà¨¢ë¥ ¯¥à¥å®¤¨ª¨
|
;DEFINE MOUSE_READ_PORT_TIMEOUT 3072 ; Š®áâë«ìë© â ©¬- ãâ ®¦¨¤ ¨¥ ¡ ©â ®â ¬ë誨. <EFBFBD>à®áâ® ¥áâì ªà¨¢ë¥ ¯¥à¥å®¤¨ª¨
|
||||||
;
|
;
|
||||||
DEFINE KEYBOARD_INT_ENABLED 0 ; INT from SIO ch. A
|
DEFINE KEYBOARD_INT_ENABLED 0 ; INT from SIO ch. A
|
||||||
;
|
;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user