Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

Тема: Что не так в коде?

  1. #1
    Master
    Регистрация
    25.05.2007
    Адрес
    Киржач, Владимирская обл.
    Сообщений
    616
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Что не так в коде?

    Подскажите, что не так в простом коде? Вроде должно все работать, но выдает ошибку "B Integer Out of Range"
    PHP код:
         ORG  40000
         LD     BC
    ,#6464   ;координаты точки
         
    LD     L,30
    L1   CALL  
    #22E5  ;процедура печати точки
         
    INC    BC
         DEC   L
         JR      NZ
    ,L1
         RET 

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran Аватар для lisica
    Регистрация
    19.12.2008
    Адрес
    Черкассы
    Сообщений
    1,573
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хм, а мож надо перед вызовом сохранить BC и HL в стеке, а после восстановить?
    Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash.
    Pentagon 128(1991г.)+YМ
    программатор 2732-27512.


  4. #3
    Master
    Регистрация
    25.05.2007
    Адрес
    Киржач, Владимирская обл.
    Сообщений
    616
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, все получилось. Значит процедура печати точки портит регистры? Получается всегда надо сохранять значения, чтобы воспользоваться подпрограммами ПЗУ?

  5. #4
    Veteran Аватар для lisica
    Регистрация
    19.12.2008
    Адрес
    Черкассы
    Сообщений
    1,573
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Выходит что так.
    Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash.
    Pentagon 128(1991г.)+YМ
    программатор 2732-27512.


  6. #5
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    239
    Поблагодарили
    101 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Shuran33, ну ты бы защел и посмотрел в этой процедуре что происходит, вопросов бы лишних и не возникло, благо щас в любом эмуляторе можно посмотреть.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  7. #6
    Veteran Аватар для Лас
    Регистрация
    18.11.2008
    Адрес
    пос.Полярный, ЯНАО
    Сообщений
    1,078
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shuran33 Посмотреть сообщение
    Получается всегда надо сохранять значения, чтобы воспользоваться подпрограммами ПЗУ?
    Если бы в каждой подпрограмме ПЗУ Спектрума выполнялись операции сохранения и восстановления регистров, то Викерс бы не уложился в объем 16 КБ.

  8. #7
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Выходит что так.
    Вы тут ща запугаете народ - они и перед RST #10 или #1f54 начнут сохранять все, включая альтернативные и индексные регистры
    Последний раз редактировалось Alex Rider; 10.11.2013 в 03:50.

  9. #8
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Там после процедуры вывода точки похоже нужно делать так:

    Код:
         ORG  40000 
         LD     BC,#6464   ;координаты точки 
         LD     L,30 
    L1  CALL  #22E5  ;процедура печати точки 
         LD BC,(#5C7D)
         INC    BC 
         DEC   L 
         JR      NZ,L1 
         RET

  10. #9
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Там после процедуры вывода точки похоже нужно делать так:
    Регистр L надо сохранять, в нем счетчик точек. И INC BC там не к чему - надо делать INC C.

  11. #10
    Master
    Регистрация
    25.05.2007
    Адрес
    Киржач, Владимирская обл.
    Сообщений
    616
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А тогда еще вопрос. Как в аласме можно хранить переменные?

    Вот так можно? :
    PHP код:
       LD   A,(date)
       
    RST   #10

    date 62,63,45,43 
    И еще интересно где лучше хранить данные? На стеке нежелательно наверное?

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Интерфейс эмулятора в коде Z80
    от CityAceE в разделе Эмуляторы
    Ответов: 29
    Последнее: 15.09.2008, 20:23

Ваши права

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