; вызов из 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