лишних три секунды на набор адреса - это "слишком сложные костыли"?
и да, если говорить о барьерах, то после покесов базюканцу проще понять бинарь
без разборок с глюками из-за испорченных переменных
Lethargeek, у меня настроен эмуль и по F5 происходит сборка и запуск снапшота.
:biggrin: каждый псшник с детства знает
https://c.radikal.ru/c11/1807/86/14d7b3272a2f.jpg
Понимает, но какие-то левые точки, двоеточия и т.п. Не годится. Должна быть совместимость с GENS, ибо на него все книжки ориентированы, а там просто ORG без точек, и метки без двоеточий. Ну кривая тапка это уже даже не играет роли, так как уже пипец )
Попробую.
Я решил написать статью. Но в статье надо ссылаться на какой-то простой способ написания простой проги. Ссылаться на скачивание и настройку кучи всякого барахла - не годится. Вернее может и годится, но я такую статью точно писать не буду.
Не, книга хорошая, но лишь на фоне остальных )) В подростковом возрасте у меня была, и щас сохранилась, я даже пытался её читать, но абсолютно нифига не мог понять. Это было равносильно тому, как если бы я начал читать Конфуция без перевода: "ага, вот этот иероглиф похож на человечка, а вот этот на домик, этот на ёлочку, хм.. чтобы это значило?.." Вот после "Как написать игру на асме", она уже более-менее воспринимается хоть как-то, но её у меня не было.
Жму "new file", пишу любой код, жму COMPILE и получаю "Unrecognized ASM type", ЧЯДНТ?
Для усиления сарказма
https://vignette.wikia.nocookie.net/...20140808144355
Все, парни, это не барьер для меня, я лишь предложил варианты, и не буду настаивать на кошерности.
Слушайте, а ведь идея то смахивает на объектно-ориентированное программирование, типа языков со словом Visual в названии... Грубо говоря, имеем на том же ПС прогу, которая позволит тебе собрать как конструктор из готовых процедур нужное и потом выгрузить это в нужном формате. Будет уметь загружать готовый код и находить в нем процедуры, превращая в отдельные "детали" конструктора, которые потом также можно использовать. От программиста потребуется: понимание алгоритма, чтобы сделать именно то, что хочется, познания в том, как будут располагаться в памяти спека процедуры, использованные им (это для отладки, если что-то пошло не так и надо подправить ручками) и команды ассемблера, какие и что делают, чтобы можно было открывать листинг своей программы и видеть, что там делается. остальное (чтоб за пределы памяти не выходило, переменные не пропадали, или еще какие важные тонкости) этот, назовем его Визуал Эмуль, будет знать сам и поправлять программиста, если он ошибется.
Я правильно понимаю? Тогда больше людей захочет творить и им будет проще все это освоить.
tipa, ну так AGD еще проще
или та же Churrera
jerri,
Шынни,
Lethargeek,
И я в том числе , ощущение ,что собрался первый класс вторая четверть ,которые даже басика не знают не то что на асме кодить.
О чем мы тут вообще беседу ведем :biggrin:
Шынни, злоупотребляешь таки (с недокументированные командами) или бросил. Эту хрень - Z80 (к-моп) навсегда:D
и правда. пускай ТС сам побултыхается?
Именно. Обычно так и делают кстати :D
- - - Добавлено - - -
Попробовал. Оказалось не так уж и плохо.
Мысли такие:
- Можно же сделать, чтобы по Save Code, происходила сначала компиляция, и сразу сохранение? Чтоб два раза не жать разные кнопки.
- после компиляции нужно сообщение о количестве байт.
- расширение только BIN должно быть, не левое.
- есть утилита BIN TO TAP, и даже с автором можно списаться, если что. Сможешь её прикрутить к своей приблуде? И кнопочку сделать "получить тапок" ))) Чтобы нажал и сразу и компиляция, и конвертация в TAP. Батник там например такой: bin2tap -c input.bin output.tap zxname 40000 - делает из бина тапок с кодовым блоком имеющим стартовый адрес 40000 (а у нас старт должен браться из ORG)
Можно с автором перетереть, на предмет добавить ещё и бейсик-лоадер, перед кодовым блоком, чтобы там в одной строчке было что-то типа: CLEAR [ORG -1] : LOAD "" CODE [ORG] : BORDER SQR PI: PAUSE NOT PI: BORDER VAL "7": RANDOMIZE USR [ORG]
- с размером и цветом шрифта что-то надо сделать. Может к вот этому как-то твою приблуду прикрутить? Короче нужен настраиваемый размер шрифта и раскраска... )
- в идеале, по нажатию "получить тапок", ещё бы прога искала в своей директории исполняемый файл унреала или спекулятора и сразу запускала в нём только что созданный тапок.
- - - Добавлено - - -
Где bin2scl скачать?
В рамках преодоления барьера предлагаю нарисовать картинку:
http://i105.fastpic.ru/big/2018/0708...dfca9804aa.png
размер имеет значение. Поехали!
любые средства хороши
Задание №2 (вложенные циклы):
Нарисовать квадрат 10*10 знакомест в центре экрана, без использования процедур печати.
листинг - сюда. Комиссия этой ветки проведёт оценку студенту. Председатель комиссии Шынни.
В общем, тот набросок, что накидал, вышел 34 байта, но не предел.
Здесь люди собрались, чтобы БАРЬЕР преодолевать, а Вы какие-то задачки постите! )))
видеотуториал:
https://www.youtube.com/watch?v=56FbnEHa0WU
Какой барьер? Какой двойной щелчок? Какой эмуль? Какой TAP?:v2_dizzy_tired2:
Есть спектрум, есть диск с ассемблером, есть таблицы команд Z80 и при желании можно набить в маш.кодах, есть знание устройства спектрума - это 20%, необходимые для преодоления барьера. Остальные 80% - понимать принцип работы компьютера, уметь составить алгоритм решения задачи и уметь этот алгоритм представить в виде асм команд.
Нет второй части - никакие суперудобные IDE не помогут никому и никогда. Ну разве что действительно написать "Hello world" и больше не лезть в это дело.
Вот именно. Мне для преодоления барьера машинного кода хватило POKE и RANDOMIZE USR)
ну пости здесь, разрушим барьеры что-ли.
- - - Добавлено - - -
34 байта без jr $Код:device zxspectrum128
ORG #6000
begin
ld de,$4000
lp1:
ld a,e
and 31
ld l,a
add hl,hl
add hl,hl
ld h,$1E
add hl,hl
inc h
push de
ld b,8
lp2:
ld a,(hl)
ld (de),a
inc hl
inc d
djnz lp2
pop de
inc e
jr nz,lp1
ld a,d
add a,8
ld d,a
cp $58
jr nz,lp1
jr $
end
display /d,end-begin
savesna "!void.sna",begin
Почему-то ужасм не компилит jr nz loop1 у меня, просто скипает эту команду, если смотреть дизасм :/ причём в другом проекте нормально компилится.Код:DEVICE ZXSPECTRUM48
org 25000
QUIZZSTART:
ld a, 22 ; AT
rst 16
xor a ; xcoord
rst 16
xor a ; ycoord
rst 16
ld c, 22
loop1:
ld b, 32
loop2:
ld a, ' '+32
sub b
rst 16
djnz loop2
dec c
db 32, -11 ; ;jr nz loop1
stop:
jr stop
;ret
QUIZZEND:
SAVEBIN "quizz.bin", QUIZZSTART, QUIZZEND - QUIZZSTART
Поэтому поставил затычку через db.
jr nz,loop1 ?
Вы же меня ждали? Нет, ну ладно, 21 без rst
Скрытый текст
Код:device zxspectrum48
org 0x8000
start
ld de, 0x57ff
.l1
ld h, 0x3d
ld a, e
.3 add a, a
xor d
and 0xf8
xor d
ld l, a
ldd
ld a, h
cp d
jr nz, .l1
ret
display /A,$-start
savesna "test_g.sna", start
[свернуть]
Для преодолевателей барьеров думаю не предел.
аплодирую стоя (: