Руководство к ZX-Spectrum. Введение

Руководство к ZX-Spectrum. Введение

Когда-то давным-давно был такой компьютер ZX-Spectrum.  И когда-то, тоже давным-давно, на первом курсе вуза, я написал некий материал, мини-книжку о нем. Все это давным-давно уже забыто. Но я случайно наткнулся на материалы о Спектруме и решил выложить для их для общего доступа. Так сказать, для истории.  Орфография сохранена.

А.Волков
Программисткое руководство к ZX-Spectrum’у
Предисловие
Итак,вы открыли первую страницу книги. Более чем уверен,
любой  из читавших  книги П. Нортона увидит в ней PROGRAMER’S
GUIDE TO THE IBM PC. А Вы эту книгу и держите в своих руках.
Это  на 99% процентов она и есть. Я только чуть-чуть изменил
данные  дававшиеся для  IBM PC на Спектрум, добавил немножко
свежей  информации, подробно  описал все возможные сложности
при  программировании. Книги  П. Нортона, их стиль изложения,
глубина   понимания  предмета,   широта  охвата  делают  его
произведения уникальными.
Питер  Нортон родился  в Сиэтле,  получил образование  в
Ридовском  Колледже. Я  же родился  в Новосибирске,  получаю
образование    в   Новосибирском   Институте   Экономики   и
Менеджмента. А кроме всего этого я ученик Иисуса Христа.
Но, если вам  понравились книги П. Нортона, то я надеюсь,
что вы хоть не выкиньте мою.
Созданию  этой книги  содействовало так много людей, что
было бы невозможно всех их перечислить.
Однако,  есть    один   человек,   который   заслуживает
отдельного упоминания и благодарности — это сэр Клайв Марльз
Синкер  (Clive Sinclair), чей гений подарил нам, то о чем мы
будем говорить в книге.
Автор.
Введение.
Цель  этой книги  проста, но  честолюбива —  помочь  вам
освоить  принципы  программирования  семейства  персональных
компьютеров  (ПК) фирмы Sinclair Research LTD. Представление
Спектрума   в  сентябре   1982  года,   было  без   сомнений
значительным  событием в  компьютерном  мире.  Позже,  когда
объемы  продаж  этой  модели  и  ее  ближайших  родственников
превзошли  самые смелые  ожидания,  стало  ясно  —  Спектрум
фактически признан стандартным компьютером настольного типа.
От  оригинальной модели  Спектрума  ведут  свою  родословную
большинство  персональных компьютеров,  значение  которых  в
нашем мире сегодня трудно переоценить.
Успех семейства Синклера соответственно повысил важность
разработки  программного обеспечения  для этих  компьютеров.
Однако   все  время   повышающиеся  требования   со  стороны
пользователей   вносят  все   большие  сложности   в  работу
программистов.
Эта  книга    о  том,  что  необходимо  знать,  уметь  и
понимать  для того,  чтобы создавать программы  для ПК. Хотя
мы  и  будем  обращать  внимание  на  особенности  отдельных
моделей,  однако основная  наша задача — найти общий подход,
пригодный  не только  для существующих,  но  и  для  будущих
членов семейства Спектрум.
Эта  книга для  всех, кто  связан с разработкой программ
для  ПК, прежде  всего для программистов, но и не только для
них.    Она   для    тех,   кому   нужно   понимать   основы
программирования,   тому  кто   планирует  или   проектирует
программы, для тех, кто эти программы использует и хочет при
этом знать, что происходит в машине.
Этой   книгой  можно   пользоваться  как   учебником  по
программированию на ассемблере, т.к. часто даются примеры на
бейсике, аналогичные ассемблеровским.
Философское отступление.
Одним   из  основных   элементов  этой   книги  является
обсуждение  идеологии  программирования.  Вы  найдете  здесь
объяснение   идей,  которыми   Синклер  руководствовался  при
разработке  семейства Спектрум,  и  принципов  рационального
программирования,  вытекающих из  моего собственного  опыта.
Для   чтения  книги   вовсе  не   обязательно   иметь   опыт
программирования,  хотя  это  ускорит  понимание  материала.
Единственным  обязательным условием является наличие желания
изучать данное пособие.
Если  бы  эта  книга  содержала  лишь  факты, —  таблицы
технической  информации,   она вряд  ли была бы вам полезна.
Поэтому  я постоянно прерываю обсуждение технических деталей
объяснением того, почему делается именно так, какие принципы
объединяют  различные идеи  и как  писать программы, которые
будут  жить  «долго  и  счастливо»     вместе  с  семейством
компьютеров  Синклера и  моей книгой.  Возьмем пример:  как я
любил  программу MOA SERVICE написанную Андреем Ларченко, но
она   не  поддерживает   128К  и  мне  пришлось  перейти  на
CONVER-COMMANDER, написанный Ковалевским, хотя эта программа
тоже  не идеальна  (Особенно когда  длина файла равна 80,254
или 255 секторов)
Как пользоваться этой книгой.
Эта  книга одновременно  и учебник и справочник, поэтому
ею можно пользоваться по крайней мере двумя способами. Можно
прочитать   ее  от  корки  до  корки,  углубляясь  только  в
интересующие  вас места,  лишь чуть-чуть  проглядывая другой
материал. (Это хороший способ изучить приемы, используемые в
программах,  и идеи,  лежащие на основе этих методов). Можно
также  использовать эту  книгу  и  в  качестве  справочника,
обращаясь  к  конкретной  главе  за  ответом  на  конкретный
вопрос.
Если  вы предпочитаете второй способ, то обнаружите, что
большая   часть  материла   имеет  внутренние  связи.  Чтобы
сохранить  эти связи информация часто повторяется, а там же,
где  повторение не  практично, дается  ссылка. Для выделения
частей  текста,  относящихся  только  к  конкретным  моделям
компьютеров, применяются наглядные значки, например «128К».
Появление  этого значка  в начале  параграфа или раздела
указывает на то, что эти фрагменты книги относятся только к
данной  модели, а  появление его  в тексте должно привлекать
ваше внимание к специфическим для отдельных моделей деталям.
Надеюсь,   что  эта   система  поможет   вам  быстро   найти
информацию, необходимую для вашей программы.
Литература.
Естественно,  одна книга не может вместить все ответы на
все  ваши вопросы. Я сделал ее настолько подробной и полной,
насколько  мог, но  потребность в  дополнительной информации
останется  всегда. Вот  некоторые дополнительные  источники
информации.
«Первоисточником»  подробной  технической  информации  о
семействе  Спектрума являются  справочники  по  оригинальной
модели,   по  128К  и  т.д.  Большая  часть  программистской
информации   в  этих  книгах  повторяется  и  может  служить
руководством  по всему  семейству. Следует  только  помнить,
что,  во-первых, особенности, касающиеся конкретной модели, в
этих руководствах не выделены в тексте, имеющем отношение ко
всему,   и  чтобы   это  учесть,   следует  сравнить  разные
руководства,  хотя проще  посмотреть мою  книгу.  Во-вторых,
часто  эти описания  недоступны советскому  пользователю,  а
распространяемые некоторыми фирмами (в особенности Солоном и
VA  PRINT’ом) содержат  явно некомпетентную  информацию ( на
мой  взгляд). В-третьих,  каждая  новая  модель,  не  только
приобретает новые достоинства, но и что-то теряет. Вам лучше
не  отвлекаться на  изучение вещей,  актуальных не  для всех
моделей Спектрума, но все не неплохо было бы узнать почему
отлично    работавшая   ранее    программа   после   покупки
какого-нибудь  расширения сбрасывается (со 2 этажа) или, что
не более приятно, виснет (на потолке).
Существует также масса различных описаний и документации
других  фирм. В  них описаны различные дисководы, принтеры и
т.д.,   но  для  программиста большая  часть  информации  не
представляет интереса.
Много  интересной информации можно найти в периодических
изданиях.  За рубежом  издаются такие  издания, как Sinclair
User,  Your Sinclair, Your Spectrum, Bajtek, Home Computers,
Spectrum’s  programs. Не осталась за уровнем «нищеты» и наша
страна.   У  нас  издаются  Спектромания,  ZX-Pевю,  HACKER,
Радиолюбитель,  Байтик, Spectrum  Press и  многие другие. Но
лучшим журналом был и остается до сих пор Sinclair User.
Поскольку   данная   книга   посвящена   общим   основам
программирования  ПК, вы  найдете здесь  лишь самые ключевые
моменты,  касающиеся отдельных  языков программирования.  По
поводу  языков и компиляторов вам понадобиться столько книг,
что  мне на  их перечисление  пришлось бы потратить такой же
объем как и эта книга.
P.S. Для непонятливых: строки о Нортоне — шутка.
                          А.Волков

         Программистское руководство к ZX-Spectrum'у

                         Предисловие

    Итак,вы открыли первую страницу книги. Более чем уверен,
любой  из читавших  книги П. Нортона увидит в ней PROGRAMER'S
GUIDE TO THE IBM PC. А Вы эту книгу и держите в своих руках.
Это  на 99% процентов она и есть. Я только чуть-чуть изменил
данные  дававшиеся для  IBM PC на Спектрум, добавил немножко
свежей  информации, подробно  описал все возможные сложности
при  программировании. Книги  П. Нортона, их стиль изложения,
глубина   понимания  предмета,   широта  охвата  делают  его
произведения уникальными.
    Питер  Нортон родился  в Сиэтле,  получил образование  в
Ридовском  Колледже. Я  же родился  в Новосибирске,  получаю
образование    в   Новосибирском   Институте   Экономики   и
Менеджмента. А кроме всего этого я ученик Иисуса Христа.
    Но, если вам  понравились книги П. Нортона, то я надеюсь,
что вы хоть не выкиньте мою.
    Созданию  этой книги  содействовало так много людей, что
было бы невозможно всех их перечислить.
    Однако,  есть    один   человек,   который   заслуживает
отдельного упоминания и благодарности - это сэр Клайв Марльз
Синкер  (Clive Sinclair), чей гений подарил нам, то о чем мы
будем говорить в книге.

                                       Автор.

                          Введение.

    Цель  этой книги  проста, но  честолюбива -  помочь  вам
освоить  принципы  программирования  семейства  персональных
компьютеров  (ПК) фирмы Sinclair Research LTD. Представление
Спектрума   в  сентябре   1982  года,   было  без   сомнений
значительным  событием в  компьютерном  мире.  Позже,  когда
объемы  продаж  этой  модели  и  ее  ближайших  родственников
превзошли  самые смелые  ожидания,  стало  ясно  -  Спектрум
фактически признан стандартным компьютером настольного типа.
От  оригинальной модели  Спектрума  ведут  свою  родословную
большинство  персональных компьютеров,  значение  которых  в
нашем мире сегодня трудно переоценить.
    Успех семейства Синклера соответственно повысил важность
разработки  программного обеспечения  для этих  компьютеров.
Однако   все  время   повышающиеся  требования   со  стороны
пользователей   вносят  все   большие  сложности   в  работу
программистов.
    Эта  книга    о  том,  что  необходимо  знать,  уметь  и
понимать  для того,  чтобы создавать программы  для ПК. Хотя
мы  и  будем  обращать  внимание  на  особенности  отдельных
моделей,  однако основная  наша задача - найти общий подход,
пригодный  не только  для существующих,  но  и  для  будущих
членов семейства Спектрум.
    Эта  книга для  всех, кто  связан с разработкой программ
для  ПК, прежде  всего для программистов, но и не только для
них.    Она   для    тех,   кому   нужно   понимать   основы
программирования,   тому  кто   планирует  или   проектирует
программы, для тех, кто эти программы использует и хочет при
этом знать, что происходит в машине.
    Этой   книгой  можно   пользоваться  как   учебником  по
программированию на ассемблере, т. к. часто даются примеры на
бэйсике, аналогичные ассемблеровским.

                  Философское отступление.

    Одним   из  основных   элементов  этой   книги  является
обсуждение  идеологии  программирования.  Вы  найдете  здесь
объяснение   идей,  которыми   Синклер  руководствовался  при
разработке  семейства Спектрум,  и  принципов  рационального
программирования,  вытекающих из  моего собственного  опыта.
Для   чтения  книги   вовсе  не   обязательно   иметь   опыт
программирования,  хотя  это  ускорит  понимание  материала.
Единственным  обязательным условием является наличие желания
изучать данное пособие.
    Если  бы  эта  книга  содержала  лишь  факты, -  таблицы
технической  информации,   она вряд  ли была бы вам полезна.
Поэтому  я постоянно прерываю обсуждение технических деталей
объяснением того, почему делается именно так, какие принципы
объединяют  различные идеи  и как  писать программы, которые
будут  жить  "долго  и  счастливо"     вместе  с  семейством
компьютеров  Синклера и  моей книгой.  Возмем пример:  как я
любил  программу MOA SERVICE написанную Андреем Ларченко, но
она   не  поддерживает   128К  и  мне  пришлось  перейти  на
CONVER-COMMANDER, написанный Ковалевским, хотя эта программа
тоже  не идеальна  (Особенно когда  длина файла равна 80,254
или 255 секторов)

                Как пользоваться этой книгой.

    Эта  книга одновременно  и учебник и справочник, поэтому
ею можно пользоваться по крайней мере двумя способами. Можно
прочитать   ее  от  корки  до  корки,  углубляясь  только  в
интересующие  вас места,  лишь чуть-чуть  проглядывая другой
материал. (Это хороший способ изучить приемы, используемые в
программах,  и идеи,  лежащие на основе этих методов). Можно
также  использовать эту  книгу  и  в  качестве  справочника,
обращаясь  к  конкретной  главе  за  ответом  на  конкретный
вопрос.
    Если  вы предпочитаете второй способ, то обнаружите, что
большая   часть  материла   имеет  внутренние  связи.  Чтобы
сохранить  эти связи информация часто повторяется, а там же,
где  повторение не  практично, дается  ссылка. Для выделения
частей  текста,  относящихся  только  к  конкретным  моделям
компьютеров, применяются наглядные значки, например "128К".
    Появление  этого значка  в начале  параграфа или раздела
указывает на то, что эти фрагменты книги относится только к
данной  модели, а  появление его  в тексте должно привлекать
ваше внимание к специфическим для отдельных моделей деталям.
Надеюсь,   что  эта   система  поможет   вам  быстро   найти
информацию, необходимую для вашей программы.

                         Литература.

    Естественно,  одна книга не может вместить все ответы на
все  ваши вопросы. Я сделал ее настолько подробной и полной,
насколько  мог, но  потребность в  дополнительной информации
останется  всегда. Вот  некоторые дополнительные  источники
информации.
    "Первоисточником"  подробной  технической  информации  о
семействе  Спектрума являются  справочники  по  оригинальной
модели,   по  128К  и  т. д.  Большая  часть  программистской
информации   в  этих  книгах  повторяется  и  может  служить
руководством  по всему  семейству. Следует  только  помнить,
что,  во-первых, особенности, касающиеся конкретной модели, в
этих руководствах не выделены в тексте, имеющем отношение ко
всему,   и  чтобы   это  учесть,   следует  сравнить  разные
руководства,  хотя проще  посмотреть мою  книгу.  Во-вторых,
часто  эти описания  недоступны советскому  пользователю,  а
распространяемые некоторыми фирмами (в особенности Солоном и
VA  PRINT'ом) содержат  явно некомпетентную  информацию ( на
мой  взгляд). В-третьих,  каждая  новая  модель,  не  только
приобретает новые достоинства, но и что-то теряет. Вам лучше
не  отвлекаться на  изучение вещей,  актуальных не  для всех
моделей Спектрума, но все же неплохо бы было бы узнать почему
отлично    работавшая   ранее    программа   после   покупки
какого-нибудь  расширения сбрасывается (со 2 этажа) или, что
не более приятно, виснет (на потолке).
    Существует также масса различных описаний и документации
других  фирм. В  них описаны различные дисководы, принтеры и
т.д.,   но  для  программиста большая  часть  информации  не
представляет интереса.
    Много  интересной информации можно найти в периодических
изданиях.  За рубежом  издаются такие  издания, как Sinclair
User,  Your Sinclair, Your Spectrum, Bajtek, Home Computers,
Spectrum's  programs. Не осталась за уровнем "нищеты" и наша
страна.   У  нас  издаются  Спектромания,  ZX-Pевю,  HACKER,
Радиолюбитель,  Байтик, Spectrum  Press и  многие другие. Но
лучшим журналом был и остается до сих пор Sinclair User.
    Поскольку   данная   книга   посвящена   общим   основам
программирования  ПК, вы  найдете здесь  лишь самые ключевые
моменты,  касающиеся отдельных  языков программирования.  По
поводу  языков и компиляторов вам понадобиться столько книг,
что  мне на  их перечисление  пришлось бы потратить такой же
объем как и эта книга.

    P.S. Для непонятливых: строки о Нортоне - шутка.