С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Добил RENUM. Оказалось, что в 2.58 я правил следствие, а не причину. Авторы слишком перемудрили со вспомогательной расчетной процедурой и просто забыли правильно инициализировать одну из регистровых пар при сдвиге в сторону уменьшения. 2.59 правильно ренумерует и renumtest и renumtest3 (в нем можно попробовать просто RENUM, в классическом 2.5 будет жесткий результат). Дополнительно убрал вставку пробела до номера строки.
- - - Добавлено - - -
Забыл в reamde написать, что еще уменьшил задержку между автоповторными символами в 2 раза.
Последний раз редактировалось ivagor; 19.06.2019 в 21:08. Причина: удалил версию 2.59, т.к. выложил более новую
ivagor, renumtest3 реально удивил, такого фаталити у меня не было никогда
Здесь можно скачать актуальные версии Virtual Vector (VV)
Пока делаете-) а встроить ассемблер в бейсик слабо
как в BBC Micro Basic
10 PRINT "THIS IS BASIC"
20 DIM GAP % 20
30 P %= GAP %
40 [
50 JSR & FFE7
60 RTS
70 ]
80 CALL GAP %
Утилита для преобразования .BAS->.ASC, что не ново, но так же и обратно -- из .ASC в .BAS!
Нужен Python 3.
https://github.com/svofski/vector06s...master/bas2txt
(Чтобы скачать один файл -> bin2txt.py - View Raw, будет такая ссылка).
В каталоге testdata те файлы, на которых я проверяю, чтобы было 100% совпадение при конверсии из .BAS в .ASC и обратно.
Никаких красот, так чтобы сделать из этого загляденный IDE, нет. Если что не так, то валится кишками наружу. Если кто захочет сделать IDE, можно будет доделать плюшек по необходимости.
Спасибо ivagor-у за брутальное тестирование!
Больше игр нет
svofski мегареспект! Работает лучше бейсиковского парсера. Теперь желающие могут фигачить проги на бейсике с удобным редактированием в современных редакторах.
Вторая правка для тех, кто работает с исходником бейсика. Там в районе адресов 03xxh есть четыре cpi 90h. Их все надо заменить на cpi COMANDBUFER&255
Может быть, не во всех вариантах Бейсика был этот баг... но я совершенно точно помню, что в том кассетном Бейсике, который шёл в комплекте поставки к моему "Вектору", этот проклятущий баг был совершенно точно - и, в своё время, стоил мне немало вырванных подростковых волос и нервных клеток
P.S. Блин, а, может, комбинация была УС-E... помню только, что при зажатом СС эта комбинация соответствовала какому-то графическому оператору - то ли LINE, то ли CIRCLE. Я даже приучал себя вводить именно этот оператор через комбинацию АР2+буква, потому что шанс "убить" Бейсик из-за несработавшей СС был очень немаленьким.
- - - Добавлено - - -
Я бы предложил подумать сделать такое на базе VS Code. Готовая IDE, грамматика языка задаётся декларативно - причём, вероятно, может даже получиться найти готовую конфигурацию под какой-нибудь Бейсик и допилить её под специфику "Вектора". Останется дописать только взаимодействие с эмулятором и/или образом диска, что не должно представлять большой сложности.
- - - Добавлено - - -
Компилятор ассемблера навскидку займёт пару килобайт... можно, конечно, увеличить размер "исполняемого файла" самого Бейсика - но, тогда, под пользовательскую программу и память места совсем мало останется (особенно, если задействованы все четыре экранные плоскости).
Полагаю, на ZX Spectrum ассемблер в ZX-Basic тоже не завезли по причине жёсткого ограничения на размер образа Бейсика в ПЗУ.
Последний раз редактировалось x-code; 18.06.2019 в 13:33.
1. Третья правка в исходник. Как и вторая она связана с буфером редактирования/печати. В районе метки loc_16D4 нужно заменить
cpi 0F0h
на
cpi ((COMANDBUFER+127)&255)^255
2. Про УС+D. Пробовал не только такое сочетание, но и УС+другие клавиши и в разных режимах (редактирования строки или работы программы). Никаких проблем не обнаружил.
3. Про ассемблер в бейсике. Встраивать в интерпретатор не стоит, а вот при кросс-разработке теоретически можно представить вариант, когда из текстового исходника с ассемблерными вставками конвертер делает правильный .BAS. Причем бейсик можно даже не модифицировать, хотя с модификацией можно сделать удобнее.
Сразу скажу, что совершенно не призываю svofski реализовать такую штуку. Думаю, что если вводить новые возможности, то только под готовность их использовать. Мне вот асм в бейсике не нужен, при большой необходимости отдельно отлажу и как-нибудь объединю.
С моей точки зрения бывает бессмыслица, бред, деменция и где-то в конце этого пути -- ассемблер в Бейсике. Не надо меня уговаривать этого не делать, я и так не собирался.
Больше игр нет
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)