Разные кодировки

Assembler programming questions
  • Второй вариант

    Code: Select all

    Win2Dos2:
            jcxz    .no_chars
            push    ebx
            push    edi
            push    ecx
            mov     edi, esi
            mov     ebx, Win2Dos_table
    
    .next_char:
            lodsb
            xlatb
            stosb
    
            dec     ecx
            jnz     .next_char
    
            pop     ecx
            pop     edi
            pop     ebx
    .no_chars:
            ret
    
    Win2Dos_table:
    rept 168 counter
    {        db counter - 1
    }
            db 0xF0
    rept 15 counter
    {        db counter + 168
    }
            db 0xF1
    rept 7 counter
    {        db counter + 184
    }
    rept 48 counter
    {        db counter + 127
    }
    rept 16 counter
    {        db counter + 223
    }
    
    Если кому интересно, могу добавить подробные комментарии.
  • ealex

    перекодировка ДОС-ВИН есть (была) в хекс-редакторе, тока (хотя я и обещал посмотреть её и приделать к тинипаду) я её не смотрел...
    ф-я очень нужная, будем надеяться mike.dld в скором времени обновит тинипад :)
  • Я реализовал перекодировку в своем RTF Reader и вполне ею доволен. Там конверсия путем вычитания кодов, и по таблице - для специальных символов. По возможности надо выложить исходники.
  • как на счёт добавления макросов в ascl?
  • Отрывок из RTF READER:

    Code: Select all

    ; in - al/ax; out - al
    macro uc2oem
    {
    local .ex1
        push edi
        mov  ecx,(oemutbl-uctbl)/2+1
        mov  edi,uctbl
        repne scasw
        jne  .ex1
        sub  edi,uctbl
        shr  edi,1
        dec  edi
        mov  al,[oemutbl+edi]
      .ex1:
        pop  edi
    }
    
    macro ansi2oem
    {
    local .ex2,.notintbl
        push edi ecx
        mov  ecx,oematbl-ansitbl
        mov  edi,ansitbl
        repne scasb
        jne  .notintbl
        dec  edi
        mov  al,[oematbl-ansitbl+edi]
        jmp  .ex2
      .notintbl:
        cmp  al,0xc0
        jb   .ex2
        sub  al,0x40
        cmp  al,0xb0
        jb   .ex2
        add  al,0x30
      .ex2:
        pop  ecx edi
    }
    
    ansitbl:
        db 0xaa,0xba,0xbf,0xaf
        db 0xa7,0xa8,0xa1,0xab,0xb0,0xb2,0xb3,0xb6,0xb7,0xb8,0xb9
        db 0xa2,0xbb,0x93,0x94,0x85
    oematbl:
        db 0xf2,0xf3,0xf5,0xf4
        db 0x15,0xf0,0xf6,0x22,0x1d,0x49,0x69,0x14,0x1c,0xf1,0x23
        db 0xf7,0x22,0x22,0x22,0x16
    uctbl:
        dw 0x451
    oemutbl:
        db 0xb8
    
  • Андрей, GameMaker - это хорошо, но RTF-редактор важнее ;)
  • Я так скажу. С точки зрения доступа к данным формат RTF очень неудобен по сравнению например с Word. RTF редактор или даже удобную читалку с возможностью навигации по тексту сделать не легче, чем браузер...
  • Кстати, помнится ты около года назад писал карточную игру с искуственным интеллектом. Как её судьба?
  • Что-то не выходит. Запутался. Возможно, большую часть кода нужно будет пересмотреть и переписать
  • У меня тоже где-то валяется недописанный "Козел". Могу передать исходники, кто интересуется.
  • Почему нет? Кидай на wil[underline]low[at]hotbox[dot]ru
  • ealex

    ИМХО нужно внутренне представлять символы текста в UCS32.
    Тогда можно обеспечить реальную многоязыковую поддержку.

    Сам недавно прорабатывал вопрос с перекодированием здесь.
    Исходники на Oberon прилагаются :D
  • А я лично за UTF8. По-моему, вполне достаточно будет для такой ОС как Колибри.
  • боюсь что в конечном итоге все наиболее распространенные кодировки кириллицы будут нужны
  • Who is online

    Users browsing this forum: No registered users and 1 guest