Speccy - наш выбор!  
ZXPRESS
ZXTUNES
Virtual TR-DOS
World of Spectrum
ZX Spectrum Old Demos •

Go Back   Speccy - наш выбор! > Общий раздел > Для начинающих

Reply
 
Thread Tools Display Modes
Old 15th September 2011, 12:53   #1
Guru
 
palsw's Avatar
 
Join Date: 8th May 2011
Location: Измаил, Украина
Posts: 2,903
Thanks: 673
Thanked 700 Times in 514 Posts
palsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to behold
Default ZX Assembler++ (EmuZWin 2.75)- для новичков

Создал новую тему,так-как эта тема 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
0:0 Errors found at pass 1
18:8 Waiting for coparison operation


Что означает не активная кнопка :
__________________
Радио-Губитель Sprinter - жив!

Last edited by palsw; 15th September 2011 at 14:02.
palsw is online now   Reply With Quote
Old 15th September 2011, 13:41   #2
Master
 
GM BIT's Avatar
 
Join Date: 27th November 2008
Location: Красноярск
Posts: 737
Thanks: 406
Thanked 231 Times in 145 Posts
GM BIT is a jewel in the roughGM BIT is a jewel in the roughGM BIT is a jewel in the rough
Default

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 $
GM BIT is offline   Reply With Quote
The Following User Says Thank You to GM BIT For This Useful Post:
palsw (15th September 2011)
Old 15th September 2011, 13:45   #3
Master
 
GM BIT's Avatar
 
Join Date: 27th November 2008
Location: Красноярск
Posts: 737
Thanks: 406
Thanked 231 Times in 145 Posts
GM BIT is a jewel in the roughGM BIT is a jewel in the roughGM BIT is a jewel in the rough
Default

Quote:
Originally Posted by palsw View Post
1.Где почитать инструкцию на русском zx-assembler++,а также дебугер?
HELP и пример использования от разработчика
Attached Files
File Type: 7z ZX Assembler ++.7z (25.2 KB, 86 views)
GM BIT is offline   Reply With Quote
The Following User Says Thank You to GM BIT For This Useful Post:
palsw (15th September 2011)
Old 15th September 2011, 14:44   #4
Guru
 
palsw's Avatar
 
Join Date: 8th May 2011
Location: Измаил, Украина
Posts: 2,903
Thanks: 673
Thanked 700 Times in 514 Posts
palsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to beholdpalsw is a splendid one to behold
Default

разобрался 18:8 Waiting for coparison operation это ошибка - CP " " .Писали в соседнем топике что нужно вместо кавычек ставить апостроф -у меня не получается ,все равно ошибка получается .

Quote:
Originally Posted by Andrew771 View Post
В общем, проверка в эмуляторе EmuZWin показала, что буквы нужно вставлять обязательно заглавные и в апострофах, а не в кавычках. А лучше еще - коды нужных клавиш в числовом виде. Тогда всё нормально работает.
Команду HALT ставить не обязательно, но я ставлю, т.к. высер

XOR A
LD (23560),A
WAIT LD A,(23560)
AND A
JR Z,WAIT

больно уж крив. И идиоту понятно, что условие JR Z,WAIT много-много раз успеет выполниться, прежде чем распознается наконец клавиша по умалчиваемому прерыванию.
Вот тут проблема - апостроф это на клавише Ё ???
__________________
Радио-Губитель Sprinter - жив!

Last edited by palsw; 15th September 2011 at 15:42.
palsw is online now   Reply With Quote
Old 16th September 2011, 16:06   #5
Veteran
 
Join Date: 29th December 2010
Location: Москва
Posts: 1,227
Thanks: 615
Thanked 508 Times in 256 Posts
Andrew771 is a name known to allAndrew771 is a name known to allAndrew771 is a name known to allAndrew771 is a name known to allAndrew771 is a name known to allAndrew771 is a name known to all
Default

Quote:
Originally Posted by palsw View Post
Вот тут проблема - апостроф это на клавише Ё ???
Да, это не тот апостроф. Нужен обычный, который на букве Э, тогда всё нормально работает, проверил только что.
Кстати, если не сложно, кидай набранные примеры из этой книги в тему: http://zx.pk.ru/showthread.php?t=1143&page=4


Quote:
Originally Posted by palsw View Post
1.Где почитать инструкцию на русском zx-assembler++,а также дебугер?
Все инструкции на русском и английском языках лежат в одной папке с исполнимым файлом эмулятора.

Quote:
Originally Posted by palsw View Post
2.Интересен сам процесс от начала и до запуска с отладкой :
- Вот написал я текст самой программы -нажал Compile(F4) -повезло ошибок нет .
- в логе в конце пишет вот это - (Waiting for coparison operation) -что он хочет от меня?
Набираешь текст программы в ассемблере, вначале обязательно команда ORG xxxx (где xxxx - адрес начала программы). Команду ENT $ ставить не обязательно. Затем, на всякий случай сохранившись, компилируешь, возможно исправляешь ошибки. Затем закрываешь окно ассемблера, набираешь в самом эмуляторе волшебное RANDOMIZE USR xxxx и любуешься результатом.
Отладчик можно вызывать в любой момент, в том числе и во время выполнения программы (меню Debug Window). Тогда выполнение программы остановится и будет отображаться текущая команда и ее адрес, а также значения всех регистров и стека. Дальше можешь пошагово выполнять команды клавишей F7 и смотреть на изменения регистров и памяти.
Еще удобная команда - создание точек останова. Это чтобы не выполнять пошагово кучу команд, а пропускать сразу их (они как обычно выполнятся) от одной точки останова до другой. Например, если есть кусок программы, который гарантированно правильно работает, то незачем его выполнять пошагово, а сразу выполнить и перейти к коду, где возможна ошибка. Тогда ставишь точку останова на первой команде этого сомнительного кода (в дебаггере рядом с адресом команды тыкаешь, когда рука с кружочком, появляется красный кружочек. Убирать точку останова также). Просмотреть и удалить ненужные точки останова можно в меню Breakpoint List. Если нажимать F9, то прога будет выполняться обычным образом до следующей точки останова. Если нажимать F7, то будет каждая команда выполняться пошагово.

Quote:
Originally Posted by palsw View Post
Что означает не активная кнопка :
Установить счетчик команд на адресе выполнения (из списка адресов, которые были указаны ORGами). Активной становится после успешной компиляции. Я ей не пользуюсь, вроде незачем.
__________________
Формально всё правильно, а по существу - издевательство (В.И.Ленин)
Andrew771 is offline   Reply With Quote
The Following User Says Thank You to Andrew771 For This Useful Post:
palsw (16th September 2011)
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +4. The time now is 21:00.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Map Яндекс.Метрика