≡ Передовица » Макулатура » ИиО » Использование памяти ПЭВМ Агат для оптимизации программ
Использование памяти ПЭВМ Агат для оптимизации программ (N2/1998)Л. Ф. Церцек, преподаватель программирования УВК N16, Москва. Группа сайта просит вас связаться с нами! (ЗАЧЕМ ЭТО?) В УВК-16 обучение школьников программированию ведётся на ПЭВМ «Агат», которая имеет небольшой объём памяти (64 Кб). В XI классе учащиеся обычно выполняют выпускной проект, поэтому приходится использовать всевозможные способы, чтобы программа большого объёма поместилась в памяти ПЭВМ. Для этого программа делится на несколько отдельных файлов так, чтобы каждый из них умещался в памяти компьютера. Каждый такой файл имеет своё имя и хранится на дискете. В конце каждого файла записывается специальная команда PRINT CHR$(4);"RUN <имя файла>", которая осуществляет считывание указанного файла с дискеты и передаёт ему управление без вмешательства пользователя. Выполнение программы при этом не прерывается, а только приостанавливается на время загрузки файла в память. Вся программа выглядит следующим образом: При работе программы дискета с файлами должна находиться в дисководе, так как всё время производится считывание файлов в память ЭВМ. Такой способ организации программы даёт возможность дорабатывать, изменять файлы, что облегчает отладку программы большого размера. Пример. Пусть в каталоге имеются файлы программ: ДРАКОН, СПИРАЛЬ, ПАДАЮЩ. БУКВЫ, СМЕНА ЦВЕТА. Они могут работать самостоятельно, как отдельные программы. И пусть в файлах ДРАКОН1, СПИРАЛЬ1, ПАДАЮЩ. БУКВЫ1 добавлена команда, вызывающая выполнение следующей программы. Так, в файле ДРАКОН1 вызывается программа ПАДАЮЩ. БУКВЫ1, в ней, в свою очередь, вызывается программа СПИРАЛЬ1, а в файле СПИРАЛЬ1 вызывается программа СМЕНА ЦВЕТА. Таким образом, после запуска файла ДРАКОН1 на выполнение будут по очереди работать остальные программы одна за другой без вмешательства программиста. Другой аспект работы с памятью ПЭВМ «Агат» состоит в записи, хранении и воспроизведении графических копий экрана. Когда в графическом режиме учащиеся рисуют средствами Бейсика какую-либо картинку, она часто занимает большой объём памяти и долго отрисовывается на экране. С целью экономии памяти и времени рекомендуется переписать созданную картинку из видеопамяти в двоичный файл. Для этого, после того как программа в графическом режиме завершит свою работу, картинка записывается в файл с помощью команды BSAVE <имя файла>,A$<начальный адрес видеопамяти>, L$1FFF. В каталоге он будет обозначен как файл типа B. Для режима MGR=1, 2, 3, 4 и т. д. реализовано следующее распределение ячеек видеопамяти: MGR=1: 2000...3FFF, MGR=2: 4000...5FFF, MGR=3: 6000...7FFF, и т.д., где 2000, 4000, 6000 - начальные адреса страниц видеопамяти. Для загрузки этой картинки на экран в программе записываются следующие команды: MGR=<тот номер режима, в котором строилась картинка> PRINT CHR$(4);"BLOAD <имя файла>" После отображения картинки программа продолжает работать дальше. Рисунки, которые учащиеся выполняют с помощью графического редактора, можно записывать в двоичный файл теми же командами. Если в графическом редакторе по какой-либо клавише запрограммировать вызов предыдущего (незаконченного) рисунка, то его можно завершить на следующем уроке. Просмотр рисунков осуществляется в программе КИНО, где вызываются файлы типа B. 10 REM КАРТИНКА 20 INVERSE: RIBBON=2: НОМЕ 30 НТАВ 10: VTAB 20 40 PRINT "смотрите кино" 45 FOR I = 1 ТО 3000: NEXT I 50 MGR=2 60 PRINT CHR$ (4);"BLOAD RAVE" 70 FOR I = 1 TO 2000: NEXT I 80 PRINT CHR$ (4);"BLOAD KAIPSO" 85 FOR I = 1 TO 2000: NEXT I 90 PRINT CHR$ (4);"BLOAD открытка1" 110 FOR I = 1 TO 2000: NEXT I 130 FOR I = 1 TO 2000: NEXT I 140 PRINT CHR$ (4);"BLOAD BLACKNIGER" 145 FOR I = 1 TO 2000: NEXT I 147 PRINT CHR$ (4);"BLOAD свеча" 150 FOR I = 1 TO 2000: NEXT I 170 FOR I = 1 TO 2000: NEXT I 180 PRINT CHR$ (4);"BLOAD муха" 190 FOR I = 1 TO 2000: NEXT I 200 PRINT CHR$ (4);"BLOAD RI" 210 FOR I = 1 TO 2000: NEXT I 220 PRINT CHR$ (4);"BLOAD снег" 230 FOR I = 1 TO 2000: NEXT I 240 PRINT CHR$ (4);"BLOAD SNEG" 250 FOR I = 1 TO 2000: NEXT I 260 PRINT CHR$ (4);"BLOAD картина" Особо следует отметить, что в программах указанные команды в некоторых случаях могут не выполняться с выдачей на экран надписи: «ОШИБКА ОБМЕНА». Чтобы избежать этого, рекомендуется перед ними вставить 5 и более команд PRINT. После этого команды загрузки выполняются без особых проблем. * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |