-bug in SCANDRV

-bug in NSECTOR
-bug in SYS.EXE (boot.asm)
This commit is contained in:
Anatoliy Belyanskiy 2023-09-18 02:30:17 +10:00
parent 615d9cb2e2
commit 851c215879
5 changed files with 45 additions and 22 deletions

View File

@ -60,12 +60,12 @@ BEGIN: in a,(SLOT3)
ld c,0 ; ã§­ âì ¢¥àá¨î „Ž‘
rst 10h
ex de,hl ; hl=⥪. ¢¥àá¨ï
ld de,013Ch ; 1.60 d=¢¥àá¨ï, e=¬®¤¨ä¨ª æ¨ï, bc - ­®¬¥à ᡮન. de = #013E, bc = #0064 dos ver 1.62.100
ld de,#013C ; 1.60 d=¢¥àá¨ï, e=¬®¤¨ä¨ª æ¨ï, bc - ­®¬¥à ᡮન. de = #013E, bc = #0064 dos ver 1.62.100
and a
sbc hl,de
jr nc,version_ok
pop hl
ld a,9 ; ¨­¤¥ªá áâப¨ "Error: Need DSS version 1.60..."
ld a,11 ; ¨­¤¥ªá áâப¨ "Error: Need DSS version 1.60..."
call print_string
ld a,-1
jp exit

View File

@ -918,7 +918,7 @@ WOV3: PUSH HL
; LD DE,#0000
; ADC HL,DE
; RET
/////////////////////////////////////
////////////// NEW //////////////////
; in: HL - CLUSTER
; out: HL:IX - SECTOR
NSECTOR: DEC HL
@ -931,16 +931,16 @@ NSECTOR: DEC HL
RRA
.loop: ADD HL,HL
RL E
RL D
RRCA
; RL D
RRA
JP NC,.loop
;
.skip: EX DE,HL
LD XL,E
LD XH,D
LD DE,(FatBuffer.DAT_FRM) ;first data sector
XOR A
ADD IX,DE
; A=0
LD D,A
LD E,A
ADC HL,DE

View File

@ -239,10 +239,11 @@ RD_BPB: LD C,SLOT3
LD H,(IY+_sBOOT_SEC.RESERVE+1)
;
; LD E,(IY+#1C) ;Hidden sec
; LD D,(IY+#1D)
; ADD HL,DE
; LD (FatBuffer.FAT_FRM),HL ; first sector FAT
; LD E,(IY+_sBOOT_SEC.HIDDEN) ;Hidden sec
; LD D,(IY+_sBOOT_SEC.HIDDEN+1)
; ADD HL,DE
;LD (FatBuffer.FAT_FRM),HL ; first sector FAT
LD (FatBuffer.FAT1_XX),HL ; first sector FAT #1
LD (FatBuffer.FAT2_XX),HL
@ -319,8 +320,7 @@ RD_BPB: LD C,SLOT3
LD (FatBuffer.CLU_LEN),HL
EX DE,HL
LD HL,#3FFF ;!TODO FATcacheSize
;XOR A
; A = 0
XOR A
;NEXTAD4 ;!FIXIT ®¯â¨¬¨§¨à®¢ âì ª®£¤  ¯®­ ¤®¡¨âáï
.loop4: INC A
JP Z,DOS_X_Error.UnknownBPB
@ -376,8 +376,8 @@ RD_BPB: LD C,SLOT3
////////////////////////////////////////////////////////////////////////
LD DE,(FatBuffer.DAT_FRM)
; LD E,(IY+#1C) ;Hidden sec
; LD D,(IY+#1D)
; LD E,(IY+_sBOOT_SEC.HIDDEN) ;Hidden sec
; LD D,(IY+_sBOOT_SEC.HIDDEN+1)
; AND A
; SBC HL,DE
; EX DE,HL
@ -572,6 +572,9 @@ BACK_CUR_PATH:
;///////////////////////////////////////////////////////////////////////
SCANDRV:
;1 [-----------] [-----------] [-----------] [-----------] [-----------]
; LD A,(LDRIVE)
; LD (.old_ldrive),A
;
CALL GETBOOT
LD (.old_letter),A ; bootdisk Log.number
; [-----------]
@ -603,6 +606,9 @@ SCANDRV:
CALL SETBOOT
JR C,.ERROR_BOOTDRV_DIES
LD (.new_letter),A
;
LD A,(.old_letter)
LD (BOOTDRV),A
;
;5 [-----------] [-----------] [-----------] [-----------] [-----------]
@ -641,14 +647,31 @@ SCANDRV:
EX DE,HL
LDDR
; ¯à®¢¥à塞, ­¥ 㢥«¨ç¨«®áì «¨ §­ ç¥­¨¥ LDRIVE
LD HL,.old_letter
LD A,(LDRIVE)
CP (HL)
JR NC,.no_change_LDRIVE
LD A,(HL)
LD (LDRIVE),A
;!TEST
LD HL,.old_letter
LD A,(LDRIVE)
CP (HL)
JR NC,.no_change_LDRIVE
LD A,(HL)
LD (LDRIVE),A
;
; .old_ldrive+1:
;LD L,0
;LD A,(LDRIVE)
;CP L
;JR NC,.no_change_LDRIVE
;LD A,L
;LD (LDRIVE),A
;
.no_change_LDRIVE:
;
; DEC A
; LD C,Dss.DskInfo
; RST ToDSS
; LD A,(BOOTDRV)
; LD C,Dss.ChDisk
; RST ToDSS
;;;;;
.restore_page+1:
LD A,0

View File

@ -1 +1 @@
280
297

View File

@ -4,7 +4,7 @@
;
DEFINE SHORT_RSTx10_TABLE 0 ; 㪮à®ç¥­­ ï â ¡«¨æ  ä㭪権 rst #10. 96 ä㭪権.
DEFINE COMPILE_UNUSED_CODE 0
DEFINE COMPILE_UNUSED_CODE 1
;
;