mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
FIXED BUGS
This commit is contained in:
parent
d8e13bc4b5
commit
1b8bd30582
@ -1,12 +1,23 @@
|
||||
;ˆ§¬¥¥¨ï ¯®á«¥ ¢¥àᨨ 1.70
|
||||
!TODO
|
||||
‚ ¦®¥:
|
||||
|
||||
‘।¥¥:
|
||||
[ ] ¯¥à¥¤ à¥áª ®¬ ¤à ©¢®¢ ¯à®¢¥àïâì ®âªàëâë¥ åí¤«ë ¨ ¥á«¨ ¡ãª¢ ¤¨áª ¬¥ï¥âáï, â® ¬¥ïâì ¤à ©¢ ¢ åí¤«¥
|
||||
[ ] ç âì à ¡®â âì á äãªæ¨ï¬¨ REMOVABLE ¨ MEDIA CHECK rst #18. ‚®§¢à é âì § 票¥ #FF, ¥á«¨ ¯®à冷ª ¡ãª¢ ¨§¬¥¨«áï
|
||||
|
||||
‚®®¡é¥ ¥ ¢ ¦®¥:
|
||||
¨á¯à ¢¨âì ¢ë室 ¨§ äãªæ¨¨ #41 ¯à¨ ¢®§¬®¦®¬ 㢥«¨ç¥¨¨ ®¬¥à â ᪨ 1 ¯à¨ 255
|
||||
[ ] ¨á¯à ¢¨âì ¢ë室 ¨§ äãªæ¨¨ #41 ¯à¨ ¢®§¬®¦®¬ 㢥«¨ç¥¨¨ ®¬¥à â ᪨ 1 ¯à¨ 255
|
||||
-------------------------------
|
||||
|
||||
; TEST
|
||||
DSS 1.70.2
|
||||
ˆ§¬¥¥¨ï ¯®á«¥ ¢¥àᨨ 1.70
|
||||
[+] ¯à¨ ç⥨¨/§ ¯¨á¨ ä ©« ¥ ¯à®¨á室¨â ¨§¡ëâ®ç®¥ ¯¥à¥ç¨âë¢ ¨¥ ª« áâ¥à®¢ ®â ç « ä ©«
|
||||
[+] ¯¥à¥ç¨âë¢ ¨¥ BPB ⥯¥àì ¤¥« ¥âáï ¥ ª ¦¤ë© ç¨å, ª®£¤ ¤® (¨ ¡ £ ¯à¨ § £à㧪¥ á ¤¨áª "B:" ¥â :-P )
|
||||
[+] ¨§¬¥¥ à ¡®â á RAM DISK, ⥯¥àì ® ¬®¦¥â ¡ëâì § £àã§®çë¬
|
||||
[+] ¯¥à¥å®¤ ¤à㣮© ¤¨áª ¯à®¨á室¨â ¡¥§ ¡ £ á ¤¨à¥ªâ®à¨¥© ®â áâ ண® ¤¨áª
|
||||
[+] ¨á¯à ¢«¥ë ¡ £¨ á ®¡à ¡®âª®© ¡ãä¥à®¢ ª®¬ ¤®© áâப¨
|
||||
[+] ¨á¯à ¢«¥ë ¡ £¨ ¢ äãªæ¨ïå: WINCOPY, WINREST, SCROLL, SETVMOD, SELPAGE
|
||||
[+] ¬¥«ª¨¥ ¨ ¥ ®ç¥ì ®¯â¨¬¨§ 樨
|
||||
|
||||
;ˆ§¬¥¥¨ï ¯®á«¥ ¢¥àᨨ 1.60
|
||||
10.02.2003 - „®¡ ¢«¥ ¢¨§ã «¨§ æ¨ï ªãàá®à ¢ äãªæ¨¨ ECHOKEY.
|
||||
|
||||
108
DSS/DOS5.ASM
108
DSS/DOS5.ASM
@ -137,7 +137,7 @@ FIHND1 LD (HL),C
|
||||
JP OPEN ;R08
|
||||
|
||||
; INPUT: HL - "filename.ext",#00 without simbols * ?
|
||||
DELETE LD DE,MASKARE
|
||||
DELETE: LD DE,MASKARE
|
||||
CALL MASK
|
||||
RET C
|
||||
LD HL,MASKARE
|
||||
@ -642,8 +642,7 @@ GETWORD:
|
||||
SUB #20
|
||||
.next: SUB 'A'
|
||||
PUSH HL
|
||||
;!TEST CHNDISK OPENDSK
|
||||
CALL OPENDSK
|
||||
CALL OPENDSK
|
||||
;
|
||||
POP HL
|
||||
JP NC,GETWORD
|
||||
@ -655,8 +654,8 @@ TMPNAME: DB ' ',#00 ; 12
|
||||
; RestoreDIR:
|
||||
CHNDISK:
|
||||
;!TEST
|
||||
CALL OPENDSK
|
||||
;CALL OPENDSK.force
|
||||
;CALL OPENDSK
|
||||
CALL OPENDSK.force
|
||||
;
|
||||
;????? R10
|
||||
RET C
|
||||
@ -682,7 +681,7 @@ CHNDISK:
|
||||
;
|
||||
;????? R10
|
||||
OPENDSK:
|
||||
;!TEST
|
||||
;!TEST DRV.Open ŽĄĺŽ¤
|
||||
LD C,A
|
||||
LD A,(FatBuffer.DRIVE)
|
||||
CP C
|
||||
@ -770,11 +769,8 @@ SUBDIR3:
|
||||
|
||||
; FIND "MASKAREA" IN DIRECTORY
|
||||
FINDDIR:
|
||||
;!TEST
|
||||
;LD A,DIRPAGE
|
||||
;CALL BANK
|
||||
SET_PAGE_X DIRPAGE
|
||||
;
|
||||
SET_PAGE_X DIRPAGE
|
||||
|
||||
PUSH AF
|
||||
LD IX,DIR
|
||||
.F_01: LD A,(IX+00)
|
||||
@ -918,11 +914,9 @@ LOADDIR:
|
||||
LD IX,0
|
||||
LD B,A
|
||||
CALL MOVE_FP
|
||||
;!TEST
|
||||
;LD A,DIRPAGE
|
||||
;CALL BANK
|
||||
SET_PAGE_X DIRPAGE
|
||||
;
|
||||
|
||||
SET_PAGE_X DIRPAGE
|
||||
|
||||
PUSH AF
|
||||
;!TEST no ldir
|
||||
;LD HL,#C000
|
||||
@ -970,11 +964,9 @@ SAVEDIR XOR A
|
||||
LD IX,0
|
||||
LD B,0
|
||||
CALL MOVE_FP
|
||||
;!TEST
|
||||
;LD A,DIRPAGE
|
||||
;CALL BANK
|
||||
SET_PAGE_X DIRPAGE
|
||||
;
|
||||
|
||||
SET_PAGE_X DIRPAGE
|
||||
|
||||
PUSH AF
|
||||
LD A,(FatBuffer.DRIVE)
|
||||
LD (IY+_sFM.DRIVE),A
|
||||
@ -1054,73 +1046,19 @@ BANKTBL: BLOCK USING_MEMPAGES+1,#FF
|
||||
; CALL BANK
|
||||
; EX DE,HL
|
||||
; LD DE,HANDTA
|
||||
;
|
||||
; DUP 32
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; EDUP
|
||||
;
|
||||
; EXX
|
||||
; OUT (SLOT3),A
|
||||
; LD HL,HANDTA
|
||||
;
|
||||
; DUP 32
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
; EDUP
|
||||
|
||||
; EXX
|
||||
; POP BC
|
||||
; DEC BC
|
||||
@ -1130,8 +1068,8 @@ BANKTBL: BLOCK USING_MEMPAGES+1,#FF
|
||||
; PUSH BC
|
||||
; JP G_HAND4
|
||||
|
||||
;HANDTA DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
; DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
;HANDTA BLOCK 32,0
|
||||
|
||||
|
||||
MASKARE: BLOCK 32,0 ;!HARDCODE ŻŽçĽŹă 32?
|
||||
; HL - MASK "file*.t??"
|
||||
|
||||
171
DSS/DOS_FM.ASM
171
DSS/DOS_FM.ASM
@ -108,57 +108,50 @@ MOVE_FP CALL SET_FM
|
||||
LD A,DSS_Error.sys.INVALID_FUNCTION
|
||||
SCF
|
||||
RET
|
||||
|
||||
;from Start File
|
||||
.F_start:
|
||||
; B=0
|
||||
LD C,B
|
||||
LD D,B
|
||||
LD E,B
|
||||
JR MOVE_F1
|
||||
|
||||
JP .DO
|
||||
;from End File
|
||||
.B_end: LD C,(IY+28)
|
||||
LD B,(IY+29)
|
||||
LD E,(IY+30)
|
||||
LD D,(IY+31)
|
||||
JR MOVE_F1
|
||||
|
||||
.B_end: LD C,(IY+_sFM.F_SIZE)
|
||||
LD B,(IY+_sFM.F_SIZE+1)
|
||||
LD E,(IY+_sFM.F_SIZE+2)
|
||||
LD D,(IY+_sFM.F_SIZE+3)
|
||||
JP .DO
|
||||
;from Current Position
|
||||
.F_current:
|
||||
LD C,(IY+32)
|
||||
LD B,(IY+33)
|
||||
LD E,(IY+34)
|
||||
LD D,(IY+35)
|
||||
MOVE_F1 ADD IX,BC
|
||||
LD C,(IY+_sFM.F_POSITION)
|
||||
LD B,(IY+_sFM.F_POSITION+1)
|
||||
LD E,(IY+_sFM.F_POSITION+2)
|
||||
LD D,(IY+_sFM.F_POSITION+3)
|
||||
.DO: ADD IX,BC
|
||||
ADC HL,DE
|
||||
LD D,XH
|
||||
LD E,XL
|
||||
LD (IY+32),E
|
||||
LD (IY+33),D
|
||||
LD (IY+34),L
|
||||
LD (IY+35),H
|
||||
LD (IY+_sFM.F_POSITION),E
|
||||
LD (IY+_sFM.F_POSITION+1),D
|
||||
LD (IY+_sFM.F_POSITION+2),L
|
||||
LD (IY+_sFM.F_POSITION+3),H
|
||||
XOR A
|
||||
;!TEST SAVE CLUSTER AFTER READ
|
||||
;LD (IY+_sFM.RESERVED_L),A
|
||||
;LD (IY+_sFM.RESERVED_L+1),A
|
||||
;
|
||||
RET
|
||||
|
||||
;FP COMPARE
|
||||
; CY - FILE POINTER > SIZE
|
||||
; NC - FILE POINTER < SIZE
|
||||
|
||||
MOVE_CP LD L,(IY+28)
|
||||
LD H,(IY+29)
|
||||
LD E,(IY+32)
|
||||
LD D,(IY+33)
|
||||
MOVE_CP:
|
||||
LD L,(IY+_sFM.F_SIZE)
|
||||
LD H,(IY+_sFM.F_SIZE+1)
|
||||
LD E,(IY+_sFM.F_POSITION)
|
||||
LD D,(IY+_sFM.F_POSITION+1)
|
||||
AND A
|
||||
SBC HL,DE
|
||||
LD L,(IY+30)
|
||||
LD H,(IY+31)
|
||||
LD E,(IY+34)
|
||||
LD D,(IY+35)
|
||||
LD L,(IY+_sFM.F_SIZE+2)
|
||||
LD H,(IY+_sFM.F_SIZE+3)
|
||||
LD E,(IY+_sFM.F_POSITION+2)
|
||||
LD D,(IY+_sFM.F_POSITION+3)
|
||||
SBC HL,DE
|
||||
RET
|
||||
|
||||
@ -204,8 +197,8 @@ BLOK_RD: PUSH BC
|
||||
|
||||
.testFunc:
|
||||
;!TEST SAVE CLUSTER AFTER READ
|
||||
LD E,(IY+_sFM.RESERVED_L)
|
||||
LD D,(IY+_sFM.RESERVED_H)
|
||||
LD E,(IY+_sFM.KnownCluster_L)
|
||||
LD D,(IY+_sFM.KnownCluster_H)
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z,BLOKRD2
|
||||
@ -213,8 +206,8 @@ BLOK_RD: PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
LD E,(IY+_sFM.RESERVED_CL)
|
||||
LD D,(IY+_sFM.RESERVED_CH)
|
||||
LD E,(IY+_sFM.KnownOffset_L)
|
||||
LD D,(IY+_sFM.KnownOffset_H)
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z,.noOptimization_1
|
||||
@ -247,20 +240,17 @@ BLOKRD1:
|
||||
JR C,ECL2 ;R01
|
||||
EX DE,HL
|
||||
DEC BC
|
||||
|
||||
|
||||
|
||||
BLOKRD2:
|
||||
LD A,B ; ‚‘ - ᬥ饨¥ ¢ãâà¨ ä ©« ¢ ª« áâ¥à å
|
||||
OR C
|
||||
JR NZ,BLOKRD1
|
||||
|
||||
;!TEST SAVE CLUSTER AFTER READ
|
||||
LD (IY+_sFM.RESERVED_L),L
|
||||
LD (IY+_sFM.RESERVED_H),H
|
||||
LD (IY+_sFM.KnownCluster_L),L
|
||||
LD (IY+_sFM.KnownCluster_H),H
|
||||
POP BC
|
||||
LD (IY+_sFM.RESERVED_CL),C
|
||||
LD (IY+_sFM.RESERVED_CH),B
|
||||
LD (IY+_sFM.KnownOffset_L),C
|
||||
LD (IY+_sFM.KnownOffset_H),B
|
||||
;
|
||||
|
||||
POP DE
|
||||
@ -340,7 +330,11 @@ ECL1 AND A
|
||||
|
||||
;--------------------
|
||||
|
||||
BLOKWRC POP BC
|
||||
BLOKWRC:
|
||||
POP BC
|
||||
;!TEST SAVE CLUSTER AFTER WRITE
|
||||
POP BC
|
||||
;
|
||||
BLOKWR0 POP BC
|
||||
POP DE
|
||||
SCF
|
||||
@ -349,33 +343,77 @@ BLOKWR0 POP BC
|
||||
;WRITE SECTORS OF FILE
|
||||
;HL:DE - FP (in sectors)
|
||||
; B - Amount sectors
|
||||
|
||||
BLOK_WR PUSH BC
|
||||
LD (READMEM),IX
|
||||
LD A,(BootSector.S_P_C) ;SECTORS PER CLUSTER
|
||||
LD C,A
|
||||
LD B,0
|
||||
;HL:DE / BC => DE:IX HL-OSTATOK
|
||||
CALL DIV32
|
||||
LD B,XH
|
||||
LD C,XL
|
||||
PUSH HL ;RESIDUE
|
||||
LD L,(IY+26) ;START CLUSTER
|
||||
LD H,(IY+27)
|
||||
LD L,(IY+_sFM.ST_CLUSTER) ;START CLUSTER
|
||||
LD H,(IY+_sFM.ST_CLUSTER+1)
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,BLOKWR2
|
||||
;!TEST SAVE CLUSTER AFTER WRITE
|
||||
;JR NZ,BLOKWR2
|
||||
PUSH BC
|
||||
JR NZ,.testFunc
|
||||
;
|
||||
PUSH BC
|
||||
CALL G_CLUST
|
||||
JR C,BLOKWRC
|
||||
LD (IY+26),L
|
||||
LD (IY+27),H
|
||||
LD (IY+_sFM.ST_CLUSTER),L
|
||||
LD (IY+_sFM.ST_CLUSTER+1),H
|
||||
LD DE,(FatBuffer.ENDCLUS)
|
||||
CALL W_T_FAT
|
||||
PUSH HL
|
||||
CALL WR_FAT
|
||||
POP HL
|
||||
POP BC
|
||||
JR BLOKWR2
|
||||
JP BLOKWR2
|
||||
|
||||
.testFunc:
|
||||
;!TEST SAVE CLUSTER AFTER WRITE
|
||||
LD E,(IY+_sFM.KnownCluster_L)
|
||||
LD D,(IY+_sFM.KnownCluster_H)
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z,BLOKWR2
|
||||
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
LD E,(IY+_sFM.KnownOffset_L)
|
||||
LD D,(IY+_sFM.KnownOffset_H)
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z,.noOptimization_1
|
||||
|
||||
POP HL
|
||||
AND A
|
||||
SBC HL,DE
|
||||
JR C,.noOptimization_2
|
||||
|
||||
LD C,L
|
||||
LD B,H
|
||||
POP HL
|
||||
POP DE
|
||||
|
||||
|
||||
EX DE,HL
|
||||
JP BLOKWR2
|
||||
;
|
||||
.noOptimization_1:
|
||||
POP BC
|
||||
.noOptimization_2:
|
||||
POP HL
|
||||
POP DE
|
||||
JP BLOKWR2
|
||||
|
||||
|
||||
BLOKWR1 PUSH BC
|
||||
CALL R_F_FAT
|
||||
JR NC,BLOKWRB
|
||||
@ -390,6 +428,15 @@ BLOKWRB POP BC
|
||||
BLOKWR2 LD A,B
|
||||
OR C
|
||||
JR NZ,BLOKWR1
|
||||
|
||||
;!TEST SAVE CLUSTER AFTER WRITE
|
||||
LD (IY+_sFM.KnownCluster_L),L
|
||||
LD (IY+_sFM.KnownCluster_H),H
|
||||
POP BC
|
||||
LD (IY+_sFM.KnownOffset_L),C
|
||||
LD (IY+_sFM.KnownOffset_H),B
|
||||
;
|
||||
|
||||
POP DE
|
||||
POP BC
|
||||
LD A,(BootSector.S_P_C)
|
||||
@ -513,8 +560,7 @@ READ: LD (R_POINT),HL
|
||||
JP Z,NOREAD ;!FIXIT ¬®¦® ¯¥à¥¥á⨠¢ ç «® ¯à®æ¥¤ãàë
|
||||
PUSH DE
|
||||
LD A,(IY+_sFM.DRIVE)
|
||||
;!TEST CHNDISK OPENDSK
|
||||
CALL OPENDSK
|
||||
CALL OPENDSK
|
||||
;
|
||||
JP C,RPERR1
|
||||
;<3B> áçñâ á¬¥é¥¨ï ¢ ᥪâ®à å
|
||||
@ -584,7 +630,7 @@ ROV2: POP BC
|
||||
LDIR
|
||||
LD (R_POINT),DE
|
||||
ROV6:
|
||||
S_POINT+1: LD HL,0 // LD HL,(S_POINT)
|
||||
S_POINT+1: LD HL,0
|
||||
LD DE,(R_POINT)
|
||||
EX DE,HL
|
||||
AND A
|
||||
@ -597,7 +643,7 @@ S_POINT+1: LD HL,0 // LD HL,(S_POINT)
|
||||
CALL MOVE_FP.F_current
|
||||
POP DE
|
||||
NOREAD:
|
||||
READCOD+1: LD A,0 // LD A,(READCOD)
|
||||
READCOD+1: LD A,0
|
||||
OR A
|
||||
RET
|
||||
|
||||
@ -666,7 +712,6 @@ RD_ONLY: POP DE
|
||||
; HL - ADDRESS
|
||||
; DE - SIZE
|
||||
; A - FM
|
||||
|
||||
WRITE: LD (R_POINT),HL
|
||||
LD (S_POINT),HL
|
||||
PUSH DE
|
||||
@ -678,24 +723,22 @@ WRITE: LD (R_POINT),HL
|
||||
SET 7,(IY+_sFM.ACCESS_MODE)
|
||||
SET 5,(IY+_sFM.ATTRIBUT)
|
||||
LD A,(IY+_sFM.DRIVE)
|
||||
;!TEST CHNDISK OPENDSK
|
||||
CALL OPENDSK
|
||||
;
|
||||
CALL OPENDSK
|
||||
JP C,PWERR1
|
||||
LD C,(IY+32)
|
||||
LD A,(IY+33)
|
||||
LD C,(IY+_sFM.F_POSITION)
|
||||
LD A,(IY+_sFM.F_POSITION+1)
|
||||
LD E,A
|
||||
AND #01
|
||||
LD B,A
|
||||
LD D,(IY+34)
|
||||
LD L,(IY+35)
|
||||
LD D,(IY+_sFM.F_POSITION+2)
|
||||
LD L,(IY+_sFM.F_POSITION+3)
|
||||
LD H,0
|
||||
OR A
|
||||
RR L
|
||||
RR D
|
||||
RR E
|
||||
; HL:DE FP (in sectors)
|
||||
; BC FP residue (in bytes)
|
||||
; HL:DE - FP (in sectors)
|
||||
; BC - FP residue (in bytes)
|
||||
LD A,B
|
||||
OR C
|
||||
JP NZ,WOV1
|
||||
|
||||
@ -134,7 +134,7 @@ CURRDS: LD HL,2
|
||||
FRESP: PUSH BC
|
||||
CALL R_F_FAT
|
||||
POP BC
|
||||
CP 10
|
||||
CP DSS_Error.sys.DISK_FULL
|
||||
JR Z,FRESP2
|
||||
|
||||
LD A,E
|
||||
@ -185,7 +185,7 @@ TESTDSK LD A,(FatBuffer.DRIVE)
|
||||
RST ToDSS.DRV
|
||||
OR A
|
||||
RET Z
|
||||
RD_BPB LD C,SLOT3
|
||||
RD_BPB: LD C,SLOT3
|
||||
IN B,(C)
|
||||
PUSH BC
|
||||
|
||||
@ -309,7 +309,7 @@ R_BPBL1
|
||||
INC HL
|
||||
INC DE
|
||||
DJNZ R_BPBL1
|
||||
FID LD A,(HL)
|
||||
FID: LD A,(HL)
|
||||
INC HL
|
||||
CP ' '
|
||||
JR Z,FID
|
||||
@ -322,7 +322,7 @@ FID LD A,(HL)
|
||||
CP '2' ; FAT12
|
||||
JP NZ,ERR_BPB
|
||||
LD HL,#0FFF
|
||||
BPB_FAT
|
||||
BPB_FAT:
|
||||
LD (FatBuffer.FAT_TYP),A
|
||||
LD (FatBuffer.ENDCLUS),HL
|
||||
LD HL,0
|
||||
@ -415,7 +415,7 @@ ERR_BPB:
|
||||
SCF
|
||||
RET
|
||||
RDERR1: LD A,DSS_Error.sys.NOT_READY
|
||||
SCF
|
||||
;SCF
|
||||
RET
|
||||
|
||||
;
|
||||
@ -424,7 +424,7 @@ FatBuffer:
|
||||
.READ_PG: DB #00
|
||||
.BLOCK: DB #00
|
||||
.DIR_CLU: DW #0000
|
||||
.DRIVE: DB #01
|
||||
.DRIVE: DB #FF
|
||||
.FAT_FRM:
|
||||
.FAT1_XX: DW #0000 ; MSD_FAT_SEC first sector FAT
|
||||
.FAT2_XX: DW #0000
|
||||
@ -522,8 +522,8 @@ BACK_CUR_PATH:
|
||||
SCANDRV:
|
||||
;!TEST ¢ DRV-MAIN ¬®£ãâ ¡ëâì ¯à®¡«¥¬ë á ¯à¥àë¢ ¨ï¬¨
|
||||
;DI
|
||||
LD A,Dss.DRV.RescanDRV
|
||||
LD C,Dss.DRV.RescanDRV
|
||||
LD A,Dss.DRV.RescanDRV
|
||||
LD C,Dss.DRV.RescanDRV
|
||||
RST ToDSS.DRV
|
||||
LD (LDRIVE),A
|
||||
;EI
|
||||
|
||||
@ -224,12 +224,12 @@ DISPATCH:
|
||||
|
||||
LDRIVE DB #00
|
||||
|
||||
INCLUDE 'disk_x.asm'
|
||||
INCLUDE 'ide_drv0.asm'
|
||||
INCLUDE 'fdd_drv0.asm'
|
||||
INCLUDE 'ram_drv1.asm'
|
||||
INCLUDE 'dss/media_drivers/Shared.asm'
|
||||
INCLUDE 'dss/media_drivers/ide.asm'
|
||||
INCLUDE 'dss/media_drivers/fdd.asm'
|
||||
INCLUDE 'dss/media_drivers/ram_disk.asm'
|
||||
|
||||
DB 0
|
||||
; DB 0
|
||||
|
||||
ENDMODULE
|
||||
; OUTEND
|
||||
|
||||
@ -17,7 +17,7 @@ G_CLUST:
|
||||
.num+1: LD HL,#0001
|
||||
G_CLUS1: INC HL
|
||||
CALL R_F_FAT
|
||||
CP 10
|
||||
CP DSS_Error.sys.DISK_FULL
|
||||
SCF
|
||||
RET Z
|
||||
LD A,D
|
||||
@ -53,12 +53,13 @@ INC_FA2 CALL R_F_FAT
|
||||
; HL - CLUSTER
|
||||
; DE - (CLUSTER)
|
||||
;!FIXIT ¤ «¥¥ § â®çª â®, çâ® ¢ DE ¢á¥£¤ 0 - à §¤¥« ¥ ¡®«ìè¥ 2Gb
|
||||
R_F_FAT: EX DE,HL
|
||||
R_F_FAT:
|
||||
EX DE,HL
|
||||
LD HL,(MAX_CLU)
|
||||
AND A
|
||||
SBC HL,DE
|
||||
EX DE,HL
|
||||
LD A,10
|
||||
LD A,DSS_Error.sys.DISK_FULL
|
||||
RET C
|
||||
EXX
|
||||
|
||||
@ -69,8 +70,9 @@ R_F_FAT: EX DE,HL
|
||||
PUSH AF
|
||||
LD A,(FatBuffer.FAT_TYP)
|
||||
CP "2"
|
||||
JP Z,R_F_F12
|
||||
R_F_F16 LD A,H
|
||||
JR Z,R_F_F12
|
||||
R_F_F16:
|
||||
LD A,H
|
||||
LD B,A
|
||||
AND #0F
|
||||
LD H,A
|
||||
@ -187,7 +189,7 @@ R_F_F12 LD D,H
|
||||
LD A,D
|
||||
AND #0F
|
||||
LD D,A
|
||||
JR R_F_F02
|
||||
JP R_F_F02
|
||||
|
||||
R_F_F01 LD A,E
|
||||
AND #F0
|
||||
@ -217,7 +219,7 @@ W_T_FAT PUSH DE
|
||||
SBC HL,DE
|
||||
EX DE,HL
|
||||
POP DE
|
||||
LD A,10
|
||||
LD A,10 ;!HARDCODE error number
|
||||
RET C
|
||||
EXX
|
||||
|
||||
@ -230,7 +232,7 @@ W_T_FAT PUSH DE
|
||||
LD (FATCASH.Update),A
|
||||
LD A,(FatBuffer.FAT_TYP)
|
||||
CP "2"
|
||||
JP Z,W_T_F12
|
||||
JR Z,W_T_F12
|
||||
W_T_F16:
|
||||
PUSH DE
|
||||
LD A,H
|
||||
@ -345,7 +347,7 @@ RE_FAT: PUSH HL
|
||||
|
||||
WR_FAT: EXX
|
||||
SET_PAGE_X FATPAGE
|
||||
;
|
||||
|
||||
EXX
|
||||
PUSH AF
|
||||
CALL WR_FAT_
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
+ function WINCOPY & WINREST не запрещают прерывания перед вызовом BIOS (используется вывод стеком!).
|
||||
FIXED:
|
||||
+ function WINCOPY & WINREST ¥ § ¯à¥é îâ ¯à¥àë¢ ¨ï ¯¥à¥¤ ¢ë§®¢®¬ BIOS (¨á¯®«ì§ã¥âáï ¢ë¢®¤ á⥪®¬!).
|
||||
|
||||
- при выводе на консоль длинного текста, экран не скролируется. Проверять на достижение 80 позиции!
|
||||
- ¯à¨ ¢ë¢®¤¥ ª®á®«ì ¤«¨®£® ⥪áâ , íªà ¥ áªà®«¨àã¥âáï. <20>஢¥àïâì ¤®á⨦¥¨¥ 80 ¯®§¨æ¨¨!
|
||||
|
||||
+ ошибка в функции SCROLL A=0.
|
||||
+ ®è¨¡ª ¢ äãªæ¨¨ SCROLL A=0.
|
||||
|
||||
+ ошибка при просмотре каталога в функциях установки атрибутов пропускаются системные файлы. п/п SEARCH MASK=#23
|
||||
+ ®è¨¡ª ¯à¨ ¯à®á¬®âॠª â «®£ ¢ äãªæ¨ïå ãáâ ®¢ª¨ âਡã⮢ ¯à®¯ã᪠îâáï á¨áâ¥¬ë¥ ä ©«ë. ¯/¯ SEARCH MASK=#23
|
||||
|
||||
- игнорирование ошибок при записи системных областей FAT/DIR, невозможность отработать ошибку write-protect, так как она теряется при попытке записать измененный каталог на диск. Но возникает ошибка file not found так как сразо после создания система открывает файл.
|
||||
- ¨£®à¨à®¢ ¨¥ ®è¨¡®ª ¯à¨ § ¯¨á¨ á¨á⥬ëå ®¡« á⥩ FAT/DIR, ¥¢®§¬®¦®áâì ®âà ¡®â âì ®è¨¡ªã write-protect, â ª ª ª ® â¥àï¥âáï ¯à¨ ¯®¯ë⪥ § ¯¨á âì ¨§¬¥¥ë© ª â «®£ ¤¨áª. <20>® ¢®§¨ª ¥â ®è¨¡ª file not found â ª ª ª áà §ã ¯®á«¥ á®§¤ ¨ï á¨á⥬ ®âªàë¢ ¥â ä ©«.
|
||||
|
||||
- ошибка разбора допустимого имени файла, если оно состоит из "." так как подрузомевается пробелы точка пробелы.
|
||||
- ®è¨¡ª à §¡®à ¤®¯ãá⨬®£® ¨¬¥¨ ä ©« , ¥á«¨ ®® á®á⮨⠨§ "." â ª ª ª ¯®¤àã§®¬¥¢ ¥âáï ¯à®¡¥«ë â®çª ¯à®¡¥«ë.
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
|
||||
; Disk Driver Specification ver. 2.00
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[0]
|
||||
;Procedure : Initialization
|
||||
;
|
||||
;Function : Initialization device(s)
|
||||
@ -10,7 +10,7 @@
|
||||
;Output : A = Amount drive support
|
||||
; HL = Size driver
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[1]
|
||||
;Procedure : Open
|
||||
;
|
||||
;Function : Open disk
|
||||
@ -20,7 +20,7 @@
|
||||
;Output : None
|
||||
;
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[2]
|
||||
;Procedure : Close
|
||||
;
|
||||
;Function : Close disk
|
||||
@ -30,7 +30,7 @@
|
||||
;Output : None
|
||||
;
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[3]
|
||||
;Procedure : Media check
|
||||
;
|
||||
;Function : Checking change line
|
||||
@ -41,7 +41,7 @@
|
||||
; A = 0FFh disk changed
|
||||
;
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[4]
|
||||
;Procedure : Get BPB
|
||||
;
|
||||
;Function : Get Block Parameters BIOS
|
||||
@ -51,7 +51,7 @@
|
||||
;Output : None
|
||||
;
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[5]
|
||||
;Procedure : Input
|
||||
;
|
||||
;Function : Input from disk
|
||||
@ -63,7 +63,7 @@
|
||||
;Output : None
|
||||
;
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[6]
|
||||
;Procedure : Output
|
||||
;
|
||||
;Function : Output to disk
|
||||
@ -75,7 +75,7 @@
|
||||
;Output : None
|
||||
;
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[7]
|
||||
;Procedure : Removable
|
||||
;
|
||||
;Function : Checking change line
|
||||
@ -86,7 +86,7 @@
|
||||
; A = FFh Nonremovable
|
||||
;
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[]
|
||||
;[]===========================================================[8]
|
||||
;Procedure : Generic IOCTL
|
||||
;
|
||||
;Function : Generic Input Output Control
|
||||
@ -162,7 +162,7 @@ FDDRIVE:
|
||||
AND A
|
||||
RET
|
||||
|
||||
.RESE: LD C,#51
|
||||
.RESE: LD C,BIOS.DRV_RESET
|
||||
RST ToBIOS
|
||||
RET
|
||||
|
||||
@ -174,12 +174,11 @@ FDDRIVE:
|
||||
RET
|
||||
|
||||
;DE - ADDRESS
|
||||
|
||||
.GBPB: LD IX,0
|
||||
LD HL,0
|
||||
PUSH DE
|
||||
PUSH AF
|
||||
LD BC,#0155
|
||||
LD BC,1*256 + BIOS.DRV_READ
|
||||
RST ToBIOS
|
||||
POP DE
|
||||
POP HL
|
||||
@ -189,14 +188,14 @@ FDDRIVE:
|
||||
LD E,(HL)
|
||||
PUSH DE
|
||||
LD A,D
|
||||
LD C,#58
|
||||
LD C,BIOS.DRV_GET_PAR
|
||||
RST ToBIOS
|
||||
LD A,H
|
||||
POP HL
|
||||
PUSH HL
|
||||
LD H,A
|
||||
POP AF
|
||||
LD C,#59
|
||||
LD C,BIOS.DRV_SET_PAR
|
||||
RST ToBIOS
|
||||
XOR A
|
||||
RET
|
||||
@ -204,12 +203,12 @@ FDDRIVE:
|
||||
XOR A
|
||||
RET
|
||||
|
||||
.READD: LD C,#55
|
||||
.READD: LD C,BIOS.DRV_READ
|
||||
RST ToBIOS
|
||||
RET
|
||||
|
||||
.WRITED:
|
||||
LD C,#56
|
||||
LD C,BIOS.DRV_WRITE
|
||||
RST ToBIOS
|
||||
RET
|
||||
|
||||
@ -21,27 +21,27 @@ RESERVED2 BLOCK 490,0
|
||||
;
|
||||
|
||||
;File Manipulator (FM)
|
||||
STRUCT _sFM ; 44 bytes
|
||||
.NAME: TEXT 8,{". "," "} ;+00 NAME
|
||||
.EXT: TEXT 3,{" "," "} ;+08 EXT
|
||||
.ATTRIBUT: BYTE #10 ;+11 ATTRIBUT
|
||||
.RESERVED_L: BYTE 0 ;+12 RESERVED; !TODO á«¥¤ãî騩 ª« áâ¥à ¤«ï ç⥨ï
|
||||
.RESERVED_H: BYTE 0 ;+13 RESERVED; !TODO á«¥¤ãî騩 ª« áâ¥à ¤«ï § ¯¨á¨
|
||||
.RESERVED_CL: BYTE 0 ;+14 RESERVED; !TODO á«¥¤ãî騩 ª« áâ¥à ¤«ï § ¯¨á¨
|
||||
.RESERVED_CH: BYTE 0 ;+15 RESERVED; !TODO á«¥¤ãî騩 ª« áâ¥à ¤«ï § ¯¨á¨
|
||||
.RESERVED_X: BLOCK 6,0 ;+16 RESERVED
|
||||
.TIME: WORD #0000 ;+22 TIME
|
||||
.DATE: WORD #0000 ;+24 DATE
|
||||
.ST_CLUSTER: WORD #0000 ;+26 START CLUSTER
|
||||
.F_SIZE: DWORD #0000 ;+28 SIZE FILE
|
||||
.F_POSITION: DWORD #0000 ;+32 FILE POSITION (FP)
|
||||
.DIR_CLUSTER: WORD #0000 ;+36 DIRECTORY CLUSTER
|
||||
.HANDLE: WORD #0000 ;+38 HANDLE NUMBER
|
||||
.DRIVE: BYTE #00 ;+40 DRIVE OR CURRENT
|
||||
.ACCESS_MODE: BYTE #00 ;+41 ACCESS MODE
|
||||
.TASK_NUM: BYTE #00 ;+42 TASK
|
||||
.EMPTY: BYTE #00 ;+43 EMPTY
|
||||
ENDS
|
||||
STRUCT _sFM ; 44 bytes
|
||||
.NAME: TEXT 8,{". "," "} ;+00 NAME
|
||||
.EXT: TEXT 3,{" "," "} ;+08 EXT
|
||||
.ATTRIBUT: BYTE #10 ;+11 ATTRIBUT
|
||||
.KnownCluster_L: BYTE 0 ;+12 Œ« ¤è¨© ¡ ©â ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
||||
.KnownCluster_H: BYTE 0 ;+13 ‘â à訩 ¡ ©â ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
||||
.KnownOffset_L: BYTE 0 ;+14 Œ« ¤è¨© ¡ ©â ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||||
.KnownOffset_H: BYTE 0 ;+15 ‘â à訩 ¡ ©â ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||||
.RESERVED_X: BLOCK 6,0 ;+16 RESERVED
|
||||
.TIME: WORD #0000 ;+22 TIME
|
||||
.DATE: WORD #0000 ;+24 DATE
|
||||
.ST_CLUSTER: WORD #0000 ;+26 START CLUSTER
|
||||
.F_SIZE: DWORD #0000 ;+28 SIZE FILE
|
||||
.F_POSITION: DWORD #0000 ;+32 FILE POSITION (FP)
|
||||
.DIR_CLUSTER: WORD #0000 ;+36 DIRECTORY CLUSTER
|
||||
.HANDLE: WORD #0000 ;+38 HANDLE NUMBER
|
||||
.DRIVE: BYTE #00 ;+40 DRIVE OR CURRENT
|
||||
.ACCESS_MODE: BYTE #00 ;+41 ACCESS MODE
|
||||
.TASK_NUM: BYTE #00 ;+42 TASK
|
||||
.EMPTY: BYTE #00 ;+43 EMPTY
|
||||
ENDS
|
||||
;
|
||||
; NAM EQU 0 ; LEN4 EQU 31
|
||||
; EXT EQU 8 ; POS1 EQU 32
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
; DSS Version
|
||||
VERS EQU 01 ;Version Number (XX.)
|
||||
MODF EQU 70 ;Modification (.xx)
|
||||
BUILD EQU 1
|
||||
BUILD EQU 2
|
||||
;
|
||||
|
||||
; Release Types
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
;---------------------------------------------------------------
|
||||
;Rev Date Name Description
|
||||
;---------------------------------------------------------------
|
||||
;R03 04-04-2023 BAO FIXED BUGS IN FN WINCOPY, WINREST, SCROLL, SETVMOD, SELPAGE
|
||||
;R02 07-11-2002 DNS CORRECT FN. WINCOPY & WINREST, ADD "DI+EI"
|
||||
;R01 07-11-2002 DNS FIX BUG WITH SCROLLUP FN. (A=0)
|
||||
;---------------------------------------------------------------
|
||||
|
||||
Loading…
Reference in New Issue
Block a user