ZX Review
#7-8-9-10
08 ноября 1997 |
|
Этюды - Программа очистки заданного окна экрана.
(c) Кобяков М., г.Находка Предлагаю в раздел "Этюды" свою программу для очистки за- данного окна экрана. Координаты X,Y, а также ширина и высота за- даются в пикселах. Единственное ограничение - координата X ВСЕ- ГДА должна быть >=8!!! Для очис- тки всего экрана необходимо за- давать ширину = 0 и высоту = 176. А теперь предлагаю читателям усовершенствовать мою программу, в частности, уменьшить длину и увеличить быстродействие. Кто сделает лучше? Немного критики в ваш адрес. Куда делись шестнадцатеричные дампы программ в разделе "Этю- ды"? Я, конечно, понимаю - эко- номия места, дорогая бумага и т.д., но ведь далеко не каждому нравится набирать программу на ассемблере, да и занятие это до- вольно трудоемкое. А при вводе шестнадцатеричных дампов коли- чество нажатий на клавиши умень- шается (как вы сами подсчитали) в 5-6 раз! Какая экономия време- ни и нервов конечного пользова- теля! Правда, в письме я дамп не привожу, т.к. если писать от ру- ки кучу цифр, то можно понаде- лать не меньшую кучу ошибок. Нельзя ли вернуть указание длины и стартового адреса после подпрограммы, или хотя бы длины (как в ZX РЕВЮ N1-2 за этот год). Ну и наконец маленькая прось- ба: нельзя ли увеличить объем журнала ну хотя бы на 5-6 стра- ниц? 140. ;Window clearer ;by Lazy Max LD D,0 ;X-коорд. левого верхнего угла LD E,175 ;Y-коорд. левого верхнего угла LD A,175 SUB E LD E,A AND A RRA SCF RRA AND A RRA XOR E AND 248 XOR E LD H,A LD A,D RLCA RLCA RLCA XOR E AND 199 XOR E RLCA RLCA LD L,A LD A,D AND 7 LD E,A LD A,8 SUB E LD E,A LD B,A LD A,255 GO1 AND A RLA DJNZ GO1 LD D,A PUSH HL LD HL,BUFF LD C,(HL) INC HL LD B,(HL) POP HL REP PUSH HL PUSH BC LD A,D AND (HL) LD (HL),A PUSH DE PUSH BC LD A,B SUB E CP 8 JR C,CNT AND 248 RRA RRA RRA LD B,A SUB A L1 INC HL LD (HL),A DJNZ L1 CNT POP BC LD A,B SUB E AND 248 ADD A,E LD D,A LD A,B SUB D JR Z,PASS LD B,A LD A,255 L2 AND A RRA DJNZ L2 INC HL AND (HL) LD (HL),A PASS POP DE POP BC POP HL CALL DLINE DEC C LD A,C AND A JR NZ,REP RET DLINE INC H LD A,H AND 7 RET NZ LD A,L ADD A,32 LD L,A RET C LD A,H SUB 8 LD H,A RET BUFF DEFB 30,53 ;высота, ширина Длина кода: 128. 2 Прим.ред.: Некоторые соображения по по- воду критики. По нашему мнению, необходи- мости в дампах совершенно нет. Вы ведь са- ми писали, что не будете писать дамп, т.к. наделаете кучу ошибок. Поверьте, при набо- ре дампа ошибок будет не меньше. И на их поиск будет затрачено еще больше времени, чем на набор исходника. К тому же ведь эти процедуры вы будете включать в свои прог- раммы, стало быть, в виде исходников. А если вас не устраивает стартовый адрес ко- да? Так что, по нашему мнению, проблем с дампами куда больше. Теперь насчет старто- вого адреса и длины. Длину мы теперь бу- дем по возможности указывать, а в старто- вом адресе нет необходимости - все равно каждый проассемблирует под тот адрес, ко- торый ему больше удобен. Хотелось бы доба- вить еще одно пожелание к тем, кто возь- мется по предложению Максима оптимизиро- вать данную процедуру. Устраните ограниче- ние на координату X. * * *
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября