PDA

Просмотр полной версии : Ассемблер. Вторые шаги



TomCaT
20.11.2007, 09:44
(Не совсем уверен, что эта тема подходит к форуму "Начинающие". Удалю эту строчку после перемещения, если таковое будет)

Предлагаю здесь писать вопросы, ответы и советы по тем местам ассемблинга, которые, может, и тривиальны, но не заметны с первого взгляда, хотя могут оказаться очень и очень полезными. Т.е. уже не первые шаги, но вопросы легкие.

У меня такой вопрос: как из ассемблера с достаточным удобством управлять BASIC-программой. Какие т. входа ПЗУ для этого прежде всего полезны (переменные понятны и расписаны, в общем). Как, в частности, удобнее раздвигать PROG-область под строки и сжимать ее обратно при удалении?

ng_dead
20.11.2007, 12:14
во-первых, тебе основательно помжет следующий линк:
http://www.wearmouth.demon.co.uk/zx82.htm
дизассемблер спековского рома.

Добавлено через 48 минут
во-вторых, по приведенной выше ссылке обрати внимание на процедуры:
MAIN-ADD по адресу 5469 (155Dh)
MAKE-ROOM по адресу 5717 (1655h)

Ewgeny7
04.12.2007, 22:27
Недавно наваял свою программулину "Reader42". Назначение - чтение на Спекки электронных книг в формате WIN-1251, 42 символа в строке. Уже более месяца ее пользую. Комп (Скорпион) стоит на работе, на моем рабочем столе. Есть функции сохранения-восстановления (закладка). Читает напрямую посекторно, не обращаясь к каталогу диска. Форматирование текста - только #0D (Enter) и #06 (табуляция), Книг прочитано уже штук так семь-восемь.
Интересно, а как (точнее, на каких принципах) основан вывод символов 42 в строке?
Я не искал информации, писал все сам "с нуля". Кодовый блок - 360 байт. В него входит драйвер клавиатуры (5 кнопок), чтение блока текста, запись-чтение "закладок", вывод "потока" текста из памяти на экран. Скролла нет, простое перелистывание. Закладка - на блок секторов сразу, тоесть "шаг" - килобайт так в 30 :)
Есть ли готовые решения, и как бы вы порекомендовали улучшить код? (Имеются ввиду отработанные "перлы" в кодинге).
Спасибо.

Vitamin
05.12.2007, 13:15
ewgeny7,
см. статьи в ZXGuide/InfoGuide. Там довольно подробно все написано. Плюс уже есть одна довольно неплохая читалка- с встроенным форматированием и пропорциональным шрифтом. На vtrdos'e валяется.

Vladson
16.01.2008, 07:44
Т.е. уже не первые шаги, но вопросы легкие.
Хотелось бы задать вопрос про работу с плавающей точкой, точнее про то где об этом можно почитать...

Грубо говоря как на ASM написать

1>LET A=0: LET B=1
2 LET A=A+1/B
3 LET B=B+2
4 LET A=A-1/B
5 LET B=B+2
6 PRINT AT 0,0;A*4
7 GO TO 2

psndcj
16.01.2008, 09:56
Программирование в машинных кодах и на языке АССЕМБЛЕРА (http://trd.speccy.cz/book/PROGRASM.ZIP) - Инфорком'93.
Как написать игру на ассемблере (http://trd.speccy.cz/book/WGASM.ZIP) - А.Евдокимов, А.Капульцевич, И.Капульцевич. Питер'95.
там есть главы, посвященные ПЗУшному калькулятору - в первой книге подробнее, во второй понятнее =)

pulsar
16.01.2008, 20:15
Хотелось бы задать вопрос про работу с плавающей точкой, точнее про то где об этом можно почитать...

Грубо говоря как на ASM написать

1>LET A=0: LET B=1
2 LET A=A+1/B
3 LET B=B+2
4 LET A=A-1/B
5 LET B=B+2
6 PRINT AT 0,0;A*4
7 GO TO 2

Программирование в машинных кодах и на языке АССЕМБЛЕРА (http://trd.speccy.cz/book/PROGRASM.ZIP) - Инфорком'93.
Как написать игру на ассемблере (http://trd.speccy.cz/book/WGASM.ZIP) - А.Евдокимов, А.Капульцевич, И.Капульцевич. Питер'95.
там есть главы, посвященные ПЗУшному калькулятору - в первой книге подробнее, во второй понятнее =)

есть, еще, замечательная статья и исходники (автор maximum/integer) в adventurer #10 (http://trd.speccy.cz/press/adventur/ADVENT10.ZIP), а так же html (txt) версия (http://zxdn.narod.ru/coding/ad10ieee.txt) статьи - библиотека как понял очень замечательная (пошустрее чем стандартный спековский "калькулятор":v2_cheer:), ковырялся в свое время, правда никуда так и не применил, как то не пригодилось в конечном итоге по сей день... правда количество операций/функций по меньше будет:v2_rolley, зато есть в чем по разбираться, если есть такой интерес - процедурки не очень обширные.:v2_wink2:

Vladson
16.01.2008, 23:05
пошустрее чем стандартный спековский "калькулятор"
Пошустрее (и попроще) но точность хромает, 4 байта против 5-ти в спектрумском калькуляторе. (в Hisoft Pascal применялось что-то подобное)

Vitamin
17.01.2008, 09:39
Пошустрее (и попроще) но точность хромает, 4 байта против 5-ти в спектрумском калькуляторе. (в Hisoft Pascal применялось что-то подобное)
4 байта вполне соответствуют спецификации IEEE и являются аналогом сишного float. Ну и хватает в большинстве случаев. А 5 байтов калькулятора- это нечто вообще нестандартное... Ни в борщ, ни в красную армию...

Vladson
17.01.2008, 09:48
Ну и хватает в большинстве случаев.
Во всех "реальных" случаях да, а в демонстрационных случаях (например тот что я привёл в своём сообщении) чем больше тем лучше.

pulsar
17.01.2008, 11:32
Пошустрее (и попроще) но точность хромает, 4 байта против 5-ти в спектрумском калькуляторе. (в Hisoft Pascal применялось что-то подобное)
это не отговорка случаем?:v2_smile: с витамином согласен:v2_thumb: (5 байт действительно как-то не стандартно выглядит, отсюда и скорость - спектруму с его архитектурой размер кратный 2 (а лучше со степенью 2) больше показан)... меня устраивало, когда тестировал технологию... мне было достаточно 4 знаков после запятой... а запас прочности библиотеки еще больше.:v2_slee2:

Wlodek
17.01.2008, 12:28
Есть полный скан этой книги. Калькулятор Бейсика описан - любой идиот :) поймёт.
(Сам в роли идиота :) по этой книге написал цикл статей в ранних выпусках Nicron-а).
~4MB, 17 файлов.
Если нужно, могу выложить на сервер с быстрым каналом одним архивом.

Wlodek
17.01.2008, 12:41
В общем, уже выложил:
http://www.91.ru/zx/pzu16k.zip
~3.8MB

Vladson
17.01.2008, 13:15
это не отговорка случаем?
Отговорка от чего ?

Я прекрасно понимаю (сам как в анекдоте считаю что 1000 удобнее округлять до 1024) просто пытаюсь поддержать беседу.


спектруму с его архитектурой размер кратный 2
С его архитектурой лучше вообще отдельным FPU обзавестись :D

pulsar
17.01.2008, 18:47
Отговорка от чего ?
чтоб глубоко не копать вопрос:v2_rolley...


С его архитектурой лучше вообще отдельным FPU обзавестись:D
раз пошла такая пьянка:v2_wink2:, так спеку вообще в принципе математика противопоказана:v2_unsur: (во всяком случае в привычном понимании этого слова, поэтому и предлагаются всевозможные велосипеды:v2_laugh:...)

Vladson
19.01.2008, 09:33
чтоб глубоко не копать вопрос
Я его на самом деле ещё в 93-м году откопал. Просто копал не глубоко, по этому за это время всё уже обратно зарылось :)


спеку вообще в принципе математика противопоказана
Ну вот был бы у него отдельный FPU была бы тогда "показана"