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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 19

Тема: Поделитесь парой процедур (печать, преобразование в число)

  1. #1
    Member
    Регистрация
    14.03.2016
    Адрес
    г. Псков
    Сообщений
    48
    Благодарностей: 61
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Поделитесь парой процедур (печать, преобразование в число)

    Добрый вечер всем. У кого есть и кому не жалко, поделитесь готовыми рабочими процедурами:

    1) печати 42 символа в строке ( в идеале, работающей с полноценным набором из 256 символов, с матрицей 8 на 8, где все символы прижаты к левому краю)

    2) процедурой, которая переводит текстовую строку, в которой написано число, в собственно число. Те текст "32000" в число 32000.

    Знаю, что в ревю такое было, но большинство журналов на zxpress отсканировано так, что вместо кода каша...

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

  3. #2
    Master Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    568
    Благодарностей: 121
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вдруг поможет, 64 символа выкладывали на восе

    и ещё на 40 символов тут

    Последний раз редактировалось Bedazzle; 27.07.2016 в 19:48.

  4. #3
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,497
    Благодарностей: 668
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от STD Посмотреть сообщение
    процедурой, которая переводит текстовую строку, в которой написано число, в собственно число. Те текст "32000" в число 32000.
    У меня такая есть в библиотеке для компилятора ZX Like Pascal, скачай и зайди в файл libasm.lib через любой текстовый редактор. Там много процедур на ассемблере, в том числе и эта.
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

  5. #4
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,426
    Благодарностей: 643
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

  6. #5
    Master Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    568
    Благодарностей: 121
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    топикстартер по ходу, говорит про это:

    PR_б4_R LD В,'FОNTб4;

  7. #6
    Veteran Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    1,064
    Благодарностей: 410
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    PR_б4_R LD В,'FОNTб4;
    Ага. Есть там такое. Поэтому проще найти оригинал (журнал в trd/scl, книгу в pdf...) и набирать процедуры уже оттуда руками, ибо качество распознанного текста на zxpress никакое. Но зато легко можно найти в какой книге/журнале есть нужная информация.
    Seamos realistas y hagamos lo imposible!
    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

  8. #7
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,426
    Благодарностей: 643
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    PR_б4_R LD В,'FОNTб4;
    Есть такое.
    В приложениях часто бывают готовые листинги (у электронных журналов).

    ZX-Guide №1 (Ассемблер/Этюды)
    Быстрая печать буквы 6x8 (экран в DE):
    Код:
         PUSH DE
         LD L,A
         LD B,C
         LD A,2
         RRCA
         DJNZ $-1
         LD (PRN+1),A
         LD H,'FONT
         LD B,8
    PRGO PUSH HL
         LD L,(HL)
    PRN  LD H,1
    PR1  ADD HL,HL
         ADD HL,HL
         JR NC,PR1
         LD A,(DE)
         OR H
         LD (DE),A
         INC E
         LD A,L
         LD (DE),A
         DEC E
         INC D
         POP HL
         INC H
         DJNZ PRGO
         POP DE
    Если шрифт упирается в 0, то уберите LD
    B,8,а DJNZ PRGO замените на JR NZ,PRGO.
    Регистр C должен содержать 7,5,3 или 1,
    причем 7 соответствует нулевой координате
    буквы внутри знакоместа(x mod 8=0). Букв в
    шрифте 256,и все они прижаты к левому краю
    (можно сдвинутые на одну точку вправо).Как
    надо изменять C:
    Код:
         LD A,C
         SUB 6
         JR NC,$+5
         INC E
         AND 7
         LD C,A
    Последний раз редактировалось Destr; 28.07.2016 в 10:11.

  9. #8
    Member
    Регистрация
    14.03.2016
    Адрес
    г. Псков
    Сообщений
    48
    Благодарностей: 61
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо, всем кто откликнулся, все посмотрю, попробую.

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

    Уф...., Andrew771, спасибо за твою библиотеку, много чего интересного там. Процедуру перевода строки в число нашел, выдрал, изучил, алгоритм понял. Но в шапке процедуры у тебя, если я процедуру правильно понял, несколько неверный коммент для использующих ее стоит. У тебя там написано:
    ; вход: hl=адрес строки
    а на самом деле hl, исходя из процедуры, сначала указывает на байт, определяющий длину преобразуемой строки и только после него начинается сама преобразуемая строка символов, т.е. правильнее было бы так:
    ; вход: hl= адрес байта,определяющего длину строки; hl+1 - адрес строки

    а то пока я первую часть процедуры понял, все эти СР 6, СР 5, СР 4..... думал с ума сойду..... 8)

    Но все равно ОГРОМНОЕ спасибо!!!

  10. Этот пользователь поблагодарил STD за это полезное сообщение:
    Andrew771 (28.07.2016)

  11. #9
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,497
    Благодарностей: 668
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от STD Посмотреть сообщение
    а на самом деле hl, исходя из процедуры, сначала указывает на байт, определяющий длину преобразуемой строки и только после него начинается сама преобразуемая строка символов, т.е. правильнее было бы так:
    ; вход: hl= адрес байта,определяющего длину строки; hl+1 - адрес строки
    Да, так и есть. В этой библиотеке и при компиляции с Паскаля я так каждую строку храню: первый байт - длина строки, потом сами символы строки.
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

  12. #10
    Veteran Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    1,064
    Благодарностей: 410
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    первый байт - длина строки, потом сами символы строки.
    Ну это ж как никак древняя паскалевская традиция
    Seamos realistas y hagamos lo imposible!
    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Пара процедур для новой игры SLIP'a
    от newart в разделе Программирование
    Ответов: 34
    Последнее: 29.03.2014, 16:54
  2. Библиотека нужных процедур для написания демо
    от GM BIT в разделе Программирование
    Ответов: 297
    Последнее: 14.02.2014, 07:47
  3. Ответов: 10
    Последнее: 20.01.2014, 20:20
  4. Число проданных копий
    от alone в разделе Игры
    Ответов: 9
    Последнее: 21.03.2013, 21:48
  5. Быстро вывести число 0-255 на экран
    от Aprisobal в разделе Программирование
    Ответов: 7
    Последнее: 26.01.2005, 08:05

Ваши права

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