-bug in DIR с русскими буквами. опять Савелий нашёл)))

This commit is contained in:
Tolik 2025-06-25 00:15:30 +10:00
parent 072ed4ed60
commit 49af2b4266
7 changed files with 95 additions and 76 deletions

View File

@ -51,16 +51,16 @@ cls_clear: ld a,b
; ascii -> int ; ascii -> int
ascii2byte: ascii2byte: cp "0"
cp "0" ret c
ret c cp "9"+1
cp "9"+1 jr c,.number
jr c,$+10 ;!FIXIT $ ;
and 5Fh and %0101'1111
cp "F"+1 cp "F"+1
ccf ccf
ret c ret c
sub 7 sub 7
sub "0" .number: sub "0"
or a or a
ret ret

View File

@ -328,7 +328,7 @@ Print_Header: ; %1
JP ECHO_MESSAGE ; ¢ë¢¥á⨠áâபã JP ECHO_MESSAGE ; ¢ë¢¥á⨠áâபã
; ;
; <20>®¤£®â®¢¨âì áâபã ᯨ᪠ ä ©«®¢/¯ ¯®ª ; <20>®¤£®â®¢¨âì áâபã ᯨ᪠ ä ©«®¢/¯ ¯®ª ; !FIXIT ­¥ £®â®¢  ª LFN
PRNNAME: dec hl PRNNAME: dec hl
ld a,(hl) ld a,(hl)
and FAT_ATTR.DIRECTORY and FAT_ATTR.DIRECTORY
@ -358,18 +358,22 @@ PRNNAME: dec hl
ld b,11 ;!HARDCODE ¤«¨­  ¨¬¥­¨ DOS ld b,11 ;!HARDCODE ¤«¨­  ¨¬¥­¨ DOS
.loop: inc hl .loop: inc hl
ld a,(hl) ld a,(hl)
cp 'A' call CorrBigChar
jr c,.next ; cp 'A'
cp 'Z'+1 ; jr c,.next
jr c,.letter ; cp 'Z'+1
; ; jr c,.letter
cp '€' ;#80 ; ;
jr c,.next ; cp '€' ;#80
cp 'Ÿ'+1 ;#9F + 1 ; jr c,.next
jr nc,.next ; cp '<27>'+1 ;#9F + 1
; ; jr c,.letter
.letter: or %0010'0000 ; ;
ld (hl),a ; cp 'Ÿ'+1
; jr c,.next
; ;
; .letter: or %0010'0000
ld (hl),a
.next: djnz .loop .next: djnz .loop
ex de,hl ex de,hl
ret ret

View File

@ -55,11 +55,7 @@ COMP: call EVALCMD ; (batch.asm)
cp c ; 2-© ᨬ¢®« cp c ; 2-© ᨬ¢®«
jr nz,RUN_EXT ; § ¤ ­ ­¥ ¤¨áª jr nz,RUN_EXT ; § ¤ ­ ­¥ ¤¨áª
ld a,b ; 1-© ᨬ¢®« ld a,b ; 1-© ᨬ¢®«
cp "a" CALL COMPARE.cmp_AZ
jr c,.NOUP
cp "z"+1
jr nc,.NOUP
and #5F ; a..z -> A..Z
.NOUP: sub "A" ; ­®¬¥à ¤¨áª  .NOUP: sub "A" ; ­®¬¥à ¤¨áª 
ld (.dsk),a ld (.dsk),a
ld c,Dss.ChDisk ; ᬥ­¨âì ⥪. ¤¨áª ld c,Dss.ChDisk ; ᬥ­¨âì ⥪. ¤¨áª

View File

@ -9,11 +9,7 @@ RUN_COMMAND:
push de push de
; ;
.loop: ld a,(de) .loop: ld a,(de)
cp "a" CALL COMPARE.cmp_AZ
jr c,.skip
cp "z"+1
jr nc,.skip
and %0101'1111 ; a..z -> A..Z
.skip: cp (hl) .skip: cp (hl)
jr nz,.not_cmd ; ­¥ ª®¬ ­¤  jr nz,.not_cmd ; ­¥ ª®¬ ­¤ 
inc hl inc hl

View File

@ -221,4 +221,29 @@ volume_string_yes: db "has label",0
; ;
; has_not_full_info: db ' (?)',0 ; has_not_full_info: db ' (?)',0
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
;<3B>à®æ¥¤ãà  ª®à४樨 ¡ãª¢ë ª ¬ «¥­ìª®© ¡ãª¢¥
CorrBigChar: CP 'A'
RET C
CP 'Z' + 1
JR NC,.CheckRUS
.Dec: ADD #20
RET
;
.CheckRUS: CP '€'
RET C
CP '<27>'+1
JR C,.Dec
;
.BGUPPER: CP 'Ÿ' + 1
JR NC,.HGUPPER
ADD #50
RET
;
.HGUPPER: CP 'ð' ; àãááª ï ¡ãª¢  ñ, ª®¤ #F1
RET NZ
INC A
RET

View File

@ -285,30 +285,26 @@ GET_CMD:
; ’¥áâ ­  ®¯æ¨¨ 襫«  ¨ ãáâ. ¡¨â-ä« £®¢ ; ’¥áâ ­  ®¯æ¨¨ 襫«  ¨ ãáâ. ¡¨â-ä« £®¢
; ¢å®¤: hl=áâப  ®¯æ¨© ; ¢å®¤: hl=áâப  ®¯æ¨©
set_option_flag: set_option_flag:
ld a,(RUNMODE) ; ï祩ª  ¡¨â-ä« £®¢ ld a,(RUNMODE) ; ï祩ª  ¡¨â-ä« £®¢
ld c,a ld c,a
ld a,(hl) ld a,(hl)
cp "a" call COMPARE.cmp_AZ
jr c,setopt1 .setopt1: cp "P" ; § ¯ã᪠襫«  á ®âà ¡. autoexec.bat
cp "z"+1 jr nz,.setopt2
jr nc,$+4 ;!FIXIT $ set 7,c
and #5F ; a..z -> A..Z jr .setopt4
setopt1: cp "P" ; § ¯ã᪠襫«  á ®âà ¡. autoexec.bat ;
jr nz,setopt2 .setopt2: cp "S" ; § ¯ã᪠2-© ª®¯¨¨ 襫«  (¡¥§ ®âà ¡. autoexec.bat)
set 7,c jr nz,.setopt3
jr setopt4 set 5,c
; jr .setopt4
setopt2: cp "S" ; § ¯ã᪠2-© ª®¯¨¨ 襫«  (¡¥§ ®âà ¡. autoexec.bat) ;
jr nz,setopt3 .setopt3: cp "C" ; ¢ë¯®«­. bat-ä ©« ¨ ¢¥à­ãâìáï ¢ த¨â. ¯à®æ¥áá
set 5,c ret nz
jr setopt4 set 4,c
; .setopt4: ld a,c
setopt3: cp "C" ; ¢ë¯®«­. bat-ä ©« ¨ ¢¥à­ãâìáï ¢ த¨â. ¯à®æ¥áá ld (RUNMODE),a
ret nz ret
set 4,c
setopt4: ld a,c
ld (RUNMODE),a
ret
; ‘®åà ­¨âì ⥪. ¤¨áª ¨ ¯ãâì ; ‘®åà ­¨âì ⥪. ¤¨áª ¨ ¯ãâì
@ -355,23 +351,25 @@ newline: push hl
pop hl pop hl
ret ret
; ‘à ¢­¥­¨¥ áâப ; ‘à ¢­¥­¨¥ áâப (€­£«¨©áª¨©)
; in: de=string1 ; in: de=string1
; hl=string2 ; hl=string2
; b=¤«¨­  áâப¨ ; b=¤«¨­  áâப¨
COMPARE: COMPARE: ld a,(de)
ld a,(de) call .cmp_AZ
cp "a" .next: cp (hl)
jr c,.next ret nz
cp "z"+1 inc hl
jr nc,.next inc de
and 5Fh ; a..z -> A..Z djnz COMPARE
.next: cp (hl) ret
ret nz ;
inc hl .cmp_AZ: cp "a"
inc de ret c
djnz COMPARE cp "z"+1
ret ret nc
and %0101'1111 ; a..z -> A..Z
ret
; ‘ª®¯¨à. áâபã (á ­ã«¥¬), ¬ ªá. 15 ᨬ¢®«®¢ ; ‘ª®¯¨à. áâபã (á ­ã«¥¬), ¬ ªá. 15 ᨬ¢®«®¢

View File

@ -1 +1 @@
518 522