ZXNet эхоконференция «code.zx»


тема: ввод строки.



от: Yaroslav Kozlov
кому: Kirill Frolov
дата: 23 Apr 1998

Kirill Frolov at 21-04-98 =>
Igor Krauklis ....

[...]

Привет, Kirill & Igor!

IK>> Люди, а есть ли у кого-нидудь
IK>> подпрограммка ввода строки ?

KF> У "кого-нидудь" может и есть. А куда ее и откуда вводить ?
KF> С клавы типа инпута в бейсике ?

Если для виевера, то...

LD B,42; символы в строке
LD HL,lab2
PUSH HL
LD HL,adr_str;адрес тек. строки
LD DE,string ;строка, что будет
lab1 LD A,(HL) ;напечатана
INC HL
CP #D
RET Z
;здесь можно опросить
;на наличие упр.
;символов

LD (DE),A
INC DE
DJNZ lab1
CP #D
RET NZ
INC HL; в HL адрес след. строки.
RET

lab2 ..... ;теперь можно и напечатать.


Если хотите, чтобы Спек работал с полной
отдачей, можно позаботится о скорости.
INC RR, на 2 такта больше, чем INC R,
и INC RR не влияет на флаги. Этим можно
воспользоватся. Многие системные програм-
меры забывают, что у Z80 есть стек.
Его использоание в чтении данных дает
ускорение в 2, а то и больше раз.
Притом, что трата памяти при разумном
использовании незначительна. Конечно,
когда стеком пользуются в таких целях,
прерывания обязательно надо запретить!
И еще: на скорпе magic в таких местах
нажимать не следует.

.....

; в HL адрес экрана

LD (savesp+1),SP
LD C,H
LD B,32; печать по 2 символа
EXX
DI
LD SP,strind
LD B,#F0; маска
EXX
P64_0 EXX
POP DE
LD H,#60
LD L,D
LD D,H
LD A,(DE)
INC D
AND B
LD C,A
LD A,(HL)
INC H
AND #F
OR C
EXX
LD (HL),A
INC H

....
....

LD H,C
INC L
DJNZ p64_0
savesp LD SP,0 ; здесь стек
EI
RET ; вот и вернулись..

Это был фрагмент процедуры печати строки
на 64 символа.

[...]


С наилучшими пожеланиями, PHOENIX

-+- ZXASM 3.0




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Бук - Похождения Штирлица и другие приключения Бормана.
Глюки - баг-репорты читателей газеты.
Обратная связь - контакты редакции.

В этот день...   14 октября