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