mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
133 lines
2.3 KiB
NASM
133 lines
2.3 KiB
NASM
;/////////////////////////////////////////////////////////////////////
|
||
; [ ] ®¢ ï ¯®¤äãªæ¨ï á ¡¨â®¬ 7 ¢ ॣ. €
|
||
; ‚®§¢à é ¥â ¨ä®à¬ æ¨î ®¡ ®¡é¥¬ ¨ ᢮¡®¤®¬ ¯à®áâà á⢥ ¤¨áª®¢®£®
|
||
; ãáâனá⢠.
|
||
;
|
||
; ¢å®¤: A - ®¬¥à ¤¨áª (0=A,1=B .. 25=Z. #FF-⥪ã騩)
|
||
; <09>ਠA bit7 = 1:
|
||
; HL - ¡ãä¥à (256 ¡ ©â®¢) ¤«ï à áè¨à¥ëå ¤ ëå:
|
||
; B != 0 - áç¨â âì ᢮¡®¤®¥ ¬¥áâ®
|
||
; ;
|
||
; à §¬¥à ¯®«ï - 1 ¡ ©â
|
||
; ” ©«®¢ ï á¨á⥬
|
||
; ;
|
||
; à §¬¥à ¯®«ï - 1 ¡ ©â
|
||
; ‘¥à¨©ë© ®¬¥à ¤¨áª
|
||
; ;
|
||
; à §¬¥à ¯®«ï - 1 ¡ ©â
|
||
; Œ¥âª ¤¨áª
|
||
; ;
|
||
; à §¬¥à ¯®«ï - 1 ¡ ©â
|
||
; ‡ १¥à¢¨à®¢ ®...
|
||
; ;
|
||
; A xor #80 - ®¬¥à ¤¨áª
|
||
;
|
||
; ¢ë室: A - à §¬¥à ª« áâ¥à ¢ ᥪâ®à å, ¥á«¨ CF=0
|
||
; HL - ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢
|
||
; DE - ᢮¡®¤ëå ª« áâ¥à®¢
|
||
; BC - à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||
;/////////////////////////////////////////////////////////////////////
|
||
; [ ] 22/11/23 ¯®¤äãªæ¨ï á ¤®¯.¨ä®©
|
||
MACRO _mCOPY_LOOP
|
||
LD C,A
|
||
LD B,0
|
||
LD (DE),A
|
||
INC DE
|
||
LDIR
|
||
ENDM
|
||
;
|
||
DISKINF:; [ ] 22/11/23 ¯®¤äãªæ¨ï á ¤®¯.¨ä®©
|
||
LD C,B
|
||
LD B,1
|
||
;
|
||
CP #80
|
||
JR C,.CustomDisk
|
||
CP #FF
|
||
JR Z,.CurrentDisk
|
||
; more info
|
||
LD B,C
|
||
PUSH HL
|
||
AND %0111'1111
|
||
CALL .CustomDisk
|
||
JR C,.error
|
||
;
|
||
EX (SP),HL
|
||
PUSH AF
|
||
PUSH DE
|
||
PUSH BC
|
||
;;;;
|
||
;
|
||
EX DE,HL
|
||
LD HL,CORE_BUFFERS.BootSector.ID_FAT
|
||
LD A,8 ;!HARDCODE _sBOOT_SEC.ID_FAT.length
|
||
_mCOPY_LOOP
|
||
;
|
||
LD HL,CORE_BUFFERS.BootSector.BPB_SERIAL_NUMBER
|
||
LD A,4 ;!HARDCODE _sBOOT_SEC.BPB_SERIAL_NUMBER
|
||
_mCOPY_LOOP
|
||
;
|
||
LD HL,CORE_BUFFERS.BootSector.BPB_LABEL
|
||
LD A,11 ;!HARDCODE _sBOOT_SEC.BPB_LABEL
|
||
_mCOPY_LOOP
|
||
;
|
||
|
||
XOR A
|
||
LD (DE),A
|
||
;;;;
|
||
POP BC
|
||
POP DE
|
||
POP AF
|
||
.error: POP HL
|
||
RET
|
||
;
|
||
|
||
;CP #FF ; !FIXIT WorkDirectory
|
||
;!TEST Current Dir
|
||
;JR Z,CURRDS ;R06
|
||
.CurrentDisk:
|
||
LD A,(CurrentPath)
|
||
SUB 'A'
|
||
LD HL,FatBuffer.DRIVE
|
||
CP (HL)
|
||
JR Z,.CheckFreeSpace
|
||
;
|
||
.CustomDisk:
|
||
PUSH BC
|
||
CALL CHNDISK ;R06
|
||
POP BC
|
||
RET C ;R06
|
||
;
|
||
.CheckFreeSpace:
|
||
;
|
||
XOR A
|
||
OR B
|
||
CALL NZ,.CURRDS
|
||
;
|
||
;
|
||
.FRESP2:
|
||
LD D,B
|
||
LD E,C
|
||
LD HL,(FAT_Max_Cluster)
|
||
DEC HL
|
||
LD BC,(CORE_BUFFERS.BootSector.B_P_S)
|
||
LD A,(CORE_BUFFERS.BootSector.S_P_C)
|
||
AND A
|
||
RET
|
||
;
|
||
.CURRDS:
|
||
LD HL,2
|
||
LD BC,0
|
||
.FRESP: PUSH BC
|
||
CALL R_F_FAT
|
||
POP BC
|
||
CP DSS_Error.sys.DISK_FULL
|
||
RET Z
|
||
|
||
LD A,E
|
||
OR D
|
||
JR NZ,.skip
|
||
INC BC
|
||
.skip: INC HL
|
||
JP .FRESP
|
||
; |