mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-18 10:50:34 +03:00
чутка оптимизирован по размеру драйвер мышки
This commit is contained in:
parent
1d24621a28
commit
66e5661218
@ -350,7 +350,7 @@ write_to_: ld a,(disk) ;
|
|||||||
ret z ; !TODO § £à㧪 á à áè¨à¥®£® à §¤¥« ¥ ¯®¤¤¥à¦¨¢ ¥âáï
|
ret z ; !TODO § £à㧪 á à áè¨à¥®£® à §¤¥« ¥ ¯®¤¤¥à¦¨¢ ¥âáï
|
||||||
dec c
|
dec c
|
||||||
push bc ; B - PHISICAL DRIVE NUMBER, C - PARTITION RECORD NUMBER IN DRIVE MBR
|
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 HL,0
|
||||||
LD IX,0
|
LD IX,0
|
||||||
LD DE,buffer
|
LD DE,buffer
|
||||||
|
|||||||
@ -58,6 +58,7 @@
|
|||||||
include 'API/Read.asm'
|
include 'API/Read.asm'
|
||||||
include 'API/Write.asm'
|
include 'API/Write.asm'
|
||||||
include 'API/Environ.ASM'
|
include 'API/Environ.ASM'
|
||||||
|
include 'API/Lib_Sub.asm'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
; C - #19
|
; C - #19
|
||||||
; HL - ד× § ג¥«ל ה ©«®¢דמ ב¯¥ז¨ה¨× ז¨מ
|
; HL - ד× § ג¥«ל ה ©«®¢דמ ב¯¥ז¨ה¨× ז¨מ
|
||||||
; DE - א <D790>®ח¨© <20>דה¥א 44 <20> ©ג , ¥ב«¨ B=0, ¨ ח¥ 256 <20> ©ג
|
; DE - א <D790>®ח¨© <20>דה¥א 44 <20> ©ג , ¥ב«¨ B=0, ¨ ח¥ 256 <20> ©ג
|
||||||
; ;!!!!! α ¬<EFBFBD>¬ €₯«₯ α₯©η α ₯᫨ B=1, ΰ ‘<C2A0>稩 ‘γδ₯ΰ 46 ‘ ©β
|
; ;!!!!! á ¬®¬ ¤¥«¥ ¯®ª çâ® ¥á«¨ B=1, à ¡®ç¨© ¡ãä¥à 46 ¡ ©â
|
||||||
; A - גא¨<D790>דגכ, ¨ב¯®«ל§ד¥¬כ¥ ¯א¨ ¯®¨ב×¥
|
; A - גא¨<D790>דגכ, ¨ב¯®«ל§ד¥¬כ¥ ¯א¨ ¯®¨ב×¥
|
||||||
; B = 0 - ¨¬ן ©¤¥®£® ה ©« ¢ ה®א¬ ג¥ 11 <20> ©ג "FilenameExt"
|
; B = 0 - ¨¬ן ©¤¥®£® ה ©« ¢ ה®א¬ ג¥ 11 <20> ©ג "FilenameExt"
|
||||||
; B = 1 - ¨¬ן ©¤¥®£® ה ©« ¢ ה®א¬ ג¥ DOS "filename.ext",0
|
; B = 1 - ¨¬ן ©¤¥®£® ה ©« ¢ ה®א¬ ג¥ DOS "filename.ext",0
|
||||||
|
|||||||
14
DSS/API/Lib_Sub.asm
Normal file
14
DSS/API/Lib_Sub.asm
Normal 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
|
||||||
|
;
|
||||||
|
;
|
||||||
@ -28,7 +28,7 @@ READ: LD (.R_POINT),HL
|
|||||||
; RR L
|
; RR L
|
||||||
; RR D
|
; RR D
|
||||||
; RR E
|
; RR E
|
||||||
LD H,0
|
LD H,0 ;
|
||||||
LD L,(IY+_sFM.F_POSITION+3)
|
LD L,(IY+_sFM.F_POSITION+3)
|
||||||
LD D,(IY+_sFM.F_POSITION+2)
|
LD D,(IY+_sFM.F_POSITION+2)
|
||||||
LD E,(IY+_sFM.F_POSITION+1)
|
LD E,(IY+_sFM.F_POSITION+1)
|
||||||
|
|||||||
@ -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 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 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 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
|
IFN SHORT_RSTx10_TABLE
|
||||||
;[ ] R09
|
;[ ] 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 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 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 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
|
IFN SHORT_RSTx10_TABLE
|
||||||
;[ ] R09
|
;[ ] R09
|
||||||
|
|||||||
@ -340,10 +340,15 @@ LOADDIR:
|
|||||||
;
|
;
|
||||||
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||||
LD (IY+_sFM.DRIVE),A ; á®åà. ¢ ¤¥áªà¨¯â®à
|
LD (IY+_sFM.DRIVE),A ; á®åà. ¢ ¤¥áªà¨¯â®à
|
||||||
LD D,(IY+_sFM.ST_CLUSTER) ; de=®¬¥à ¯¥à¢®£® ª« áâ¥à
|
;
|
||||||
LD E,(IY+_sFM.ST_CLUSTER+1)
|
;LD D,(IY+_sFM.ST_CLUSTER+1) ; de=®¬¥à ¯¥à¢®£® ª« áâ¥à
|
||||||
LD A,D
|
;LD E,(IY+_sFM.ST_CLUSTER)
|
||||||
OR E
|
;LD A,D
|
||||||
|
;OR E
|
||||||
|
; ®¬¥à ¯¥à¢®£® ª« áâ¥à
|
||||||
|
LD A,(IY+_sFM.ST_CLUSTER)
|
||||||
|
OR (IY+_sFM.ST_CLUSTER+1)
|
||||||
|
;
|
||||||
JP Z,.LROTDIR ; root ??
|
JP Z,.LROTDIR ; root ??
|
||||||
LD HL,DIRPAGE.buffer ; ªã¤
|
LD HL,DIRPAGE.buffer ; ªã¤
|
||||||
LD DE,#4000 ; ᪮«ìª®
|
LD DE,#4000 ; ᪮«ìª®
|
||||||
@ -567,7 +572,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
.loop1: ADD HL,DE
|
.loop1: ADD HL,DE
|
||||||
DEC A
|
DEC A
|
||||||
JR NZ,.loop1
|
JR NZ,.loop1
|
||||||
LD (FatBuffer.DIR_FRM),HL ; first sector DIR
|
LD (FatBuffer.DIR_FRL),HL ; first sector DIR
|
||||||
; CF = ? ¬ «® «¨
|
; CF = ? ¬ «® «¨
|
||||||
AND A
|
AND A
|
||||||
; CF = 0
|
; CF = 0
|
||||||
@ -615,7 +620,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
LD B,0
|
LD B,0
|
||||||
LD (FatBuffer.DIR_S_S),A
|
LD (FatBuffer.DIR_S_S),A
|
||||||
ADD HL,BC ; Start DATA area
|
ADD HL,BC ; Start DATA area
|
||||||
LD (FatBuffer.DAT_FRM),HL
|
LD (FatBuffer.DAT_FRL),HL
|
||||||
;!TODO ¥ ¨á¯®«ì§ãîâáï § ç¥¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ï¥¬ë¥ ¢ FatBuffer
|
;!TODO ¥ ¨á¯®«ì§ãîâáï § ç¥¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ï¥¬ë¥ ¢ FatBuffer
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;IF COMPILE_UNUSED_CODE
|
;IF COMPILE_UNUSED_CODE
|
||||||
@ -706,7 +711,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
;ENDIF
|
;ENDIF
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
LD DE,(FatBuffer.DAT_FRM)
|
LD DE,(FatBuffer.DAT_FRL)
|
||||||
; LD E,(IY+_sBOOT_SEC.HIDDEN) ;Hidden sec
|
; LD E,(IY+_sBOOT_SEC.HIDDEN) ;Hidden sec
|
||||||
; LD D,(IY+_sBOOT_SEC.HIDDEN+1)
|
; LD D,(IY+_sBOOT_SEC.HIDDEN+1)
|
||||||
; AND A
|
; AND A
|
||||||
@ -813,12 +818,12 @@ FatBuffer:
|
|||||||
.FAT_FRM:
|
.FAT_FRM:
|
||||||
.FAT1_XX: DW #0000 ; MSD_FAT_SEC first sector FAT
|
.FAT1_XX: DW #0000 ; MSD_FAT_SEC first sector FAT
|
||||||
.FAT2_XX: DW #0000
|
.FAT2_XX: DW #0000
|
||||||
.DIR_FRH: DW #0000 ; MSD_CAT_SEC first sector DIR
|
.DIR_FRH: DW #0000 ; MSD_CAT_SEC first sector DIR ; !TODO ®£à ¨ç¥¨¥ ¢ 32 ƒ¨£ ;!FIXIT ¥ ¨á¯®«ì§ã¥âáï
|
||||||
.DIR_FRL:
|
.DIR_FRL: DW #0000 ; MSD_CAT_SEC first sector DIR
|
||||||
.DIR_FRM: DW #0000 ; MSD_CAT_SEC first sector DIR
|
|
||||||
.F_P_S: DB #00 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
|
.F_P_S: DB #00 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
|
||||||
.DIR_S_S: DB #00 ; DIR_SEC_SIZE
|
.DIR_S_S: DB #00 ; DIR_SEC_SIZE
|
||||||
.DAT_FRM: DW #0000 ; MSD_DAT_SEC
|
.DAT_FRL: DW #0000 ; MSD_DAT_SEC low
|
||||||
|
;.DAT_FRH: DW #0000 ; MSD_DAT_SEC high ; !TODO ®£à ¨ç¥¨¥ ¢ 32 ƒ¨£ ;!FIXIT ¥ ¨á¯®«ì§ã¥âáï
|
||||||
.CLU_LEN:
|
.CLU_LEN:
|
||||||
.B_P_C: DW #0000 ; CLUSTER_LEN
|
.B_P_C: DW #0000 ; CLUSTER_LEN
|
||||||
.C_P_B: DB #00 ; A - Clusters per bank (16k) (ç¨á«® ª« áâ¥à®¢ ¡«®ª އ“) ; ????? íâ® ¨á¯®«ì§ã¥âáï?
|
.C_P_B: DB #00 ; A - Clusters per bank (16k) (ç¨á«® ª« áâ¥à®¢ ¡«®ª އ“) ; ????? íâ® ¨á¯®«ì§ã¥âáï?
|
||||||
|
|||||||
@ -442,7 +442,7 @@ GET_FAT12_CELL:
|
|||||||
; in: HL - CLUSTER
|
; in: HL - CLUSTER
|
||||||
; out: HL:IX - SECTOR
|
; out: HL:IX - SECTOR
|
||||||
NSECTOR:
|
NSECTOR:
|
||||||
LD DE,0
|
LD DE,0 ;!FIXIT for FAT32
|
||||||
DEC HL
|
DEC HL
|
||||||
DEC HL
|
DEC HL
|
||||||
LD A,(CORE_BUFFERS.BootSector.S_P_C)
|
LD A,(CORE_BUFFERS.BootSector.S_P_C)
|
||||||
@ -460,7 +460,7 @@ NSECTOR:
|
|||||||
.skip: EX DE,HL
|
.skip: EX DE,HL
|
||||||
LD XL,E
|
LD XL,E
|
||||||
LD XH,D
|
LD XH,D
|
||||||
LD DE,(FatBuffer.DAT_FRM) ;first data sector
|
LD DE,(FatBuffer.DAT_FRL) ;first data sector
|
||||||
XOR A
|
XOR A
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
LD D,A
|
LD D,A
|
||||||
@ -962,7 +962,7 @@ FAT_Max_Cluster: WORD #0FF0 ;
|
|||||||
; JR NC,ADD_DE2
|
; JR NC,ADD_DE2
|
||||||
; INC HL
|
; INC HL
|
||||||
; ADD_DE2: DJNZ ADD_DE1
|
; ADD_DE2: DJNZ ADD_DE1
|
||||||
; LD DE,(FatBuffer.DAT_FRM) ;first data sector
|
; LD DE,(FatBuffer.DAT_FRL) ;first data sector
|
||||||
; ADD IX,DE
|
; ADD IX,DE
|
||||||
; LD DE,#0000
|
; LD DE,#0000
|
||||||
; ADC HL,DE
|
; ADC HL,DE
|
||||||
|
|||||||
309
DSS/INTMOUSE.ASM
309
DSS/INTMOUSE.ASM
@ -158,9 +158,9 @@ M_RESR LD A,DSS_Error.mouse.INVALID_COMMAND
|
|||||||
;!TODO ¡¨®á.
|
;!TODO ¡¨®á.
|
||||||
MS_INIT DI
|
MS_INIT DI
|
||||||
;!TEST mouse
|
;!TEST mouse
|
||||||
;LD A,85
|
;LD A,#55
|
||||||
;OUT (#10),A
|
;OUT (#10),A
|
||||||
;LD A,45
|
;LD A,#2D
|
||||||
;OUT (#10),A
|
;OUT (#10),A
|
||||||
;
|
;
|
||||||
XOR A ;LD A,0
|
XOR A ;LD A,0
|
||||||
@ -176,9 +176,7 @@ MS_INIT DI
|
|||||||
LD A,4
|
LD A,4
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
;!TEST mouse
|
;!TEST mouse
|
||||||
LD A,#47 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 16 875000/Œ1*Œ2=1215
|
LD A,MOUSE_BAUD.multiplier_1 ; ¯¥à¢ë© ¬®¦¨â¥«ì
|
||||||
;LD A,#44
|
|
||||||
;LD A,#04 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 1 875000/Œ1*Œ2=4807
|
|
||||||
OUT (PORT_MOUSE.Ctrl),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
;
|
;
|
||||||
LD A,5
|
LD A,5
|
||||||
@ -192,8 +190,7 @@ MS_INIT DI
|
|||||||
;!TEST mouse
|
;!TEST mouse
|
||||||
LD A,#55
|
LD A,#55
|
||||||
OUT (Z84.CTC.Ch_0),A
|
OUT (Z84.CTC.Ch_0),A
|
||||||
LD A,#2D ; ¢â®à®© ¬®¦¨â¥«ì = 45 875000/Œ1*Œ2=1215
|
LD A,MOUSE_BAUD.multiplier_2 ; ¢â®à®© ¬®¦¨â¥«ì
|
||||||
;LD A,#B6 ; ¢â®à®© ¬®¦¨â¥«ì = 182 875000/Œ1*Œ2=4807
|
|
||||||
OUT (Z84.CTC.Ch_0),A
|
OUT (Z84.CTC.Ch_0),A
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -211,7 +208,7 @@ MS_SHOW PUSH IX
|
|||||||
DI
|
DI
|
||||||
CALL MOUSE
|
CALL MOUSE
|
||||||
XOR A
|
XOR A
|
||||||
LD (REFRESH+1),A
|
LD (REFRESH.hide),A
|
||||||
EI
|
EI
|
||||||
POP AF
|
POP AF
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
@ -228,7 +225,7 @@ MS_HIDD PUSH IX
|
|||||||
PUSH AF
|
PUSH AF
|
||||||
DI
|
DI
|
||||||
LD A,1
|
LD A,1
|
||||||
LD (REFRESH+1),A
|
LD (REFRESH.hide),A
|
||||||
CALL RESTORE
|
CALL RESTORE
|
||||||
EI
|
EI
|
||||||
POP AF
|
POP AF
|
||||||
@ -373,10 +370,84 @@ MS_GSEN
|
|||||||
LD HL,(SENSEXY)
|
LD HL,(SENSEXY)
|
||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
MOUSET LD (REST_XT+1),HL
|
|
||||||
LD (REST_YT+1),DE
|
;----------------------------------------------------------------------;
|
||||||
;Y
|
RESTORE:
|
||||||
|
.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
|
SRL D
|
||||||
RR E
|
RR E
|
||||||
SRL D
|
SRL D
|
||||||
@ -392,24 +463,17 @@ MOUSET LD (REST_XT+1),HL
|
|||||||
SRL H
|
SRL H
|
||||||
RR L
|
RR L
|
||||||
LD E,L
|
LD E,L
|
||||||
|
|
||||||
IN A,(PORT_Y)
|
|
||||||
LD XH,A
|
|
||||||
IN A,(SLOT1)
|
|
||||||
LD XL,A
|
|
||||||
;
|
;
|
||||||
DI
|
DI
|
||||||
;
|
OUT (SLOT3),A
|
||||||
LD A,#54 ;!HARDCODE video page
|
|
||||||
OUT (SLOT1),A
|
|
||||||
;
|
;
|
||||||
LD A,D
|
LD A,D
|
||||||
ADD A,A
|
ADD A,A
|
||||||
ADD A,A ;Y * 4
|
ADD A,A ;Y * 4
|
||||||
LD L,A
|
LD L,A
|
||||||
LD H,#43 ;+ #4300
|
LD H,high (SLOT3.MEM_ADDR + #300) ;#300 - ®¯¨á ⥫¨ íªà
|
||||||
;
|
;
|
||||||
IN A,(RGMOD)
|
IN A,(SCREEN_SWITCH)
|
||||||
RRCA
|
RRCA
|
||||||
AND #80
|
AND #80
|
||||||
OR #01
|
OR #01
|
||||||
@ -417,6 +481,29 @@ MOUSET LD (REST_XT+1),HL
|
|||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
INC L
|
INC L
|
||||||
LD A,(HL) ;SIMBOL
|
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)
|
LD BC,(ANDXORS)
|
||||||
AND B
|
AND B
|
||||||
XOR C
|
XOR C
|
||||||
@ -426,136 +513,23 @@ MOUSET LD (REST_XT+1),HL
|
|||||||
LD BC,(ANDXORA)
|
LD BC,(ANDXORA)
|
||||||
AND B
|
AND B
|
||||||
XOR C
|
XOR C
|
||||||
LD (HL),A
|
JR SET_RESTORE_EXIT
|
||||||
;
|
;
|
||||||
LD A,XL
|
;set gfx-mode
|
||||||
OUT (SLOT1),A
|
.GFX: CP #82 ;640x256x16
|
||||||
LD A,XH
|
JR NZ,.NOFIX_640
|
||||||
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
|
SRL H
|
||||||
RR L
|
RR L
|
||||||
SRL H
|
.NOFIX_640: LD IX,M_IMAGE
|
||||||
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
|
|
||||||
|
|
||||||
;HL/DE - X/Y
|
|
||||||
|
|
||||||
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 A,(M_XSIZE)
|
||||||
LD C,A
|
LD C,A
|
||||||
LD B,0
|
LD B,0
|
||||||
LD (REALXS),BC
|
LD (REALXS),BC
|
||||||
LD (REST_H+1),BC
|
LD (RESTORE.Xsize),BC
|
||||||
LD C,B
|
LD C,B
|
||||||
LD (SKIPXF),BC
|
LD (SKIPXF),BC
|
||||||
LD A,(M_YSIZE)
|
LD A,(M_YSIZE)
|
||||||
LD (REST_A+1),A
|
LD (RESTORE.YSize),A
|
||||||
LD C,A
|
LD C,A
|
||||||
LD B,0
|
LD B,0
|
||||||
LD (REALYS),BC
|
LD (REALYS),BC
|
||||||
@ -563,7 +537,7 @@ NOFX: LD IX,M_IMAGE
|
|||||||
LD A,E
|
LD A,E
|
||||||
SUB C
|
SUB C
|
||||||
LD E,A
|
LD E,A
|
||||||
JR NC,GOODY
|
JR NC,.GOOD_Y
|
||||||
NEG
|
NEG
|
||||||
LD E,A
|
LD E,A
|
||||||
LD A,(M_XSIZE)
|
LD A,(M_XSIZE)
|
||||||
@ -571,15 +545,15 @@ NOFX: LD IX,M_IMAGE
|
|||||||
LD B,0
|
LD B,0
|
||||||
LD A,(M_YSIZE)
|
LD A,(M_YSIZE)
|
||||||
SUB E
|
SUB E
|
||||||
SKIPMY: ADD IX,BC
|
.SKIPMY: ADD IX,BC
|
||||||
DEC E
|
DEC E
|
||||||
JR NZ,SKIPMY
|
JR NZ,.SKIPMY
|
||||||
LD C,A
|
LD C,A
|
||||||
LD (REALYS),BC
|
LD (REALYS),BC
|
||||||
GOODY: LD BC,(XHOT_SP)
|
.GOOD_Y: LD BC,(XHOT_SP)
|
||||||
AND A
|
AND A
|
||||||
SBC HL,BC
|
SBC HL,BC
|
||||||
JR NC,GOODX
|
JR NC,.GOOD_X
|
||||||
LD B,H
|
LD B,H
|
||||||
LD C,L
|
LD C,L
|
||||||
LD HL,0
|
LD HL,0
|
||||||
@ -591,9 +565,9 @@ GOODY: LD BC,(XHOT_SP)
|
|||||||
LD L,A
|
LD L,A
|
||||||
LD (REALXS),HL
|
LD (REALXS),HL
|
||||||
LD HL,0
|
LD HL,0
|
||||||
GOODX: LD (REST_X+1),HL
|
.GOOD_X: LD (RESTORE.X),HL
|
||||||
LD (REST_Y+1),DE
|
LD (RESTORE.Y),DE
|
||||||
|
;
|
||||||
PUSH HL
|
PUSH HL
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
LD H,A
|
LD H,A
|
||||||
@ -604,41 +578,45 @@ GOODX: LD (REST_X+1),HL
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,E
|
LD A,E
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
IN A,(RGMOD)
|
IN A,(SCREEN_SWITCH)
|
||||||
LD (REST_V+1),A
|
LD (RESTORE.SCR),A
|
||||||
AND 1
|
AND 1
|
||||||
LD DE,#C000 ;PAGE 0
|
LD DE,SLOT3.MEM_ADDR ;Screen 0
|
||||||
JR Z,AA1
|
JR Z,.adr
|
||||||
LD DE,#C000+320 ;PAGE 1
|
LD DE,SLOT3.MEM_ADDR+320 ;Screen 1
|
||||||
AA1 ADD HL,DE
|
.adr: ADD HL,DE
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD E,XL
|
LD E,XL
|
||||||
EX DE,HL ;HL - BITMAP
|
EX DE,HL ;HL - BITMAP
|
||||||
LD BC,(REALYS)
|
LD BC,(REALYS)
|
||||||
LD XH,C
|
LD XH,C
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
MS002 LD BC,(SKIPXF)
|
;
|
||||||
|
.loop: LD BC,(SKIPXF)
|
||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
LD BC,(REALXS)
|
LD BC,(REALXS)
|
||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
;PUSH DE
|
LD (.PUSH_DE),DE
|
||||||
LD (PUSH_DE+1),DE
|
|
||||||
LDIR
|
LDIR
|
||||||
PUSH_DE LD DE,#0000
|
.PUSH_DE+1: LD DE,#0000
|
||||||
; POP DE
|
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
INC A
|
INC A
|
||||||
JR Z,MS003
|
JR Z,.exit_loop
|
||||||
DEC XH
|
DEC XH
|
||||||
JR NZ,MS002
|
JR NZ,.loop
|
||||||
MS003 POP BC
|
;
|
||||||
|
.exit_loop: POP BC
|
||||||
LD A,B
|
LD A,B
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,C
|
LD A,C
|
||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
READ_M: IN A,(PORT_MOUSE.Ctrl)
|
READ_M: IN A,(PORT_MOUSE.Ctrl)
|
||||||
RRCA
|
RRCA
|
||||||
@ -893,7 +871,8 @@ CONTROL CALL READ_M
|
|||||||
LD (REDY),A
|
LD (REDY),A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
REFRESH LD A,#01
|
REFRESH:
|
||||||
|
.hide+1: LD A,#01
|
||||||
OR A
|
OR A
|
||||||
RET NZ
|
RET NZ
|
||||||
REDY+1: LD A,#00
|
REDY+1: LD A,#00
|
||||||
|
|||||||
@ -179,11 +179,8 @@ ECHOKEY: CALL Cursor_On ;
|
|||||||
CALL Cursor_Off ; ¢ëª«. ªãàá®à
|
CALL Cursor_Off ; ¢ëª«. ªãàá®à
|
||||||
POP AF
|
POP AF
|
||||||
OR A
|
OR A
|
||||||
;!FIXIT scroll § ¬¥¨âì ¢ë¢®¤ ᨬ¢®« ¡¨®á®¬ ¨«¨ WRCHAR
|
; [x] -bug with Vasil's version of cursor
|
||||||
; LD BC,1*256 + BIOS.LP_PRINT_SYM
|
|
||||||
; RST ToBIOS
|
|
||||||
CALL NZ,PUTCHAR.NO_SCROLL ; ¤®¡ ¢¨« ¢ë¢®¤ "a" íªà
|
CALL NZ,PUTCHAR.NO_SCROLL ; ¤®¡ ¢¨« ¢ë¢®¤ "a" íªà
|
||||||
;
|
|
||||||
POP BC
|
POP BC
|
||||||
POP DE
|
POP DE
|
||||||
LD A,E
|
LD A,E
|
||||||
@ -261,17 +258,19 @@ cursor_interrupt:
|
|||||||
|
|
||||||
; <20> áâனª § ª®£¥¥à â®à ªãàá®à ç¥àâ®çª®©
|
; <20> áâனª § ª®£¥¥à â®à ªãàá®à ç¥àâ®çª®©
|
||||||
SETUP_CURSORS:
|
SETUP_CURSORS:
|
||||||
in a,(SLOT2)
|
.buffer EQU #C000
|
||||||
|
;
|
||||||
|
in a,(SLOT3)
|
||||||
push af ; á®åà. ¯®àâ
|
push af ; á®åà. ¯®àâ
|
||||||
ld a,(BANKTBL+TXTPAGE) ; 2-© «®£. ®¬¥à áâà ¨æë à áè. „Ž‘
|
ld a,(BANKTBL+TXTPAGE) ; 2-© «®£. ®¬¥à áâà ¨æë à áè. „Ž‘
|
||||||
out (SLOT2),a
|
out (SLOT3),a
|
||||||
; ¯®«ãç¨âì á¨áâ. § ª®£¥.
|
; ¯®«ãç¨âì á¨áâ. § ª®£¥.
|
||||||
ld de,#8000 ;!HARDCODE ¡ãä¥à ¤«ï 2048 ¡ ©â ¤ ëå
|
ld de,.buffer ;!HARDCODE ¡ãä¥à ¤«ï 2048 ¡ ©â ¤ ëå
|
||||||
push de
|
push de
|
||||||
ld c,BIOS.WIN_GET_ZG ; ¯®«ãç¨âì § ª®£¥.
|
ld c,BIOS.WIN_GET_ZG ; ¯®«ãç¨âì § ª®£¥.
|
||||||
rst ToBIOS
|
rst ToBIOS
|
||||||
; § ¯®«¨âì ª®¤®¬ #FF 2 ¨¦¨¥ «¨¨¨
|
; § ¯®«¨âì ª®¤®¬ #FF 2 ¨¦¨¥ «¨¨¨
|
||||||
ld hl,#8000+(2048-(2*256)) ;!HARDCODE ¯®á«¥¤¨¥ 512 ¡ ©â
|
ld hl,.buffer+(2048-(2*256)) ;!HARDCODE ¯®á«¥¤¨¥ 512 ¡ ©â
|
||||||
ld bc,511
|
ld bc,511
|
||||||
ld a,CURSOR_ZG; ; ®¬¥à § ª®£¥. "ç¥àâ®çª "
|
ld a,CURSOR_ZG; ; ®¬¥à § ª®£¥. "ç¥àâ®çª "
|
||||||
call .fill_data_font
|
call .fill_data_font
|
||||||
@ -281,7 +280,7 @@ SETUP_CURSORS:
|
|||||||
ld a,INS_CUR_ZG ; ®¬¥à § ª®£¥. "¡«®ª"
|
ld a,INS_CUR_ZG ; ®¬¥à § ª®£¥. "¡«®ª"
|
||||||
call .fill_data_font
|
call .fill_data_font
|
||||||
pop af
|
pop af
|
||||||
out (SLOT2),a ; ¢®ááâ. ¯®àâ
|
out (SLOT3),a ; ¢®ááâ. ¯®àâ
|
||||||
ret
|
ret
|
||||||
; <20> áâனª § ª®£¥. ¨ ¥£® ॣ¨áâà æ¨ï
|
; <20> áâனª § ª®£¥. ¨ ¥£® ॣ¨áâà æ¨ï
|
||||||
; ¢å®¤: a=®¬¥à § ª®£¥.
|
; ¢å®¤: a=®¬¥à § ª®£¥.
|
||||||
@ -293,7 +292,7 @@ SETUP_CURSORS:
|
|||||||
ld (hl),#FF
|
ld (hl),#FF
|
||||||
inc de
|
inc de
|
||||||
ldir
|
ldir
|
||||||
ld de,#8000 ; § ª®£¥.
|
ld de,.buffer ; § ª®£¥.
|
||||||
ld c,BIOS.WIN_SET_ZG ; ãáâ. § ª®£¥.
|
ld c,BIOS.WIN_SET_ZG ; ãáâ. § ª®£¥.
|
||||||
rst ToBIOS
|
rst ToBIOS
|
||||||
ret
|
ret
|
||||||
|
|||||||
@ -286,7 +286,7 @@ ERROR_BOOTDRV_DIES:
|
|||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
;
|
;
|
||||||
LD A,1
|
LD A,1
|
||||||
OUT (RGMOD),A ; set scr-2
|
OUT (SCREEN_SWITCH),A ; set scr-2
|
||||||
;
|
;
|
||||||
LD HL,.ERROR_MSG
|
LD HL,.ERROR_MSG
|
||||||
LD DE,#A000
|
LD DE,#A000
|
||||||
|
|||||||
@ -313,7 +313,7 @@ FDDRIVE:
|
|||||||
LD H,B
|
LD H,B
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
EXX
|
EXX
|
||||||
LD C,0 ;[ ] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
LD C,0 ;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|||||||
@ -455,7 +455,7 @@ IOCTL_RD:
|
|||||||
SCF
|
SCF
|
||||||
RET
|
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:DE - SECTORS ON LOGICAL DISK
|
||||||
; HL' - CYLINDERS ON PHISICAL DISK
|
; HL' - CYLINDERS ON PHISICAL DISK
|
||||||
; DE' - HEADS ON PHISICAL DISK
|
; DE' - HEADS ON PHISICAL DISK
|
||||||
|
|||||||
@ -47,20 +47,14 @@ PCHARS: LD A,(HL)
|
|||||||
; ¢ë室: ¥â
|
; ¢ë室: ¥â
|
||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
PUTCHAR:
|
PUTCHAR:
|
||||||
CP #0D
|
;CALL .NO_SCROLL
|
||||||
JR Z,.CR_
|
CP #0E
|
||||||
CP #0A
|
JR C,.control_characters
|
||||||
JR Z,.LF_
|
|
||||||
CP #09
|
|
||||||
JR Z,.TB_
|
|
||||||
CP #08
|
|
||||||
JR Z,.BK_
|
|
||||||
CP #07
|
|
||||||
JR Z,.BELL ; [x] Beep in PChars/PUTCHAR
|
|
||||||
;
|
;
|
||||||
.CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
|
LD BC,1*256 + BIOS.LP_PRINT_SYM
|
||||||
;[x] CR+LF+SCROLL
|
;[x] CR+LF+SCROLL
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
|
;
|
||||||
; ¯à®¢¥àª ¯¥à¥å®¤ ªãàá®à ¢ á ¬®¥ ç «® (X:Y == 0:0)
|
; ¯à®¢¥àª ¯¥à¥å®¤ ªãàá®à ¢ á ¬®¥ ç «® (X:Y == 0:0)
|
||||||
CALL CURSOR
|
CALL CURSOR
|
||||||
LD A,D
|
LD A,D
|
||||||
@ -80,8 +74,7 @@ PUTCHAR:
|
|||||||
CALL LOCATE
|
CALL LOCATE
|
||||||
POP HL
|
POP HL
|
||||||
RET
|
RET
|
||||||
.TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
.TB_: CALL CURSOR
|
||||||
RST ToBIOS
|
|
||||||
IF TABisSPACES
|
IF TABisSPACES
|
||||||
LD B,E
|
LD B,E
|
||||||
LD A,E
|
LD A,E
|
||||||
@ -99,15 +92,13 @@ PUTCHAR:
|
|||||||
LD E,A
|
LD E,A
|
||||||
JP LOCATE
|
JP LOCATE
|
||||||
ENDIF
|
ENDIF
|
||||||
.BK_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
.BK_: CALL CURSOR
|
||||||
RST ToBIOS
|
|
||||||
XOR A
|
XOR A
|
||||||
CP E
|
CP E
|
||||||
RET Z
|
RET Z
|
||||||
DEC E
|
DEC E
|
||||||
JP LOCATE
|
JP LOCATE
|
||||||
.LF_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
.LF_: CALL CURSOR
|
||||||
RST ToBIOS
|
|
||||||
LD A,D
|
LD A,D
|
||||||
CP #1F
|
CP #1F
|
||||||
JR NC,.LFF
|
JR NC,.LFF
|
||||||
@ -118,8 +109,7 @@ PUTCHAR:
|
|||||||
CALL LOCATE
|
CALL LOCATE
|
||||||
; !!!! <20>… à §àë¢ âì LF_ ¨ CR_ !!!!
|
; !!!! <20>… à §àë¢ âì LF_ ¨ CR_ !!!!
|
||||||
ENDIF
|
ENDIF
|
||||||
.CR_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
.CR_: CALL CURSOR
|
||||||
RST ToBIOS
|
|
||||||
LD E,0
|
LD E,0
|
||||||
JP LOCATE
|
JP LOCATE
|
||||||
; [x] Beep in PChars/PUTCHAR
|
; [x] Beep in PChars/PUTCHAR
|
||||||
@ -132,6 +122,12 @@ PUTCHAR:
|
|||||||
;
|
;
|
||||||
; [x] -bug with Vasil's version of cursor
|
; [x] -bug with Vasil's version of cursor
|
||||||
.NO_SCROLL:
|
.NO_SCROLL:
|
||||||
|
CP #0E
|
||||||
|
JR C,.control_characters
|
||||||
|
._CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
|
||||||
|
JP ToBIOS
|
||||||
|
;
|
||||||
|
.control_characters:
|
||||||
CP #0D
|
CP #0D
|
||||||
JR Z,.CR_
|
JR Z,.CR_
|
||||||
CP #0A
|
CP #0A
|
||||||
@ -142,8 +138,7 @@ PUTCHAR:
|
|||||||
JR Z,.BK_
|
JR Z,.BK_
|
||||||
CP #07
|
CP #07
|
||||||
JR Z,.BELL ; [x] Beep in PChars/PUTCHAR
|
JR Z,.BELL ; [x] Beep in PChars/PUTCHAR
|
||||||
._CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
|
RET
|
||||||
JP ToBIOS
|
|
||||||
;-----[]
|
;-----[]
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
@ -397,14 +392,14 @@ GETVMOD:
|
|||||||
; ”ãªæ¨ï #50. ‚ë¡®à ०¨¬ íªà .
|
; ”ãªæ¨ï #50. ‚ë¡®à ०¨¬ íªà .
|
||||||
;
|
;
|
||||||
; ¢å®¤: A - ०¨¬ íªà
|
; ¢å®¤: A - ०¨¬ íªà
|
||||||
; 02h - ⥪áâ®¢ë© 40x32x16 梥⮢
|
; #02 - ⼪áâŽ˘ëŠ 40x32x16 梼⎢
|
||||||
; 03h - ⥪áâ®¢ë© 80x32x16 梥⮢
|
; #03 - ⼪áâŽ˘ëŠ 80x32x16 梼⎢
|
||||||
; 81h - £à ä¨ç¥áª¨© 320x256x256 梥⮢
|
; #81 - Łŕ ä¨çĽáŞ¨Š 320x256x256 梼⎢
|
||||||
; 82h - £à ä¨ç¥áª¨© 640x256x16 梥⮢
|
; #82 - Łŕ ä¨çĽáŞ¨Š 640x256x16 梼⎢
|
||||||
; B - áâà ¨æ íªà 0/1
|
; B - áâà ¨æ íªà 0/1
|
||||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
SETVMOD:;BIT 7,A
|
SETVMOD:;
|
||||||
CP %1000'0000
|
CP %1000'0000
|
||||||
LD C,A
|
LD C,A
|
||||||
JR NC,GRAPH
|
JR NC,GRAPH
|
||||||
@ -412,10 +407,8 @@ SETVMOD:;BIT 7,A
|
|||||||
PUSH IX
|
PUSH IX
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,(VMODE)
|
LD A,(VMODE)
|
||||||
LD (VVMODE),A
|
LD (BACKTXT.VMODE),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
//INC A
|
|
||||||
//DEC A
|
|
||||||
OR A
|
OR A
|
||||||
JR Z,.NOMODE
|
JR Z,.NOMODE
|
||||||
DEC A
|
DEC A
|
||||||
@ -626,17 +619,18 @@ SAVETXT: PUSH AF
|
|||||||
PUSH AF
|
PUSH AF
|
||||||
LD C,BIOS.LP_GET_PLACE
|
LD C,BIOS.LP_GET_PLACE
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
LD (TCURS),DE
|
LD (BACKTXT.CURS),DE
|
||||||
POP AF
|
POP AF
|
||||||
LD IX,#C000
|
LD IX,#C000
|
||||||
LD HL,#2050
|
LD HL,#2050
|
||||||
OR A
|
OR A
|
||||||
JR NZ,.SVTEXT1
|
JR NZ,.SVTEXT1
|
||||||
LD L,#28
|
LD L,#28
|
||||||
.SVTEXT1: LD (SVHL1),HL
|
.SVTEXT1: LD (BACKTXT.WinMax),HL
|
||||||
LD DE,#0000
|
LD DE,#0000
|
||||||
LD A,(BANKTBL+TXTPAGE)
|
LD A,(BANKTBL+TXTPAGE)
|
||||||
LD B,A
|
LD B,A
|
||||||
|
|
||||||
LD C,BIOS.WIN_COPY
|
LD C,BIOS.WIN_COPY
|
||||||
;[x] 29/9/23
|
;[x] 29/9/23
|
||||||
LD A,R
|
LD A,R
|
||||||
@ -659,7 +653,7 @@ SAVETXT: PUSH AF
|
|||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
|
|
||||||
BACKTXT: PUSH AF
|
BACKTXT: PUSH AF
|
||||||
VVMODE+1: LD A,#00
|
.VMODE+1: LD A,#00
|
||||||
;BIT 7,A
|
;BIT 7,A
|
||||||
CP %1000'0000
|
CP %1000'0000
|
||||||
JR C,NOBACKT
|
JR C,NOBACKT
|
||||||
@ -669,7 +663,7 @@ VVMODE+1: LD A,#00
|
|||||||
PUSH HL
|
PUSH HL
|
||||||
PUSH IX
|
PUSH IX
|
||||||
LD IX,#C000
|
LD IX,#C000
|
||||||
SVHL1+1: LD HL,#2050
|
.WinMax+1: LD HL,#2050
|
||||||
LD DE,#0000
|
LD DE,#0000
|
||||||
LD A,(BANKTBL+TXTPAGE)
|
LD A,(BANKTBL+TXTPAGE)
|
||||||
LD B,A
|
LD B,A
|
||||||
@ -683,10 +677,10 @@ SVHL1+1: LD HL,#2050
|
|||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
;[x] 29/9/23
|
;[x] 29/9/23
|
||||||
POP AF
|
POP AF
|
||||||
JP PO,1F
|
JP PO,.no_ei
|
||||||
EI
|
EI
|
||||||
1: ;
|
.no_ei: ;
|
||||||
TCURS+1: LD DE,#0000
|
.CURS+1: LD DE,#0000
|
||||||
CALL LOCATE
|
CALL LOCATE
|
||||||
POP IX
|
POP IX
|
||||||
POP HL
|
POP HL
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
880
|
905
|
||||||
@ -7,6 +7,10 @@
|
|||||||
DEFINE COMPILE_UNUSED_CODE 0
|
DEFINE COMPILE_UNUSED_CODE 0
|
||||||
;
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
DEFINE MOUSE_COM_BAUD_4800 0
|
||||||
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥
|
;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥
|
||||||
|
|
||||||
@ -85,3 +89,17 @@ FMCOUNT EQU 10 ;
|
|||||||
HANDBUF.SIZE EQU 32
|
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
|
||||||
|
;----------------------------------------------------;
|
||||||
|
;
|
||||||
@ -5,12 +5,10 @@
|
|||||||
;///////////////////////////////////////////////////
|
;///////////////////////////////////////////////////
|
||||||
cmd_chdir:
|
cmd_chdir:
|
||||||
ex de,hl
|
ex de,hl
|
||||||
;ld de,T9186 ; ¡ãä¥à
|
|
||||||
ld de,work_buffer1;
|
ld de,work_buffer1;
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
xor a
|
xor a
|
||||||
;ld hl,T9186
|
|
||||||
ld hl,work_buffer1;
|
ld hl,work_buffer1;
|
||||||
cp (hl)
|
cp (hl)
|
||||||
jr nz,A877B
|
jr nz,A877B
|
||||||
@ -23,9 +21,7 @@ cmd_chdir:
|
|||||||
dec hl
|
dec hl
|
||||||
A877B: ld c,Dss.ChDir ; ᬥ¨âì ⥪. ª â «®£
|
A877B: ld c,Dss.ChDir ; ᬥ¨âì ⥪. ª â «®£
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;call c,print_err_message
|
|
||||||
jp c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
jp c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||||
; call newline
|
|
||||||
jp Get_Path ; á®åà. ⥪. ¤¨áª ¨ ¯ãâì
|
jp Get_Path ; á®åà. ⥪. ¤¨áª ¨ ¯ãâì
|
||||||
; ; ¢ë¢®¤ á¨áâ. ¯ã⨠íªà
|
; ; ¢ë¢®¤ á¨áâ. ¯ã⨠íªà
|
||||||
; ld c,8Eh ; ã§ âì ¯®«®¦. ªãàá®à
|
; ld c,8Eh ; ã§ âì ¯®«®¦. ªãàá®à
|
||||||
|
|||||||
@ -520,7 +520,7 @@ T8B46: db "0 000 000 000",0
|
|||||||
db 0
|
db 0
|
||||||
;
|
;
|
||||||
|
|
||||||
; [ ] ג¥¯¥אל ¥ «¥§¥ג ¯אן¬דמ, ¤¥« ¥ג ח¥א¥§ ®¢כ© ¯ א ¬¥גא הד×ז¨¨ DskInfo
|
; [x] ג¥¯¥אל ¥ «¥§¥ג ¯אן¬דמ, ¤¥« ¥ג ח¥א¥§ ®¢כ© ¯ א ¬¥גא הד×ז¨¨ DskInfo
|
||||||
; ¨ ï «®£¨ª ¯®«ãç¥¨ï ¬¥âª¨ ⮬ - á ç « ¨é¥âáï ¢ ª®à¥¢®© ¤¨à¥ªâ®à¨¨,
|
; ¨ ï «®£¨ª ¯®«ãç¥¨ï ¬¥âª¨ ⮬ - á ç « ¨é¥âáï ¢ ª®à¥¢®© ¤¨à¥ªâ®à¨¨,
|
||||||
; ¥á«¨ â ¬ ¥â, â® ¡¥àñâáï ¨§ BPB
|
; ¥á«¨ â ¬ ¥â, â® ¡¥àñâáï ¨§ BPB
|
||||||
read_disk_info:
|
read_disk_info:
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 4d37c338c31c060e7a42f1e47fad93b69af34a5b
|
Subproject commit 795ad6ac57585133e1ffb8f0baafb3751dda576c
|
||||||
Loading…
Reference in New Issue
Block a user