mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
рискованно ускорил RAM DRIVE
This commit is contained in:
parent
4dedfec9e9
commit
d89a2b049f
@ -16,7 +16,8 @@ SCANDRV:
|
||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||
; 2. ă§ ńŹ ĄăŞ˘ă Ąăâ-¤¨áŞ
|
||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||
CALL BOOTDSK.GET
|
||||
LD A,(BOOTDSK.NUM)
|
||||
;CALL BOOTDSK.GET
|
||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||
; 3. ˘ë§ë˘ ĽŹ ŕĽáŞ
|
||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||
@ -44,9 +45,12 @@ SCANDRV:
|
||||
;
|
||||
LD A,(CORE_BUFFERS.CurrentPath)
|
||||
SUB 'A'
|
||||
CALL OPENDSK
|
||||
CALL OPENDSK.open
|
||||
JR NC,.disk_norm
|
||||
LD A,(BOOTDSK.NUM)
|
||||
CALL OPENDSK.open
|
||||
;
|
||||
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||
.disk_norm: LD HL,CORE_BUFFERS.CurrentDirectory
|
||||
CALL CHDIR
|
||||
JR NC,.exit
|
||||
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||
|
||||
@ -29,8 +29,8 @@ KERNEL_PANIC:
|
||||
LD A,1
|
||||
OUT (SCREEN_SWITCH),A ; set scr-2
|
||||
;
|
||||
PRINT_LINE_KERNEL_PANIC 13, .kernel_panic, .kernel_panic.size, +(COLORS.CGA.FLASH + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.RED)
|
||||
PRINT_LINE_KERNEL_PANIC 18, .press_CAD, .press_CAD.size, +(COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE)
|
||||
PRINT_LINE_KERNEL_PANIC 13, .kernel_panic, .kernel_panic.size, +(COLORS.CGA.FLASH + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INK.RED)
|
||||
PRINT_LINE_KERNEL_PANIC 18, .press_CAD, .press_CAD.size, +(COLORS.CGA.PAPER.BLUE + COLORS.CGA.INK.WHITE)
|
||||
;
|
||||
POP BC
|
||||
POP HL
|
||||
@ -44,7 +44,7 @@ KERNEL_PANIC:
|
||||
RST ToBIOS
|
||||
;
|
||||
LD HL,#A000
|
||||
LD DE,0*256 + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE
|
||||
LD DE,0*256 + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INK.WHITE
|
||||
LD B,A
|
||||
LD C,BIOS.LP_PRINT_LINE3
|
||||
RST ToBIOS
|
||||
|
||||
@ -1 +1 @@
|
||||
997
|
||||
998
|
||||
@ -302,7 +302,7 @@ Find_Record:
|
||||
; RST ToBIOS
|
||||
; ;
|
||||
; LD HL,#A000
|
||||
; LD DE,0*256 + COLORS.CGA.FLASH + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE
|
||||
; LD DE,0*256 + COLORS.CGA.FLASH + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INK.WHITE
|
||||
; LD B,A
|
||||
; LD C,BIOS.LP_PRINT_LINE3
|
||||
; RST ToBIOS
|
||||
|
||||
@ -204,77 +204,77 @@
|
||||
|
||||
|
||||
; parser
|
||||
RMDRIVE:
|
||||
INC C
|
||||
DEC C
|
||||
JP Z,INIT_RD ; 0
|
||||
DEC C
|
||||
JR Z,RESET_RD ; 1
|
||||
DEC C
|
||||
JR Z,STATUS_RD ; 2
|
||||
DEC C
|
||||
JR Z,CHEK_RD ; 3
|
||||
DEC C
|
||||
JR Z,GBPB_RD ; 4
|
||||
DEC C
|
||||
JR Z,READ_RD ; 5
|
||||
DEC C
|
||||
JR Z,WRITE_RD ; 6
|
||||
DEC C
|
||||
JR Z,REMOV_RD ; 7
|
||||
DEC C
|
||||
JP Z,IOCTL_RD ; 8
|
||||
DEC C
|
||||
JP Z,.error ; 9 RESR_H
|
||||
DEC C
|
||||
JP Z,LREAD_RD ; 10
|
||||
DEC C
|
||||
JP Z,LWRITE_RD ; 11
|
||||
RMDRIVE: INC C
|
||||
DEC C
|
||||
JP Z,INIT_RD ; 0
|
||||
DEC C
|
||||
JR Z,RESET_RD ; 1
|
||||
DEC C
|
||||
JR Z,STATUS_RD ; 2
|
||||
DEC C
|
||||
JR Z,CHEK_RD ; 3
|
||||
DEC C
|
||||
JR Z,GBPB_RD ; 4
|
||||
DEC C
|
||||
JR Z,READ_RD ; 5
|
||||
DEC C
|
||||
JR Z,WRITE_RD ; 6
|
||||
DEC C
|
||||
JR Z,REMOV_RD ; 7
|
||||
DEC C
|
||||
JP Z,IOCTL_RD ; 8
|
||||
DEC C
|
||||
JP Z,.error ; 9 RESR_H
|
||||
DEC C
|
||||
JP Z,LREAD_RD ; 10
|
||||
DEC C
|
||||
JP Z,LWRITE_RD ; 11
|
||||
.error:
|
||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
||||
SCF
|
||||
RET
|
||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
||||
SCF
|
||||
RET
|
||||
|
||||
REMOV_RD:
|
||||
RESET_RD:
|
||||
STATUS_RD:
|
||||
XOR A
|
||||
RET
|
||||
|
||||
STATUS_RD: XOR A
|
||||
RET
|
||||
|
||||
;!FIXIT ᤥ« âì ¢ SYS_PAGE ¤«ï à ¬¤¨áª®¢ ¯¥à¥¬¥ë¥ ¨ ¡à âì ®ââ㤠§ 票¥
|
||||
CHEK_RD LD A,#FF
|
||||
AND A
|
||||
RET
|
||||
;!FIXIT ª ª-â® ®¯à¥¤¥«ïâì ᬥã RMD?
|
||||
; [x] 18/08/2024 ¯®ª ¥¬®£® ª®áâë«ì® ¨ ®¯ á®
|
||||
CHEK_RD: ;LD A,#FF
|
||||
;AND A
|
||||
XOR A
|
||||
;
|
||||
RET
|
||||
|
||||
;DE - ADDRESS
|
||||
GBPB_RD:
|
||||
LD IX,0
|
||||
LD HL,0
|
||||
LD B,#01
|
||||
GBPB_RD: LD IX,0
|
||||
LD HL,0
|
||||
LD B,#01
|
||||
;JP READ_RD
|
||||
;READ SECTORS
|
||||
; HL:IX - SECTOR
|
||||
; DE - ADDRESS
|
||||
; B - COUNT
|
||||
; A - DRIVE
|
||||
READ_RD:
|
||||
PUSH BC
|
||||
CALL GET_RAMDRV_NUM
|
||||
POP BC
|
||||
LD C,BIOS.DRV_READ
|
||||
JP ToBIOS
|
||||
; RST ToBIOS
|
||||
; XOR A
|
||||
; RET
|
||||
READ_RD: PUSH BC
|
||||
CALL GET_RAMDRV_NUM
|
||||
POP BC
|
||||
LD C,BIOS.DRV_READ
|
||||
JP ToBIOS
|
||||
; RST ToBIOS
|
||||
; XOR A
|
||||
; RET
|
||||
LREAD_RD:
|
||||
PUSH BC
|
||||
CALL GET_RAMDRV_NUM
|
||||
POP BC
|
||||
LD C,BIOS.DRV_READ_LONG
|
||||
JP ToBIOS
|
||||
; RST ToBIOS
|
||||
; XOR A
|
||||
; RET
|
||||
PUSH BC
|
||||
CALL GET_RAMDRV_NUM
|
||||
POP BC
|
||||
LD C,BIOS.DRV_READ_LONG
|
||||
JP ToBIOS
|
||||
; RST ToBIOS
|
||||
; XOR A
|
||||
; RET
|
||||
|
||||
;WRITE SECTORS
|
||||
; HL:IX - SECTOR
|
||||
@ -282,24 +282,24 @@ LREAD_RD:
|
||||
; B - COUNT
|
||||
; A - DRIVE
|
||||
WRITE_RD:
|
||||
PUSH BC
|
||||
CALL GET_RAMDRV_NUM
|
||||
POP BC
|
||||
LD C,BIOS.DRV_WRITE
|
||||
JP ToBIOS
|
||||
; RST ToBIOS
|
||||
; XOR A
|
||||
; RET
|
||||
PUSH BC
|
||||
CALL GET_RAMDRV_NUM
|
||||
POP BC
|
||||
LD C,BIOS.DRV_WRITE
|
||||
JP ToBIOS
|
||||
; RST ToBIOS
|
||||
; XOR A
|
||||
; RET
|
||||
|
||||
LWRITE_RD:
|
||||
PUSH BC
|
||||
CALL GET_RAMDRV_NUM
|
||||
POP BC
|
||||
LD C,BIOS.DRV_WRITE_LONG
|
||||
JP ToBIOS
|
||||
; RST ToBIOS
|
||||
; XOR A
|
||||
; RET
|
||||
PUSH BC
|
||||
CALL GET_RAMDRV_NUM
|
||||
POP BC
|
||||
LD C,BIOS.DRV_WRITE_LONG
|
||||
JP ToBIOS
|
||||
; RST ToBIOS
|
||||
; XOR A
|
||||
; RET
|
||||
|
||||
;
|
||||
;;
|
||||
@ -360,51 +360,49 @@ LWRITE_RD:
|
||||
;S_P_P DB #00
|
||||
INIT_RD:
|
||||
; .SectorSize EQU 512 ;!HARDCODE
|
||||
; LD HL,.SectorSize
|
||||
; LD A,#80
|
||||
; LD HL,.SectorSize
|
||||
; LD A,#80
|
||||
; .loop: SRL A
|
||||
; RR H
|
||||
; JR NC,.loop
|
||||
; LD (S_P_P),A
|
||||
; RR H
|
||||
; JR NC,.loop
|
||||
; LD (S_P_P),A
|
||||
|
||||
LD BC,0*256 + BIOS.GET_RAMD_ST ; <20>®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£® RAM-Disk
|
||||
LD DE,RAMDTBL
|
||||
.initLoop:
|
||||
PUSH BC
|
||||
LD A,B
|
||||
PUSH DE
|
||||
RST ToBIOS
|
||||
POP DE
|
||||
OR A
|
||||
JR Z,.noDRV
|
||||
;
|
||||
INC DE
|
||||
LD (DE),A
|
||||
DEC DE
|
||||
;
|
||||
POP BC
|
||||
LD A,B
|
||||
LD (DE),A
|
||||
INC DE
|
||||
INC DE
|
||||
;
|
||||
JP 1F
|
||||
;
|
||||
.noDRV: POP BC
|
||||
1: INC B
|
||||
LD A,RAMDTBL.Size / RAMDTBL.TBL_Entry
|
||||
CP B
|
||||
JR NZ,.initLoop
|
||||
LD BC,0*256+BIOS.GET_RAMD_ST ; <20>®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£® RAM-Disk
|
||||
LD DE,RAMDTBL
|
||||
.initLoop: PUSH BC
|
||||
LD A,B
|
||||
PUSH DE
|
||||
RST ToBIOS
|
||||
POP DE
|
||||
OR A
|
||||
JR Z,.noDRV
|
||||
;
|
||||
INC DE
|
||||
LD (DE),A
|
||||
DEC DE
|
||||
;
|
||||
POP BC
|
||||
LD A,B
|
||||
LD (DE),A
|
||||
INC DE
|
||||
INC DE
|
||||
JP .skip_pop
|
||||
;
|
||||
.noDRV: POP BC
|
||||
.skip_pop: INC B
|
||||
LD A,RAMDTBL.Size/RAMDTBL.TBL_Entry
|
||||
CP B
|
||||
JR NZ,.initLoop
|
||||
|
||||
LD HL,RAMDTBL ;!FIXIT LD HL,-RAMDTBL
|
||||
EX DE,HL
|
||||
AND A ;!FIXIT ----
|
||||
SBC HL,DE ;!FIXIT ADD HL,DE
|
||||
SRL L
|
||||
LD A,L
|
||||
; LD HL,ENDDRVR
|
||||
AND A
|
||||
RET
|
||||
LD HL,RAMDTBL ;!FIXIT LD HL,-RAMDTBL
|
||||
EX DE,HL
|
||||
AND A ;!FIXIT ----
|
||||
SBC HL,DE ;!FIXIT ADD HL,DE
|
||||
SRL L
|
||||
LD A,L
|
||||
; LD HL,ENDDRVR
|
||||
AND A
|
||||
RET
|
||||
;----------------------------------------------------------------------;!TEST
|
||||
;;;
|
||||
;;
|
||||
@ -428,32 +426,30 @@ INIT_RD:
|
||||
; 81 - WRITE TRACK
|
||||
; 82 - FORMAT TRACK
|
||||
IOCTL_RD:
|
||||
BIT 7,B
|
||||
JR NZ,.O_CTL_F
|
||||
INC B
|
||||
DEC B
|
||||
JP Z,.RGETPRM
|
||||
; DEC B
|
||||
; JP Z,FRDTRAC
|
||||
; DEC B
|
||||
; JP Z,FCHTRAC
|
||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
||||
SCF
|
||||
RET
|
||||
BIT 7,B
|
||||
JR NZ,.O_CTL_F
|
||||
INC B
|
||||
DEC B
|
||||
JP Z,.RGETPRM
|
||||
;DEC B
|
||||
;JP Z,FRDTRAC
|
||||
;DEC B
|
||||
;JP Z,FCHTRAC
|
||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
||||
SCF
|
||||
RET
|
||||
|
||||
.O_CTL_F:
|
||||
; RES 7,B
|
||||
; INC B
|
||||
; DEC B
|
||||
; JP Z,.RSETPRM
|
||||
|
||||
; DEC B
|
||||
; JP Z,FWRTRAC
|
||||
; DEC B
|
||||
; JP Z,FFRTRAC
|
||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
||||
SCF
|
||||
RET
|
||||
.O_CTL_F: ;RES 7,B
|
||||
;INC B
|
||||
;DEC B
|
||||
;JP Z,.RSETPRM
|
||||
;DEC B
|
||||
;JP Z,FWRTRAC
|
||||
;DEC B
|
||||
;JP Z,FFRTRAC
|
||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
||||
SCF
|
||||
RET
|
||||
|
||||
; C - PARTITION RECORD NUMBER IN DRIVE MBR must be 0 here ;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||
; HL:DE - SECTORS ON LOGICAL DISK
|
||||
@ -467,83 +463,71 @@ IOCTL_RD:
|
||||
; D5 - "1" RESERVED
|
||||
; D6 - ADDRESSING MODE LBA/CHS
|
||||
; D7 - "1" RESERVED
|
||||
.RGETPRM:
|
||||
EX DE,HL
|
||||
LD BC,#55AA
|
||||
AND A
|
||||
SBC HL,BC
|
||||
LD L,A
|
||||
LD A,DSS_Error.drv.GENERAL_FAILURE
|
||||
SCF
|
||||
RET NZ
|
||||
|
||||
.RGETPRM: EX DE,HL
|
||||
LD BC,#55AA
|
||||
AND A
|
||||
SBC HL,BC
|
||||
LD L,A
|
||||
LD A,DSS_Error.drv.GENERAL_FAILURE
|
||||
SCF
|
||||
RET NZ
|
||||
;
|
||||
EX AF,AF'
|
||||
LD A,L
|
||||
CALL GET_RAMDRV_NUM
|
||||
PUSH AF
|
||||
PUSH AF
|
||||
EX AF,AF'
|
||||
|
||||
EX AF,AF'
|
||||
LD A,L
|
||||
CALL GET_RAMDRV_NUM
|
||||
PUSH AF
|
||||
PUSH AF
|
||||
EX AF,AF'
|
||||
POP AF
|
||||
LD C,BIOS.DRV_GET_PAR
|
||||
RST ToBIOS
|
||||
|
||||
POP AF
|
||||
LD C,BIOS.DRV_GET_PAR
|
||||
RST ToBIOS
|
||||
PUSH HL ;ç¨á«® £®«®¢®ª, ç¨á«® ᥪâ®à®¢ ( 楫¨¤à)
|
||||
PUSH DE ;ª®«¨ç¥á⢮ 樫¨¤à®¢
|
||||
EXX
|
||||
POP HL ;ª®«¨ç¥á⢮ 樫¨¤à®¢
|
||||
POP BC ;ç¨á«® ᥪâ®à®¢ ( 楫¨¤à)
|
||||
LD D,0
|
||||
LD E,B ;ç¨á«® £®«®¢®ª
|
||||
LD B,D
|
||||
EXX
|
||||
|
||||
PUSH HL ;ç¨á«® £®«®¢®ª, ç¨á«® ᥪâ®à®¢ ( 楫¨¤à)
|
||||
PUSH DE ;ª®«¨ç¥á⢮ 樫¨¤à®¢
|
||||
EXX
|
||||
POP HL ;ª®«¨ç¥á⢮ 樫¨¤à®¢
|
||||
POP BC ;ç¨á«® ᥪâ®à®¢ ( 楫¨¤à)
|
||||
LD D,0
|
||||
LD E,B ;ç¨á«® £®«®¢®ª
|
||||
LD B,D
|
||||
EXX
|
||||
LD A,L
|
||||
|
||||
LD A,L
|
||||
RRA
|
||||
JR C,.end
|
||||
.loopShift: SLA E
|
||||
RL D
|
||||
RRA
|
||||
JR NC,.loopShift
|
||||
;
|
||||
.end: EX AF,AF'
|
||||
POP AF
|
||||
EX AF,AF'
|
||||
XOR A
|
||||
LD L,A
|
||||
LD H,L
|
||||
LD C,A ;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||
LD A,%10100000
|
||||
RET
|
||||
|
||||
RRA
|
||||
JR C,.end
|
||||
.loopShift:
|
||||
SLA E
|
||||
RL D
|
||||
RRA
|
||||
JR NC,.loopShift
|
||||
;
|
||||
.end: EX AF,AF'
|
||||
POP AF
|
||||
EX AF,AF'
|
||||
XOR A
|
||||
LD L,A
|
||||
LD H,L
|
||||
LD C,A ;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||
LD A,%10100000
|
||||
RET
|
||||
|
||||
; !TODO
|
||||
; !FIXIT
|
||||
; .RSETPRM:
|
||||
; AND A
|
||||
; RET
|
||||
|
||||
GET_RAMDRV_NUM:
|
||||
LD BC,RAMDTBL
|
||||
.skip_tbl:
|
||||
ADD A,A
|
||||
ADD A,C
|
||||
LD C,A
|
||||
LD A,0
|
||||
ADC A,B
|
||||
LD B,A
|
||||
;INC BC
|
||||
LD A,(BC)
|
||||
OR #60 ;!HARDCODE ᤥ« âì ®¬¥à à §ëå ãáâனá⢠ç¥à¥§ ¬¥âª¨
|
||||
RET
|
||||
;
|
||||
|
||||
;
|
||||
;TEST_DB_DEL_ME: DB 'Make here more than one page to load test'
|
||||
;
|
||||
; .RSETPRM: AND A
|
||||
; RET
|
||||
|
||||
GET_RAMDRV_NUM: LD BC,RAMDTBL
|
||||
.skip_tbl: ADD A,A
|
||||
ADD A,C
|
||||
LD C,A
|
||||
LD A,0
|
||||
ADC A,B
|
||||
LD B,A
|
||||
;INC BC
|
||||
LD A,(BC)
|
||||
OR #60 ;!HARDCODE ᤥ« âì ®¬¥à à §ëå ãáâனá⢠ç¥à¥§ ¬¥âª¨
|
||||
RET
|
||||
;
|
||||
;ENDDRVR EQU $
|
||||
;
|
||||
@ -1 +1 @@
|
||||
Subproject commit eebde92dd60cdf33588e34a7248413ec107edfe0
|
||||
Subproject commit e73e9f8d4f4e72de4f6b54abaec159684fdcebe1
|
||||
Loading…
Reference in New Issue
Block a user