mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-18 10:50:34 +03:00
new SCANDRV in DSS. in SHELL fixed bug in READBAT proc.
This commit is contained in:
parent
ca947dec92
commit
7bbdc8de36
@ -1065,7 +1065,7 @@ DIRSIZE: WORD 0 ; ࠧ
|
|||||||
|
|
||||||
|
|
||||||
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï „Ž‘
|
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï „Ž‘
|
||||||
BANKTBL: BLOCK USING_MEMPAGES,#FF
|
BANKTBL: BLOCK USING_MEMPAGES+1,#FF ; +1 ¤«ï COREPAGE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -43,7 +43,7 @@ FM_BUF: _sFM
|
|||||||
|
|
||||||
; ¢ë室¥ ¡¥§ ®è¨¡®ª IY 㪠§ë¢ ¥â ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
; ¢ë室¥ ¡¥§ ®è¨¡®ª IY 㪠§ë¢ ¥â ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||||
MACRO _mFM_FIND
|
MACRO _mFM_FIND
|
||||||
CP FMCOUNT+1
|
CP FMCOUNT
|
||||||
JR NC,ABS_FM
|
JR NC,ABS_FM
|
||||||
PUSH DE
|
PUSH DE
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ FM_BUF: _sFM
|
|||||||
SET_FM:
|
SET_FM:
|
||||||
_mFM_FIND
|
_mFM_FIND
|
||||||
|
|
||||||
LD A,0 ;!HARDCODE ®¬¥à ®è¨¡ª¨
|
LD A,DSS_Error.sys.NO_ERROR
|
||||||
RET NZ
|
RET NZ
|
||||||
ABS_FM LD A,DSS_Error.sys.INVALID_HANDLE
|
ABS_FM LD A,DSS_Error.sys.INVALID_HANDLE
|
||||||
SCF
|
SCF
|
||||||
@ -72,7 +72,7 @@ ABS_FM LD A,DSS_Error.sys.INVALID_HANDLE
|
|||||||
RES_FM:
|
RES_FM:
|
||||||
_mFM_FIND
|
_mFM_FIND
|
||||||
|
|
||||||
LD A,5
|
LD A,DSS_Error.sys.INVALID_HANDLE
|
||||||
EXX
|
EXX
|
||||||
SCF
|
SCF
|
||||||
RET Z
|
RET Z
|
||||||
|
|||||||
@ -570,8 +570,8 @@ BACK_CUR_PATH:
|
|||||||
; ’ε<E28099>€: ₯β
|
; ’ε<E28099>€: ₯β
|
||||||
; ’λε<CEBB>€: A - <>¬₯ΰ ―<>α«₯€₯£<E282AF> «<>£. €¨αͺ ’ α¨αβ₯¬₯
|
; ’λε<CEBB>€: A - <>¬₯ΰ ―<>α«₯€₯£<E282AF> «<>£. €¨αͺ ’ α¨αβ₯¬₯
|
||||||
;///////////////////////////////////////////////////////////////////////
|
;///////////////////////////////////////////////////////////////////////
|
||||||
INCLUDE 'ScanDRV.asm'
|
; INCLUDE 'ScanDRV.asm'
|
||||||
; INCLUDE 'NScanDRV.asm'
|
INCLUDE 'NScanDRV.asm'
|
||||||
;///////////////////////////////////////////////////////////////////////
|
;///////////////////////////////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
227
DSS/DRV-MAIN.ASM
227
DSS/DRV-MAIN.ASM
@ -65,11 +65,13 @@ A0010: ;JP DRV_PAGE.RST_10 ;
|
|||||||
; <[DRIVE API]> ;
|
; <[DRIVE API]> ;
|
||||||
BLOCK #18-$,#C7 ; #C7 - "RST 0" opcode
|
BLOCK #18-$,#C7 ; #C7 - "RST 0" opcode
|
||||||
;A0018 JP INTDISK ;
|
;A0018 JP INTDISK ;
|
||||||
A0018: PUSH AF ;
|
A0018: ;PUSH AF ;
|
||||||
PUSH BC ;
|
;PUSH BC ;
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
DRV_PAGE.MAIN_PAGE_NUMBER+2: ;
|
DRV_PAGE.MAIN_PAGE_NUMBER+2: ;
|
||||||
LD BC,0*256 + SLOT0 ; !FIXIT áî¤ ¥ ¤®«¦ë ¢áâ ¢«ïâìáï ®¬¥à ¢ë¤¥«¥ëå áâà ¨æ?
|
LD BC,0*256 + SLOT0 ; !FIXIT áî¤ ¥ ¤®«¦ë ¢áâ ¢«ïâìáï ®¬¥à ¢ë¤¥«¥ëå áâà ¨æ?
|
||||||
JP PORTAL.outDRV ;
|
;JP PORTAL.outDRV ;
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
||||||
|
|
||||||
|
|
||||||
@ -207,13 +209,13 @@ ADCALL+1: CALL DISPATCH ;
|
|||||||
|
|
||||||
;!FIXIT çñâ ¥ â® âãâ
|
;!FIXIT çñâ ¥ â® âãâ
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
||||||
LD B,#00; ;
|
; LD B,#00; ;
|
||||||
OUT (C),A ;
|
; OUT (C),A ;
|
||||||
;--- ;
|
;--- ;
|
||||||
POP BC ;
|
; POP BC ;
|
||||||
RET ;
|
; RET ;
|
||||||
PORTAL.outDRV: ;
|
;PORTAL.outDRV: ;
|
||||||
RET ;
|
; RET ;
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -441,11 +443,13 @@ INITDVC_RET_DRIVE:
|
|||||||
INCLUDE 'dss/media_drivers/fdd-drv.asm'
|
INCLUDE 'dss/media_drivers/fdd-drv.asm'
|
||||||
INCLUDE 'dss/media_drivers/ram_disk-drv.asm'
|
INCLUDE 'dss/media_drivers/ram_disk-drv.asm'
|
||||||
|
|
||||||
|
/////////////////////////// [ DRIVE TABLES ] \\\\\\\\\\\\\\\\\\\\\\\\\\\;
|
||||||
;
|
;
|
||||||
;------------------------[shared-drv.asm table]------------------------;
|
;------------------------[shared-drv.asm table]------------------------;
|
||||||
DEVICE: ;BLOCK DSS_MAX_DRIVES_AMOUNT * .TBL_Entry,#FF
|
DEVICE EQU $
|
||||||
.TBL_Entry EQU 3
|
.TBL_Entry EQU 3
|
||||||
.Size: EQU DSS_MAX_DRIVES_AMOUNT * .TBL_Entry ;DB #FF
|
.Size EQU DSS_MAX_DRIVES_AMOUNT * .TBL_Entry
|
||||||
|
.End EQU DEVICE.Size + 1 ; ¤«ï á⮯-¡ ©â #FF
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -456,17 +460,32 @@ DEVICE: ;BLOCK DSS_MAX_DRIVES_AMOUNT * .TBL_Entry,#FF
|
|||||||
;+05 LONG SIZE IN SECTORS
|
;+05 LONG SIZE IN SECTORS
|
||||||
;+09 FREE
|
;+09 FREE
|
||||||
;+15
|
;+15
|
||||||
LOGDRV EQU $ + DEVICE.Size
|
LOGDRV EQU DEVICE + DEVICE.End
|
||||||
.TBL_Entry EQU 16
|
.TBL_Entry EQU 16
|
||||||
.Size EQU .TBL_Entry * DSS_MAX_DRIVES_AMOUNT
|
.Size EQU DSS_MAX_DRIVES_AMOUNT * .TBL_Entry
|
||||||
|
; ‚•Ž„: L - «®£¨ç¥áª¨© ®¬¥à ¢ â ¡«¨æ¥
|
||||||
|
; ‚›•Ž„: IY - ç «® § ¯¨á¨
|
||||||
|
; <20>Ž<EFBFBD>’ˆ’: HL, IY. HL<-->DE
|
||||||
|
; MACRO LOGDRV_ENTRY_FIND tbl_addr
|
||||||
|
; LD H,0
|
||||||
|
; ADD HL,HL
|
||||||
|
; ADD HL,HL
|
||||||
|
; ADD HL,HL
|
||||||
|
; ADD HL,HL
|
||||||
|
; ;LD B,H
|
||||||
|
; ;LD C,L
|
||||||
|
; EX DE,HL
|
||||||
|
; LD IY,tbl_addr
|
||||||
|
; ADD IY,DE
|
||||||
|
; ENDM
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
;-----------------------[ram_disk-drv.asm table]-----------------------;
|
;-----------------------[ram_disk-drv.asm table]-----------------------;
|
||||||
; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
||||||
; Log Number: DB RAM_DRIVE_ID, RAM_DRIVE_NUMBER
|
; Log Number: DB RAM_Drive_Log_Number, RAM_Drive_ID ;(BIOS 0-15), (Block ID for BIOS)
|
||||||
RAMDTBL EQU $ + DEVICE.Size + LOGDRV.Size
|
RAMDTBL EQU LOGDRV + LOGDRV.Size
|
||||||
.TBL_Entry EQU 2
|
.TBL_Entry EQU 2
|
||||||
.Size EQU .TBL_Entry * MAX_RAMDRIVES
|
.Size EQU .TBL_Entry * MAX_RAMDRIVES
|
||||||
; RAMDTBL: DUP MAX_RAMDRIVES * RAMDTBL.TBL_Entry
|
; RAMDTBL: DUP MAX_RAMDRIVES * RAMDTBL.TBL_Entry
|
||||||
@ -475,10 +494,57 @@ RAMDTBL EQU $ + DEVICE.Size + LOGDRV.Size
|
|||||||
; .Size EQU $-RAMDTBL
|
; .Size EQU $-RAMDTBL
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
////////////////////////////////////////////////////////////////////////;
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////// [ DRIVE TABLES COPY] \\\\\\\\\\\\\\\\\\\\\\\\\;
|
||||||
|
MODULE OLD_TABLES
|
||||||
|
;
|
||||||
|
;------------------------[shared-drv.asm table]------------------------;
|
||||||
|
DEVICE EQU @RAMDTBL + @RAMDTBL.Size
|
||||||
|
.TBL_Entry EQU @DEVICE.TBL_Entry
|
||||||
|
.Size: EQU @DEVICE.Size
|
||||||
|
.End EQU @DEVICE.End
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
DRV_TEMP_BUFFER:
|
;-------------------------[ IDE-DRV.ASM table]-------------------------;
|
||||||
|
;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||||||
|
;+01 LONG SECTOR OFFSET
|
||||||
|
;+05 LONG SIZE IN SECTORS
|
||||||
|
;+09 FREE
|
||||||
|
;+15
|
||||||
|
LOGDRV EQU DEVICE + DEVICE.End
|
||||||
|
.TBL_Entry EQU @LOGDRV.TBL_Entry
|
||||||
|
.Size EQU @LOGDRV.Size
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
;-----------------------[ram_disk-drv.asm table]-----------------------;
|
||||||
|
; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
||||||
|
; Log Number: DB RAM_Drive_Log_Number, RAM_Drive_ID ;(BIOS 0-15), (Block ID for BIOS)
|
||||||
|
RAMDTBL EQU LOGDRV + LOGDRV.Size
|
||||||
|
.TBL_Entry EQU @RAMDTBL.TBL_Entry
|
||||||
|
.Size EQU @RAMDTBL.Size
|
||||||
|
; RAMDTBL: DUP MAX_RAMDRIVES * RAMDTBL.TBL_Entry
|
||||||
|
; DB #FF
|
||||||
|
; EDUP
|
||||||
|
; .Size EQU $-RAMDTBL
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
;
|
||||||
|
ENDMODULE
|
||||||
|
////////////////////////////////////////////////////////////////////////;
|
||||||
|
DISPLAY "DEVICE start: ", /H, DEVICE
|
||||||
|
DISPLAY "Old DEVICE start: ", /H, OLD_TABLES.DEVICE
|
||||||
|
DISPLAY "LOGDRV start: ", /H, LOGDRV
|
||||||
|
DISPLAY "Old LOGDRV start: ", /H, OLD_TABLES.LOGDRV
|
||||||
|
DISPLAY "RAMDTBL start: ", /H, RAMDTBL
|
||||||
|
DISPLAY "Old RAMDTBL start: ", /H, OLD_TABLES.RAMDTBL
|
||||||
|
|
||||||
|
;
|
||||||
|
;DRV_TEMP_BUFFER:
|
||||||
|
|
||||||
;---------[256 bytes stack for return pages of RST #18 callers]--------;
|
;---------[256 bytes stack for return pages of RST #18 callers]--------;
|
||||||
; #3F00 - #3FFF
|
; #3F00 - #3FFF
|
||||||
@ -488,132 +554,3 @@ DRV_PAGE.RSTx18_RET_PAGES EQU #3FFF
|
|||||||
; ENDMODULE
|
; ENDMODULE
|
||||||
; OUTEND
|
; OUTEND
|
||||||
;[END]
|
;[END]
|
||||||
|
|
||||||
/*
|
|
||||||
;
|
|
||||||
; NEW RESCAN
|
|
||||||
;=====================================================================[]
|
|
||||||
; «®£¨ç¥áª¨© ®¬¥à ãáâனá⢠+ ¤à¥á ®¡à ¡®â稪 .
|
|
||||||
; <20>®à浪®¢ë© ®¬¥à * 3 = ¡ãª¢ ¤¨áª + "A"
|
|
||||||
DEVICE: BLOCK DSS_MAX_DRIVES_AMOUNT*3,#FF
|
|
||||||
.Size: EQU $-DEVICE
|
|
||||||
|
|
||||||
; ‹®£¨ç¥áª¨© ®¬¥à à §¤¥« .
|
|
||||||
;<3B>®¬¥à £à㯯ë = «®£¨ç¥áª¨© ®¬¥à à §¤¥« HDD ¨§ DEVICE
|
|
||||||
LOGDRV: BLOCK 16*LD_DSK,0
|
|
||||||
.Size: EQU $-LOGDRV
|
|
||||||
;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
|
||||||
;+01 LONG SECTOR OFFSET
|
|
||||||
;+05 LONG SIZE IN SECTORS (SECTORS ON LOGICAL DISK)
|
|
||||||
;+09 FREE
|
|
||||||
;+15
|
|
||||||
|
|
||||||
; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
|
||||||
; DB RAM_DRIVE_ID, RAM_DRIVE_NUMBER
|
|
||||||
RAMDTBL: DUP MAX_RAMDRIVES * 2
|
|
||||||
DB #FF
|
|
||||||
EDUP
|
|
||||||
.Size EQU $-RAMDTBL
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTDISK:
|
|
||||||
;R01
|
|
||||||
CP #FF
|
|
||||||
JR NZ,.noNeedRescan
|
|
||||||
CP C
|
|
||||||
JR Z,INITDVC_RET_DRIVE
|
|
||||||
.noNeedRescan:
|
|
||||||
;
|
|
||||||
PUSH HL
|
|
||||||
PUSH BC
|
|
||||||
ADD A,A
|
|
||||||
ADD A,A
|
|
||||||
LD C,A
|
|
||||||
LD B,0
|
|
||||||
LD HL,DEVICE
|
|
||||||
ADD HL,BC
|
|
||||||
LD A,(HL)
|
|
||||||
CP #FF
|
|
||||||
JR Z,NODEV
|
|
||||||
INC HL
|
|
||||||
INC HL
|
|
||||||
LD C,(HL)
|
|
||||||
INC HL
|
|
||||||
LD H,(HL)
|
|
||||||
LD L,C
|
|
||||||
POP BC
|
|
||||||
EX (SP),HL
|
|
||||||
RET
|
|
||||||
NODEV: POP BC
|
|
||||||
POP HL
|
|
||||||
LD A,DSS_Error.drv.INVALID_DRIVE
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INITDVC: XOR A
|
|
||||||
LD (DRV_PAGE.LDRIVE),A ; á¡à. ï祩ªã
|
|
||||||
LD HL,DEVICE
|
|
||||||
LD (PDEVICE),HL ; ¢®ááâ. ï祩ªã
|
|
||||||
; FDD ¤¥¢ ©áë
|
|
||||||
CALL FDDRIVE.INIT ; ã§ âì ç¨á«® FDD-¤¥¢ ©á®¢
|
|
||||||
LD DE,FDDRIVE ; ¤à¥á ®¡à ¡®â稪 ⥪. ¤¥¢ ©á
|
|
||||||
CALL MAKEDVC ; ¨¨æ. â ¡«¨æã ¯¥à¥å®¤®¢
|
|
||||||
; HDD ¤¥¢ ©áë
|
|
||||||
; ¥á«¨ áâ à⥠¢¥àá¨ï BIOS ¥ ¯®¤å®¤¨â, â® £à㧨âìáï ¬®¦® ⮫쪮 á ¤¨áª¥âë, ¤«ï í⮣® âãâ § ¬¥ ª®¤ XOR A : RET
|
|
||||||
.if_old: CALL INIT_H
|
|
||||||
;CALL .CHECK_HDD
|
|
||||||
LD DE,HDDRIVE
|
|
||||||
CALL MAKEDVC
|
|
||||||
; RAM-¤¨áª¨
|
|
||||||
CALL INIT_RD
|
|
||||||
LD DE,RMDRIVE
|
|
||||||
CALL MAKEDVC
|
|
||||||
XOR A
|
|
||||||
RET
|
|
||||||
.CHECK_HDD:
|
|
||||||
|
|
||||||
RET
|
|
||||||
|
|
||||||
|
|
||||||
;R01
|
|
||||||
INITDVC_RET_DRIVE:
|
|
||||||
LD DE,DRV_TEMP_BUFFER
|
|
||||||
LD HL,DEVICE
|
|
||||||
LD BC,DEVICE.Size
|
|
||||||
LDIR
|
|
||||||
LD HL,LOGDRV
|
|
||||||
LD BC,LOGDRV.Size
|
|
||||||
LDIR
|
|
||||||
LD HL,RAMDTBL
|
|
||||||
LD BC,RAMDTBL.Size
|
|
||||||
LDIR
|
|
||||||
|
|
||||||
CALL INITDVC
|
|
||||||
|
|
||||||
; ‘à ¢¨¢ ¥¬ áâ àë© DEVICE ¡ãä¥à á ®¢ë¬, ¥á«¨ ¢ ®¢®¬ ¥â ãáâனá⢠, â® § â¨à ¥¬ ¢ áâ àëå ¡ãä¥à å ¥£®
|
|
||||||
LD HL,DEVICE
|
|
||||||
LD DE,DRV_TEMP_BUFFER
|
|
||||||
LD B,DEVICE.Size
|
|
||||||
.loop_DEVICE:
|
|
||||||
LD A,(DE)
|
|
||||||
CP (HL)
|
|
||||||
CALL NZ,.FIND_DEV
|
|
||||||
INC HL
|
|
||||||
INC DE
|
|
||||||
DJNZ .loop_DEVICE
|
|
||||||
|
|
||||||
LD A,(DRV_PAGE.LDRIVE)
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
DEVICE: BLOCK DSS_MAX_DRIVES_AMOUNT*4,#FF
|
|
||||||
;=====================================================================[]
|
|
||||||
;
|
|
||||||
;
|
|
||||||
*/
|
|
||||||
@ -540,6 +540,11 @@ DEPLOY:
|
|||||||
LD HL,BANKTBL + #C000
|
LD HL,BANKTBL + #C000
|
||||||
LD C,BIOS.GetMemBlkPages
|
LD C,BIOS.GetMemBlkPages
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
|
; ¤®«¦ ¨¤â¨ ¯®á«¥ GetMemBlkPages, ç⮡ ¢¬¥áâ®
|
||||||
|
; § ªàë¢ èª¨ #FF ¯®áâ ¢¨âì áâà ¨æã COREPAGE
|
||||||
|
LD HL,BANKTBL + COREPAGE
|
||||||
|
IN A,(SLOT0)
|
||||||
|
LD (HL),A
|
||||||
|
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|||||||
@ -98,9 +98,31 @@ XLAT_T: DB #00,#43,#00,#3F,#3D,#3B,#3C,#46,#00,#44,#42,#40,#3E,#0F,#00,#00 ;00
|
|||||||
ENDM
|
ENDM
|
||||||
;
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; ‚•Ž„: L - «®£¨ç¥áª¨© ®¬¥à ¢ â ¡«¨æ¥
|
||||||
|
; ‚›•Ž„: IY - ç «® § ¯¨á¨
|
||||||
|
; <20>Ž<EFBFBD>’ˆ’: HL, IY. HL<-->DE
|
||||||
|
MACRO LOGDRV_ENTRY_FIND tbl_addr
|
||||||
|
LD H,0
|
||||||
|
ADD HL,HL
|
||||||
|
ADD HL,HL
|
||||||
|
ADD HL,HL
|
||||||
|
ADD HL,HL
|
||||||
|
;LD B,H
|
||||||
|
;LD C,L
|
||||||
|
EX DE,HL
|
||||||
|
LD IY,tbl_addr
|
||||||
|
ADD IY,DE
|
||||||
|
ENDM
|
||||||
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
MACRO _CALC_DEVICE_ENTRY tbl_addr
|
MACRO _CALC_DEVICE_ENTRY tbl_addr
|
||||||
LD C,A
|
CP DSS_MAX_DRIVES_AMOUNT+1
|
||||||
|
JR C,.norm
|
||||||
|
; Error!
|
||||||
|
LD A,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
.norm: LD C,A
|
||||||
ADD A,A
|
ADD A,A
|
||||||
ADD A,C
|
ADD A,C
|
||||||
LD C,A
|
LD C,A
|
||||||
|
|||||||
@ -213,13 +213,6 @@ INIT_H: PUSH IY
|
|||||||
;!TEST ;[ ]
|
;!TEST ;[ ]
|
||||||
XOR A
|
XOR A
|
||||||
LD (DRVCLC.count),A
|
LD (DRVCLC.count),A
|
||||||
; ‡ ç¨á⪠⠡«¨æë. <20>¥®¡ï§ ⥫ì®, ® ¬ «® «¨ çñ ¡ã¤¥â ¤ «ìè¥...
|
|
||||||
; LD HL,LOGDRV
|
|
||||||
; LD (HL),#FF
|
|
||||||
; LD DE,LOGDRV+1
|
|
||||||
; LD BC,LOGDRV.Size-1
|
|
||||||
; LDIR
|
|
||||||
;
|
|
||||||
LD HL,LOGDRV
|
LD HL,LOGDRV
|
||||||
LD (OFFSECT),HL
|
LD (OFFSECT),HL
|
||||||
|
|
||||||
@ -285,29 +278,14 @@ DRVCLC: ; INC A
|
|||||||
; .TBL_Entry EQU 16
|
; .TBL_Entry EQU 16
|
||||||
; .Size EQU $-LOGDRV
|
; .Size EQU $-LOGDRV
|
||||||
|
|
||||||
|
|
||||||
SELHDD: PUSH DE
|
SELHDD: PUSH DE
|
||||||
PUSH BC
|
PUSH BC
|
||||||
PUSH HL
|
PUSH HL
|
||||||
;!TEST
|
|
||||||
; SLA A
|
|
||||||
; RLA
|
|
||||||
; SLA A
|
|
||||||
; LD L,A
|
|
||||||
; LD H,0
|
|
||||||
; RL H
|
|
||||||
; ADD HL,HL
|
|
||||||
;
|
;
|
||||||
; original
|
|
||||||
LD L,A
|
LD L,A
|
||||||
LD H,0
|
LOGDRV_ENTRY_FIND LOGDRV
|
||||||
ADD HL,HL
|
|
||||||
ADD HL,HL
|
|
||||||
ADD HL,HL
|
|
||||||
ADD HL,HL
|
|
||||||
;
|
;
|
||||||
EX DE,HL
|
|
||||||
LD IY,LOGDRV
|
|
||||||
ADD IY,DE
|
|
||||||
LD C,(IY+1)
|
LD C,(IY+1)
|
||||||
LD B,(IY+2)
|
LD B,(IY+2)
|
||||||
LD E,(IY+3)
|
LD E,(IY+3)
|
||||||
@ -396,15 +374,8 @@ HGETPRM:
|
|||||||
;
|
;
|
||||||
PUSH IX
|
PUSH IX
|
||||||
PUSH IY
|
PUSH IY
|
||||||
LD H,0
|
;
|
||||||
ADD HL,HL
|
LOGDRV_ENTRY_FIND LOGDRV
|
||||||
ADD HL,HL
|
|
||||||
ADD HL,HL
|
|
||||||
ADD HL,HL
|
|
||||||
LD B,H
|
|
||||||
LD C,L
|
|
||||||
LD IY,LOGDRV
|
|
||||||
ADD IY,BC
|
|
||||||
;
|
;
|
||||||
LD A,(IY+0) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
LD A,(IY+0) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||||||
PUSH IY
|
PUSH IY
|
||||||
@ -449,8 +420,8 @@ STAT_H: XOR A
|
|||||||
|
|
||||||
CHEK_H:
|
CHEK_H:
|
||||||
;!TEST
|
;!TEST
|
||||||
;LD A,#FF
|
LD A,#FF
|
||||||
XOR A
|
;XOR A
|
||||||
;
|
;
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
@ -460,15 +431,9 @@ CHEK_H:
|
|||||||
GBPB_H: PUSH IY
|
GBPB_H: PUSH IY
|
||||||
PUSH DE
|
PUSH DE
|
||||||
LD L,A
|
LD L,A
|
||||||
LD H,0
|
;
|
||||||
ADD HL,HL
|
LOGDRV_ENTRY_FIND LOGDRV
|
||||||
ADD HL,HL
|
;
|
||||||
ADD HL,HL
|
|
||||||
ADD HL,HL
|
|
||||||
LD B,H
|
|
||||||
LD C,L
|
|
||||||
LD IY,LOGDRV
|
|
||||||
ADD IY,BC
|
|
||||||
LD E,(IY+1)
|
LD E,(IY+1)
|
||||||
LD D,(IY+2)
|
LD D,(IY+2)
|
||||||
LD L,(IY+3)
|
LD L,(IY+3)
|
||||||
|
|||||||
@ -301,6 +301,62 @@ LWRITE_RD:
|
|||||||
; XOR A
|
; XOR A
|
||||||
; RET
|
; RET
|
||||||
|
|
||||||
|
;
|
||||||
|
;;
|
||||||
|
;;;
|
||||||
|
;----------------------------------------------------------------------;!TEST
|
||||||
|
; ;S_P_P DB #00
|
||||||
|
; INIT_RD:
|
||||||
|
; ; .SectorSize EQU 512 ;!HARDCODE
|
||||||
|
; ; LD HL,.SectorSize
|
||||||
|
; ; LD A,#80
|
||||||
|
; ; .loop: SRL 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
|
||||||
|
|
||||||
|
; LD (DE),A
|
||||||
|
; INC DE
|
||||||
|
; POP BC
|
||||||
|
; LD A,B
|
||||||
|
; LD (DE),A
|
||||||
|
; INC DE
|
||||||
|
; JP 1F
|
||||||
|
; .noDRV: POP BC
|
||||||
|
; 1: 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
|
||||||
|
;----------------------------------------------------------------------;!TEST
|
||||||
|
;;;
|
||||||
|
;;
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
;;
|
||||||
|
;;;
|
||||||
|
;----------------------------------------------------------------------;!TEST
|
||||||
;S_P_P DB #00
|
;S_P_P DB #00
|
||||||
INIT_RD:
|
INIT_RD:
|
||||||
; .SectorSize EQU 512 ;!HARDCODE
|
; .SectorSize EQU 512 ;!HARDCODE
|
||||||
@ -311,14 +367,7 @@ INIT_RD:
|
|||||||
; JR NC,.loop
|
; JR NC,.loop
|
||||||
; LD (S_P_P),A
|
; LD (S_P_P),A
|
||||||
|
|
||||||
; ‡ ç¨á⪠⠡«¨æë. <20>¥®¡ï§ ⥫ì®, ® ¬ «® «¨ çñ ¡ã¤¥â ¤ «ìè¥... ;[ ]
|
LD BC,0*256 + BIOS.GET_RAMD_ST ; <20>®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£® RAM-Disk
|
||||||
; LD HL,RAMDTBL
|
|
||||||
; LD (HL),#FF
|
|
||||||
; LD DE,RAMDTBL+1
|
|
||||||
; LD BC,RAMDTBL.Size-1
|
|
||||||
; LDIR
|
|
||||||
|
|
||||||
LD BC,#0*256 + BIOS.GET_RAMD_ST ; <20>®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£® RAM-Disk
|
|
||||||
LD DE,RAMDTBL
|
LD DE,RAMDTBL
|
||||||
.initLoop:
|
.initLoop:
|
||||||
PUSH BC
|
PUSH BC
|
||||||
@ -328,29 +377,38 @@ INIT_RD:
|
|||||||
POP DE
|
POP DE
|
||||||
OR A
|
OR A
|
||||||
JR Z,.noDRV
|
JR Z,.noDRV
|
||||||
|
;
|
||||||
LD (DE),A
|
|
||||||
INC DE
|
INC DE
|
||||||
|
LD (DE),A
|
||||||
|
DEC DE
|
||||||
|
;
|
||||||
POP BC
|
POP BC
|
||||||
LD A,B
|
LD A,B
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
INC DE
|
INC DE
|
||||||
|
INC DE
|
||||||
|
;
|
||||||
JP 1F
|
JP 1F
|
||||||
|
;
|
||||||
.noDRV: POP BC
|
.noDRV: POP BC
|
||||||
1: INC B
|
1: INC B
|
||||||
LD A,RAMDTBL.Size / RAMDTBL.TBL_Entry
|
LD A,RAMDTBL.Size / RAMDTBL.TBL_Entry
|
||||||
CP B
|
CP B
|
||||||
JR NZ,.initLoop
|
JR NZ,.initLoop
|
||||||
|
|
||||||
LD HL,RAMDTBL
|
LD HL,RAMDTBL ;!FIXIT LD HL,-RAMDTBL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
AND A
|
AND A ;!FIXIT ----
|
||||||
SBC HL,DE
|
SBC HL,DE ;!FIXIT ADD HL,DE
|
||||||
SRL L
|
SRL L
|
||||||
LD A,L
|
LD A,L
|
||||||
; LD HL,ENDDRVR
|
; LD HL,ENDDRVR
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
;----------------------------------------------------------------------;!TEST
|
||||||
|
;;;
|
||||||
|
;;
|
||||||
|
;
|
||||||
|
|
||||||
; ;
|
; ;
|
||||||
; ; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
; ; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
||||||
@ -466,15 +524,17 @@ IOCTL_RD:
|
|||||||
; AND A
|
; AND A
|
||||||
; RET
|
; RET
|
||||||
|
|
||||||
|
;!!!!! ¢ë§ë¢ ¥âáï ¢ SCANDRV, ª®£¤ íâ ¯à®æ¥¤ãà ¢ SLOT3, ¥ ¢ SLOT0
|
||||||
GET_RAMDRV_NUM:
|
GET_RAMDRV_NUM:
|
||||||
ADD A,A
|
|
||||||
LD BC,RAMDTBL
|
LD BC,RAMDTBL
|
||||||
|
.skip_tbl:
|
||||||
|
ADD A,A
|
||||||
ADD A,C
|
ADD A,C
|
||||||
LD C,A
|
LD C,A
|
||||||
LD A,0
|
LD A,0
|
||||||
ADC A,B
|
ADC A,B
|
||||||
LD B,A
|
LD B,A
|
||||||
INC BC
|
;INC BC
|
||||||
LD A,(BC)
|
LD A,(BC)
|
||||||
OR #60 ;!HARDCODE ᤥ« âì ®¬¥à à §ëå ãáâனá⢠ç¥à¥§ ¬¥âª¨
|
OR #60 ;!HARDCODE ᤥ« âì ®¬¥à à §ëå ãáâனá⢠ç¥à¥§ ¬¥âª¨
|
||||||
RET
|
RET
|
||||||
|
|||||||
@ -133,20 +133,10 @@ INTDISK:
|
|||||||
;
|
;
|
||||||
PUSH HL
|
PUSH HL
|
||||||
PUSH BC
|
PUSH BC
|
||||||
|
|
||||||
_CALC_DEVICE_ENTRY DEVICE
|
_CALC_DEVICE_ENTRY DEVICE
|
||||||
; LD C,A
|
|
||||||
; ADD A,A
|
|
||||||
; ADD A,C
|
|
||||||
; LD C,A
|
|
||||||
; LD B,0
|
|
||||||
; LD HL,DEVICE
|
|
||||||
; ADD HL,BC
|
|
||||||
|
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
INC A
|
CP #FF
|
||||||
JR Z,NODEV
|
JR Z,NODEV
|
||||||
DEC A
|
|
||||||
INC HL
|
INC HL
|
||||||
LD C,(HL)
|
LD C,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
@ -210,7 +200,7 @@ INITDVC: XOR A
|
|||||||
LD (DRV_PAGE.LDRIVE),A ; á¡à. ï祩ªã
|
LD (DRV_PAGE.LDRIVE),A ; á¡à. ï祩ªã
|
||||||
LD HL,DEVICE
|
LD HL,DEVICE
|
||||||
LD (PDEVICE),HL ; ¢®ááâ. ï祩ªã
|
LD (PDEVICE),HL ; ¢®ááâ. ï祩ªã
|
||||||
; ‡ ç¨á⪠⠡«¨æë. <20>¥®¡ï§ ⥫ì®, ® ¬ «® «¨ çñ ¡ã¤¥â ¤ «ìè¥... ;[ ]
|
; ‡ η¨αβ<EFBFBD> β ΅«¨ζ. <20>¥®΅ο§ ⥫μ®, ® ¬ «® «¨ ηρ ΅γ¤¥β ¤ «μθ¥... ;[ ]
|
||||||
LD HL,DEVICE
|
LD HL,DEVICE
|
||||||
LD (HL),#FF
|
LD (HL),#FF
|
||||||
LD DE,DEVICE+1
|
LD DE,DEVICE+1
|
||||||
|
|||||||
810
DSS/NScanDRV.ASM
810
DSS/NScanDRV.ASM
@ -1,3 +1,4 @@
|
|||||||
|
/*
|
||||||
; !TODO § ¯®¬¨ âì ¯à¥àë¢ ¨ï, ®âª«îç âì áâ àâ¥, ¢®ááâ ¢«¨¢ âì ¢ë室¥
|
; !TODO § ¯®¬¨ âì ¯à¥àë¢ ¨ï, ®âª«îç âì áâ àâ¥, ¢®ááâ ¢«¨¢ âì ¢ë室¥
|
||||||
SCANDRV:
|
SCANDRV:
|
||||||
;1 [-----------] [-----------] [-----------] [-----------] [-----------]
|
;1 [-----------] [-----------] [-----------] [-----------] [-----------]
|
||||||
@ -22,14 +23,10 @@ SCANDRV:
|
|||||||
|
|
||||||
|
|
||||||
;3 [-----------] [-----------] [-----------] [-----------] [-----------]
|
;3 [-----------] [-----------] [-----------] [-----------] [-----------]
|
||||||
;!TEST ¢ DRV-MAIN ¬®£ãâ ¡ëâì ¯à®¡«¥¬ë á ¯à¥àë¢ ¨ï¬¨
|
|
||||||
;DI
|
|
||||||
LD A,Dss.DRV.RescanDRV
|
LD A,Dss.DRV.RescanDRV
|
||||||
LD C,Dss.DRV.RescanDRV
|
LD C,Dss.DRV.RescanDRV
|
||||||
RST ToDSS.DRV
|
RST ToDSS.DRV
|
||||||
LD (LDRIVE),A
|
LD (LDRIVE),A
|
||||||
;EI
|
|
||||||
;
|
|
||||||
; [-----------]
|
; [-----------]
|
||||||
|
|
||||||
;4 [-----------] [-----------] [-----------] [-----------] [-----------]
|
;4 [-----------] [-----------] [-----------] [-----------] [-----------]
|
||||||
@ -158,23 +155,816 @@ SCANDRV:
|
|||||||
; .old_letter: DB #FF
|
; .old_letter: DB #FF
|
||||||
; .old_DRIVE_ID: DB #FF
|
; .old_DRIVE_ID: DB #FF
|
||||||
; .new_letter: DB #FF
|
; .new_letter: DB #FF
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
IF 1
|
||||||
|
SCANDRV:
|
||||||
|
; 0. § ¯®¬¨ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
LD A,R
|
||||||
|
DI
|
||||||
|
PUSH AF
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
|
||||||
|
; 1. § ¯®¬¨ ¥¬ ¡ãâ-¤¨áª
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
CALL GETBOOT
|
||||||
|
LD (.old_letter),A
|
||||||
|
;; A = bootdisk Log.number
|
||||||
|
;;!FIXIT ¬®¦® ¤®áâ ¢ âì ¨§ á®åà ¥®© â ¡«¨æë ª®£¤ ¯® ¤®¡¨âáï
|
||||||
|
; LD DE,Dss.DRV.GenIOCTL.Enter
|
||||||
|
; LD BC,Dss.DRV.GenIOCTL.GetParams
|
||||||
|
; RST ToDSS.DRV
|
||||||
|
; EX AF,AF'
|
||||||
|
;; A = bootdisk number
|
||||||
|
; LD (.old_DRIVE_ID),A
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
|
||||||
|
; 2. ª®¯¨à㥬 ¢ ¡ãä¥à â ¡«¨æë DEVICE, LOGDRV, RAMDTBL
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
SET_PAGE_X DRVPAGE
|
||||||
|
PUSH AF
|
||||||
|
|
||||||
|
LD HL,DEVICE + #C000
|
||||||
|
LD DE,OLD_TABLES.DEVICE + #C000
|
||||||
|
LD BC,OLD_TABLES.DEVICE - DEVICE
|
||||||
|
LDIR
|
||||||
|
;
|
||||||
|
LD A,2 ;!HARDCODE ª®«¨ç¥á⢮ â ¡«¨æ ¢â®à®£® ã஢ï (LOGDRV, RMDRIVE)
|
||||||
|
LD (Fill_if_Exists.tbl),A
|
||||||
|
;POP AF
|
||||||
|
;OUT (SLOT3),A
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
|
||||||
|
; 3. ¢ë§ë¢ ¥¬ à¥áª
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
LD A,Dss.DRV.RescanDRV
|
||||||
|
LD C,Dss.DRV.RescanDRV
|
||||||
|
RST ToDSS.DRV
|
||||||
|
LD (LDRIVE),A
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
|
||||||
|
; 4. áà ¢¨¢ ¥¬ § ¯¨á¨ áâ àëå â ¡«¨æ á ®¢ë¬¨:
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
;SET_PAGE_X DRVPAGE
|
||||||
|
;PUSH AF
|
||||||
|
|
||||||
|
|
||||||
|
LD HL,OLD_TABLES.DEVICE + #C000
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
.tbl_scanNew_mainLoop:
|
||||||
|
PUSH BC
|
||||||
|
PUSH HL
|
||||||
|
; ¯®«ãç ¥¬ ®¬¥à ¯à®æ¥¤ãàë ¤«ï í⮩ ¡ãª¢ë ¤¨áª
|
||||||
|
LD A,(HL)
|
||||||
|
;
|
||||||
|
CP #FF
|
||||||
|
JR Z,.nextN
|
||||||
|
;
|
||||||
|
LD B,A
|
||||||
|
INC HL
|
||||||
|
LD A,(HL)
|
||||||
|
INC HL
|
||||||
|
LD H,(HL)
|
||||||
|
LD L,A
|
||||||
|
; ¨é¥¬ çâ® § ¤à ©¢
|
||||||
|
EX DE,HL
|
||||||
|
; FDD?
|
||||||
|
LD HL,FDDRIVE
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
JR Z,.nextN ; ¯à®¯ã᪠FDD ¤à ©¢®¢
|
||||||
|
; HDD?
|
||||||
|
LD HL,HDDRIVE
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
; HDD. ‘¢¥àª ¯® â ¡«¨æ¥ LOGDRV
|
||||||
|
JP Z,SCAN_TABLES.HARD_DRV
|
||||||
|
; RD?
|
||||||
|
LD HL,RMDRIVE
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
; RAM Drive. ‘¢¥àª ¯® â ¡«¨æ¥ RAMDTBL
|
||||||
|
JP Z,SCAN_TABLES.RAM_DRV
|
||||||
|
; CD/DVD?
|
||||||
|
;LD HL,CDDRIVE
|
||||||
|
;AND A
|
||||||
|
;SUB HL,DE
|
||||||
|
; CD/DVD.
|
||||||
|
; JR Z,SCAN_TABLES.CD_ROM
|
||||||
|
;
|
||||||
|
; á«¥¤ãî騩 ¢¨â®ª
|
||||||
|
.nextN: POP HL
|
||||||
|
.nextN2:
|
||||||
|
INC HL
|
||||||
|
INC HL
|
||||||
|
INC HL
|
||||||
|
POP BC
|
||||||
|
DJNZ .tbl_scanNew_mainLoop
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
|
||||||
|
; 5. áà ¢¨¢ ¥¬ § ¯¨áì ®¢ëå â ¡«¨æ á® áâ à묨
|
||||||
|
; . ¥á«¨ ¤à ©¢ ⮫쪮 ¢ ®¢®©:
|
||||||
|
; 1) ¢âëª ¥¬ ¥£® ¢ ¯¥à¢ãî ᢮¡®¤ãî § ¯¨áì ¢ DEVICE (¨«¨ áâ ¢¨¬ ¯®á«¥ ¯®á«¥¤¥£® ¤à ©¢ )
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
; ‚•Ž„: IX - OLD_TABLES.DEVICE
|
||||||
|
; HL - OLD_TABLES.DEVICE.End
|
||||||
|
; HL' - à §¨æ ¬¥¦¤ã ¤à¥á ¬¨ áâ àëå ¨ ®¢ëå â ¡«¨æ
|
||||||
|
;
|
||||||
|
INC HL
|
||||||
|
LD (OLD_TABLES_CURRENT),HL
|
||||||
|
EXX
|
||||||
|
LD HL,OLD_TABLES.LOGDRV - LOGDRV
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
EXX
|
||||||
|
; 室¨¬ ¢ áâ ன DEVICE ¯¥à¢ãî ᢮¡®¤ãî ï祩ªã (¯à®¢¥à塞 á ª®æ ¢ ç «®)
|
||||||
|
LD IX,OLD_TABLES.DEVICE + OLD_TABLES.DEVICE.Size - OLD_TABLES.DEVICE.TBL_Entry + #C000
|
||||||
|
LD IY,LOGDRV + #C000
|
||||||
|
LD DE,-OLD_TABLES.DEVICE.TBL_Entry ; ¤¢¨£ ¥¬áï ¯® â ¡«¨æ¥ § ¤
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
;
|
||||||
|
.loop1: LD A,#FF
|
||||||
|
CP (IX+0)
|
||||||
|
JR NZ,.loop2_start
|
||||||
|
ADD IX,DE
|
||||||
|
DJNZ .loop1
|
||||||
|
.loop1_exit:
|
||||||
|
LD A,C ; § ª®ç¨«¨ áç¨â âì ¯¥à¥¬¥ãî LDRIVE
|
||||||
|
LD (DRV_PAGE.LDRIVE + #C000),A
|
||||||
|
LD (LDRIVE),A
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
|
||||||
|
; 6. ¯à®¢¥à塞, ¥ £à®åã«áï «¨ ¡ãâ-¤¨áª.
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
.old_letter+1:
|
||||||
|
LD A,0
|
||||||
|
_CALC_DEVICE_ENTRY OLD_TABLES.DEVICE + #C000
|
||||||
|
LD A,(HL)
|
||||||
|
INC A
|
||||||
|
JP Z,ERROR_BOOTDRV_DIES
|
||||||
|
|
||||||
|
; .old_DRIVE_ID+1:
|
||||||
|
; LD A,0
|
||||||
|
; CALL SETBOOT
|
||||||
|
; JR C,.ERROR_BOOTDRV_DIES
|
||||||
|
; LD (.new_letter),A
|
||||||
|
; ;
|
||||||
|
; LD A,(.old_letter)
|
||||||
|
; LD (BOOTDRV),A
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
|
||||||
|
; 7. § ¬¥ï¥¬ ®¢ë¥ â ¡«¨æë ¬®¤¨ä¨æ¨à®¢ ë¥ áâ àë¥
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
LD HL,OLD_TABLES.DEVICE + #C000
|
||||||
|
LD DE,DEVICE + #C000
|
||||||
|
LD BC,OLD_TABLES.DEVICE - DEVICE
|
||||||
|
LDIR
|
||||||
|
|
||||||
|
POP AF
|
||||||
|
OUT (SLOT3),A
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
|
||||||
|
;8. ¢ë室
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
POP AF
|
||||||
|
RET PO
|
||||||
|
EI
|
||||||
|
RET
|
||||||
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
|
|
||||||
|
;
|
||||||
|
.loop2_start:
|
||||||
|
LD C,B ; ç¨ ¥¬ áç¨â âì ¯¥à¥¬¥ãî LDRIVE
|
||||||
|
;LD (LDRIVE),A
|
||||||
|
;LD C,A
|
||||||
|
;
|
||||||
|
LD A,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
SUB B ; ᪮«ìª® è £®¢ ¢¯¥àñ¤ ¯® â ¡«¨æ¥ ®áâ «®áì
|
||||||
|
LD B,A
|
||||||
|
;
|
||||||
|
.loop2: LD DE,DEVICE.TBL_Entry ; ⥯¥àì ¤¢¨£ ¥¬áï ¯® â ¡«¨æ¥ ¢¯¥àñ¤
|
||||||
|
ADD IX,DE
|
||||||
|
; âãâ 㪠§ â¥«ì ¯®ª §ë¢ ¥â ¯¥à¢ãî ᢮¡®¤ãî ï祩ªã ¯®á«¥ ¡«®ª á ¤ 묨 ¤à ©¢®¢
|
||||||
|
PUSH IX
|
||||||
|
PUSH BC
|
||||||
|
CALL Fill_if_Exists
|
||||||
|
POP BC
|
||||||
|
POP IX
|
||||||
|
; NC:
|
||||||
|
; DE = ¤à¥á ¯à®æ¥¤ãàë ®¡à ¡®â稪 â ¡«¨æë
|
||||||
|
; A = «®£¨ç¥áª¨© ®¬¥à ãáâனá⢠¢ â ¡«¨æ¥ ®¡à ¡®â稪
|
||||||
|
;
|
||||||
|
; CF - ¥â ¡®«ìè¥ ®¢ëå § ¯¨á¥©
|
||||||
|
JR C,.loop1_exit
|
||||||
|
|
||||||
|
LD (IX+0),A
|
||||||
|
LD (IX+1),E
|
||||||
|
LD (IX+2),D
|
||||||
|
;
|
||||||
|
; LD A,(LDRIVE)
|
||||||
|
; INC A
|
||||||
|
; LD (LDRIVE),A
|
||||||
|
INC C ; ¤®¡ ¢¨«¨ ¤à ©¢
|
||||||
|
;
|
||||||
|
DJNZ .loop2
|
||||||
|
JR .loop1_exit
|
||||||
|
;
|
||||||
|
|
||||||
|
;;;
|
||||||
|
Fill_if_Exists:
|
||||||
|
.tbl+1: LD B,2 ; ª®«¨ç¥á⢮ â ¡«¨æ. ¯®ª 2 - LOGDRV ¨ RAMDTBL ;!!!!! ¢®ááâ ¢«¨¢ âì
|
||||||
|
DJNZ 1F
|
||||||
|
; B=1, RAMDTBL
|
||||||
|
LD A,RAMDTBL.TBL_Entry
|
||||||
|
LD IY,RAMDTBL + #C000
|
||||||
|
CALL .RUN
|
||||||
|
LD DE,RMDRIVE
|
||||||
|
RET NC
|
||||||
|
LD A,(.tbl)
|
||||||
|
DEC A ;!!!!! ¬®¦¥â ¡ëâì ¯¥à¥¯®«¥¨¥
|
||||||
|
LD (.tbl),A
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
1: DJNZ 1F
|
||||||
|
; B=2, LOGDRV
|
||||||
|
LD A,LOGDRV.TBL_Entry
|
||||||
|
LD IY,LOGDRV + #C000
|
||||||
|
CALL .RUN
|
||||||
|
LD DE,HDDRIVE
|
||||||
|
RET NC
|
||||||
|
; ¯¥à¥å®¤¨¬ ¤àã£ãî â ¡«¨æã - RAMDTBL
|
||||||
|
LD A,(.tbl)
|
||||||
|
DEC A ;!!!!! ¬®¦¥â ¡ëâì ¯¥à¥¯®«¥¨¥
|
||||||
|
LD (.tbl),A
|
||||||
|
LD HL,OLD_TABLES.RAMDTBL + #C000
|
||||||
|
LD (OLD_TABLES_CURRENT),HL
|
||||||
|
EXX
|
||||||
|
LD B,MAX_RAMDRIVES
|
||||||
|
EXX
|
||||||
|
JR Fill_if_Exists
|
||||||
|
;
|
||||||
|
;
|
||||||
|
1: SCF ; unknown table number
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.RUN: EXX
|
||||||
|
;
|
||||||
|
LD D,0
|
||||||
|
LD E,A
|
||||||
|
PUSH DE
|
||||||
|
;
|
||||||
|
LD A,#FE ; ’ ª ¯®¨áª § ª®ç¨âáï «¨¡® ®¬¥à¥ ¤à ©¢ , «¨¡® ¯® ª®æã â ¡«¨æë
|
||||||
|
PUSH BC
|
||||||
|
CALL Find_Record.loop1 ; ¨é¥â ¢ ®¢®© â ¡«¨æ¥ ®¢ãî § ¯¨áì
|
||||||
|
POP BC
|
||||||
|
JR NC,1F
|
||||||
|
;
|
||||||
|
POP DE
|
||||||
|
EXX
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
1: PUSH IY ; á®åà 塞 ⥪ã騩 ¤à¥á ®¢®© â ¡«¨æë
|
||||||
|
;
|
||||||
|
;EX DE,HL
|
||||||
|
;ADD IY,DE
|
||||||
|
;EX DE,HL
|
||||||
|
LD IY,(OLD_TABLES_CURRENT)
|
||||||
|
;
|
||||||
|
LD A,#FF ; ’ ª ¯®¨áª § ª®ç¨âáï «¨¡® ¯ãá⮩ § ¯¨á¨, «¨¡® ¯® ª®æã â ¡«¨æë
|
||||||
|
LD C,D ; ®¬¥à § ¯¨á¨ ¢ â ¡«¨æ¥. D=0
|
||||||
|
PUSH BC
|
||||||
|
CALL Find_Record.loop2
|
||||||
|
LD A,C
|
||||||
|
POP BC
|
||||||
|
JR NC,1F
|
||||||
|
;
|
||||||
|
POP DE
|
||||||
|
POP DE
|
||||||
|
EXX
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
1: EX (SP),IY ; ¯¥à¥ª«î票¥ á® áâ ன ®¢ãî â ¡«¨æã
|
||||||
|
PUSH IY
|
||||||
|
EXX
|
||||||
|
; ¯¥à¥ª¨¤ë¢ ¥¬ § ¯¨áì ¨§ ®¢®© ¢ áâ àãî
|
||||||
|
POP HL
|
||||||
|
POP DE
|
||||||
|
POP BC
|
||||||
|
LDIR
|
||||||
|
|
||||||
|
LD (IY),#FF ; £à®å ¥¬ ⮫쪮 çâ® ¯¥à¥ª¨ãâãî § ¯¨áì ¨§ ®¢®© â ¡«¨æë
|
||||||
|
AND A
|
||||||
|
RET
|
||||||
|
OLD_TABLES_CURRENT: WORD 0
|
||||||
|
|
||||||
|
; ‚•Ž„: A - Œ ᪠¤«ï áà ¢¥¨ï
|
||||||
|
; DE - „«¨ ®¤®© § ¯¨á¨
|
||||||
|
; IY - €¤à¥á ¤ ëå ¢ â ¡«¨æ¥
|
||||||
|
; ‚›•Ž„: NC:
|
||||||
|
; IY - ç «® ¯®¤å®¤ï饩 § ¯¨á¨
|
||||||
|
; C - ®¬¥à ®¢®© § ¯¨á¨ ¢ áâ ன â ¡«¨æ¥
|
||||||
|
; CF - <20>¥ ©¤¥®, â ¡«¨æ § ª®ç¨« áì
|
||||||
|
Find_Record:
|
||||||
|
.loop1: CP (IY)
|
||||||
|
RET NC
|
||||||
|
ADD IY,DE
|
||||||
|
INC C
|
||||||
|
DJNZ .loop1
|
||||||
|
; â ¡«¨æã ¯à®è¥àá⨫¨
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
|
.loop2: CP (IY)
|
||||||
|
RET Z
|
||||||
|
ADD IY,DE
|
||||||
|
INC C
|
||||||
|
DJNZ .loop2
|
||||||
|
; â ¡«¨æã ¯à®è¥àá⨫¨
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
|
;;;
|
||||||
|
|
||||||
|
ERROR_BOOTDRV_DIES:
|
||||||
|
LD BC,256*COLORS.CGA.PAPER.BLUE + BIOS.LP_OPEN_S
|
||||||
|
LD E,0
|
||||||
|
RST ToBIOS
|
||||||
|
|
||||||
|
LD BC,256*COLORS.CGA.PAPER.BLUE + BIOS.LP_CLS_WIN
|
||||||
|
LD DE,0
|
||||||
|
LD HL,#2050
|
||||||
|
RST ToBIOS
|
||||||
|
|
||||||
|
LD A,1
|
||||||
|
OUT (RGMOD),A ; set scr-2
|
||||||
|
|
||||||
|
LD HL,.ERROR_MSG
|
||||||
|
LD DE,#A000
|
||||||
|
LD BC,.ERROR_MSG.size
|
||||||
|
LD A,C
|
||||||
|
LDIR
|
||||||
|
|
||||||
|
LD DE,#10*256 + (80-.ERROR_MSG.size)/2 ;X=0, Y=16
|
||||||
|
LD C,BIOS.LP_SET_PLACE
|
||||||
|
RST ToBIOS
|
||||||
|
|
||||||
|
LD HL,#A000
|
||||||
|
LD DE,0*256 + COLORS.CGA.FLASH + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE
|
||||||
|
LD B,A
|
||||||
|
LD C,BIOS.LP_PRINT_LINE3
|
||||||
|
RST ToBIOS
|
||||||
|
|
||||||
|
.loop: DI
|
||||||
|
; .loop: LD A,R
|
||||||
|
; AND 7
|
||||||
|
; OUT (BorderColor),A
|
||||||
|
HALT
|
||||||
|
JR .loop
|
||||||
|
|
||||||
|
.ERROR_MSG: DZ "Kernel panic! Boot disk lost. Press Ctrl+Alt+Del or RESET."
|
||||||
|
.ERROR_MSG.size EQU $-.ERROR_MSG
|
||||||
|
|
||||||
|
;
|
||||||
|
; <20>… ƒ<>Ž•€’œ HL!
|
||||||
|
; . ¥á«¨ ¤à ©¢ ¥áâì ¢ ®¢®© ¨ áâ ன, â® § â¨à ¥¬ ¢ ®¢®©
|
||||||
|
; â ¡«¨æ¥ ᮢ¯ ¢è¨© ¤à ©¢
|
||||||
|
; ¡. ¥á«¨ ¤à ©¢ ¥áâì ⮫쪮 ¢ áâ ன, â®:
|
||||||
|
; ¡1) £à®å ¥¬ ä ©«®¢ë¥ ¬ ¨¯ã«ïâ®àë á ¥£® ®¬¥à®¬
|
||||||
|
MODULE SCAN_TABLES
|
||||||
|
; ¢å®¤: B - «®£.®¬¥à ¤à ©¢ , DE
|
||||||
|
RAM_DRV:
|
||||||
|
; <20>®«ãç ¥¬ ®¬¥à à ¬¤¨áª ¢ OLD_TABLES.RAMDTBL
|
||||||
|
LD A,B
|
||||||
|
LD BC,OLD_TABLES.RAMDTBL + #C000
|
||||||
|
CALL GET_RAMDRV_NUM.skip_tbl + #C000
|
||||||
|
LD (.cur_drv),BC
|
||||||
|
AND #0F
|
||||||
|
LD C,A ; ®¬¥à à ¬¤¨áª
|
||||||
|
; ˆé¥¬ ¢ ®¢®© â ª®© ¦¥ ®¬¥à à ¬¤¨áª
|
||||||
|
LD B,MAX_RAMDRIVES
|
||||||
|
LD DE,RAMDTBL + #C000
|
||||||
|
.loop: LD A,(DE)
|
||||||
|
SUB C
|
||||||
|
JR Z,.found
|
||||||
|
INC DE
|
||||||
|
INC DE
|
||||||
|
DJNZ .loop
|
||||||
|
; ‡€<E280A1>ˆ‘œ <20>… <20>€‰„…<E2809E>€
|
||||||
|
; „®áâ ñ¬ ¯®«®¦¥¨¥ ¢ OLD_TABLES.DEVICE
|
||||||
|
POP HL
|
||||||
|
; „®áâ ñ¬ è £ ®¡é¥£® 横« ¤«ï ¯®«ãç¥¨ï «®£.®¬¥à ¤à ©¢ ¢ KILL_FM
|
||||||
|
POP BC
|
||||||
|
PUSH BC
|
||||||
|
; ƒà®å ¥¬ ”Œ ¨ § ¯¨áì ¢ OLD_TABLES.DEVICE
|
||||||
|
CALL KILL_FM
|
||||||
|
; £à®å ¥¬ ¢ áâ ன RAMDTBL íâ®â ¤à ©¢
|
||||||
|
EX DE,HL
|
||||||
|
.cur_drv+1:
|
||||||
|
LD HL,0
|
||||||
|
LD (HL),#FF
|
||||||
|
DEC HL
|
||||||
|
LD (HL),#FF
|
||||||
|
EX DE,HL
|
||||||
|
JP SCANDRV.nextN2
|
||||||
|
;
|
||||||
|
.found: DEC A
|
||||||
|
; § â¨à ¥¬ ¢ ®¢®© â ¡«¨æ¥ ᮢ¯ ¢è¨© ¤à ©¢ (ç⮡ «¥£ç¥ ¡ë«® ¯ àá¨âì ®á⠢襥áï)
|
||||||
|
LD (DE),A
|
||||||
|
DEC DE
|
||||||
|
LD (DE),A
|
||||||
|
JP SCANDRV.nextN
|
||||||
|
|
||||||
|
HARD_DRV:
|
||||||
|
LD L,B
|
||||||
|
LOGDRV_ENTRY_FIND OLD_TABLES.LOGDRV + #C000
|
||||||
|
LD IX,LOGDRV + #C000
|
||||||
|
LD DE,LOGDRV.TBL_Entry
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
;
|
||||||
|
.loop: LD A,(IY+0)
|
||||||
|
;CP #FF
|
||||||
|
;JR Z,.skip
|
||||||
|
CP (IX+0)
|
||||||
|
JR NZ,.skip
|
||||||
|
;
|
||||||
|
LD A,(IY+1)
|
||||||
|
CP (IX+1)
|
||||||
|
JR NZ,.skip
|
||||||
|
LD A,(IY+2)
|
||||||
|
CP (IX+2)
|
||||||
|
JR Z,.found
|
||||||
|
;
|
||||||
|
.skip: ADD IX,DE
|
||||||
|
DJNZ .loop
|
||||||
|
; ‡€<E280A1>ˆ‘œ <20>… <20>€‰„…<E2809E>€
|
||||||
|
; ƒà®å ¥¬ áâ àãî § ¯¨áì ¢ OLD_TABLES.LOGDRV
|
||||||
|
LD A,#FF
|
||||||
|
LD (IY+0),A
|
||||||
|
; „®áâ ñ¬ ¯®«®¦¥¨¥ ¢ OLD_TABLES.DEVICE
|
||||||
|
POP HL
|
||||||
|
; „®áâ ñ¬ è £ ®¡é¥£® 横« ¤«ï ¯®«ãç¥¨ï «®£.®¬¥à ¤à ©¢ ¢ KILL_FM
|
||||||
|
POP BC
|
||||||
|
PUSH BC
|
||||||
|
; ƒà®å ¥¬ ”Œ ¨ § ¯¨áì ¢ OLD_TABLES.DEVICE
|
||||||
|
CALL KILL_FM
|
||||||
|
;
|
||||||
|
JP SCANDRV.nextN2
|
||||||
|
;
|
||||||
|
.found: ; § â¨à ¥¬ ¢ ®¢®© â ¡«¨æ¥ ᮢ¯ ¢è¨© ¤à ©¢ (ç⮡ «¥£ç¥ ¡ë«® ¯ àá¨âì ®á⠢襥áï)
|
||||||
|
LD (IX+0),#FF
|
||||||
|
JP SCANDRV.nextN
|
||||||
|
;
|
||||||
|
; CD_ROM:
|
||||||
|
; JP SCANDRV.nextN
|
||||||
|
|
||||||
|
; ‚•Ž„: HL - ⥪ãé ï § ¯¨áì ¢ â ¡«¨æ¥ DEVICE
|
||||||
|
; B - è £ ®¡é¥£® 横«
|
||||||
|
KILL_FM:
|
||||||
|
;
|
||||||
|
LD A,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
SUB B
|
||||||
|
LD C,A
|
||||||
|
; ¢âëª ¥¬ áâà ¨æã ï¤à á â ¡«¨æ¥© ä ©«®¢ëå ¬ ¨¯ã«ïâ®à®¢
|
||||||
|
PUSH BC
|
||||||
|
SET_PAGE_X COREPAGE
|
||||||
|
POP BC
|
||||||
|
PUSH AF
|
||||||
|
; ˜¥àá⨬ ¬ ¨¯ã«ïâ®àë «¨ç¨¥ ¢ ¨å £à®åã⮣® ¤à ©¢
|
||||||
|
LD IY,FM_BUF-FM_BUF.Size + #C000
|
||||||
|
LD B,FMCOUNT
|
||||||
|
LD DE,FM_BUF.Size
|
||||||
|
.loop_fm:
|
||||||
|
ADD IY,DE
|
||||||
|
LD A,(IY+_sFM.DRIVE)
|
||||||
|
CP C
|
||||||
|
JR NZ,.skip
|
||||||
|
XOR A
|
||||||
|
LD (IY+_sFM.NAME),A ; £à®å ¥¬ ¬ ¨¯ã«ïâ®à
|
||||||
|
.skip: DJNZ .loop_fm
|
||||||
|
;
|
||||||
|
POP AF
|
||||||
|
OUT (SLOT3),A
|
||||||
|
;
|
||||||
|
; £à®å ¥¬ ¢ OLD_TABLES.DEVICE 㡨âë© ¤à ©¢
|
||||||
|
LD (HL),#FF
|
||||||
|
;
|
||||||
|
RET
|
||||||
|
ENDMODULE
|
||||||
|
|
||||||
|
ENDIF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
[DRIVE TABLES] .Size == DEVICE.Size + LOGDRV.Size + RAMDTBL.Size == 78 + 416 + 32 == 526
|
||||||
|
|
||||||
|
; «®£¨ç¥áª¨© ®¬¥à ãáâனá⢠+ ¤à¥á ®¡à ¡®â稪 .
|
||||||
|
; <20>®à浪®¢ë© ®¬¥à * 3 = ¡ãª¢ ¤¨áª + "A"
|
||||||
|
DEVICE EQU $
|
||||||
|
.TBL_Entry EQU 3
|
||||||
|
.End EQU 1 + $ + DSS_MAX_DRIVES_AMOUNT * .TBL_Entry ; ¤«ï á⮯-¡ ©â #FF
|
||||||
|
.Size EQU .End - $
|
||||||
|
|
||||||
;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||||||
;+01 LONG SECTOR OFFSET
|
;+01 LONG SECTOR OFFSET
|
||||||
;+05 LONG SIZE IN SECTORS
|
;+05 LONG SIZE IN SECTORS
|
||||||
;+09 LONG Volume Serial Number in HEX ; [ ] ;!TODO
|
;+09 LONG Volume Serial Number in HEX ; [ ] ;!TODO
|
||||||
;+13 WORD FREE
|
;+13 WORD FREE
|
||||||
;+15 BYTE FREE
|
;+15 BYTE FREE
|
||||||
|
; ‹®£¨ç¥áª¨© ®¬¥à à §¤¥« .
|
||||||
LOGDRV: BLOCK .TBL_Entry*LD_DSK,0 ; ld_dsk = 16
|
;<3B>®¬¥à £à㯯ë = «®£¨ç¥áª¨© ®¬¥à à §¤¥« HDD ¨§ DEVICE
|
||||||
|
LOGDRV EQU DEVICE + DEVICE.Size
|
||||||
.TBL_Entry EQU 16
|
.TBL_Entry EQU 16
|
||||||
.Size EQU $-LOGDRV
|
.Size EQU DSS_MAX_DRIVES_AMOUNT * .TBL_Entry
|
||||||
|
|
||||||
|
; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
||||||
|
; Log Number: DB RAM_DRIVE_NUMBER, RAM_DRIVE_ID
|
||||||
|
RAMDTBL EQU $ + DEVICE.Size + LOGDRV.Size
|
||||||
|
.TBL_Entry EQU 2
|
||||||
|
.Size EQU .TBL_Entry * MAX_RAMDRIVES
|
||||||
|
|
||||||
|
|
||||||
DEVICE: BLOCK DSS_MAX_DRIVES_AMOUNT * .TBL_Entry,#FF
|
|
||||||
.Size: DB #FF
|
|
||||||
.TBL_Entry EQU 3
|
|
||||||
|
;
|
||||||
|
; NEW RESCAN
|
||||||
|
;=====================================================================[]
|
||||||
|
|
||||||
|
; «®£¨ç¥áª¨© ®¬¥à ãáâனá⢠+ ¤à¥á ®¡à ¡®â稪 .
|
||||||
|
; <20>®à浪®¢ë© ®¬¥à * 3 = ¡ãª¢ ¤¨áª + "A"
|
||||||
|
DEVICE: BLOCK DSS_MAX_DRIVES_AMOUNT*3,#FF
|
||||||
|
.Size: EQU $-DEVICE
|
||||||
|
|
||||||
|
‹®£¨ç¥áª¨© ®¬¥à à §¤¥« .
|
||||||
|
<EFBFBD>®¬¥à £à㯯ë = «®£¨ç¥áª¨© ®¬¥à à §¤¥« HDD ¨§ DEVICE
|
||||||
|
LOGDRV EQU DEVICE + DEVICE.Size
|
||||||
|
.TBL_Entry EQU 16
|
||||||
|
.Size EQU DSS_MAX_DRIVES_AMOUNT * .TBL_Entry
|
||||||
|
+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||||||
|
+01 LONG SECTOR OFFSET
|
||||||
|
+05 LONG SIZE IN SECTORS (SECTORS ON LOGICAL DISK)
|
||||||
|
+09 FREE
|
||||||
|
+15
|
||||||
|
|
||||||
|
; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
||||||
|
; Log Number: DB RAM_Drive_Log_Number, RAM_Drive_ID ;(BIOS 0-15), (Block ID for BIOS)
|
||||||
|
RAMDTBL: DUP MAX_RAMDRIVES * 2
|
||||||
|
DB #FF
|
||||||
|
EDUP
|
||||||
|
.Size EQU $-RAMDTBL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INTDISK:
|
||||||
|
;R01
|
||||||
|
CP #FF
|
||||||
|
JR NZ,.noNeedRescan
|
||||||
|
CP C
|
||||||
|
JR Z,INITDVC_RET_DRIVE
|
||||||
|
.noNeedRescan:
|
||||||
|
;
|
||||||
|
PUSH HL
|
||||||
|
PUSH BC
|
||||||
|
ADD A,A
|
||||||
|
ADD A,A
|
||||||
|
LD C,A
|
||||||
|
LD B,0
|
||||||
|
LD HL,DEVICE
|
||||||
|
ADD HL,BC
|
||||||
|
LD A,(HL)
|
||||||
|
CP #FF
|
||||||
|
JR Z,NODEV
|
||||||
|
INC HL
|
||||||
|
INC HL
|
||||||
|
LD C,(HL)
|
||||||
|
INC HL
|
||||||
|
LD H,(HL)
|
||||||
|
LD L,C
|
||||||
|
POP BC
|
||||||
|
EX (SP),HL
|
||||||
|
RET
|
||||||
|
NODEV: POP BC
|
||||||
|
POP HL
|
||||||
|
LD A,DSS_Error.drv.INVALID_DRIVE
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INITDVC: XOR A
|
||||||
|
LD (DRV_PAGE.LDRIVE),A ; á¡à. ï祩ªã
|
||||||
|
LD HL,DEVICE
|
||||||
|
LD (PDEVICE),HL ; ¢®ááâ. ï祩ªã
|
||||||
|
; FDD ¤¥¢ ©áë
|
||||||
|
CALL FDDRIVE.INIT ; ã§ âì ç¨á«® FDD-¤¥¢ ©á®¢
|
||||||
|
LD DE,FDDRIVE ; ¤à¥á ®¡à ¡®â稪 ⥪. ¤¥¢ ©á
|
||||||
|
CALL MAKEDVC ; ¨¨æ. â ¡«¨æã ¯¥à¥å®¤®¢
|
||||||
|
; HDD ¤¥¢ ©áë
|
||||||
|
; ¥á«¨ áâ à⥠¢¥àá¨ï BIOS ¥ ¯®¤å®¤¨â, â® £à㧨âìáï ¬®¦® ⮫쪮 á ¤¨áª¥âë, ¤«ï í⮣® âãâ § ¬¥ ª®¤ XOR A : RET
|
||||||
|
.if_old: CALL INIT_H
|
||||||
|
;CALL .CHECK_HDD
|
||||||
|
LD DE,HDDRIVE
|
||||||
|
CALL MAKEDVC
|
||||||
|
; RAM-¤¨áª¨
|
||||||
|
CALL INIT_RD
|
||||||
|
LD DE,RMDRIVE
|
||||||
|
CALL MAKEDVC
|
||||||
|
XOR A
|
||||||
|
RET
|
||||||
|
.CHECK_HDD:
|
||||||
|
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
;R01
|
||||||
|
INITDVC_RET_DRIVE:
|
||||||
|
LD DE,DRV_TEMP_BUFFER
|
||||||
|
LD HL,DEVICE
|
||||||
|
LD BC,DEVICE.Size
|
||||||
|
LDIR
|
||||||
|
LD HL,LOGDRV
|
||||||
|
LD BC,LOGDRV.Size
|
||||||
|
LDIR
|
||||||
|
LD HL,RAMDTBL
|
||||||
|
LD BC,RAMDTBL.Size
|
||||||
|
LDIR
|
||||||
|
|
||||||
|
CALL INITDVC
|
||||||
|
|
||||||
|
; ‘à ¢¨¢ ¥¬ áâ àë© DEVICE ¡ãä¥à á ®¢ë¬, ¥á«¨ ¢ ®¢®¬ ¥â ãáâனá⢠, â® § â¨à ¥¬ ¢ áâ àëå ¡ãä¥à å ¥£®
|
||||||
|
LD HL,DEVICE
|
||||||
|
LD DE,DRV_TEMP_BUFFER
|
||||||
|
LD B,DEVICE.Size
|
||||||
|
.loop_DEVICE:
|
||||||
|
LD A,(DE)
|
||||||
|
CP (HL)
|
||||||
|
CALL NZ,.FIND_DEV
|
||||||
|
INC HL
|
||||||
|
INC DE
|
||||||
|
DJNZ .loop_DEVICE
|
||||||
|
|
||||||
|
LD A,(DRV_PAGE.LDRIVE)
|
||||||
|
AND A
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
DEVICE: BLOCK DSS_MAX_DRIVES_AMOUNT*4,#FF
|
||||||
|
;=====================================================================[]
|
||||||
|
;
|
||||||
|
;
|
||||||
|
*/
|
||||||
|
|
||||||
|
; LD A,(Fill_if_Exists.tbl)
|
||||||
|
; DEC A
|
||||||
|
; LD (Fill_if_Exists.tbl),A
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
; 室¨¬ ¢ áâ ன DEVICE ¯¥à¢ãî ᢮¡®¤ãî ï祩ªã
|
||||||
|
LD HL,OLD_TABLES.DEVICE + DEVICE.Size
|
||||||
|
LD DE,-DEVICE.TBL_Entry
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
LD A,#FF
|
||||||
|
;
|
||||||
|
.loop1: ADD HL,DE
|
||||||
|
CP (HL)
|
||||||
|
JR NZ,.end_found
|
||||||
|
DJNZ .loop1
|
||||||
|
.end_found:
|
||||||
|
; HL = first free record in OLD_TABLES.DEVICE
|
||||||
|
LD (PDEVICE),HL
|
||||||
|
; B = last drive
|
||||||
|
LD A,B
|
||||||
|
LD (DRV_PAGE.LDRIVE),A
|
||||||
|
; <20> 室¨¬ ¢ áâ ன LOGDRV ¯¥à¢ãî ᢮¡®¤ãî ï祩ªã
|
||||||
|
; !TODO âãâ ®¯â¨¬¨§ãâì ¬®¦®
|
||||||
|
EXX ; ¤«ï .ldir_to_empty
|
||||||
|
LD HL,LOGDRV
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
EXX
|
||||||
|
;
|
||||||
|
LD HL,OLD_TABLES.LOGDRV
|
||||||
|
LD DE,LOGDRV.TBL_Entry
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
LD A,#FF
|
||||||
|
;
|
||||||
|
.loop3: CP (HL)
|
||||||
|
JR NZ,.loop3_skip
|
||||||
|
CALL .ldir_to_empty
|
||||||
|
JR Z.loop3_exit
|
||||||
|
.loop3_skip:
|
||||||
|
ADD HL,DE
|
||||||
|
DJNZ .loop3
|
||||||
|
.loop3_exit: ; no free space in old table or no new records in new table
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; <20> 室¨¬ ¢ ®¢®© LOGDRV ¯¥à¢ãî ®¢ãî § ¯¨áì
|
||||||
|
LD HL,LOGDRV
|
||||||
|
LD DE,LOGDRV.TBL_Entry
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
;
|
||||||
|
.loop2: LD A,(HL)
|
||||||
|
INC A
|
||||||
|
CALL NZ,.
|
||||||
|
JR NZ, ; error - no space for new record
|
||||||
|
ADD HL,DE
|
||||||
|
DJNZ .loop2
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EXX
|
||||||
|
LD BC,INIT_H
|
||||||
|
EXX
|
||||||
|
LD HL,LOGDRV
|
||||||
|
LD DE,LOGDRV.TBL_Entry
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
.loop_logdrv:
|
||||||
|
LD A,#FF
|
||||||
|
CP (HL)
|
||||||
|
EXX
|
||||||
|
LD A,1
|
||||||
|
CALL NZ,MAKEDVC
|
||||||
|
EXX
|
||||||
|
ADD HL,DE
|
||||||
|
DJNZ .loop_logdrv
|
||||||
|
;
|
||||||
|
EXX
|
||||||
|
LD BC,INIT_RD
|
||||||
|
EXX
|
||||||
|
LD HL,RAMDTBL
|
||||||
|
LD DE,RAMDTBL.TBL_Entry
|
||||||
|
LD B,MAX_RAMDRIVES
|
||||||
|
.loop_logdrv:
|
||||||
|
LD A,#FF
|
||||||
|
CP (HL)
|
||||||
|
EXX
|
||||||
|
LD A,1
|
||||||
|
CALL NZ,MAKEDVC
|
||||||
|
EXX
|
||||||
|
ADD HL,DE
|
||||||
|
DJNZ .loop_logdrv
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
.tbl_scanOld_mainLoop:
|
||||||
|
PUSH BC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
POP BC
|
||||||
|
DJNZ .tbl_scanOld_mainLoop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.ldir_to_empty:
|
||||||
|
; <20> 室¨¬ ¢ ®¢®© LOGDRV ¯¥à¢ãî ®¢ãî § ¯¨áì
|
||||||
|
; !TODO âãâ ®¯â¨¬¨§ãâì ¬®¦®
|
||||||
|
PUSH HL
|
||||||
|
EXX
|
||||||
|
;
|
||||||
|
; LD HL,LOGDRV
|
||||||
|
LD DE,LOGDRV.TBL_Entry
|
||||||
|
; LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
|
LD A,#FF
|
||||||
|
;
|
||||||
|
.loop3: CP (HL)
|
||||||
|
JR NZ,.run_ldir
|
||||||
|
.loop3skip:
|
||||||
|
ADD HL,DE
|
||||||
|
DJNZ .loop3
|
||||||
|
; no new records in table
|
||||||
|
; ZF = 0
|
||||||
|
;LD A,B
|
||||||
|
;DEC A ; Set ZF = 0
|
||||||
|
EXX
|
||||||
|
POP HL ; áà ¢ï«¨ á⥪
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.run_ldir:
|
||||||
|
POP DE
|
||||||
|
PUSH BC
|
||||||
|
LD BC,LOGDRV.TBL_Entry
|
||||||
|
LDIR
|
||||||
|
POP BC
|
||||||
|
DJNZ .ldir_exit
|
||||||
|
; ®¡à ¡®â «¨ ¯®á«¥¤îî § ¯¨áì ¢ â ¡«¨æ¥
|
||||||
|
LD A,B
|
||||||
|
DEC A ; Set ZF = 0
|
||||||
|
;
|
||||||
|
.ldir_exit:
|
||||||
|
EXX
|
||||||
|
RET
|
||||||
*/
|
*/
|
||||||
@ -75,7 +75,7 @@ SCANDRV:
|
|||||||
LD BC,DEVICE.TBL_Entry
|
LD BC,DEVICE.TBL_Entry
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LDDR
|
LDDR
|
||||||
; ―ΰ<EFBFBD>’₯ΰο₯¬, ₯ γ’₯«¨η¨«<C2A8>αμ «¨ § η₯¨₯ LDRIVE
|
; ¯à®¢¥à塞, ¥ ¬¥ìè¥ «¨ ®¢®¥ § 票¥ LDRIVE áâ ண® ®¬¥à ¡ãâ-¤¨áª
|
||||||
;!TEST
|
;!TEST
|
||||||
LD HL,.old_letter
|
LD HL,.old_letter
|
||||||
LD A,(LDRIVE)
|
LD A,(LDRIVE)
|
||||||
|
|||||||
@ -58,8 +58,8 @@ RESERVED2 BLOCK 490,0
|
|||||||
|
|
||||||
;
|
;
|
||||||
STRUCT _sBuffers
|
STRUCT _sBuffers
|
||||||
FileManipulator _sFM ; 44 bytes * FMCOUNT
|
FileManipulator _sFM ; 44 bytes + 44 bytes * (FMCOUNT-1)
|
||||||
FM_RESERVE BLOCK _sFM * (FMCOUNT-1),0
|
FM_RESERVE BLOCK _sFM * (FMCOUNT-1),0 ;
|
||||||
BootSector _sBOOT_SEC ; 62 bytes ;!TODO ¯¥à¥¥á⨠¢ ®¡« áâì ¡ãä¥à®¢
|
BootSector _sBOOT_SEC ; 62 bytes ;!TODO ¯¥à¥¥á⨠¢ ®¡« áâì ¡ãä¥à®¢
|
||||||
EXE_Header _sEXE_HEADER ; 512 bytes
|
EXE_Header _sEXE_HEADER ; 512 bytes
|
||||||
Stack _sStack ; 256 bytes
|
Stack _sStack ; 256 bytes
|
||||||
|
|||||||
@ -670,11 +670,12 @@ LPT_A EQU #1B
|
|||||||
LPT_B EQU #1C
|
LPT_B EQU #1C
|
||||||
|
|
||||||
PRINT: AND A
|
PRINT: AND A
|
||||||
LD B,A
|
LD B,A ; á®åà 塞 ᨬ¢®«
|
||||||
|
;
|
||||||
LD A,R
|
LD A,R
|
||||||
LD A,B
|
|
||||||
DI
|
DI
|
||||||
PUSH AF
|
PUSH AF
|
||||||
|
;
|
||||||
XOR A
|
XOR A
|
||||||
OUT (LPT_A),A
|
OUT (LPT_A),A
|
||||||
LD A,#10
|
LD A,#10
|
||||||
@ -682,12 +683,12 @@ PRINT: AND A
|
|||||||
XOR A
|
XOR A
|
||||||
OUT (LPT_A),A
|
OUT (LPT_A),A
|
||||||
IN A,(LPT_A) ; IN (1Bh): bit 5 - busy, Bit 3 - Ack
|
IN A,(LPT_A) ; IN (1Bh): bit 5 - busy, Bit 3 - Ack
|
||||||
;ld c,a ; ‘€‰Œ€<C592>
|
LD C,A
|
||||||
BIT 5,A ; IN (19h): bit 5 - Paper Enable, Bit 3 - Select
|
BIT 5,A ; IN (19h): bit 5 - Paper Enable, Bit 3 - Select
|
||||||
JR NZ,LPTBUSY
|
JR NZ,LPTBUSY
|
||||||
;and %11011000 ; ‘€‰Œ€<C592>
|
AND %11011000
|
||||||
;jr z,LPTBUSY ; ‘€‰Œ€<C592>
|
JR Z,LPTBUSY
|
||||||
LD A,B
|
LD A,B ; ¢®ááâ ¢«¨¢ ¥¬ ᨬ¢®«
|
||||||
OUT (LPT_B),A
|
OUT (LPT_B),A
|
||||||
POP AF
|
POP AF
|
||||||
RET PO
|
RET PO
|
||||||
@ -695,7 +696,7 @@ PRINT: AND A
|
|||||||
RET
|
RET
|
||||||
LPTBUSY:
|
LPTBUSY:
|
||||||
POP AF
|
POP AF
|
||||||
;ld a,c ; ‘€‰Œ€<C592>
|
LD A,C
|
||||||
SCF
|
SCF
|
||||||
RET PO
|
RET PO
|
||||||
EI
|
EI
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
312
|
371
|
||||||
@ -19,17 +19,19 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
|
|||||||
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
||||||
;
|
;
|
||||||
;-------------------[MEMORY]-------------------------;
|
;-------------------[MEMORY]-------------------------;
|
||||||
DEFINE USING_MEMPAGES 4
|
DEFINE PORTAL.RSTx18_SWITCH_ADDRESS #82
|
||||||
DEFINE OLD_SET_BANK 0
|
DEFINE OLD_SET_BANK 0
|
||||||
|
|
||||||
DEFINE PORTAL.RSTx18_SWITCH_ADDRESS #82
|
;---------------------[ «®£.®¬¥à áâà ¨æ ¯ ¬ï⨠]---------------------
|
||||||
; ªíè ᯨ᪠ª â «®£
|
; ªíè ᯨ᪠ª â «®£
|
||||||
DIRPAGE EQU 0
|
DIRPAGE EQU 0
|
||||||
FATPAGE EQU 1
|
FATPAGE EQU 1
|
||||||
TXTPAGE EQU 2
|
TXTPAGE EQU 2
|
||||||
ENVPAGE EQU TXTPAGE
|
ENVPAGE EQU TXTPAGE
|
||||||
DRVPAGE EQU 3
|
DRVPAGE EQU 3
|
||||||
;
|
DEFINE USING_MEMPAGES 4 ; à §¬¥à ¡«®ª ¤®¯®«¨â¥«ìëå áâà ¨æ
|
||||||
|
COREPAGE EQU 4 ; ® ®â¤¥«ì® ¨ ¥ á ¡«®ª®¬ ¢ëè¥.
|
||||||
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
DIRSPEC.DEPTH EQU 256 ; '\' + 1..255
|
DIRSPEC.DEPTH EQU 256 ; '\' + 1..255
|
||||||
ENVIRONMENT_STRING_LENGTH EQU 255
|
ENVIRONMENT_STRING_LENGTH EQU 255
|
||||||
|
|||||||
@ -187,7 +187,11 @@ READBAT:
|
|||||||
ld c,Dss.Read ; ç⥨¥ ä ©«
|
ld c,Dss.Read ; ç⥨¥ ä ©«
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
ld a,e
|
ld a,e
|
||||||
ld (MOVWORD.count),a ; (ç¨á«® ¯à®ç¨â. ¡ ©â ¨§ ä ©« )/128
|
; [x] 28/09/23
|
||||||
|
JR NC,1F
|
||||||
|
XOR A
|
||||||
|
;
|
||||||
|
1: ld (MOVWORD.count),a ; (ç¨á«® ¯à®ç¨â. ¡ ©â ¨§ ä ©« )/128
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
77
|
78
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 6eacd6475231a504fae4ed03a12f5cd1cb166ac0
|
Subproject commit 639cc1e69de900dd85e1bc4d3525dfeb91ea15ab
|
||||||
Loading…
Reference in New Issue
Block a user