Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Для начинающих (http://zx-pk.ru/forumdisplay.php?f=43)
-   -   Ассемблер. Вторые шаги (http://zx-pk.ru/showthread.php?t=6547)

TomCaT 20th November 2007 10:44

Ассемблер. Вторые шаги
 
(Не совсем уверен, что эта тема подходит к форуму "Начинающие". Удалю эту строчку после перемещения, если таковое будет)

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

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

ng_dead 20th November 2007 13:14

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

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

Ewgeny7 4th December 2007 23:27

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

Vitamin 5th December 2007 14:15

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

Vladson 16th January 2008 08:44

Quote:

Originally Posted by TomCaT (Post 109255)
Т.е. уже не первые шаги, но вопросы легкие.

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

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

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 16th January 2008 10:56

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

pulsar 16th January 2008 21:15

Quote:

Originally Posted by Vladson (Post 115984)
Хотелось бы задать вопрос про работу с плавающей точкой, точнее про то где об этом можно почитать...

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

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

Quote:

Originally Posted by psndcj (Post 115995)
Программирование в машинных кодах и на языке АССЕМБЛЕРА - Инфорком'93.
Как написать игру на ассемблере - А.Евдокимов, А.Капульцевич, И.Капульцевич. Питер'95.
там есть главы, посвященные ПЗУшному калькулятору - в первой книге подробнее, во второй понятнее =)


есть, еще, замечательная статья и исходники (автор maximum/integer) в adventurer #10, а так же html (txt) версия статьи - библиотека как понял очень замечательная (пошустрее чем стандартный спековский "калькулятор":v2_cheer:), ковырялся в свое время, правда никуда так и не применил, как то не пригодилось в конечном итоге по сей день... правда количество операций/функций по меньше будет:v2_rolley, зато есть в чем по разбираться, если есть такой интерес - процедурки не очень обширные.:v2_wink2:

Vladson 17th January 2008 00:05

Quote:

Originally Posted by pulsar (Post 116055)
пошустрее чем стандартный спековский "калькулятор"

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

Vitamin 17th January 2008 10:39

Quote:

Originally Posted by Vladson (Post 116070)
Пошустрее (и попроще) но точность хромает, 4 байта против 5-ти в спектрумском калькуляторе. (в Hisoft Pascal применялось что-то подобное)

4 байта вполне соответствуют спецификации IEEE и являются аналогом сишного float. Ну и хватает в большинстве случаев. А 5 байтов калькулятора- это нечто вообще нестандартное... Ни в борщ, ни в красную армию...

Vladson 17th January 2008 10:48

Quote:

Originally Posted by Vitamin (Post 116102)
Ну и хватает в большинстве случаев.

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


All times are GMT +4. The time now is 00:43.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.