User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 27

Тема: Запакованный текст на C64 и Apple][

  1. #11

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GARNIZON Посмотреть сообщение
    Что вы, и на этом спасибо! Единственное что, нельзя ли увидеть в моем дампе хотя бы - где хранится каталог фраз. Т.е. есть ли где-то в явном виде начала строк?
    насчет каталога фраз
    он их высчитывает
    но есть ссылки на какие то блоки вот этих видимо фраз

    Код:
    RAM:7254 txt_blks_l:     .BYTE    0,   0, $10, $D5,   7, $DB, $7E, $C0, $51, $33, $22, $6E, $C1, $28, $82,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
    RAM:7270 txt_blks_h:     .BYTE    0, $77, $7A, $7A, $7C, $7E, $82, $84, $86, $8A, $8F, $B6, $BC, $BE, $BE,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
    
    RAM:734E dep_blocktxt:                           ; CODE XREF: sub_72D3:loc_732Bp
    RAM:734E                 INC     byte_7291
    RAM:7351                 TAX
    RAM:7352                 LDA     txt_blks_l,X
    RAM:7355                 STA     block_text
    RAM:7357                 LDA     txt_blks_h,X
    RAM:735A                 STA     block_text+1
    RAM:735C                 JSR     init_depak
    RAM:735F                 LDY     #0
    RAM:7361                 JSR     depak_message
    RAM:7364                 RTS
    RAM:7364 ; End of function dep_blocktxt
    RAM:7364
    RAM:7365
    RAM:7365 ; =============== S U B R O U T I N E =======================================
    RAM:7365
    RAM:7365
    RAM:7365 depak_message:                          ; CODE XREF: dep_blocktxt+13p
    RAM:7365                 LDX     message_num
    RAM:7368                 BEQ     depak
    RAM:736A                 LDY     #8
    RAM:736C
    RAM:736C text_seek:                              ; CODE XREF: depak_message+11j
    RAM:736C                                         ; depak_message+18j
    RAM:736C                 LDA     (in_ptr),Y
    RAM:736E                 INC     in_ptr
    RAM:7370                 BNE     loc_7374
    RAM:7372                 INC     in_ptr+1
    RAM:7374
    RAM:7374 loc_7374:                               ; CODE XREF: depak_message+Bj
    RAM:7374                 CMP     #$FF
    RAM:7376                 BNE     text_seek
    RAM:7378                 LDA     (in_ptr),Y
    RAM:737A                 STA     cur_in_bs
    RAM:737C                 DEX
    RAM:737D                 BNE     text_seek
    RAM:737F
    RAM:737F depak:                                  ; CODE XREF: depak_message+3j
    RAM:737F                                         ; depak_message+3Ej
    RAM:737F                 JSR     pick_char
    RAM:7382                 CMP     #$FF
    RAM:7384                 BEQ     char_decrunched
    RAM:7386                 CMP     #$1B
    RAM:7388                 BEQ     use_second_charset
    RAM:738A                 AND     #$1F
    RAM:738C                 TAX
    RAM:738D                 LDA     first_char_set,X
    RAM:7390                 JMP     char_decrunched
    RAM:7393 ; ---------------------------------------------------------------------------
    RAM:7393
    RAM:7393 use_second_charset:                     ; CODE XREF: depak_message+23j
    RAM:7393                 JSR     pick_char
    RAM:7396                 CMP     #$FF
    RAM:7398                 BEQ     char_decrunched
    RAM:739A                 AND     #$1F
    RAM:739C                 TAX
    RAM:739D                 LDA     second_char_set,X
    RAM:73A0
    RAM:73A0 char_decrunched:                        ; CODE XREF: depak_message+1Fj
    RAM:73A0                                         ; depak_message+2Bj ...
    RAM:73A0                 JSR     print_char
    RAM:73A3                 BCC     depak
    RAM:73A5                 RTS
    RAM:73A5 ; End of function depak_message
    RAM:73A5
    RAM:73A6
    RAM:73A6 ; =============== S U B R O U T I N E =======================================
    RAM:73A6
    RAM:73A6
    RAM:73A6 cr_lf:                                  ; CODE XREF: print_char:cc_enterp
    RAM:73A6                 PHA
    RAM:73A7                 LDA     print_shift
    RAM:73A9                 CLC
    RAM:73AA                 ADC     print_adr
    RAM:73AC                 CMP     #$71 ; 'q'
    RAM:73AE                 BCS     not_line0
    RAM:73B0                 LDA     #$71 ; 'q'
    RAM:73B2                 JMP     set_line_adr
    RAM:73B5 ; ---------------------------------------------------------------------------
    RAM:73B5
    RAM:73B5 not_line0:                              ; CODE XREF: cr_lf+8j
    RAM:73B5                 CMP     #$99 ; 'Щ'
    RAM:73B7                 BCS     not_line1
    RAM:73B9                 LDA     #$99 ; 'Щ'
    RAM:73BB                 JMP     set_line_adr
    RAM:73BE ; ---------------------------------------------------------------------------
    RAM:73BE
    RAM:73BE not_line1:                              ; CODE XREF: cr_lf+11j
    RAM:73BE                 LDA     #$C1 ; '+'
    RAM:73C0
    RAM:73C0 set_line_adr:                           ; CODE XREF: cr_lf+Cj
    RAM:73C0                                         ; cr_lf+15j
    RAM:73C0                 STA     print_adr
    RAM:73C2                 PLA
    RAM:73C3                 LDY     #0
    RAM:73C5                 STY     print_shift
    RAM:73C7                 RTS
    RAM:73C7 ; End of function cr_lf
    RAM:73C7
    RAM:73C8
    RAM:73C8 ; =============== S U B R O U T I N E =======================================
    RAM:73C8
    RAM:73C8
    RAM:73C8 print_char:                             ; CODE XREF: sub_733D+5p
    RAM:73C8                                         ; depak_message:char_decrunchedp
    RAM:73C8                 CMP     #$FF
    RAM:73CA                 BEQ     cc_endprint
    RAM:73CC                 STY     temp_Y
    RAM:73CE                 CMP     #$D
    RAM:73D0                 BNE     not_cc_enter
    RAM:73D2                 LDA     inverse_flag
    RAM:73D4                 BEQ     cc_enter
    RAM:73D6                 LDA     #$D
    RAM:73D8                 JMP     not_cc_enter
    RAM:73DB ; ---------------------------------------------------------------------------
    RAM:73DB
    RAM:73DB cc_enter:                               ; CODE XREF: print_char+Cj
    RAM:73DB                 JSR     cr_lf
    RAM:73DE                 JMP     next_char
    RAM:73E1 ; ---------------------------------------------------------------------------
    RAM:73E1
    RAM:73E1 not_cc_enter:                           ; CODE XREF: print_char+8j
    RAM:73E1                                         ; print_char+10j
    RAM:73E1                 LDY     inverse_flag
    RAM:73E3                 BEQ     not_inverted
    RAM:73E5                 ORA     #$80 ; 'А'
    RAM:73E7
    RAM:73E7 not_inverted:                           ; CODE XREF: print_char+1Bj
    RAM:73E7                 LDY     print_shift
    RAM:73E9                 STA     (print_adr),Y
    RAM:73EB                 INC     print_shift
    RAM:73ED
    RAM:73ED next_char:                              ; CODE XREF: print_char+16j
    RAM:73ED                 LDY     temp_Y
    RAM:73EF                 CLC
    RAM:73F0                 RTS
    RAM:73F1 ; ---------------------------------------------------------------------------
    RAM:73F1
    RAM:73F1 cc_endprint:                            ; CODE XREF: print_char+2j
    RAM:73F1                 JSR     sub_73F6
    RAM:73F4                 SEC
    RAM:73F5                 RTS
    RAM:73F5 ; End of function print_char
    RAM:73F5
    RAM:73F6
    RAM:73F6 ; =============== S U B R O U T I N E =======================================
    RAM:73F6
    RAM:73F6
    RAM:73F6 sub_73F6:                               ; CODE XREF: sub_733D+Dp
    RAM:73F6                                         ; print_char:cc_endprintp
    RAM:73F6                 LDA     print_adr
    RAM:73F8                 CLC
    RAM:73F9                 ADC     print_shift
    RAM:73FB                 SEC
    RAM:73FC                 SBC     #72
    RAM:73FE                 STA     byte_7292
    RAM:7401                 RTS
    RAM:7401 ; End of function sub_73F6
    RAM:7401
    RAM:7402
    RAM:7402 ; =============== S U B R O U T I N E =======================================
    RAM:7402
    RAM:7402
    RAM:7402 init_depak:                             ; CODE XREF: dep_blocktxt+Ep
    RAM:7402                 LDY     #8
    RAM:7404                 STY     curr_in_ctr
    RAM:7406                 LDA     block_text
    RAM:7408                 LDX     block_text+1
    RAM:740A                 SEC
    RAM:740B                 SBC     #8
    RAM:740D                 STA     in_ptr
    RAM:740F                 BCS     loc_7412
    RAM:7411                 DEX
    RAM:7412
    RAM:7412 loc_7412:                               ; CODE XREF: init_depak+Dj
    RAM:7412                 STX     in_ptr+1
    RAM:7414                 LDA     (in_ptr),Y
    RAM:7416                 STA     cur_in_bs
    RAM:7418                 LDA     #5
    RAM:741A                 STA     cur_char_ctr
    RAM:741C                 LDA     #3
    RAM:741E                 STA     byte_75
    RAM:7420                 RTS
    RAM:7420 ; End of function init_depak
    RAM:7420
    RAM:7421
    RAM:7421 ; =============== S U B R O U T I N E =======================================
    RAM:7421
    RAM:7421
    RAM:7421 pick_char:                              ; CODE XREF: depak_message:depakp
    RAM:7421                                         ; depak_message:use_second_charsetp
    RAM:7421                 LDY     curr_in_ctr
    RAM:7423                 LDX     cur_char_ctr
    RAM:7425                 LDA     #0
    RAM:7427
    RAM:7427 pick_bits:                              ; CODE XREF: pick_char+Dj
    RAM:7427                 ROL     cur_in_bs
    RAM:7429                 ROL     A
    RAM:742A                 DEY
    RAM:742B                 BEQ     pick_next_bs
    RAM:742D
    RAM:742D cont_bs_strip:                          ; CODE XREF: pick_char+26j
    RAM:742D                 DEX
    RAM:742E                 BNE     pick_bits
    RAM:7430                 STY     curr_in_ctr
    RAM:7432                 RTS
    RAM:7433 ; ---------------------------------------------------------------------------
    RAM:7433
    RAM:7433 pick_next_bs:                           ; CODE XREF: pick_char+Aj
    RAM:7433                 LDY     #8
    RAM:7435                 STY     curr_in_ctr
    RAM:7437                 INC     in_ptr
    RAM:7439                 BNE     loc_743D
    RAM:743B                 INC     in_ptr+1
    RAM:743D
    RAM:743D loc_743D:                               ; CODE XREF: pick_char+18j
    RAM:743D                 PHA
    RAM:743E                 LDA     (in_ptr),Y
    RAM:7440                 CMP     #$FF
    RAM:7442                 BEQ     end_pattern
    RAM:7444                 STA     cur_in_bs
    RAM:7446                 PLA
    RAM:7447                 JMP     cont_bs_strip
    RAM:744A ; ---------------------------------------------------------------------------
    RAM:744A
    RAM:744A end_pattern:                            ; CODE XREF: pick_char+21j
    RAM:744A                 PLA
    RAM:744B                 LDA     #$FF
    RAM:744D                 RTS
    С уважением,
    Jerri / Red Triangle.

  2. #12

    Регистрация
    16.11.2015
    Адрес
    г. Москва
    Сообщений
    234
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    из очередного байта добираются 5 бит
    В Apple такой способ используется еще в Мониторе - там мнемоники команд для встроенного дизассемблера так хранятся.

    Цитата Сообщение от jerri Посмотреть сообщение
    у них 40 символов
    как они кодируют еще 8?
    Считайте, что 16-битное слово - это трехзначное число в 40-ринчой системе счисления. То есть берете первый символ (от 0 до 39), потом второй символ и умножаете его на 40, потом третий символ и умножаете его на 1600. Потом все складываете. Получается 3 символа в слове.
    Чтобы распаковать - действуете в обратную сторону, то есть берете по модулю 40 - получаете первый символ, делите на 40 - получаете второй, делите на 1600 - получаете третий.

    Этот пользователь поблагодарил avivanov76 за это полезное сообщение:

    jerri(18.10.2019)

  3. #13

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    GARNIZON, а для чего этот взлом?
    хочешь портировать?
    С уважением,
    Jerri / Red Triangle.

  4. #14

    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,454
    Спасибо Благодарностей отдано 
    195
    Спасибо Благодарностей получено 
    161
    Поблагодарили
    99 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    GARNIZON, а для чего этот взлом?
    хочешь портировать?
    Игра состоит из двух частей, русифицирована только первая часть. Вторая, из-за повреждённого диска-оригинала, русифицирована не была. Поэтому основная цель - русификация второй части.

    Как поиск квеста "Алиса в стране чудес" сам превратился в квест
    Последний раз редактировалось AlexBel; 12.12.2018 в 13:38.

  5. #15

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    GARNIZON, я тут эмулятор присмотрел нормальный
    может и посмотрю различия с с64 версией
    С уважением,
    Jerri / Red Triangle.

  6. #16

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    GARNIZON, короче
    с первого диска грузится картинка в лоурез графическом режиме
    если сможешь расшифровать то что они делают в этом блоке?
    300 HOME : POKE 230,32: CALL 62450: HGR : POKE 49234,0: PRINT CHR$(4);"BLOAD WINDHAM": POKE 49238,0: POKE 49235,0
    400 PRINT CHR$(4);"BRUN GAME"
    410 END
    WINDHAM - та самая картинка
    GAME грузится по адресу #4000 и туда же запускается

    - - - Добавлено - - -

    Код:
    take_InStream:                          ; CODE XREF: take_char+Aj
    RAM:440A                 PHA
    RAM:440B                 LDY     #8
    RAM:440D                 STY     In_byte_ctr
    RAM:440F                 INC     InStreamPtr
    RAM:4411                 BNE     loc_441F
    RAM:4413                 INC     InStreamPtr+1
    RAM:4415                 LDA     InStreamPtr+1
    RAM:4417                 CMP     #$B6 ; '¦'      ; in_data reaches #b600
    RAM:4419                 BNE     loc_441F
    RAM:441B                 LDA     #$E3 ; 'у'      ; skip data to E300
    RAM:441D                 STA     InStreamPtr+1
    RAM:441F
    RAM:441F loc_441F:                               ; CODE XREF: take_char+19j
    RAM:441F                                         ; take_char+21j
    RAM:441F                 LDA     (InStreamPtr),Y
    RAM:4421                 CMP     #$FF
    RAM:4423                 BEQ     phrase_ended
    RAM:4425                 STA     InStreamByte
    RAM:4427                 PLA
    RAM:4428                 JMP     loc_4404

    я так понимаю часть данных при загрузке до адреса #b600 продолжается с E300
    С уважением,
    Jerri / Red Triangle.

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    IDA Version 6.8.150423 (32-bit)
    частично разобранная алиса (уровень еще не загружен)
    на экране надпись (insert side B and press SPACE)
    С уважением,
    Jerri / Red Triangle.

  9. #18

    Регистрация
    12.02.2008
    Адрес
    S-Posad
    Сообщений
    472
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    35 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    а для чего этот взлом?
    Вот как сказал AlexBel, есть "жалостливая" история: http://forum.agatcomp.ru//viewtopic.php?id=211
    Там как раз в конце есть ссылка на остальное. Хотелось бы после реализации этого, рискнуть заняться русификацией комодоровской версии.

    Цитата Сообщение от jerri Посмотреть сообщение
    WINDHAM - та самая картинка
    GAME грузится по адресу #4000 и туда же запускается
    Я после операции, и не быстро реагирую на форум, иначе бы уже прислал ссылку на то, что уже накопал:
    http://agatcomp.ru/Gamez/Alice_Q.shtml
    Последний раз редактировалось GARNIZON; 14.12.2018 в 00:49.

  10. #19

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GARNIZON Посмотреть сообщение
    Вот как сказал AlexBel, есть "жалостливая" история: http://forum.agatcomp.ru//viewtopic.php?id=211
    Там как раз в конце есть ссылка на остальное. Хотелось бы после реализации этого, рискнуть заняться русификацией комодоровской версии.



    Я после операции, и не быстро реагирую на форум, иначе бы уже прислал ссылку на то, что уже накопал:
    http://agatcomp.ru/Gamez/Alice_Q.shtml
    ага
    ну насчет загрузки с первого диска - я его не видел
    насчет спрайтов 24х21

    авторы изначально ориентировались на С64
    это стандарт с64
    кстати как они обошли Аппловский рваный экран?

    короче выводы верные
    на втором диске карты экранов, шрифты для них и спрайты персонажей.
    когда я смотрел коммодоровскую загрузку то в этих рваных подгрузках он грузил спрайты и экраны.
    С уважением,
    Jerri / Red Triangle.

  11. #20

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Модераторы, перенесите тему в соответствующий компьютеру раздел.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Конвертер из Tasm и Alasm в текст
    от Raider в разделе Программирование
    Ответов: 11
    Последнее: 24.11.2024, 12:09
  2. Ответов: 12
    Последнее: 09.06.2018, 08:22
  3. Пишем текст на ПЦ формат 42 ZX как???
    от Mad Killer/PG в разделе Утилиты
    Ответов: 18
    Последнее: 15.07.2011, 22:39

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •