

  8. ИНСТРУМЕНТАЛЬНЫЕ ПРОГРАММЫ

    8.1. Определение размера
        свободной памяти

  Длина: 14
  Количество переменных: 0
  Контрольная сумма: 1443
  Назначение:  дает   количество
свободного  пространства  ОЗУ  в
байтах.
  Вызов программы:
     RANDOMIZE USR адрес
  Контроль ошибок: нет
  Комментарий:   эта   программа
должна вызываться перед  исполь-
зованием любых  подпрограмм, ко-
торые  могут  увеличивать  длину
программы, чтобы быть  уверенным
в том, что в ОЗУ достаточно сво-
бодного пространства.

   ЛИСТИНГ МАШИННЫХ КОДОВ
МЕТКА  АССЕМБЛЕР      ЧИСЛА ДЛЯ ВВОДА147.

       LD HL,0        33   0   0
       ADD HL,SP      57
       LD DE,(23653) 237 91 101 92
       AND A         167
       SBC HL,DE     237  82
       LD B,H         68
       LD C,L         77
       RET           2012

  Как она работает:
  В пару регистров HL загружает-
ся 0, и это значение суммируется
с адресом конца свободной облас-
ти ОЗУ (адрес  хранится  в  SP).
Пара  регистров  DE  загружается
адресом начала свободной  облас-
ти ОЗУ и вычитается  из  HL.  HL
копируется в BC и программа воз-
вращается в BASIC.
