Важная информация

User Tag List

Показано с 1 по 7 из 7

Тема: Система программирования на ассемблере для ЮТ-88

  1. #1
    Доктор Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,078
    Благодарностей: 818
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Система программирования на ассемблере для ЮТ-88

    Вот, собрал систему кросс-платформенного программирования на ассемблере для ЮТ-88.
    Исходник редактируете в file.asm, запускаете compile.bat, файлик ассемблируется, переводится в формат .rku и запускается.
    Для нормального запуска формат файлов .rku должен быть ассоциирован с эмулятором Виктора Пыхохина.

    Вначале хотел сделать для Радио-86РК, но не разобрался с алгоритмом вычисления контрольной суммы. Поэтому сделал ЮТ-88.
    Если кто знает, как её вычислять - расскажите, буду благодарен и сделаю такуюже систему для рк.
    Вложения Вложения
    • Тип файла: rar ut88.rar (47.5 Кб, Просмотров: 264)
    нефть.

  2. Эти 3 пользователя(ей) поблагодарили Kakos_nonos за это полезное сообщение:
    Ewgeny7 (25.04.2016), perestoronin (08.02.2016), SeaBirdDK (11.03.2017)

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

  4. #2
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,368
    Благодарностей: 746
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    Если кто знает, как её вычислять - расскажите, буду благодарен и сделаю такуюже систему для рк.
    Почитай в Радио 7 1988г.

    ---------- Post added at 16:12 ---------- Previous post was at 15:59 ----------

    Чейто сам прочитал что посоветовал - ахинея какая то. А п/п F82A?

  5. #3
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,178
    Благодарностей: 924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    Вот, собрал систему кросс-платформенного программирования на ассемблере для ЮТ-88.
    Чтобы tasm делал сразу бинарник, надо запускать с ключём -b
    Чтобы tasm не делал листинга, надо запускать с ключём -q
    Не обязательно пользоваться устаревшим эмулятором Пыхонина, в моём эмуляторе можно в отладчике подключать листинг tasm-а и отлаживать прямо по исходному тексту. Кроме того, есть возможность сделать ассоциацию с бинарным файлом, т.е. загружать напрямую, а не через .rku

  6. #4
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    Павлодар
    Сообщений
    2,749
    Благодарностей: 1373
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir_S Посмотреть сообщение
    Почитай в Радио 7 1988г.

    ---------- Post added at 16:12 ---------- Previous post was at 15:59 ----------

    Чейто сам прочитал что посоветовал - ахинея какая то. А п/п F82A?
    Да, там просто ужас. Лучше примеры. Номер первый - листинг из загрузчика Специалиста (контролька, как известно, у всех одинаковая была):
    Код:
    ROM:C427 ; =============== S U B R O U T I N E =======================================
    ROM:C427
    ROM:C427 ; Cравнение HL и DE. Портит [A], выставляет флаги.
    ROM:C427
    ROM:C427 BIOS_HL_DE_Compare:                     ; CODE XREF: BIOS_Load_Block_Loop+6p
    ROM:C427                                         ; BIOS_Copy_HL2BC+4p ...
    ROM:C427                 mov     a, h
    ROM:C428                 cmp     d
    ROM:C429                 rnz
    ROM:C42A                 mov     a, l
    ROM:C42B                 cmp     e
    ROM:C42C                 ret
    ROM:C42C ; End of function BIOS_HL_DE_Compare
    
    ROM:CC89 ; =============== S U B R O U T I N E =======================================
    ROM:CC89
    ROM:CC89 ; Считает контрольную сумму для блока [HL]..[DE] и возвращает ее в [BC].
    ROM:CC89
    ROM:CC89 Mon_Count_Check_Sum_J:                  ; CODE XREF: ROM:Mon_Count_Check_Sumj
    ROM:CC89                                         ; Mon_Command+153p ...
    ROM:CC89
    ROM:CC89 ; FUNCTION CHUNK AT ROM:CCAB SIZE 00000002 BYTES
    ROM:CC89
    ROM:CC89                 lxi     b, 0
    ROM:CC8C
    ROM:CC8C loc_CC8C:                               ; CODE XREF: Mon_Count_Check_Sum_J+14j
    ROM:CC8C                 mov     a, m
    ROM:CC8D                 add     c
    ROM:CC8E                 mov     c, a
    ROM:CC8F                 push    psw
    ROM:CC90                 call    BIOS_HL_DE_Compare ; Cравнение HL и DE. Портит [A], выставляет флаги.
    ROM:CC93                 jz      loc_CCAB
    ROM:CC96                 pop     psw
    ROM:CC97                 mov     a, b
    ROM:CC98                 adc     m
    ROM:CC99                 mov     b, a
    ROM:CC9A                 call    sub_CCA0
    ROM:CC9D                 jmp     loc_CC8C
    ROM:CCA0 sub_CCA0:                               ; CODE XREF: Mon_Count_Check_Sum_J+11p
    ROM:CCA0                 call    BIOS_HL_DE_Compare ; Cравнение HL и DE. Портит [A], выставляет флаги.
    ROM:CCA3                 jnz     loc_CCA9
    ROM:CCA6                 inx     sp
    ROM:CCA7                 inx     sp
    ROM:CCA8                 ret
    ROM:CCA9 loc_CCA9:                               ; CODE XREF: sub_CCA0+3j
    ROM:CCA9                 inx     h
    ROM:CCAA                 ret
    ROM:CCAB loc_CCAB:                               ; CODE XREF: Mon_Count_Check_Sum_J+Aj
    ROM:CCAB                 pop     psw
    ROM:CCAC                 ret
    ROM:CCAC ; END OF FUNCTION CHUNK FOR Mon_Count_Check_Sum_J
    Да, это буйство символов сразу и не понять. И да, вы все правильно поняли: вторая проверка на [HL]=[DE] никогда не сработает. Более того, старший байт контрольки не обновляется на последнем байте. Все это особенности реальной контрольки, применяемой в РК86, Специалисте и Орионе и используемой в дамплистах журнала Радио. Чтобы облегчить вам жизнь, я дам вот такой, полностью рабочий и много лет как проверенный алгоритм на паскале:
    Код:
    // Вычисление контрольки
    // AdrB - начальный адрес в буфере данных
    // AdrE - конечный адрес в буфере данных
    // Buf[] - буфер данных
    function CheckSum(AdrB,AdrE:Word):Word;
    Var SumH:Byte; // Старший байт контрольки
        SumL:Word; // Младший байт контрольки + перенос
    Begin
      // Обнулим
      SumL:=0; SumH:=0;
      // Вечный цикл
      while true do begin
        // Складываем младшую часть контрольки, сохраняем перенос
        SumL:=Lo(SumL)+Buf[AdrB];
        // Если достигли конца - выходим из цикла
        if AdrB=AdrE then Break;
        // Складываем старшую часть контрольки и перенос
        SumH:=SumH+Buf[AdrB]+Hi(SumL);
        // Увеличиваем адрес
        Inc(AdrB);
        End;
      // Возвращаем контрольку
      CheckSum:=SumH*256+Lo(SumL);
    End;
    Теперь, я думаю все будет понятно. Отмечу лишь то, что у Специалиста контролька идет младшим байтом вперед и сразу же за блоком кодов, а у Ориона она идет после синхробайта и старшим вперед (и ЕМНИП проинвертирована - поправьте если что не так).

  7. #5
    Activist Аватар для san010101
    Регистрация
    18.11.2015
    Адрес
    г. Красноярск
    Сообщений
    221
    Благодарностей: 82
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всем привет, нашел прекрасное средство разработки для i8080 вместе с эмулятором
    автор макроса shoorick
    Есть соседняя ветка в форуме
    http://zx-pk.ru/showthread.php?t=26144
    и ссылка на сайт
    http://www.winasm.net/fasm-i8080-emulator.html
    тут архив с полным пакетом, настроен под ПК Специалист, но переделать под ЮТ-88 не составит труда.
    Мною проверенно, работает и весьма удобно.
    Не сочтите за рекламу!

  8. Эти 2 пользователя(ей) поблагодарили san010101 за это полезное сообщение:
    perestoronin (08.02.2016), Viktor2312 (07.02.2016)

  9. #6
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    9,451
    Благодарностей: 3797
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от san010101 Посмотреть сообщение
    Мною проверенно, работает и весьма удобно.
    Не сочтите за рекламу!
    "Login or register for download" - не годно...
    Если есть возможность скачать и положить на обменник - будет лучше
    Scorpion ZS 1024 turbo+/ZXMC 2.6/SD-HDD/FDD/AT-Keyb/Mouse/SMUC 2.0/ProfROMse/VGA 3.0/NeoGS
    ZX-Evolution 4096 rev.B

    Сайт с документацией к "Scorpion ZS 256"

  10. #7
    Banned
    Регистрация
    04.03.2010
    Адрес
    Россия. Пятигорск.
    Сообщений
    2,313
    Благодарностей: 3630
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Если есть возможность скачать и положить на обменник - будет лучше
    Скачать spec.zip

  11. Этот пользователь поблагодарил Viktor2312 за это полезное сообщение:
    perestoronin (08.02.2016)

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

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

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

Похожие темы

  1. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 19:56
  2. Пишем на ассемблере под эмулятором
    от GM BIT в разделе Для начинающих
    Ответов: 76
    Последнее: 15.07.2016, 19:04
  3. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 29.02.2012, 23:35
  4. Ответов: 30
    Последнее: 14.01.2011, 15:13
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

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