![]() |
|
|
|
|
|
#1 |
|
Guru
Join Date: 8th May 2011
Location: Измаил, Украина
Posts: 2,903
Thanks: 673
Thanked 700 Times in 514 Posts
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Создал новую тему,так-как эта тема http://zx.pk.ru/showthread.php?t=1345&highlight=emuzwin больше про обновления самого эмулятора.
1.Где почитать инструкцию на русском zx-assembler++,а также дебугер? 2.Интересен сам процесс от начала и до запуска с отладкой : - Вот написал я текст самой программы -нажал Compile(F4) -повезло ошибок нет . - в логе в конце пишет вот это - (Waiting for coparison operation) -что он хочет от меня? -как дальше запустить скомпилированную программу на выполнение или я пропустил перед запуском важный момент? Code:
ORG 60000
; Çàäàíèå ïîñòîÿííûõ àòðèáóòîâ ýêðàíà
LD A,7
LD (23693),A
XOR A
CALL 8859
CALL 3435
LD A,2
CALL 5633
; Ââîä ñèìâîëîâ UDG - òðè «ïóëåâûå îòâåðñòèÿ»
LD HL,UDG
LD (23675),HL
; Îñíîâíàÿ ÷àñòü ïðîãðàììû
CALL MISH ;ðèñîâàíèå ìèøåíè
MAIN CALL WAIT ;îæèäàíèå íàæàòèÿ ëþáîé êëàâèøè
CP " "
RET Z
LD A,22
RST 16
LD E,20 ;çàäàíèå äèàïàçîíà äëÿ êîîðäèíàòû Y
CALL RND
RST 16
LD E,30 ;çàäàíèå äèàïàçîíà äëÿ êîîðäèíàòû X
CALL RND
RST 16
LD A,16
RST 16
LD A,6
RST 16
LD E,3 ;çàäàíèå íîìåðà «ïóëåâîãî îòâåðñòèÿ»
CALL RND
ADD A,144 ;âû÷èñëåíèå êîäà ñïðàéòà
RST 16
CALL SND ;çâóêîâîé ñèãíàë
JR MAIN
; Ïîäïðîãðàììà âûâîäà íà ýêðàí ìèøåíè
MISH LD C,20
CALL CIRC
LD C,40
CALL CIRC
LD C,60
CALL CIRC
LD C,80
CALL CIRC
LD DE,TEXT
LD BC,LENTXT
JP 8252
; Ïîäïðîãðàììà ðèñîâàíèÿ îêðóæíîñòåé
CIRC EXX
PUSH HL
EXX
PUSH BC
LD A,120
CALL 11560
LD A,90
CALL 11560
POP BC
LD B,0
CALL 11563
CALL 9005
EXX
POP HL
EXX
RET
; Ïîäïðîãðàììà îñòàíîâêè ñ÷åòà
WAIT XOR A
LD (23560),A
WAIT1 LD A,(23560)
AND A
JR Z,WAIT1
RET
; Ïîäïðîãðàììû
RND CALL RND255
LD L,A
LD H,0
LD D,H
CALL 12457
LD A,H
RET
RND255 PUSH BC
PUSH DE
PUSH HL
; Ðåãèñòðîâàÿ ïàðà HL çàãðóæàåòñÿ çíà÷åíèåì èç ñ÷åò÷èêà «ñëó÷àéíûõ» ÷èñåë
; (ýòî ìîæåò áûòü, íàïðèìåð, ñèñòåìíàÿ ïåðåìåííàÿ 23670/23671,
; êîòîðàÿ èñïîëüçóåòñÿ Áåéñèêîì äëÿ òåõ æå öåëåé)
LD HL,(ADDR)
LD DE,7 ;äàëüøå ñëåäóåò ðàñ÷åò î÷åðåäíîãî
; çíà÷åíèÿ ñ÷åò÷èêà
ADD HL,DE
LD E,L
LD D,H
ADD HL,HL
ADD HL,HL
LD C,L
LD B,H
ADD HL,HL
ADD HL,BC
ADD HL,DE
LD (ADDR),HL ;ñîõðàíåíèå çíà÷åíèÿ ñ÷åò÷èêà «ñëó÷àéíûõ»
; ÷èñåë äëÿ ïîñëåäóþùèõ ðàñ÷åòîâ
LD A,H ;ðåãèñòð A çàãðóæàåòñÿ çíà÷åíèåì
; ñòàðøåãî áàéòà ñ÷åò÷èêà
POP HL
POP DE
POP BC
RET
ADDR DEFW 0
SND LD B,80
LD HL,150
LD DE,1
SND1 PUSH BC
PUSH DE
PUSH HL
CALL 949
POP HL
POP DE
POP BC
DEC HL ;èëè INC HL
DJNZ SND1
RET
; Äàííûå äëÿ ìèøåíè
TEXT DEFB 22,10,14
DEFM "10"
DEFB 22,10,18
DEFM "8"
DEFB 22,10,21
DEFM "6"
DEFB 22,10,23
DEFM "4"
DEFB 22,10,11
DEFM "8"
DEFB 22,10,8
DEFM "6"
DEFB 22,10,6
DEFM "4"
LENTXT EQU $-TEXT
; Äàííûå äëÿ «ïóëåâûõ îòâåðñòèé»
UDG DEFB 4,20,62,60,127,60,40,8
DEFB 9,95,252,63,126,44,8,8
DEFB 16,48,244,63,28,56,28,8
18:8 Waiting for coparison operation Что означает не активная кнопка :
__________________
Радио-Губитель Sprinter - жив!
Last edited by palsw; 15th September 2011 at 14:02. |
|
|
|
|
|
#2 |
|
Master
Join Date: 27th November 2008
Location: Красноярск
Posts: 737
Thanks: 406
Thanked 231 Times in 145 Posts
![]() ![]() ![]() |
http://s007.radikal.ru/i302/1108/ce/007502b23ce1.bmp
Слева - дебагер для отладки и запуска По центру - текстовик Справа - результат Снизу - рабочие метки, для быстрого поиска в большом тексте 1. Откомпилил (либо F4) 2. Запустил ---------- Post added at 12:41 ---------- Previous post was at 12:39 ---------- Надо после org написать команду entrypoint $ |
|
|
|
| The Following User Says Thank You to GM BIT For This Useful Post: | palsw (15th September 2011) |
|
|
#4 | |
|
Guru
Join Date: 8th May 2011
Location: Измаил, Украина
Posts: 2,903
Thanks: 673
Thanked 700 Times in 514 Posts
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
разобрался 18:8 Waiting for coparison operation это ошибка - CP " " .Писали в соседнем топике что нужно вместо кавычек ставить апостроф -у меня не получается ,все равно ошибка получается .
Quote:
__________________
Радио-Губитель Sprinter - жив!
Last edited by palsw; 15th September 2011 at 15:42. |
|
|
|
|
|
|
#5 | ||
|
Veteran
Join Date: 29th December 2010
Location: Москва
Posts: 1,227
Thanks: 615
Thanked 508 Times in 256 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
Да, это не тот апостроф. Нужен обычный, который на букве Э, тогда всё нормально работает, проверил только что.
Кстати, если не сложно, кидай набранные примеры из этой книги в тему: http://zx.pk.ru/showthread.php?t=1143&page=4 Quote:
Quote:
Отладчик можно вызывать в любой момент, в том числе и во время выполнения программы (меню Debug Window). Тогда выполнение программы остановится и будет отображаться текущая команда и ее адрес, а также значения всех регистров и стека. Дальше можешь пошагово выполнять команды клавишей F7 и смотреть на изменения регистров и памяти. Еще удобная команда - создание точек останова. Это чтобы не выполнять пошагово кучу команд, а пропускать сразу их (они как обычно выполнятся) от одной точки останова до другой. Например, если есть кусок программы, который гарантированно правильно работает, то незачем его выполнять пошагово, а сразу выполнить и перейти к коду, где возможна ошибка. Тогда ставишь точку останова на первой команде этого сомнительного кода (в дебаггере рядом с адресом команды тыкаешь, когда рука с кружочком, появляется красный кружочек. Убирать точку останова также). Просмотреть и удалить ненужные точки останова можно в меню Breakpoint List. Если нажимать F9, то прога будет выполняться обычным образом до следующей точки останова. Если нажимать F7, то будет каждая команда выполняться пошагово. Установить счетчик команд на адресе выполнения (из списка адресов, которые были указаны ORGами). Активной становится после успешной компиляции. Я ей не пользуюсь, вроде незачем.
__________________
Формально всё правильно, а по существу - издевательство (В.И.Ленин)
|
||
|
|
|
| The Following User Says Thank You to Andrew771 For This Useful Post: | palsw (16th September 2011) |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|