This commit is contained in:
Anatoliy Belyanskiy 2024-02-17 03:45:17 +10:00
parent 1d38b8ae10
commit 336436ee76
10 changed files with 147 additions and 143 deletions

View File

@ -132,47 +132,46 @@ RST_0x30: JP INTMOUS ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; ;
; ////////////////////////////////////////////////////////////////////////
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ; <[MAIN INT]>
; <[MAIN INT]> ; _mInfoBLOCK #38-$,#FF
_mInfoBLOCK #38-$,#FF ; RST_38: ;¤«ï ⮣®, ç⮡ á®äâë ¬®£«¨ ¬¥­ïâì ®¡à ¡®â稪 ­  ᢮©.
RST_38: ; JP RST_0x38
JP RST_0x38 ; <20>â®â ¤¦ ¬¯ ­ã¦¥­, ç⮡ á®äâë ¬®£«¨ «¥£ª® ¬¥­ïâì ®¡à ¡®â稪 ­  ᢮©. Š®áâë«ì­®. RST_0x38:
RST_0x38: ; INT_: PUSH AF
INT_: PUSH AF ; EX AF,AF'
EX AF,AF' ; PUSH AF
PUSH AF ; PUSH BC
PUSH BC ; PUSH DE
PUSH DE ; PUSH HL
PUSH HL ; EXX
EXX ; PUSH BC
PUSH BC ; PUSH DE
PUSH DE ; PUSH HL
PUSH HL ; PUSH IX
PUSH IX ; PUSH IY
PUSH IY ; CALL KEYSCAN
CALL KEYSCAN ; ; LD C,Dss.Mouse.GetPackets
LD C,#80 ; ; RST ToDSS.Mouse
RST ToDSS.Mouse ; CALL M_INT
IFN CLASSIC_CURSOR ; IFN CLASSIC_CURSOR
CALL cursor_interrupt; ¢¥ªâ®à ®¡á«ã¦. ªãàá®à  ;!!!!! VASIL CALL cursor_interrupt; ¢¥ªâ®à ®¡á«ã¦. ªãàá®à  ;!!!!! VASIL
ENDIF ; ENDIF
POP IY ; POP IY
POP IX ; POP IX
POP HL ; POP HL
POP DE ; POP DE
POP BC ; POP BC
EXX ; EXX
POP HL ; POP HL
POP DE ; POP DE
POP BC ; POP BC
POP AF ; POP AF
EX AF,AF' ; EX AF,AF'
POP AF ; POP AF
EI ; EI
RETI ; RETI
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ////////////////////////////////////////////////////////////////////////
;
; ;
NMI: RETN NMI: RETN

View File

@ -628,16 +628,17 @@ READ_M: IN A,(PORT_MOUSE.Ctrl)
RET Z RET Z
;[x] mouse freeeeezzzz ;[x] mouse freeeeezzzz
LD BC,#2000 LD BC,MOUSE_READ_PORT_TIMEOUT
; ;
TST_01: IN A,(PORT_MOUSE.Ctrl) .TST_01:
IN A,(PORT_MOUSE.Ctrl)
RRCA RRCA
;[x] mouse freeeeezzzz ;[x] mouse freeeeezzzz
JR C,.NXT JR C,.NXT
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,TST_01
; ;
@ -649,17 +650,17 @@ TST_01: IN A,(PORT_MOUSE.Ctrl)
RET NZ RET NZ
;[x] mouse freeeeezzzz ;[x] mouse freeeeezzzz
LD BC,#2000 LD BC,MOUSE_READ_PORT_TIMEOUT
; ;
TST_02: IN A,(PORT_MOUSE.Ctrl) TST_02: IN A,(PORT_MOUSE.Ctrl)
RRCA RRCA
;[x] mouse freeeeezzzz ;[x] mouse freeeeezzzz
JR C,.NXT JR C,.NXT
DEC BC DEC BC
LD A,B LD A,B
OR C OR C
JR NZ,TST_02 JR NZ,TST_02
RET RET
;JR NC,TST_02 ;JR NC,TST_02
; ;
.NXT: IN A,(PORT_MOUSE.Data) .NXT: IN A,(PORT_MOUSE.Data)
@ -692,9 +693,9 @@ TST_02: IN A,(PORT_MOUSE.Ctrl)
RLCA RLCA
RLCA RLCA
RES 6,A RES 6,A
JR NC,STBU JR NC,.STBU
SET 6,A SET 6,A
STBU RLCA .STBU: RLCA
RLCA RLCA
AND #03 AND #03
LD (MB),A LD (MB),A
@ -821,11 +822,12 @@ M_MODE LD (MODE_M),A
JR Z,S320256 JR Z,S320256
CP 2 CP 2
JR Z,S640256 JR Z,S640256
UNKMODE XOR A ; ????? ¬®¦¥â âãâ ­ ¤® .INVALID_COMMAND ? UNKMODE:
XOR A ; ????? ¬®¦¥â âãâ ­ ¤® .INVALID_COMMAND ?
SCF SCF
RET RET
S320256 S320256:
LD HL,0 ;MIN X LD HL,0 ;MIN X
LD DE,319 ;MAX X LD DE,319 ;MAX X
CALL MS_HORZ CALL MS_HORZ
@ -835,7 +837,7 @@ S320256
XOR A XOR A
RET RET
S640256 S640256:
LD HL,0 ;MIN X LD HL,0 ;MIN X
LD DE,639 ;MAX X LD DE,639 ;MAX X
CALL MS_HORZ CALL MS_HORZ
@ -846,7 +848,7 @@ S640256
RET RET
;Mouse Interrupt ;Mouse Interrupt
M_INT IN A,(SLOT3) M_INT: IN A,(SLOT3)
LD B,A LD B,A
IN A,(PORT_Y) IN A,(PORT_Y)
LD C,A LD C,A
@ -867,25 +869,26 @@ M_REFR CALL CONTROL
CONTROL CALL READ_M CONTROL CALL READ_M
RET NC RET NC
CALL MCORECT CALL MCORECT
LD A,#00 ;LD A,#00
LD (REDY),A ; XOR A
; LD (REDY),A
RET RET
REFRESH: REFRESH:
.hide+1: LD A,#01 .hide+1: LD A,#01
OR A OR A
RET NZ RET NZ
REDY+1: LD A,#00 ;
;????? ¯®ç¥¬ã § ª®¬¬¥­â¨à®¢ ­­® ¢ ®à¨£¨­ «¥? ; REDY+1: LD A,#01
;OR A ; OR A
;RET NZ ; RET NZ
; ;
CALL RESTORE CALL RESTORE
LD HL,(PIX_X) LD HL,(PIX_X)
LD DE,(PIX_Y) LD DE,(PIX_Y)
CALL MOUSE CALL MOUSE
LD A,#FF ; LD A,#FF
LD (REDY),A ; LD (REDY),A
RET RET
MODE_M: DB #03 MODE_M: DB #03

View File

@ -352,10 +352,10 @@ TESTKEY:
K_CLEAR: K_CLEAR:
LD A,(HOST) LD A,(HOST)
LD (HEAD),A LD (HEAD),A
LD A,#2F LD A,Dss.WaitKey - 1
CP B CP B
JR NC,.error JR NC,.error
LD A,#34 ;R02 LD A,Dss.EDIT ;R02
CP B CP B
JR C,.error JR C,.error
LD C,B LD C,B
@ -434,10 +434,10 @@ FULL_BF:
KEYSCAN: KEYSCAN:
LD IX,KEYFLAG LD IX,KEYFLAG
.RESCAN: .RESCAN:
IN A,(COM_A) IN A,(Z84.SIO.Ch_A.Ctrl)
BIT 0,A BIT 0,A
RET Z RET Z
IN A,(DAT_A) IN A,(Z84.SIO.Ch_A.Data)
CP #F0 CP #F0
JR Z,FULL_BF.F0_KEY JR Z,FULL_BF.F0_KEY
CP #E0 CP #E0
@ -944,27 +944,24 @@ BPP2 DEC BC
JR NZ,BEEP JR NZ,BEEP
RET RET
COM_A EQU #19 ;!FIXIT sp2000.inc
DAT_A EQU #18 ;!FIXIT sp2000.inc
KINIT XOR A ;LD A,0 KINIT XOR A ;LD A,0
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
INC A ;LD A,1 INC A ;LD A,1
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
XOR A ;LD A,0 ;#18 XOR A ;LD A,0 ;#18
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
LD A,3 LD A,3
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
LD A,#C1 LD A,#C1
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
LD A,4 LD A,4
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
LD A,#07 ;#05 LD A,#07 ;#05
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
LD A,5 LD A,5
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
LD A,#62 LD A,#62
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
RET RET
;//MODULE: KEYINTER ;//MODULE: KEYINTER

View File

@ -764,18 +764,18 @@ PRINT_INIT:
; ª« ¢  ; ª« ¢ 
XOR A ;LD A,0 XOR A ;LD A,0
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
;[x] 29/9/23 ;[x] 29/9/23
INC A INC A
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
DEC A DEC A
; ;
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
LD A,5 LD A,5
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
LD A,#62 ; bit 7 - Direction for Bufer (0), Bit 1 - Bufer Enable (1) LD A,#62 ; bit 7 - Direction for Bufer (0), Bit 1 - Bufer Enable (1)
OUT (COM_A),A OUT (Z84.SIO.Ch_A.Ctrl),A
RET RET
;//MODULE: VIDEO ;//MODULE: VIDEO
;[END] ;[END]

View File

@ -1 +1 @@
905 912

View File

@ -8,7 +8,8 @@
; ;
; ;
DEFINE MOUSE_COM_BAUD_4800 0 DEFINE MOUSE_COM_BAUD 0 ; 1 - 2404, 2 - 4807, else - 1215 (default)
DEFINE MOUSE_READ_PORT_TIMEOUT 1280
; ;
; ;
@ -92,7 +93,12 @@ HANDBUF.SIZE EQU 32
; ;
;----------------------------------------------------; ;----------------------------------------------------;
IF MOUSE_COM_BAUD_4800
IF MOUSE_COM_BAUD = 1
MOUSE_BAUD:
.multiplier_1 EQU #02 ; ¯¥à¢ë© ¬­®¦¨â¥«ì = 2. 875000/Œ­1*Œ­2=2404
.multiplier_2 EQU #B6 ; ¢â®à®© ¬­®¦¨â¥«ì = 182. 875000/Œ­1*Œ­2=2404
ELSEIF MOUSE_COM_BAUD = 2
MOUSE_BAUD: MOUSE_BAUD:
.multiplier_1 EQU #04 ; ¯¥à¢ë© ¬­®¦¨â¥«ì = 1. 875000/Œ­1*Œ­2=4807 .multiplier_1 EQU #04 ; ¯¥à¢ë© ¬­®¦¨â¥«ì = 1. 875000/Œ­1*Œ­2=4807
.multiplier_2 EQU #B6 ; ¢â®à®© ¬­®¦¨â¥«ì = 182. 875000/Œ­1*Œ­2=4807 .multiplier_2 EQU #B6 ; ¢â®à®© ¬­®¦¨â¥«ì = 182. 875000/Œ­1*Œ­2=4807

View File

@ -5,49 +5,48 @@
; Œ®¦­® § ¤ âì ®¤¨­  à£ã¬¥­â - 梥â íªà ­ . ; Œ®¦­® § ¤ âì ®¤¨­  à£ã¬¥­â - 梥â íªà ­ .
; …᫨  à£ã¬¥­â ­¥ § ¤ ­, ¨á¯. ¯®-㬮«ç ­¨î #07. ; …᫨  à£ã¬¥­â ­¥ § ¤ ­, ¨á¯. ¯®-㬮«ç ­¨î #07.
;/////////////////////////////////////////////////// ;///////////////////////////////////////////////////
cmd_cls:ex de,hl ; hl=ª®¬-áâப  cmd_cls: ex de,hl ; hl=ª®¬-áâப 
;ld de,T9186 ; ¡ãä¥à ¯®¤ ¯ à ¬¥âà ;ld de,T9186 ; ¡ãä¥à ¯®¤ ¯ à ¬¥âà
ld de,work_buffer1; ld de,work_buffer1;
push de push de
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨ ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
RST ToDSS RST ToDSS
pop hl pop hl
jp nc,invalid_param ; "Invalid parametr" (>1 ¯ à ¬.) jp nc,invalid_param ; "Invalid parametr" (>1 ¯ à ¬.)
ld b,7 ;  âਡãâ ®ç¨á⪨ ¯®-㬮«ç ­¨î ld b,7 ;  âਡãâ ®ç¨á⪨ ¯®-㬮«ç ­¨î
ld a,(hl) ld a,(hl)
or a or a
jr z,cls_clear jr z,cls_clear
call ascii2byte call ascii2byte
jp c,invalid_param ; "Invalid parametr" jp c,invalid_param ; "Invalid parametr"
and 7 and 7
ld b,a ld b,a
inc hl inc hl
ld a,(hl) ld a,(hl)
or a or a
jr z,cls_clear jr z,cls_clear
ld a,b ld a,b
rlca rlca
rlca rlca
rlca rlca
rlca rlca
ld b,a ld b,a
ld a,(hl) ld a,(hl)
call ascii2byte call ascii2byte
jp c,invalid_param ; "Invalid parametr" jp c,invalid_param ; "Invalid parametr"
or b or b
ld b,a ld b,a
cls_clear: cls_clear: ld a,b
ld a,b ld (color_screen),a ;  âਡãâ
ld (color_screen),a ;  âਡãâ ld de,0 ; Y/X ¯®«®¦.
ld de,0 ; Y/X ¯®«®¦. ld hl,#2050 ; Y/X à §¬¥à
ld hl,#2050 ; Y/X à §¬¥à ld c,BIOS.LP_CLS_WIN ; ®ç¨áâ¨âì ®ª­® (¢ë¢®¤®¬ ¯à®¡¥«®¢)
ld c,BIOS.LP_CLS_WIN ; ®ç¨áâ¨âì ®ª­® (¢ë¢®¤®¬ ¯à®¡¥«®¢) RST ToBIOS
RST ToBIOS ; ãáâ. ªãàá®à ¢ Home
; ãáâ. ªãàá®à ¢ Home ld de,0 ; Y/X ¯®«®¦.
ld de,0 ; Y/X ¯®«®¦. ld c,Dss.Locate
ld c,Dss.Locate RST ToDSS
RST ToDSS ret
ret
; ascii -> int ; ascii -> int

View File

@ -471,10 +471,10 @@ EvComComb:
cp #50 ; Ins, ᬥ­  ०¨¬  ¢¢®¤  cp #50 ; Ins, ᬥ­  ०¨¬  ¢¢®¤ 
jr z,change_insert_mode jr z,change_insert_mode
bit 5,b ; Ctrl ¡¨â bit 5,b ; Ctrl ¡¨â
jr z,$+7 jr z,.exit
cp #4F+#80 ; Ctrl+Del, ®ç¨áâ¨âì ¨áâ®à¨î ª®¬ ­¤ cp #4F+#80 ; Ctrl+Del, ®ç¨áâ¨âì ¨áâ®à¨î ª®¬ ­¤
jp z,clear_history jp z,clear_history
pop de .exit: pop de
ret ret
; ‘¬¥­  ०¨¬  ¢¢®¤  ; ‘¬¥­  ०¨¬  ¢¢®¤ 

View File

@ -492,14 +492,14 @@ PDIGIT: ld de,10000
Restore_Screen: Restore_Screen:
PUSH AF PUSH AF
LD C,Dss.GetVMod LD C,Dss.GetVMod
RST ToDSS RST ToDSS
AND #80 CP #80
JR Z,.exit JR C,.exit
LD BC,1 * 256 + Dss.SetVMod LD BC,1 * 256 + Dss.SetVMod
LD A,Dss.SetVMod.txt80x32 LD A,Dss.SetVMod.txt80x32
RST ToDSS RST ToDSS
.exit: POP AF .exit: POP AF
RET RET

@ -1 +1 @@
Subproject commit 9b22b7b05ab2b344b1778419d28da83ee74fb297 Subproject commit 9a8cc2fa8438c6e27c72b60a7cfd3a2e3470b314