Deja Vu #09
13 ноября 1999

Coding - Конверсия числа со стека калькулятора в символьную строку.

<b>Coding</b> - Конверсия числа со стека калькулятора в символьную строку.
(C) Морозов Илья/Death Moroz
__________________________________________


  Конверсия числа со стека калькулятора
           в символьную строку.


   При использовании встроенного калькуля-
тора результаты находятся на вершине каль-
куляторного  стека  в  интегральной форме.
Для   их  печати  существует  подпрограмма
Print_FP.Но она печатает стандартными сре-
дствами, которые в настоящее время исполь-
зуются  редко. Обычно программа работает с
собственной  процедурой  печати, например,
42 символа  в  строке. Ее можно связать  с
новым потоком. Но при этом необходимо  до-
вольно  тесное общение с операционной сис-
темой Спекки.Предпочтительней просто скон-
вертировать  это число в строку символов и
распоряжаться  ею по своему усмотрению. Но
программа  для такого преобразования будет
довольно  сложной и громоздкой. Проще вос-
пользоваться имеющимися в ПЗУ.
   Первое, что приходит в  голову - Print_
FP. Она печатает  число  с  вершины  стека
калькулятора в текущий поток. Значит нужно
подменить процедуру вывода символа на про-
цедуру  пересылки байта в память. Но слиш-
ком уж громоздко. Однако Print_FP при сво-
ей работе создает символьное представление
числа, и лишь затем вызывает процедуру пе-
чати. Буфер  находится  в  рабочей области
калькулятора по адресу #5CA1-#5CAA.Это две
ячейки  памяти  калькулятора  MEM3 и MEM4.
Теперь достаточно просто в качестве проце-
дуры  вывода  для  потока  поставить RET и
вызвать  Print_FP, чтобы считать строковое
представление  числа. Это  уже проще, хотя
все равно нужно возиться с каналами. Проще
всего  воспользоваться  для этого функцией
калькулятора  STR$. Конвертер  занимает  7
байт.

CONVERT RST     #28        ; вызов калькулятора
        DB      #2E,#38    ; Команды калькулятора:
                           ; STR$ преобразует число в стринг.
                           ; Теперь на стеке параметры этого
                           ; стринга. В DE-адрес, в BC-длина.
                           ; END_CALC - выход из калькулятора.
        CALL    #2BF1      ; Подпрограмма STK-FETCH переписы-
                           ; вает число со стека калькулятора
                           ; в регистры A,B,C,D,E. А так как
                           ; после операции STR$ в стеке нахо-
                           ; дятся параметры стринга, то они
                           ; переносятся в пары DE и BC.
        RET


   Вот и все. Осталось скопировать  строку
в более надежное место,чем рабочая область
интерпретатора.



Другие статьи номера:

Апперативчик - вступление от авторов.

Апперативчик - Об управлении в Deja Vu.

Апперативчик - Халява №2: о пиратах и взломанных версиях журнала.

Апперативчик - Dejavu Info: Как приобрести журнал Deja Vu.

Тема - Swap: "От письма до бандероли" как найти в своем городе Спектрумистов.

Тема - Тусовка: CSP'99 - интервью со Slack Den.

Тема - Тусовка: CSP'99 - интервью с main coder'ом молодой Новосибирской группы AREASoft

Тема - Тусовка: CSP'99 - интервью с одним из издателей электронного журнала Deja Vu' Daniel/Playgear Co./Binary Dimension.

Тема - Тусовка: CSP'99 - интервью с одним из участников Рыбинской группы Cav/Auryn.

Тема - Тусовка: CSP'99 - интервью с отцом группы Playgear классным дядькой Ze Pagan.

Тема - Тусовка: CSP'99 - интервью с main coder'ом Flash и по совместительству одним из основателей группы - Alex Rider.

Тема - Тусовка: CSP'99 - опрос, как прошла party в двух словах, общие впечатления.

Тема - Тусовка: Сказание о том, как проходило Crazy Siberian Party 1999.

Капля припоя - HD диски: Доработка контроллера дисковода для работы с HD-дисками.

Капля припоя - Решение пpоблемы 1.2Мб дисковода.

Капля припоя - увеличение объема ОЗУ до 1024к на SPECCY варианта Таганрог 128К!

Капля припоя - схема программатора для микросхем постоянных запоминающих устройств (ПЗУ).

Капля припоя - о матричных принтерах.

Капля припоя - ISA-Spectrum: плата вставляемая в ISA слот IBM, являющееся частью или полным компьютером ZX-Spectrum.

Software - Демосцена: Обзор'инг демозов: 63 bit III, Jam, Anamnesis, 7 Up, 63 bit IV, DemoDyin, Napalm, Crapmo 2, Bunch of Arce, Devotion, WorkStop, Energy, Yes.

Software - Обзор Игр: MIST: Monstrland Part Two, Bomb Lakes, Marbles, KluXer, 4x4 Puzzle, Солдатики, Кораблики.

Software - Gun Commander: руководство пользователя.

Coding - coding для чайников: цивилизованный выход в TR-DOS.

Coding - coding для чайников: Подробно об одном из способов опроса клавиатуры.

Coding - coding для чайников: как устроен "Boot" изнутри.

Coding - coding для чайников: доработка MINI BOOT V3.0.

Coding - процедура печати 42 символа в строке (с трабутами), процедура быстрой печать спрайта с точностью до пикселя.

Coding - быстрай печать 64 символов в строке.

Coding - Конверсия числа со стека калькулятора в символьную строку.

Coding - быстрая печать спрайта 2х2 знакоместа, с точностью до знакоместа.

Coding - Hrust Library свободноpаспpостpаняемая библиотека пpоцедуp, с помощью котоpых можно упаковывать и pаспаковывать pазличные данные.

Coding - Обработка ошибок TR-DOS при работе через #3D13.

Coding - набор процедур для построения пользовательского интерфейса.

Coding - пишим вирус невидимку для TR-DOS.

Another world - Иллюзия безопасности: Страшные сказки о безопасности Windows и Internet (часть первая).

Доска почета - 3 метода отличить pеальный ZX Spectrum от эмулятоpов.

Доска почета - устав национального Фонда Спектрума (HФСП).

Доска почета - Резервы: попытка представить совершенный ZX Spectrum.

Доска почета - Накипело: "А жив ли еще Speccy, курилка?" Размышления в слух.

Доска почета - Ща скажу №1: оптимизация процедур, анонс журнала и новой аркадной игрушки.

Доска почета - Ща скажу №1: разборки Serg'a и Playgear, Взлом телефонных карт, анонс Crazy Siberian Party '2000.

Доска почета - Краткая история кемеровской группы Digital Life Group.

Семь и 1/2 - Студенческая мифология.

Семь и 1/2 - День дурака 2 (окончание).

Семь и 1/2 - Сказочки для детей.

Семь и 1/2 - Особенности национального рулеза или чисто Сибирский проект (повесть о Crazy Siberian Party 1999).

Пробы пера - воспоминания: новелла по игре "Черный Ворон".

Пробы пера - рассказ "Элексир Зверя".

Пробы пера - "Last Warrior".

Реклама - текстовая реклама и обьявления.

Реклама - графическая реклама и обьявления.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Amiga Suxx! - интервью с Prisone/Die Krupps group взятое на Paradox'99.
Сеть - в Омске пока никакой сети нет! Список распрострнаителей софта на момент 1999 года.
Music - n1k-o обьясняет итальянскому спектрумисту, как пользоваться Pro Tracker'ом.
Demo Party - репортаж с Минского демопати Millennium'2000.
Mощь словa `Speссy` - Дa. может быть, именно здесь yместно, нaконец, объяснить тебе, почемy, собственно, все это тaк нaс волнyет и зaнимaет.

В этот день...   26 ноября