mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
134 lines
3.1 KiB
NASM
Executable File
134 lines
3.1 KiB
NASM
Executable File
; ¢ë§®¢ ¨§ hex-®ª
|
|
change_code_page1:
|
|
ld hl,ABB87 ; ¢ë¢¥á⨠áâà ¨æã hex-¤ ¬¯
|
|
jr $+5
|
|
; ¢ë§®¢ ¨§ ascii-®ª
|
|
change_code_page:
|
|
ld hl,AB390 ; ¢ë¢¥á⨠áâà ¨æã ⥪áâ
|
|
push hl ; ¢¥ªâ®à ¢ á⥪
|
|
ld hl,code_page ; 0/1/2 (Dos/Win/Koi)
|
|
ld a,(hl)
|
|
inc a
|
|
cp 3
|
|
jr nz,$+3
|
|
xor a
|
|
ld (hl),a
|
|
push af
|
|
ld c,a
|
|
add a,a
|
|
add a,c
|
|
ld c,a
|
|
ld b,0
|
|
ld a,(viewer_mode) ; 0/1 ०¨¬ ¢ìî¥à (®à¬./¯ ¥«ìë©)
|
|
or a
|
|
jr nz,ch_code_pg1
|
|
ld hl,TAE00 ; "WinKoiDos"
|
|
ld de,TAE02 ; "DOSWINKOI"
|
|
add hl,bc
|
|
ex de,hl
|
|
add hl,bc
|
|
ex de,hl
|
|
push de
|
|
push hl
|
|
push hl
|
|
ld de,TA29D+1 ; F8-¯ãªâ ASCII key-¡ à
|
|
call ch_code_pg
|
|
pop hl
|
|
ld de,TA33D+1 ; F8-¯ãªâ HEX key-¡ à
|
|
call ch_code_pg
|
|
; key-¡ à
|
|
ld de,1F39h ; Y/X ¯®«®¦.
|
|
ld c,84h ; ãáâ. ªãàá®à
|
|
rst 08h
|
|
pop hl ; ®âªã¤
|
|
ld bc,0386h ; ¢ë¢¥á⨠áâப㠢 3 ᨬ¢®«
|
|
rst 08h
|
|
; áâ â. áâப
|
|
ld de,0023h ; Y/X ¯®«®¦.
|
|
ld c,84h ; ãáâ. ªãàá®à
|
|
rst 08h
|
|
pop hl ; ®âªã¤
|
|
ld bc,0386h ; ¢ë¢¥á⨠áâப㠢 3 ᨬ¢®«
|
|
rst 08h
|
|
ch_code_pg1:
|
|
pop af ; ⥪. ª®¤¨à®¢ª
|
|
; ª®¤®¢ ï â ¡«¨æ
|
|
ld hl,code_tables ; win-1251
|
|
dec a
|
|
jr z,$+5
|
|
ld hl,code_tables+128 ; koi8-r
|
|
ld (addr_code_table+1),hl
|
|
ret
|
|
|
|
ch_code_pg:
|
|
ld bc,3
|
|
ldir
|
|
ret
|
|
|
|
|
|
|
|
;-------------------------------------------------
|
|
; ‚§ïâì ᨬ¢®« ¨§ ª®¤®¢®© â ¡«¨æë
|
|
;-------------------------------------------------
|
|
char_code_page:
|
|
cp 80h ; "€"
|
|
ret c
|
|
db 0Eh ; ld c,..
|
|
code_page:
|
|
db 0
|
|
dec c
|
|
inc c
|
|
ret z
|
|
exx
|
|
and 7Fh
|
|
ld l,a
|
|
ld h,0
|
|
addr_code_table:
|
|
ld bc,code_tables ; win-1251
|
|
add hl,bc
|
|
ld a,(hl)
|
|
exx
|
|
ret
|
|
|
|
|
|
|
|
|
|
;-------------------------------------------------
|
|
; Š®¤ë 2-© ¯®«®¢¨ë ascii-â ¡«¨æë
|
|
;-------------------------------------------------
|
|
code_tables:
|
|
; windows-1251
|
|
db 3Fh,3Fh,27h,3Fh,22h,3Ah,0C5h,0D8h
|
|
db 3Fh,25h,3Fh,3Ch,3Fh,3Fh,3Fh,3Fh
|
|
db 3Fh,27h,27h,22h,22h,07h,2Dh,2Dh
|
|
db 3Fh,54h,3Fh,3Eh,3Fh,3Fh,3Fh,3Fh
|
|
db 0FFh,0F6h,0F7h,3Fh,0FDh,3Fh,0B3h,15h
|
|
db 0F0h,63h,0F2h,3Ch,0BFh,2Dh,52h,0F4h
|
|
db 0F8h,2Bh,49h,69h,3Fh,0E7h,14h,0FAh
|
|
db 0F1h,0FCh,0F3h,3Eh,3Fh,3Fh,3Fh,0F5h
|
|
db 80h,81h,82h,83h,84h,85h,86h,87h
|
|
db 88h,89h,8Ah,8Bh,8Ch,8Dh,8Eh,8Fh
|
|
db 90h,91h,92h,93h,94h,95h,96h,97h
|
|
db 98h,99h,9Ah,9Bh,9Ch,9Dh,9Eh,9Fh
|
|
db 0A0h,0A1h,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h
|
|
db 0A8h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh
|
|
db 0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h
|
|
db 0E8h,0E9h,0EAh,0EBh,0ECh,0EDh,0EEh,0EFh
|
|
; koi8-r
|
|
db 0C4h,0B3h,0DAh,0BFh,0C0h,0D9h,0C3h,0B4h
|
|
db 0C2h,0C1h,0C5h,0DFh,0DCh,0DBh,0DDh,0DEh
|
|
db 0B0h,0B1h,0B2h,0F4h,0FEh,0F9h,0FBh,0F7h
|
|
db 0F3h,0F2h,0FFh,0F5h,0F8h,0FDh,0FAh,0F6h
|
|
db 0CDh,0BAh,0D5h,0F1h,0D6h,0C9h,0B8h,0B7h
|
|
db 0BBh,0D4h,0D3h,0C8h,0BEh,0BDh,0BCh,0C6h
|
|
db 0C7h,0CCh,0B5h,0F0h,0B6h,0B9h,0D1h,0D2h
|
|
db 0CBh,0CFh,0D0h,0CAh,0D8h,0D7h,0CEh,0FCh
|
|
db 0EEh,0A0h,0A1h,0E6h,0A4h,0A5h,0E4h,0A3h
|
|
db 0E5h,0A8h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh
|
|
db 0AFh,0EFh,0E0h,0E1h,0E2h,0E3h,0A6h,0A2h
|
|
db 0ECh,0EBh,0A7h,0E8h,0EDh,0E9h,0E7h,0EAh
|
|
db 9Eh,80h,81h,96h,84h,85h,94h,83h
|
|
db 95h,88h,89h,8Ah,8Bh,8Ch,8Dh,8Eh
|
|
db 8Fh,9Fh,90h,91h,92h,93h,86h,82h
|
|
db 9Ch,9Bh,87h,98h,9Dh,99h,97h,9Ah
|