User Tag List

Показано с 1 по 10 из 77

Тема: Пишем на ассемблере под эмулятором

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #20

    Регистрация
    08.05.2011
    Адрес
    г. Измаил, Украина
    Сообщений
    3,216
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Ну поставь EI в начало - заработает. Только печатать не будет через RST 16, естессно. У тебя ж в снапшоте бейсик не инициализирован, а ты через его вызовы пытаешься печатать.
    спасибо за ответ.я понял что мне еще рано на этот ассемблер переходить -слишком он сложный для начала.Буду в Gens4 дальше на реале всё набивать и на дискетку сохранять.там всё хоть работает

    добавление EI не дало результата,а вот замена букв на цифры 6,7,8,9,0 -работает !так в чём прикол с буковками?

    Код:
    device zxspectrum48
    	ORG   60000
           EI
           XOR   A
           CALL  8859
           LD    A,68
           LD    (23693),A
           CALL  3435
           LD    A,2
           CALL  5633
    ; Î÷èñòêà ñòðîêè äëÿ ââîäà èìåíè
           LD    HL,NAME
           LD    DE,NAME+1
           LD    BC,19
           LD    (HL)," "
           LDIR
    ; Âûâîä òàáëèöû ñèìâîëîâ â ðàìêå
           CALL  TABL
           CALL  LINES
           LD    A,68
           LD    (23693),A
           LD    BC,#506     ;íà÷àëüíûå êîîðäèíàòû êóðñîðà â òàáëèöå
           LD    E,0         ;íîìåð ñèìâîëà â ñòðîêå ââîäà
           SET   3,(IY+48)   ;ðåæèì ââîäà ïðîïèñíûõ áóêâ
    ; Óïðàâëåíèå êóðñîðîì è ïå÷àòü âûáðàííîãî ñèìâîëà â ñòðîêó
    KEYS   CALL  SETCUR      ;âûâîä êóðñîðà
           XOR   A
           LD    (23560),A
    WAIT   LD    A,(23560)   ;îæèäàíèå íàæàòèÿ êëàâèøè
           AND   A
           JR    Z,WAIT
           CP    "6"         ;ïåðåìåùåíèå êóðñîðà íà
           JR    Z,RIGHT     ; îäèí øàã âïðàâî
           CP    "7"         ;ïåðåìåùåíèå êóðñîðà
           JR    Z,LEFT      ; íà îäèí øàã âëåâî
           CP    "9"         ;ïåðåìåùåíèå êóðñîðà
           JR    Z,UP        ; íà îäèí øàã ââåðõ
           CP    "8"         ;ïåðåìåùåíèå êóðñîðà
           JR    Z,DOWN      ; íà îäèí øàã âíèç
           CP    "0"         ;ïå÷àòü âûáðàííîãî ñèìâîëà
           JR    Z,SELECT    ; â ñòðîêå ââîäà
           JR    KEYS
    ; Ïåðåìåùåíèå êóðñîðà âïðàâî
    RIGHT  LD    A,C         ;ïðîâåðêà äîñòèæåíèÿ êóðñîðîì
           CP    24          ; ïðàâîé ãðàíèöû òàáëèöû
           JR    NC,KEYS
           CALL  RESCUR      ;óäàëåíèå êóðñîðà íà ïðåæíåì ìåñòå
           INC   C           ;èçìåíåíèå ïîëîæåíèÿ êóðñîðà
           INC   C
           CALL  SETCUR      ;óñòàíîâêà êóðñîðà íà áóêâó òàáëèöû
           JR    KEYS
    ; Ïåðåìåùåíèå êóðñîðà âëåâî
    LEFT   LD    A,C         ;ïðîâåðêà äîñòèæåíèÿ êóðñîðîì
           CP    7           ; ëåâîé ãðàíèöû òàáëèöû
           JR    C,KEYS
           CALL  RESCUR
           DEC   C
           DEC   C
           CALL  SETCUR
           JR    KEYS
    ; Ïåðåìåùåíèå êóðñîðà ââåðõ
    UP     LD    A,B         ;ïðîâåðêà äîñòèæåíèÿ êóðñîðîì
           CP    6           ; âåðõíåé ãðàíèöû òàáëèöû
           JR    C,KEYS
           CALL  RESCUR
           DEC   B
           DEC   B
           CALL  SETCUR
           JR    KEYS
    ; Ïåðåìåùåíèå êóðñîðà âíèç
    DOWN   LD    A,B         ;ïðîâåðêà äîñòèæåíèÿ êóðñîðîì
           CP    11          ; íèæíåé ãðàíèöû òàáëèöû
           JR    NC,KEYS
           CALL  RESCUR
           INC   B
           INC   B
           CALL  SETCUR
           JR    KEYS
    ; Âûáîð ñèìâîëà, êîòîðûé çàòåì áóäåò íàïå÷àòàí â ñòðîêå èëè âûáîð
    ;  ôóíêöèè äëÿ ðåäàêòèðîâàíèÿ ýòîé ñòðîêè
    SELECT PUSH  BC
           PUSH  DE
           CALL  SND         ;çâóêîâîé ñèãíàë, èçäàâàåìûé ïðè
                             ; ïåðåìåùåíèè ñèìâîëà èç òàáëèöû â
                             ; íàáèðàåìóþ ñòðîêó
           POP   DE
           POP   BC
           LD    A,B
           CP    11
           JR    NZ,MOVE     ;ïå÷àòü ñèìâîëà
           LD    A,C
           CP    20
           JR    Z,DELETE    ;óäàëåíèå ñèìâîëà â ñòðîêå
           CP    22
           JR    Z,SPACE     ;ïå÷àòü ïðîáåëà â ñòðîêå
           CP    24
           RET   Z           ;âûõîä èç ïðîãðàììû
    ; Ïåðåìåùàåì ñèìâîë èç òàáëèöû â íàáèðàåìóþ ñòðîêó è ñìåùàåì êóðñîð
    ;  íà ïîçèöèþ âïðàâî, ïðè ýòîì äåëàåì ïðîâåðêó òîãî, ÷òîáû ñèìâîë
    ;  íå âûøåë çà çàäàííûå ãðàíèöû ñòðîêè (ñëåâà è ñïðàâà).
    MOVE   LD    A,E
           CP    20
           JP    NC,KEYS
           LD    D,0
           PUSH  BC
           PUSH  DE
           LD    A,B         ;ïî âåðòèêàëüíîé êîîðäèíàòå êóðñîðà
                             ; îïðåäåëÿåì àäðåñ äàííûõ ñòðîêè
                             ; òàáëèöû (STR1, STR2, STR3 èëè STR4)
           SUB   5
           LD    HL,D_STR
           LD    E,A
           ADD   HL,DE
           LD    E,(HL)
           INC   HL
           LD    D,(HL)
           EX    DE,HL
           LD    A,C         ;ïî ãîðèçîíòàëüíîé êîîðäèíàòå íàõîäèì
                             ; êîä ñèìâîëà â áëîêå äàííûõ
           SUB   6
           LD    C,A
           LD    B,0
           ADD   HL,BC
           POP   DE
           POP   BC
           LD    A,(HL)      ;ïîìåùàåì êîä ñèìâîëà â A
           LD    HL,NAME     ;îïðåäåëÿåì àäðåñ â ñòðîêå NAME
           ADD   HL,DE       ; äëÿ ââîäà ñèìâîëà
           LD    (HL),A      ;ïîìåùàåì ñèìâîë â ñòðîêó ââîäà
           CALL  PR_STR      ;âûâîäèì ñòðîêó ââîäà íà ýêðàí
           INC   E           ;ñìåùàåì ïîçèöèþ ââîäà âïåðåä
           JP    KEYS
    ; Óäàëåíèå íåïðàâèëüíî íàáðàííîãî ñèìâîëà
    DELETE LD    A,E         ;ïðîâåðêà äîñòèæåíèÿ íà÷àëà ñòðîêè ââîäà
           AND   A
           JP    Z,KEYS
           DEC   E           ;óìåíüøàåì ïîçèöèþ ââîäà
           LD    D,0
           LD    HL,NAME
           ADD   HL,DE
           LD    (HL)," "    ;çàìåíÿåì óäàëÿåìûé ñèìâîë ïðîáåëîì
           CALL  PR_STR
           JP    KEYS
    ; Ââîä ïðîáåëà
    SPACE  LD    A,E         ;ïðîâåðêà äîñòèæåíèÿ êîíöà ñòðîêè ââîäà
           CP    20
           JP    NC,KEYS
           LD    D,0
           LD    HL,NAME
           ADD   HL,DE
           LD    (HL)," "
           CALL  PR_STR
           INC   E           ;óâåëè÷èâàåì ïîçèöèþ ââîäà
           JP    KEYS
    ; Âûâîä êóðñîðà èçìåíåíèåì áàéòà àòðèáóòîâ
    RESCUR LD    A,68        ;PAPER 0, INK 4, BRIGHT 1
           JR    PRATTR
    ; Óäàëåíèå êóðñîðà âîññòàíîâëåíèåì áàéòà àòðèáóòîâ
    SETCUR LD    A,79        ;PAPER 1, INK 7, BRIGHT 1
    ; Âû÷èñëÿåì àäðåñ àòðèáóòîâ çíàêîìåñòà è çàíîñèì
    ;  ïî ýòîìó àäðåñó áàéò èç àêêóìóëÿòîðà
    PRATTR LD    L,B
           LD    H,0
           ADD   HL,HL
           ADD   HL,HL
           ADD   HL,HL
           ADD   HL,HL
           ADD   HL,HL
           PUSH  AF
           LD    A,H
           ADD   A,#58
           LD    H,A
           LD    A,L
           ADD   A,C
           LD    L,A
           POP   AF
           LD    (HL),A
           RET
    ; Ïîäïðîãðàììà ïå÷àòè òàáëèöû ñèìâîëîâ
    TABL   LD    DE,STR
           LD    BC,LENSTR
           JP    8252
    ; Ïîäïðîãðàììà ïå÷àòè ââåäåííîé ñòðîêè
    PR_STR PUSH  BC
           PUSH  DE
           LD    DE,STR5
           LD    BC,LENLIN
           CALL  8252
           POP   DE
           POP   BC
           RET
    ; Ïîäïðîãðàììà ðèñîâàíèÿ ðàìêè
    LINES  EXX
           PUSH  HL
           LD    A,66
           LD    (23695),A
           LD    BC,#8A2C    ;B = 138, C = 44
           CALL  8933
           LD    DE,#101
           LD    BC,160      ;B = 0, C = 160
           CALL  9402
           LD    DE,#FF01
           LD    BC,#3D00    ;B = 61, C = 0
           CALL  9402
           LD    DE,#1FF
           LD    BC,160
           CALL  9402
           LD    DE,#101
           LD    BC,#3D00
           CALL  9402
           POP   HL
           EXX
           RET
    ; Êîðîòêèé çâóêîâîé ñèãíàë
    SND    LD    B,30
           LD    HL,350
           LD    DE,2
    SND1   PUSH  BC
           PUSH  DE
           PUSH  HL
           CALL  949
           POP   HL
           POP   DE
           POP   BC
           SBC   HL,DE
           DJNZ  SND1
           RET
    ; Äàííûå òàáëèöû ñèìâîëîâ
    STR    DEFB  22,5,6
    STR1   DEFM  "1 2 3 4 5 6 7 8 9 0" ;ñèìâîëû ÷åðåç îäèí ïðîáåë
           DEFB  22,7,6
    STR2   DEFM  "A B C D E F G H I J"
           DEFB  22,9,6
    STR3   DEFM  "K L M N O P Q R S T"
           DEFB  22,11,6
    STR4   DEFM  "U V W X Y Z . d s e"
    STR5   DEFB  22,19,5,16,5,">",16,2
    NAME   DEFM  "····················"
           DEFB  16,5,"<"
    LENSTR EQU   $-STR       ;&#228;&#235;&#232;&#237;&#224; &#241;&#242;&#240;&#238;&#234;&#232; &#228;&#235;&#255; &#239;&#229;&#247;&#224;&#242;&#232; &#242;&#224;&#225;&#235;&#232;&#246;&#251;
    LENLIN EQU   $-STR5      ;&#228;&#235;&#232;&#237;&#224; &#241;&#242;&#240;&#238;&#234;&#232; &#226;&#226;&#238;&#228;&#224; &#232;&#236;&#229;&#237;&#232;
    ; &#192;&#228;&#240;&#229;&#241;&#224; &#228;&#224;&#237;&#237;&#251;&#245; &#241;&#232;&#236;&#226;&#238;&#235;&#238;&#226; &#226; &#242;&#224;&#225;&#235;&#232;&#246;&#229;
    D_STR  DEFW  STR1,STR2,STR3,STR4
       
       		savesna "probe.sna",#6000


    ---------- Post added at 17:11 ---------- Previous post was at 16:57 ----------

    только на пробел программа тоже не реагирует.только цифры ...
    Последний раз редактировалось palsw; 04.09.2011 в 18:09.
    Радио-Губитель Канал на YouTube

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 32
    Последнее: 10.09.2024, 06:21
  2. Замена дисковода эмулятором диска
    от pbogdan в разделе Внешние накопители
    Ответов: 643
    Последнее: 15.02.2018, 15:45
  3. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  4. Проблемы с эмулятором
    от Allser в разделе Софт
    Ответов: 1
    Последнее: 03.11.2006, 11:10
  5. Управление эмулятором из zx-программы
    от Spectre в разделе Эмуляторы
    Ответов: 42
    Последнее: 29.08.2006, 12:58

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •