User Tag List

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

Тема: Не работает пользовательский ввод при использовании SNA

Комбинированный просмотр

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

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    +1. Извиняюсь за неточность. Просто я только с таким и работаю, про версии без плюса и забыл уже за давностью. Ну, главное, разобрались. Я только на понял чем с итоге sjasmplus не устраивает. К нему ещё и unreal с поддержкой меток можно прикрутить так что в дебаге будете ходить по своим меткам.
    just few quick comments to the whole thread:

    the first post mentions also #CSpect emulator and ZX Spectrum Next. In zoom's branch of sjasmplus you can export map file for CSpect emulator directly with `CSPECTMAP` ( http://z00m128.github.io/sjasmplus/d...l#po_cspectmap ) directive since v1.13.1

    About `SAVESNA` in sjasmplus vs pure binaries: sjasmplus has both. It was extra work for sjasmplus contributors, but *you* can safely ignore `SAVESNA` in *your* projects and use only raw binary output. (there, problem solved)

    About SNA vs original problem: you will meet more surprises with the SNA, it's really invasive format replacing all memory (of classic ZX48 and ZX128 models), giving the ROM fake artificial state. If this fake state is not what you need, then fix the state.

    But technically that's not a fail of the assembler, or the SNA file, you had system variables in a state when the ROM keyboard routine was scanning key "P" not as small letter "p", but as BASIC keyword "PRINT", which is just another mode of the ROM keyboard routine... but it fails in your test. When you did load the TAP, the BASIC was still in the letter-input mode after writing `LOAD ""`, so the keyboard routine was reading "p", not PRINT.

    Overall I'm always a bit puzzled by these tutorials, which prefer ROM calls for reading keyboard or printing text, as the HW on ZX is very simple, and it takes only few hours to learn how to read keyboard, and maybe couple of days to print your own character and string, directly into video RAM. And the ROM routines are good for BASIC, but not for games. Where's the fun in calling the ROM...

    Этот пользователь поблагодарил Ped7g за это полезное сообщение:

    YuronN(09.01.2020)

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

  3. #2

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    the first post mentions also #CSpect emulator and ZX Spectrum Next. In zoom's branch of sjasmplus you can export map file for CSpect emulator directly with `CSPECTMAP` ( http://z00m128.github.io/sjasmplus/d...l#po_cspectmap ) directive since v1.13.1
    Can you describe, please, what is the difference between HEXA_16BIT_ADDRESS and HEXA_LONG_ADDRESS in labels list from CSPECTMAP directive?

    Цитата Сообщение от Ped7g Посмотреть сообщение
    Where's the fun in calling the ROM...
    It is convenient in some cases. Of course, we should set the needed state of system variables before this. Generated SNA file can't provide all possible needed states.

  4. #3

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Can you describe, please, what is the difference between HEXA_16BIT_ADDRESS and HEXA_LONG_ADDRESS in labels list from CSPECTMAP directive?
    The 16bit address is within Z80 address range, where the label was mapped when defined in assembler (if it's not memory address, but just some large value, it will be simply truncated to 16 bits)).

    The long address is address in the 1.75MiB SRAM space of ZX Spectrum Next (8kiB pages 0, 1, 2, 3, ..., 223) = "flat addressing".

    The default memory mapping of Next after boot into NextZXOS is [255, 255, 10, 11, 4, 5, 0, 1] (255=ROM), or in terms of 16kiB banks [ROM, Bank 5, Bank 2, Bank 0] ... so when you define label "xyz" at ORG $4001 (without changing pages), it is in 8kiB page 10, offset 1 = long address 0x14001. The #CSpect emulator understand this address formatting and will display in debugger the label "xyz" when you map page 10 into memory (and hide the label, when page is not mapped). (the format is defined by #CSpect developer, so I'm not sure what it does when you map page 10 to different region, and I don't care too much, as it's closed source, so I can't help with anything - but I can fix sjasmplus export if somebody will find some bug in it)

    Этот пользователь поблагодарил Ped7g за это полезное сообщение:

    Spectramine(09.01.2020)

  5. #4

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ped7g, thanks. Seems like it's not much useful for 48/128kb Spectrum models. The Unreal's labels files generated by LABELSLIST directive is much more useful because of page info of labels.

  6. #5

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Ped7g, thanks. Seems like it's not much useful for 48/128kb Spectrum models. The Unreal's labels files generated by LABELSLIST directive is much more useful because of page info of labels.
    While I can agree with your general sentiment (Unreal is probably better), I don't understand the second part of your comment.

    The page offset is 13 bits ($0000..$1FFF), so if you cut the bottom 13 bits of the "long address", you have the page number (8 bits in case of Next) of label.
    0x14001-> offset $0001, page $0A

    I.e. it's the same information as unreal export, just different formatting (unreal export does the offset mask already in export, so the exported offset is 14 bit (zx128 banks) only and it shows bank number separately, but it's the same information in the end on the bit level). Maybe the formatting is less human-friendly...
    Последний раз редактировалось Ped7g; 09.01.2020 в 09:47. Причина: forgot the +8 bits in the offsets

    Этот пользователь поблагодарил Ped7g за это полезное сообщение:

    Spectramine(09.01.2020)

  7. #6

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ped7g, thanks again, I got it at last. I did not see the page info from map file by sight, but i got it with calculator)

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

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

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

Похожие темы

  1. Т34 ВВ55 просто ввод/вывод
    от azx987sa в разделе Устройства ввода
    Ответов: 10
    Последнее: 21.08.2018, 01:14
  2. Подскажите, можно ли на basic'е сделать ввод русских слов
    от Fishbone в разделе Программирование
    Ответов: 31
    Последнее: 21.12.2014, 23:12
  3. Нужен компилятор си, простой в использовании
    от Kakos_nonos в разделе Программирование
    Ответов: 14
    Последнее: 01.04.2012, 15:42
  4. Ввод с магнитной ленты - форматы
    от AlexBel в разделе Программирование
    Ответов: 3
    Последнее: 05.03.2008, 21:45
  5. Об использовании WDC1772
    от ILoveSpeccy в разделе Несортированное железо
    Ответов: 3
    Последнее: 14.06.2007, 23:20

Ваши права

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