чутка оптимизирован по размеру драйвер мышки

This commit is contained in:
Anatoliy Belyanskiy 2024-02-14 01:50:08 +10:00
parent 1d24621a28
commit 66e5661218
19 changed files with 367 additions and 361 deletions

View File

@ -350,7 +350,7 @@ write_to_: ld a,(disk) ;
ret z ; !TODO § £à㧪  á à áè¨à¥­­®£® à §¤¥«  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï
dec c
push bc ; B - PHISICAL DRIVE NUMBER, C - PARTITION RECORD NUMBER IN DRIVE MBR
; [ ] 02/02/2024 ¯א®¢¥א×  ­  ¢«¥§ ¥¬®בגל § £אד§ח¨×  (חג®<D792> ­¥ ¯®¯®אג¨גל ה ג)
; [x] 02/02/2024 ¯א®¢¥א×  ­  ¢«¥§ ¥¬®בגל § £אד§ח¨×  (חג®<D792> ­¥ ¯®¯®אג¨גל ה ג)
LD HL,0
LD IX,0
LD DE,buffer

View File

@ -58,6 +58,7 @@
include 'API/Read.asm'
include 'API/Write.asm'
include 'API/Environ.ASM'
include 'API/Lib_Sub.asm'

View File

@ -3,7 +3,7 @@
; C - #19
; HL - ד× § ג¥«ל ­  ה ©«®¢דמ ב¯¥ז¨ה¨× ז¨מ
; DE - א <D790>®ח¨© <20>דה¥א 44 <20> ©ג , ¥ב«¨ B=0, ¨­ ח¥ 256 <20> ©ג
; ;!!!!! ­  α ¬<EFBFBD>¬ €₯«₯ α₯©η α ₯᫨ B=1, ΰ <C2A0>稩 ‘γδ₯ΰ 46 ‘ ©β
; ;!!!!! ­  á ¬®¬ ¤¥«¥ ¯®ª  çâ® ¥á«¨ B=1, à ¡®ç¨© ¡ãä¥à 46 ¡ ©â
; A -  גא¨<D790>דגכ, ¨ב¯®«ל§ד¥¬כ¥ ¯א¨ ¯®¨ב×¥
; B = 0 - ¨¬ן ­ ©¤¥­­®£® ה ©«  ¢ ה®א¬ ג¥ 11 <20> ©ג "FilenameExt"
; B = 1 - ¨¬ן ­ ©¤¥­­®£® ה ©«  ¢ ה®א¬ ג¥ DOS "filename.ext",0

14
DSS/API/Lib_Sub.asm Normal file
View File

@ -0,0 +1,14 @@
;[ ] 11/02/2024 - ”γ­<CEB3>ζ¨ο α ―®―®«­ο¥¬λ¬¨ ―®¤δγ­<CEB3>ζ¨ο¬¨)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; B = 1 ‚λ§®Ά δγ­<CEB3>樨 SETUP_CURSORS ¤«ο Ά®ααβ ­®Ά«¥­¨ο α¨α⥬­λε θΰ¨δβ®Ά DSS ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LIB_SUB:
DJNZ 1F
; func B = 1
JP SETUP_CURSORS
;
1: ; func B > 1 or 0
SCF
RET
;
;

View File

@ -28,7 +28,7 @@ READ: LD (.R_POINT),HL
; RR L
; RR D
; RR E
LD H,0
LD H,0 ;
LD L,(IY+_sFM.F_POSITION+3)
LD D,(IY+_sFM.F_POSITION+2)
LD E,(IY+_sFM.F_POSITION+1)

View File

@ -392,7 +392,7 @@ ADRST10: ;DS 512 ;,0
DB low FREEMEM, low GETMEM, low RETMEM, low SETMEM, low EXEC, low LEAVE, low WAIT, low GSWITCH, low DOSNAME, low EX_PATH ; 6 3C..45
DB low ENVIRON, low APPINFO, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 7 46..4F
DB low SETVMOD, low GETVMOD, low LOCATE, low CURSOR, low SELPAGE, low SCROLL, low CLEAR, low RDCHAR, low WRCHAR, low WINCOPY ; 8 50..59
DB low WINREST, low PUTCHAR, low PCHARS, low NOPS, low NOPS, low PRINT ; 9 5A..5F
DB low WINREST, low PUTCHAR, low PCHARS, low LIB_SUB, low NOPS, low PRINT ; 9 5A..5F
IFN SHORT_RSTx10_TABLE
;[ ] R09
@ -419,7 +419,7 @@ ADRST10: ;DS 512 ;,0
DB high FREEMEM, high GETMEM, high RETMEM, high SETMEM, high EXEC, high LEAVE, high WAIT, high GSWITCH,high DOSNAME, high EX_PATH
DB high ENVIRON, high APPINFO, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
DB high SETVMOD, high GETVMOD, high LOCATE, high CURSOR, high SELPAGE,high SCROLL, high CLEAR, high RDCHAR, high WRCHAR, high WINCOPY
DB high WINREST, high PUTCHAR, high PCHARS, high NOPS, high NOPS, high PRINT
DB high WINREST, high PUTCHAR, high PCHARS, high LIB_SUB,high NOPS, high PRINT
IFN SHORT_RSTx10_TABLE
;[ ] R09

View File

@ -340,10 +340,15 @@ LOADDIR:
;
LD A,(FatBuffer.DRIVE) ; ­®¬¥à ¤¨áª 
LD (IY+_sFM.DRIVE),A ; á®åà. ¢ ¤¥áªà¨¯â®à
LD D,(IY+_sFM.ST_CLUSTER) ; de=­®¬¥à ¯¥à¢®£® ª« áâ¥à 
LD E,(IY+_sFM.ST_CLUSTER+1)
LD A,D
OR E
;
;LD D,(IY+_sFM.ST_CLUSTER+1) ; de=­®¬¥à ¯¥à¢®£® ª« áâ¥à 
;LD E,(IY+_sFM.ST_CLUSTER)
;LD A,D
;OR E
; ­®¬¥à ¯¥à¢®£® ª« áâ¥à 
LD A,(IY+_sFM.ST_CLUSTER)
OR (IY+_sFM.ST_CLUSTER+1)
;
JP Z,.LROTDIR ; root ??
LD HL,DIRPAGE.buffer ; ªã¤ 
LD DE,#4000 ; ᪮«ìª®
@ -567,7 +572,7 @@ RD_BPB: LD C,SLOT3
.loop1: ADD HL,DE
DEC A
JR NZ,.loop1
LD (FatBuffer.DIR_FRM),HL ; first sector DIR
LD (FatBuffer.DIR_FRL),HL ; first sector DIR
; CF = ? ¬ «® «¨
AND A
; CF = 0
@ -615,7 +620,7 @@ RD_BPB: LD C,SLOT3
LD B,0
LD (FatBuffer.DIR_S_S),A
ADD HL,BC ; Start DATA area
LD (FatBuffer.DAT_FRM),HL
LD (FatBuffer.DAT_FRL),HL
;!TODO ­¥ ¨á¯®«ì§ãîâáï §­ ç¥­¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ­ï¥¬ë¥ ¢ FatBuffer
////////////////////////////////////////////////////////////////////////
;IF COMPILE_UNUSED_CODE
@ -706,7 +711,7 @@ RD_BPB: LD C,SLOT3
;ENDIF
////////////////////////////////////////////////////////////////////////
LD DE,(FatBuffer.DAT_FRM)
LD DE,(FatBuffer.DAT_FRL)
; LD E,(IY+_sBOOT_SEC.HIDDEN) ;Hidden sec
; LD D,(IY+_sBOOT_SEC.HIDDEN+1)
; AND A
@ -805,26 +810,26 @@ DOS_X_Error:
;
;!TODO ª ¡ãä¥à ¬!
FatBuffer:
.MSG: DB 'FAT'
.READ_PG: DB #00 ;!TODO ­¥ ¨á¯®«ì§ãîâáï ­¥ª®â®àë¥ §­ ç¥­¨ï, ­® § ¤ã¬ª  ­¥¯«®å ï)))
.BLOCK: DB #00
.DIR_CLU: DW #0000
.DRIVE: DB #FF
.FAT_FRM:
.FAT1_XX: DW #0000 ; MSD_FAT_SEC first sector FAT
.FAT2_XX: DW #0000
.DIR_FRH: DW #0000 ; MSD_CAT_SEC first sector DIR
.DIR_FRL:
.DIR_FRM: DW #0000 ; MSD_CAT_SEC first sector DIR
.F_P_S: DB #00 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
.DIR_S_S: DB #00 ; DIR_SEC_SIZE
.DAT_FRM: DW #0000 ; MSD_DAT_SEC
.MSG: DB 'FAT'
.READ_PG: DB #00 ;!TODO ­¥ ¨á¯®«ì§ãîâáï ­¥ª®â®àë¥ §­ ç¥­¨ï, ­® § ¤ã¬ª  ­¥¯«®å ï)))
.BLOCK: DB #00
.DIR_CLU: DW #0000
.DRIVE: DB #FF
.FAT_FRM:
.FAT1_XX: DW #0000 ; MSD_FAT_SEC first sector FAT
.FAT2_XX: DW #0000
.DIR_FRH: DW #0000 ; MSD_CAT_SEC first sector DIR ; !TODO ®£à ­¨ç¥­¨¥ ¢ 32 ƒ¨£  ;!FIXIT ­¥ ¨á¯®«ì§ã¥âáï
.DIR_FRL: DW #0000 ; MSD_CAT_SEC first sector DIR
.F_P_S: DB #00 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
.DIR_S_S: DB #00 ; DIR_SEC_SIZE
.DAT_FRL: DW #0000 ; MSD_DAT_SEC low
;.DAT_FRH: DW #0000 ; MSD_DAT_SEC high ; !TODO ®£à ­¨ç¥­¨¥ ¢ 32 ƒ¨£  ;!FIXIT ­¥ ¨á¯®«ì§ã¥âáï
.CLU_LEN:
.B_P_C: DW #0000 ; CLUSTER_LEN
.C_P_B: DB #00 ; A - Clusters per bank (16k) (ç¨á«® ª« áâ¥à®¢ ­  ¡«®ª އ“) ; ????? íâ® ¨á¯®«ì§ã¥âáï?
.FAT_TYP: DB #00 ; TYPE FAT (#32 - 12bit, #36 - 16bit)
.S_X_H: DW #0000 ; ª®«¨ç¥á⢮ ᥪâ®à®¢ ­  樫¨­¤à¥ ; ????? íâ® ¨á¯®«ì§ã¥âáï?
.ENDCLUS: DW #FFFF
.B_P_C: DW #0000 ; CLUSTER_LEN
.C_P_B: DB #00 ; A - Clusters per bank (16k) (ç¨á«® ª« áâ¥à®¢ ­  ¡«®ª އ“) ; ????? íâ® ¨á¯®«ì§ã¥âáï?
.FAT_TYP: DB #00 ; TYPE FAT (#32 - 12bit, #36 - 16bit)
.S_X_H: DW #0000 ; ª®«¨ç¥á⢮ ᥪâ®à®¢ ­  樫¨­¤à¥ ; ????? íâ® ¨á¯®«ì§ã¥âáï?
.ENDCLUS: DW #FFFF
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;

View File

@ -442,7 +442,7 @@ GET_FAT12_CELL:
; in: HL - CLUSTER
; out: HL:IX - SECTOR
NSECTOR:
LD DE,0
LD DE,0 ;!FIXIT for FAT32
DEC HL
DEC HL
LD A,(CORE_BUFFERS.BootSector.S_P_C)
@ -460,7 +460,7 @@ NSECTOR:
.skip: EX DE,HL
LD XL,E
LD XH,D
LD DE,(FatBuffer.DAT_FRM) ;first data sector
LD DE,(FatBuffer.DAT_FRL) ;first data sector
XOR A
ADD IX,DE
LD D,A
@ -962,7 +962,7 @@ FAT_Max_Cluster: WORD #0FF0 ;
; JR NC,ADD_DE2
; INC HL
; ADD_DE2: DJNZ ADD_DE1
; LD DE,(FatBuffer.DAT_FRM) ;first data sector
; LD DE,(FatBuffer.DAT_FRL) ;first data sector
; ADD IX,DE
; LD DE,#0000
; ADC HL,DE

View File

@ -158,9 +158,9 @@ M_RESR LD A,DSS_Error.mouse.INVALID_COMMAND
;!TODO ­  ¡¨®á.
MS_INIT DI
;!TEST mouse
;LD A,85
;LD A,#55
;OUT (#10),A
;LD A,45
;LD A,#2D
;OUT (#10),A
;
XOR A ;LD A,0
@ -176,9 +176,7 @@ MS_INIT DI
LD A,4
OUT (PORT_MOUSE.Ctrl),A
;!TEST mouse
LD A,#47 ; ¯¥à¢ë© ¬­®¦¨â¥«ì = 16 875000/Œ­1*Œ­2=1215
;LD A,#44
;LD A,#04 ; ¯¥à¢ë© ¬­®¦¨â¥«ì = 1 875000/Œ­1*Œ­2=4807
LD A,MOUSE_BAUD.multiplier_1 ; ¯¥à¢ë© ¬­®¦¨â¥«ì
OUT (PORT_MOUSE.Ctrl),A
;
LD A,5
@ -192,8 +190,7 @@ MS_INIT DI
;!TEST mouse
LD A,#55
OUT (Z84.CTC.Ch_0),A
LD A,#2D ; ¢â®à®© ¬­®¦¨â¥«ì = 45 875000/Œ­1*Œ­2=1215
;LD A,#B6 ; ¢â®à®© ¬­®¦¨â¥«ì = 182 875000/Œ­1*Œ­2=4807
LD A,MOUSE_BAUD.multiplier_2 ; ¢â®à®© ¬­®¦¨â¥«ì
OUT (Z84.CTC.Ch_0),A
;
@ -211,7 +208,7 @@ MS_SHOW PUSH IX
DI
CALL MOUSE
XOR A
LD (REFRESH+1),A
LD (REFRESH.hide),A
EI
POP AF
EX AF,AF'
@ -228,7 +225,7 @@ MS_HIDD PUSH IX
PUSH AF
DI
LD A,1
LD (REFRESH+1),A
LD (REFRESH.hide),A
CALL RESTORE
EI
POP AF
@ -373,272 +370,253 @@ MS_GSEN
LD HL,(SENSEXY)
XOR A
RET
;----------------------------------------------------------------------;
MOUSET LD (REST_XT+1),HL
LD (REST_YT+1),DE
;Y
SRL D
RR E
SRL D
RR E
SRL D
RR E
LD D,E
;X
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD E,L
IN A,(PORT_Y)
LD XH,A
IN A,(SLOT1)
LD XL,A
;
DI
;
LD A,#54 ;!HARDCODE video page
OUT (SLOT1),A
;
LD A,D
ADD A,A
ADD A,A ;Y * 4
LD L,A
LD H,#43 ;+ #4300
;
IN A,(RGMOD)
RRCA
AND #80
OR #01
ADD A,E
OUT (PORT_Y),A
INC L
LD A,(HL) ;SIMBOL
LD BC,(ANDXORS)
AND B
XOR C
LD (HL),A
INC L
LD A,(HL) ;ATTRIBUT
LD BC,(ANDXORA)
AND B
XOR C
LD (HL),A
;
LD A,XL
OUT (SLOT1),A
LD A,XH
OUT (PORT_Y),A
RET
RESTORT:
REST_XT: LD HL,#0000
REST_YT: LD DE,#0000
;Y
SRL D
RR E
SRL D
RR E
SRL D
RR E
LD D,E
;X
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD E,L
IN A,(PORT_Y)
LD XH,A
IN A,(SLOT1)
LD XL,A
;
DI
;
LD A,#50
OUT (SLOT1),A
;
LD A,D
ADD A,A
ADD A,A ;Y * 4
LD L,A
LD H,#43 ;+ #4300
;
IN A,(RGMOD)
RRCA
AND #80
OR #01
ADD A,E
OUT (PORT_Y),A
INC L
LD A,(HL) ;SIMBOL
LD (HL),A
INC L
LD A,(HL) ;ATTRIBUT
LD (HL),A
;
LD A,XL
OUT (SLOT1),A
LD A,XH
OUT (PORT_Y),A
RET
;----------------------------------------------------------------------;
RESTORE:
.sw+1: LD A,#00
BIT 7,A
JP Z,RESTORT
RESTORG IN A,(SLOT3)
LD B,A
IN A,(PORT_Y)
LD C,A
PUSH BC
LD A,#50 ;!HARDCODE videopage
OUT (SLOT3),A
REST_X LD HL,0
REST_Y LD DE,0
LD A,E
EX AF,AF'
REST_V LD A,#00
AND 1
LD DE,#C000 ;screen 0
JR Z,AA2
LD DE,#C000+320 ;screen 1
AA2 ADD HL,DE
REST_A LD A,0
LD XH,A
EX AF,AF'
REST_H
RS002 LD BC,10
OUT (PORT_Y),A
EX AF,AF'
LD (PUSH_HL),HL
LD D,H
LD E,L
LDIR
PUSH_HL+1: LD HL,#0000
; POP HL
EX AF,AF'
INC A
JR Z,RS003
DEC XH
JR NZ,RS002
RS003 POP BC
LD A,B
OUT (SLOT3),A
LD A,C
OUT (PORT_Y),A
XOR A
RET
.sw+1: LD A,#00
BIT 7,A
JP Z,.TXT
; restore gfx-mode
IN A,(SLOT3)
LD B,A
IN A,(PORT_Y)
LD C,A
PUSH BC
LD A,#50 ;!HARDCODE videopage
OUT (SLOT3),A
.X+1: LD HL,0
.Y+1: LD DE,0
LD A,E
EX AF,AF'
.SCR+1: LD A,0
AND 1
LD DE,SLOT3.MEM_ADDR ;screen 0
JR Z,.adr
LD DE,SLOT3.MEM_ADDR+320 ;screen 1
.adr: ADD HL,DE
.YSize+1: LD A,0
LD XH,A
EX AF,AF'
.loop: ;
.Xsize+1: LD BC,10
OUT (PORT_Y),A
EX AF,AF'
LD (.PUSH_HL),HL
LD D,H
LD E,L
LDIR
.PUSH_HL+1: LD HL,#0000
EX AF,AF'
INC A
JR Z,.no_dec
DEC XH
JR NZ,.loop
.no_dec: POP BC
LD A,B
OUT (SLOT3),A
LD A,C
OUT (PORT_Y),A
XOR A
RET
.TXT: ; restore txt-mode
.TXT_X+1: LD HL,#0000
.TXT_Y+1: LD DE,#0000
;
IN A,(PORT_Y)
LD XH,A
IN A,(SLOT3)
LD XL,A
;
LD A,#50
;
CALL GET_SYMBOL_ADDR
;
LD (HL),A
INC L
LD A,(HL) ;ATTRIBUT
;JR SET_RESTORE_EXIT
;---------------------------------------------------------------;
SET_RESTORE_EXIT:
LD (HL),A
;
LD A,XL
OUT (SLOT3),A
LD A,XH
OUT (PORT_Y),A
RET
;---------------------------------------------------------------;
GET_SYMBOL_ADDR:;Y
SRL D
RR E
SRL D
RR E
SRL D
RR E
LD D,E
;X
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD E,L
;
DI
OUT (SLOT3),A
;
LD A,D
ADD A,A
ADD A,A ;Y * 4
LD L,A
LD H,high (SLOT3.MEM_ADDR + #300) ;#300 - ®¯¨á â¥«¨ íªà ­ 
;
IN A,(SCREEN_SWITCH)
RRCA
AND #80
OR #01
ADD A,E
OUT (PORT_Y),A
INC L
LD A,(HL) ;SIMBOL
;
RET
;---------------------------------------------------------------;
;----------------------------------------------------------------------;
;HL/DE - X/Y
MOUSE: LD A,(MODE_M)
LD (RESTORE.sw),A
BIT 7,A
JP NZ,.GFX
;
; set txt-mode
.TXT: LD (RESTORE.TXT_X),HL
LD (RESTORE.TXT_Y),DE
;
IN A,(PORT_Y)
LD XH,A
IN A,(SLOT3)
LD XL,A
;
LD A,#54
;
CALL GET_SYMBOL_ADDR
;
LD BC,(ANDXORS)
AND B
XOR C
LD (HL),A
INC L
LD A,(HL) ;ATTRIBUT
LD BC,(ANDXORA)
AND B
XOR C
JR SET_RESTORE_EXIT
;
;set gfx-mode
.GFX: CP #82 ;640x256x16
JR NZ,.NOFIX_640
SRL H
RR L
.NOFIX_640: LD IX,M_IMAGE
LD A,(M_XSIZE)
LD C,A
LD B,0
LD (REALXS),BC
LD (RESTORE.Xsize),BC
LD C,B
LD (SKIPXF),BC
LD A,(M_YSIZE)
LD (RESTORE.YSize),A
LD C,A
LD B,0
LD (REALYS),BC
LD BC,(YHOT_SP)
LD A,E
SUB C
LD E,A
JR NC,.GOOD_Y
NEG
LD E,A
LD A,(M_XSIZE)
LD C,A
LD B,0
LD A,(M_YSIZE)
SUB E
.SKIPMY: ADD IX,BC
DEC E
JR NZ,.SKIPMY
LD C,A
LD (REALYS),BC
.GOOD_Y: LD BC,(XHOT_SP)
AND A
SBC HL,BC
JR NC,.GOOD_X
LD B,H
LD C,L
LD HL,0
AND A
SBC HL,BC
LD (SKIPXF),HL
LD A,(M_XSIZE)
SUB L
LD L,A
LD (REALXS),HL
LD HL,0
.GOOD_X: LD (RESTORE.X),HL
LD (RESTORE.Y),DE
;
PUSH HL
IN A,(SLOT3)
LD H,A
IN A,(PORT_Y)
LD L,A
EX (SP),HL
LD A,#5C ;!HARDCODE videopage
OUT (SLOT3),A
LD A,E
EX AF,AF'
IN A,(SCREEN_SWITCH)
LD (RESTORE.SCR),A
AND 1
LD DE,SLOT3.MEM_ADDR ;Screen 0
JR Z,.adr
LD DE,SLOT3.MEM_ADDR+320 ;Screen 1
.adr: ADD HL,DE
LD D,XH
LD E,XL
EX DE,HL ;HL - BITMAP
LD BC,(REALYS)
LD XH,C
EX AF,AF'
;
.loop: LD BC,(SKIPXF)
ADD HL,BC
LD BC,(REALXS)
OUT (PORT_Y),A
EX AF,AF'
LD (.PUSH_DE),DE
LDIR
.PUSH_DE+1: LD DE,#0000
EX AF,AF'
INC A
JR Z,.exit_loop
DEC XH
JR NZ,.loop
;
.exit_loop: POP BC
LD A,B
OUT (SLOT3),A
LD A,C
OUT (PORT_Y),A
XOR A
RET
;----------------------------------------------------------------------;
MOUSE: LD A,(MODE_M)
LD (RESTORE.sw),A
BIT 7,A
JP Z,MOUSET
MOUSEG: CP #82 ;640x256x16
JR NZ,NOFX
SRL H
RR L
NOFX: LD IX,M_IMAGE
LD A,(M_XSIZE)
LD C,A
LD B,0
LD (REALXS),BC
LD (REST_H+1),BC
LD C,B
LD (SKIPXF),BC
LD A,(M_YSIZE)
LD (REST_A+1),A
LD C,A
LD B,0
LD (REALYS),BC
LD BC,(YHOT_SP)
LD A,E
SUB C
LD E,A
JR NC,GOODY
NEG
LD E,A
LD A,(M_XSIZE)
LD C,A
LD B,0
LD A,(M_YSIZE)
SUB E
SKIPMY: ADD IX,BC
DEC E
JR NZ,SKIPMY
LD C,A
LD (REALYS),BC
GOODY: LD BC,(XHOT_SP)
AND A
SBC HL,BC
JR NC,GOODX
LD B,H
LD C,L
LD HL,0
AND A
SBC HL,BC
LD (SKIPXF),HL
LD A,(M_XSIZE)
SUB L
LD L,A
LD (REALXS),HL
LD HL,0
GOODX: LD (REST_X+1),HL
LD (REST_Y+1),DE
PUSH HL
IN A,(SLOT3)
LD H,A
IN A,(PORT_Y)
LD L,A
EX (SP),HL
LD A,#5C ;!HARDCODE videopage
OUT (SLOT3),A
LD A,E
EX AF,AF'
IN A,(RGMOD)
LD (REST_V+1),A
AND 1
LD DE,#C000 ;PAGE 0
JR Z,AA1
LD DE,#C000+320 ;PAGE 1
AA1 ADD HL,DE
LD D,XH
LD E,XL
EX DE,HL ;HL - BITMAP
LD BC,(REALYS)
LD XH,C
EX AF,AF'
MS002 LD BC,(SKIPXF)
ADD HL,BC
LD BC,(REALXS)
OUT (PORT_Y),A
EX AF,AF'
;PUSH DE
LD (PUSH_DE+1),DE
LDIR
PUSH_DE LD DE,#0000
; POP DE
EX AF,AF'
INC A
JR Z,MS003
DEC XH
JR NZ,MS002
MS003 POP BC
LD A,B
OUT (SLOT3),A
LD A,C
OUT (PORT_Y),A
XOR A
RET
;----------------------------------------------------------------------;
READ_M: IN A,(PORT_MOUSE.Ctrl)
RRCA
@ -893,7 +871,8 @@ CONTROL CALL READ_M
LD (REDY),A
RET
REFRESH LD A,#01
REFRESH:
.hide+1: LD A,#01
OR A
RET NZ
REDY+1: LD A,#00

View File

@ -179,11 +179,8 @@ ECHOKEY: CALL Cursor_On ;
CALL Cursor_Off ; ¢ëª«. ªãàá®à
POP AF
OR A
;!FIXIT scroll § ¬¥­¨âì ­  ¢ë¢®¤ ᨬ¢®«  ¡¨®á®¬ ¨«¨ WRCHAR
; LD BC,1*256 + BIOS.LP_PRINT_SYM
; RST ToBIOS
CALL NZ,PUTCHAR.NO_SCROLL ; ¤®¡ ¢¨« ¢ë¢®¤ "a" ­  íªà ­
;
; [x] -bug with Vasil's version of cursor
CALL NZ,PUTCHAR.NO_SCROLL ; ¤®¡ ¢¨« ¢ë¢®¤ "a" ­  íªà ­
POP BC
POP DE
LD A,E
@ -261,17 +258,19 @@ cursor_interrupt:
; <20> áâனª  §­ ª®£¥­¥à â®à  ªãàá®à  ç¥àâ®çª®©
SETUP_CURSORS:
in a,(SLOT2)
.buffer EQU #C000
;
in a,(SLOT3)
push af ; á®åà. ¯®àâ
ld a,(BANKTBL+TXTPAGE) ; 2-© «®£. ­®¬¥à áâà ­¨æë à áè. „Ž‘
out (SLOT2),a
out (SLOT3),a
; ¯®«ãç¨âì á¨áâ. §­ ª®£¥­.
ld de,#8000 ;!HARDCODE ¡ãä¥à ¤«ï 2048 ¡ ©â ¤ ­­ëå
ld de,.buffer ;!HARDCODE ¡ãä¥à ¤«ï 2048 ¡ ©â ¤ ­­ëå
push de
ld c,BIOS.WIN_GET_ZG ; ¯®«ãç¨âì §­ ª®£¥­.
rst ToBIOS
; § ¯®«­¨âì ª®¤®¬ #FF 2 ­¨¦­¨¥ «¨­¨¨
ld hl,#8000+(2048-(2*256)) ;!HARDCODE ¯®á«¥¤­¨¥ 512 ¡ ©â
ld hl,.buffer+(2048-(2*256)) ;!HARDCODE ¯®á«¥¤­¨¥ 512 ¡ ©â
ld bc,511
ld a,CURSOR_ZG; ; ­®¬¥à §­ ª®£¥­. "ç¥àâ®çª "
call .fill_data_font
@ -281,7 +280,7 @@ SETUP_CURSORS:
ld a,INS_CUR_ZG ; ­®¬¥à §­ ª®£¥­. "¡«®ª"
call .fill_data_font
pop af
out (SLOT2),a ; ¢®ááâ. ¯®àâ
out (SLOT3),a ; ¢®ááâ. ¯®àâ
ret
; <20> áâனª  §­ ª®£¥­. ¨ ¥£® ॣ¨áâà æ¨ï
; ¢å®¤: a=­®¬¥à §­ ª®£¥­.
@ -293,7 +292,7 @@ SETUP_CURSORS:
ld (hl),#FF
inc de
ldir
ld de,#8000 ; §­ ª®£¥­.
ld de,.buffer ; §­ ª®£¥­.
ld c,BIOS.WIN_SET_ZG ; ãáâ. §­ ª®£¥­.
rst ToBIOS
ret

View File

@ -286,7 +286,7 @@ ERROR_BOOTDRV_DIES:
RST ToBIOS
;
LD A,1
OUT (RGMOD),A ; set scr-2
OUT (SCREEN_SWITCH),A ; set scr-2
;
LD HL,.ERROR_MSG
LD DE,#A000

View File

@ -313,7 +313,7 @@ FDDRIVE:
LD H,B
EX DE,HL
EXX
LD C,0 ;[ ] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
LD C,0 ;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
AND A
RET

View File

@ -455,7 +455,7 @@ IOCTL_RD:
SCF
RET
; C - PARTITION RECORD NUMBER IN DRIVE MBR must be 0 here ;[ ] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
; C - PARTITION RECORD NUMBER IN DRIVE MBR must be 0 here ;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
; HL:DE - SECTORS ON LOGICAL DISK
; HL' - CYLINDERS ON PHISICAL DISK
; DE' - HEADS ON PHISICAL DISK

View File

@ -47,20 +47,14 @@ PCHARS: LD A,(HL)
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
PUTCHAR:
CP #0D
JR Z,.CR_
CP #0A
JR Z,.LF_
CP #09
JR Z,.TB_
CP #08
JR Z,.BK_
CP #07
JR Z,.BELL ; [x] Beep in PChars/PUTCHAR
;CALL .NO_SCROLL
CP #0E
JR C,.control_characters
;
.CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
LD BC,1*256 + BIOS.LP_PRINT_SYM
;[x] CR+LF+SCROLL
RST ToBIOS
;
; ¯à®¢¥àª  ­  ¯¥à¥å®¤ ªãàá®à  ¢ á ¬®¥ ­ ç «® (X:Y == 0:0)
CALL CURSOR
LD A,D
@ -80,8 +74,7 @@ PUTCHAR:
CALL LOCATE
POP HL
RET
.TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
RST ToBIOS
.TB_: CALL CURSOR
IF TABisSPACES
LD B,E
LD A,E
@ -99,15 +92,13 @@ PUTCHAR:
LD E,A
JP LOCATE
ENDIF
.BK_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
RST ToBIOS
.BK_: CALL CURSOR
XOR A
CP E
RET Z
DEC E
JP LOCATE
.LF_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
RST ToBIOS
.LF_: CALL CURSOR
LD A,D
CP #1F
JR NC,.LFF
@ -118,8 +109,7 @@ PUTCHAR:
CALL LOCATE
; !!!! <20>… à §à뢠âì LF_ ¨ CR_ !!!!
ENDIF
.CR_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
RST ToBIOS
.CR_: CALL CURSOR
LD E,0
JP LOCATE
; [x] Beep in PChars/PUTCHAR
@ -132,6 +122,12 @@ PUTCHAR:
;
; [x] -bug with Vasil's version of cursor
.NO_SCROLL:
CP #0E
JR C,.control_characters
._CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
JP ToBIOS
;
.control_characters:
CP #0D
JR Z,.CR_
CP #0A
@ -142,8 +138,7 @@ PUTCHAR:
JR Z,.BK_
CP #07
JR Z,.BELL ; [x] Beep in PChars/PUTCHAR
._CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
JP ToBIOS
RET
;-----[]
;
;
@ -397,14 +392,14 @@ GETVMOD:
; ”ã­ªæ¨ï #50. ‚ë¡®à ०¨¬  íªà ­ .
;
; ¢å®¤: A - ०¨¬ íªà ­ 
; 02h - ⥪áâ®¢ë© 40x32x16 梥⮢
; 03h - ⥪áâ®¢ë© 80x32x16 梥⮢
; 81h - £à ä¨ç¥áª¨© 320x256x256 梥⮢
; 82h - £à ä¨ç¥áª¨© 640x256x16 梥⮢
; #02 - ⼪áâŽ˘ëŠ 40x32x16 梼⎢
; #03 - ⼪áâŽ˘ëŠ 80x32x16 梼⎢
; #81 - Łŕ ä¨çĽáŞ¨Š 320x256x256 梼⎢
; #82 - Łŕ ä¨çĽáŞ¨Š 640x256x16 梼⎢
; B - áâà ­¨æ  íªà ­  0/1
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
SETVMOD:;BIT 7,A
SETVMOD:;
CP %1000'0000
LD C,A
JR NC,GRAPH
@ -412,10 +407,8 @@ SETVMOD:;BIT 7,A
PUSH IX
EX AF,AF'
LD A,(VMODE)
LD (VVMODE),A
LD (BACKTXT.VMODE),A
EX AF,AF'
//INC A
//DEC A
OR A
JR Z,.NOMODE
DEC A
@ -626,17 +619,18 @@ SAVETXT: PUSH AF
PUSH AF
LD C,BIOS.LP_GET_PLACE
RST ToBIOS
LD (TCURS),DE
LD (BACKTXT.CURS),DE
POP AF
LD IX,#C000
LD HL,#2050
OR A
JR NZ,.SVTEXT1
LD L,#28
.SVTEXT1: LD (SVHL1),HL
.SVTEXT1: LD (BACKTXT.WinMax),HL
LD DE,#0000
LD A,(BANKTBL+TXTPAGE)
LD B,A
LD C,BIOS.WIN_COPY
;[x] 29/9/23
LD A,R
@ -659,7 +653,7 @@ SAVETXT: PUSH AF
;----------------------------------------------------------------------
BACKTXT: PUSH AF
VVMODE+1: LD A,#00
.VMODE+1: LD A,#00
;BIT 7,A
CP %1000'0000
JR C,NOBACKT
@ -669,7 +663,7 @@ VVMODE+1: LD A,#00
PUSH HL
PUSH IX
LD IX,#C000
SVHL1+1: LD HL,#2050
.WinMax+1: LD HL,#2050
LD DE,#0000
LD A,(BANKTBL+TXTPAGE)
LD B,A
@ -683,10 +677,10 @@ SVHL1+1: LD HL,#2050
RST ToBIOS
;[x] 29/9/23
POP AF
JP PO,1F
JP PO,.no_ei
EI
1: ;
TCURS+1: LD DE,#0000
.no_ei: ;
.CURS+1: LD DE,#0000
CALL LOCATE
POP IX
POP HL

View File

@ -1 +1 @@
880
905

View File

@ -7,6 +7,10 @@
DEFINE COMPILE_UNUSED_CODE 0
;
;
DEFINE MOUSE_COM_BAUD_4800 0
;
;
;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì­®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥
@ -85,3 +89,17 @@ FMCOUNT EQU 10 ;
HANDBUF.SIZE EQU 32
;----------------------------------------------------;
;
;
;----------------------------------------------------;
IF MOUSE_COM_BAUD_4800
MOUSE_BAUD:
.multiplier_1 EQU #04 ; ¯¥à¢ë© ¬­®¦¨â¥«ì = 1. 875000/Œ­1*Œ­2=4807
.multiplier_2 EQU #B6 ; ¢â®à®© ¬­®¦¨â¥«ì = 182. 875000/Œ­1*Œ­2=4807
ELSE
MOUSE_BAUD:
.multiplier_1 EQU #47 ; ¯¥à¢ë© ¬­®¦¨â¥«ì = 16. 875000/Œ­1*Œ­2=1215
.multiplier_2 EQU #2D ; ¢â®à®© ¬­®¦¨â¥«ì = 45. 875000/Œ­1*Œ­2=1215
ENDIF
;----------------------------------------------------;
;

View File

@ -5,12 +5,10 @@
;///////////////////////////////////////////////////
cmd_chdir:
ex de,hl
;ld de,T9186 ; ¡ãä¥à
ld de,work_buffer1;
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
RST ToDSS
xor a
;ld hl,T9186
ld hl,work_buffer1;
cp (hl)
jr nz,A877B
@ -23,9 +21,7 @@ cmd_chdir:
dec hl
A877B: ld c,Dss.ChDir ; ᬥ­¨âì ⥪. ª â «®£
RST ToDSS
;call c,print_err_message
jp c,print_err_message ; ¢ë¢®¤ á®®¡é¥­¨ï
; call newline
jp Get_Path ; á®åà. ⥪. ¤¨áª ¨ ¯ãâì
; ; ¢ë¢®¤ á¨áâ. ¯ã⨠­  íªà ­
; ld c,8Eh ; ã§­ âì ¯®«®¦. ªãàá®à 

View File

@ -520,7 +520,7 @@ T8B46: db "0 000 000 000",0
db 0
;
; [ ] ג¥¯¥אל ­¥ «¥§¥ג ­ ¯אן¬דמ, ¤¥« ¥ג ח¥א¥§ ­®¢כ© ¯ א ¬¥גא הד­×ז¨¨ DskInfo
; [x] ג¥¯¥אל ­¥ «¥§¥ג ­ ¯אן¬דמ, ¤¥« ¥ג ח¥א¥§ ­®¢כ© ¯ א ¬¥גא הד­×ז¨¨ DskInfo
; ¨­ ï «®£¨ª  ¯®«ã祭¨ï ¬¥âª¨ ⮬  - á­ ç «  ¨é¥âáï ¢ ª®à­¥¢®© ¤¨à¥ªâ®à¨¨,
; ¥á«¨ â ¬ ­¥â, â® ¡¥àñâáï ¨§ BPB
read_disk_info:

@ -1 +1 @@
Subproject commit 4d37c338c31c060e7a42f1e47fad93b69af34a5b
Subproject commit 795ad6ac57585133e1ffb8f0baafb3751dda576c