посмотри на свою проблему с логики автора эмуля.
зачем ему сохранять sna48 если комп находится в 128ом режиме ?
более того некоторые эмули ещё и сохраняют тип 128ой машины (фирма/пентагон)
посмотри на свою проблему с логики автора эмуля.
зачем ему сохранять sna48 если комп находится в 128ом режиме ?
более того некоторые эмули ещё и сохраняют тип 128ой машины (фирма/пентагон)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Странный вопрос. Ты когда в меню 128 спектрума выбираешь BASIC48 у тебя же физически комп не превращается в спектрум 48к? Эмулятор эмулит конкретную модель машины. Тебе же выше минимум два раза объясняли, что когда эмулятор видит на входе sna, снятый с машины 48к, он не порт конфигурации блочит и не байты в системные переменные выставляет. Он просто считает, что для работы поднимаем эмуляцию машины 48к, где памяти выше 48к и порта конфигурации просто нет!
Это конечно понятно, но если уже есть поддержка 128(и более), зачем при загрузке 48 снимка памяти и систему сразу делать 48ой? Ведь я, например имея 128к, выгружу часть памяти, соответствующую 48, в которой имеется код работы со страницами, загружу в другой 128, всё ведь нормально будет работать. Просто мне кажется, что рассматривать 48sna лучше было бы как минимальную часть памяти(поддерживаемую и теми и другими моделями), а не признак конкретно модели. Ну это такое, у разрабов эмулей своё видение, и менять никто ничего всё равно не будет.
- - - Добавлено - - -
Но там я выбираю сам, а тут мне выбора не дают.
Причём только что ещё раз посмотрел, и в эмузвине есть настройка
Ignore soft lock 48k by setting bit 5 in port 7FFD (always 128k in 128k mode),
но в данном случае она не помогает, так как эмулятор, видя 48к памяти в снапшоте, и машину делает 48. Но таки при загрузке 128 в режиме 48, он сначала спрашивает, переключить ли модель?
Последний раз редактировалось Dwa83; 26.08.2020 в 10:03.
приветствую,
какая сейчас примерно технология работы с современными Z80 ассмеблерами и запуском бинарника на эмуляторе?
т.е например sjasmplus собирает мою helloworld программу но никакого бинарного файла не создает.
В примерах sjasmplus в файле frost10.z80 стоит макрокоманда
SAVESNA "frost10.sna",STARTF
я так понимаю что это команда для формирования полного образа памяти snapshot.
С загрузчиком? Помнится на BASIC загручик еще нужен был .
Вообщем я совершенно запутался тут , в элементарнейшем вопросе как раз для этой темы.
Я нашел несколько гайдов по настройке окружения в современных условиях, но там как то этот не расммотрен.
Буду благодарен за подсказку!
Эмуляторы вроде советуют для разработки CSpect и ZEsarUX
Я пишу на С++ и на asm писал бывало для x86 , но спектрум последний раз запускал 25 лет назад и никогда на асме не писал под него.
Vladius
НИ В КОЕМ СЛУЧАЕ!
это глючное гафно
оно то и дело зависает теряя результат работы
постоянно глючит
большой сорец компилит с 10+ попытки (остальные разы зависая)
особенно доставляет кнопка new которая моментально уничтожает все не спрашивая
когда ее случайно нажимаешь
итд
разве что для отладки отдельных процедур
будет достаточно удобно
тк задумка эмулятора не плоха
и есть некоторый уникальный функционал типа откатить состояние машины на несколько секунд назад
...но аффтар на него забил раньше чем его доделал...
- - - Добавлено - - -
да ты и на паскалях пишешь
и никто тебя так и не переубедил бросить заниматься этим грязным делом
да и там целая тема про "ищу кодыра"
про то как мышки плачут колятся но продолжают пытаться писать на сях и прочих паскалях
и тратят больше времени на пляски с бубном вокруг этого гофна
вместо того чтобы писать по людски на асме...
Последний раз редактировалось NEO SPECTRUMAN; 28.08.2020 в 00:59.
![]()
не советуй людям хрен знает что
это чудо не одному мне доставило кучу неприятностей...
...правда там с номерами версий сам аффтар определится не смог
да и в самой последней существующей версии не работает spec256
- - - Добавлено - - -
лучшо
но еще раз говорю компилятор убогий
+ сама эмуляция z80 с ошибками...
- - - Добавлено - - -
а еще доставляет
как окно с каждым запуском растягивается в высоту все больше и больше
![]()
эмуляторы
unreal
xpeccy (иногда нужен там где не удобно отлаживать в unreal)
за CSpect не знаю
ZEsarUX - редкостное гафно
самый последний и навороченный sjasm брать тут
https://github.com/z00m128/sjasmplus/releases/
не забывать RTFM
http://z00m128.github.io/sjasmplus/documentation.html
оно формирует снапшот для эмулятора
такой вариант подходит для отладки и тестирования
загружать sna на реале не всегда возможно...
да и не принято в таком формате что то выпускать
вот те например сохранялка в tap образа ленты
с загрузчиком лежащим в rem
и который грузит кодовый блок без заголовка и запускает
может с ходу не работать
тк у меня более сложная обвязка на lua вокруг
которая будет не читаема для новичков
и пришлось много чего выкинуть
Код:emptytap "test.tap" org $0 basic_start defb $00,00 ; defw end_basic_line_0 - basic_line_0 basic_line_0 defb $EA ;REM ;загрузчик в REM di ld ix,$C000 ;грузим по адресу $C000 ld de,$2000 ;$2000 байт ld a,$FF scf call 1366 ;процедура загрузки в ПЗУ di jp start ;и запускаем defb $0D end_basic_line_0 defb $00,10 defw end_basic_line_10 - basic_line_10 basic_line_10 defb $FD,$B0 ;CLEAR VAL defb $22,"24575",$22 defb $3A ; : defb $F9,$C0 ;RANDOMIZE USR defb $28 ;( defb "5" ;5 defb $0E,$00,$00,$05,$00,$00 defb $2B ;+ defb "256" ;256 defb $0E,$00,$00,$00,$01,$00 defb $2A ;* defb $BE,$B0 ;PEEK VAL defb $22,"23636",$22 ;"23636" defb $2B ;+ defb $BE,$B0 ;PEEK VAL defb $22,"23635",$22 ;"23635" defb $29 ;) defb $0D end_basic_line_10 defb $80 ;autorun defb $AA,10,0 ;не уверен нужны ли эти строки basic_end ;сохраняем бейсик savetap "test.tap",BASIC,"prog_name",$0,basic_end-basic_start,0 ;0 autorun line ;сохраняем кодовый блок без заголовка savetap "test.tap",HEADLESS,$C000,$2000
тоже самое для создания образа диска trd
тоже может с ходу не работать
Код:tr_dos_var_current_track_sector = $5CF4 emptytrd "test,trd" org $0 basic_start defb $00,00 ; defw end_basic_line_0 - basic_line_0 basic_line_0 defb $EA ;REM ;загрузчик в REM di ld bc,$2005 ;грузим $20 секторов = $2000 байт ;05 режим загрузки ld de,(tr_dos_var_current_track_sector) ;d номер трека e номер сектора ;в данном случае берем последнее положение ld hl,$C000 ;куда грузим im 1 call $3D13 ;стандартная точка входа в ПЗУ tr-dos di jp start ;запускаем то что загрузили defb $0D end_basic_line_0 defb $00,10 defw end_basic_line_10 - basic_line_10 basic_line_10 defb $FD,$B0 ;CLEAR VAL defb $22,"24575",$22 defb $3A ; : defb $F9,$C0 ;RANDOMIZE USR defb $28 ;( defb "5" ;5 defb $0E,$00,$00,$05,$00,$00 defb $2B ;+ defb "256" ;256 defb $0E,$00,$00,$00,$01,$00 defb $2A ;* defb $BE,$B0 ;PEEK VAL defb $22,"23636",$22 ;"23636" defb $2B ;+ defb $BE,$B0 ;PEEK VAL defb $22,"23635",$22 ;"23635" defb $29 ;) defb $0D end_basic_line_10 defb $80 ;autorun defb $AA,10,0 basic_end ;сохраняем бейсик загрузчик savetrd "test","boot.B",$0,basic_end-basic_start ;если хотим автозапуск по run ;savetrd "test","prog.B",$0,basic_end-basic_start ;если не хотим автозапуск ;и лучше писать мелкими буквами ;тк некоторым придется вводить run "prog" ручками ;сохраняем кодовый блок savetrd "test.trd","data.C",$C000,$2000 ;сохраняем $2000 байт начиная с адреса $C000
в принципе для начала можно сохранять и в sna
это проще всего
в начале сорца нужно указать тип машины
(да и в общем его нужно указывать для доступа ко многим полезным функциям)
в концеКод:DEVICE ZXSPECTRUM128
где start собственно стартовый адрес программы...Код:SAVESNA "test.sna",start
ну и в sna по идеи можно сохранить только
ZXSPECTRUM48
ZXSPECTRUM128
если нужно больше
нужно уже извращаться
снапшотов для больше 128К так и не изобрели до сих пор...
ну писать на C для спектрума не лучшее решение
есть у нас тут конечно писатели
но результат в конечно итоге всегда посредственный...
так что
только асм только хардкор
вот хорошая таблица по z80 асму
http://www.z80.info/zip/z80-documented.pdf
начиная с 26 страницы
все лаконично и понятно
Последний раз редактировалось NEO SPECTRUMAN; 26.08.2020 в 03:29.
Vladius(27.08.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)