Просмотр полной версии : Про бейсик
Подскажите глупому не опытному-как загружать файл по кусочкам в бейсике?
PEEK "filename.C" addr,sec
где addr - куда
sec - номер сектора в файле
Но судя по командам - надо перед этим сделать что-то типа OPEN #N, "filename.C", RND
где N - от 4 до 15, а после работы - CLOSE #N
Но утверждать не буду - не делал этого никогда.
Подскажите глупому не опытному-как загружать файл по кусочкам в бейсике?
объясни поподробней с чего (кассета/дискета) надо загрузить
SoftLight
27.01.2011, 15:40
Я тоже не уверен, что правильно понял вопрос.
Чтобы не затереть те строки, что уже есть, можно использовать для ленты Merge "Progname" или для TR-Dos: Randomize Usr 15619: Rem: Merge "Progname"
Будут дописаны только строки, которых еще не было.
Но если в Бейсике уже набрана строка, например, с номером 1 и в загружаемом файле тоже есть строка с номером 1, то она будет заменена.
всем огромное спасибо :-),но я имел ввиду на эмуляторе
oxo!! я разобрался)) - оказывается нужен просто эмулятор с поддержкой данного "сейшена" -команда MERGE "" и всё в поряде))
John North
11.01.2012, 14:21
Народ, подскажите плиз..
Чето меня вчера даже сплющило (
Вобщем на дискете есть кодовый файл. Хочу загрузить его в басик строку после оператора REM.
В трдосе делаю load "bla bla" code 23872.
Но басик не меняется!
Че я делаю не так?
Делал в эмуле, может это он глючит?
Вроде раньше на реале у меня так получалось..
пс: код я конечно туда поместил (через peek/poke), но это не дело же..
Ппс: щас пока писал подумал про буфер трдос.. Может его как то учитывать надо?
подумал про буфер трдос.. Может его как то учитывать надо?
да - всё верно, сдвигать надо на +257 (не помню почему именно так).
23872+257=24129. грузи блок на 24129 и он попадёт (после загрузки) на 23872
John North
11.01.2012, 15:55
goodboy, спасибо)
null_device
11.01.2012, 17:26
Сдвигать надо, потому что при работе tr-dos, в момент обращения к ней - вся бейсик программа и ее переменные "сдвигаются" к "старшим" адресам на 256 байт (буфер для работы tr-dos).
Как вариант: загружать кодовый блок как обычные коды (выше ramtop), а потом "занести" их в первую строку с помощью цикла и операторов poke и peek..
вся бейсик программа и ее переменные "сдвигаются" к "старшим" адресам на 256 байт (буфер для работы tr-dos).
это вполне очевидно,но почему на практике получается +257 ???
А я ассемблирую (из памяти!, не с диска) сразу в строку REM, предварительно забив место любыми символами. Особенно удобно, если длина блока кодов больше 256 байт. А через PEEK-POKE переносить, вообще-то, ничего зазорного.
John North
12.01.2012, 12:59
goodboy, буфер то как раз и занимает 257 байт. Так что, всё правильно.
zxpress.ru/book_articles.php?id=1864
John North
19.01.2012, 19:58
Народ, вот такой вопрос..
Как удалить строки бейсик программы из маш. кода?
Народ, вот такой вопрос..
Как удалить строки бейсик программы из маш. кода?
первое что приходит на ум влепить в начало строки REM
John North
19.01.2012, 20:36
нет.
нужно именно физическое удаление строк.
null_device
19.01.2012, 20:40
Вот, когда-то набрал из zx ревю, по-моему. Загружается в нулевую строку по merge. Потом вводится с какой и по какую строку нужно удалить.
John North
19.01.2012, 21:50
null_device, спасибо)) всё получилось.
вот сама эта процедура (может еще кому пригодится) :
LD HL, #000A ; номер первой строки для удаления (10 dec)
CALL #196E
PUSH HL
LD HL, #0015 ; номер последней строки для удаления + один (20 + 1 dec)
CALL #196E
POP DE
CALL #19E5
RET
null_device ,огромное спасибо запрогу
Как из бейсика опросить кемпстон мышку?
Как из бейсика опросить кемпстон мышку?
почти как и клаву ( IN port), только надо учитывать старое/новое значение считанное из порта.
и наверно пользователь будет двигать мышь быстрее обработки данных от неё на бейсике.
(лучше применять драйвер на асме, повесив его на IM2)
goodboy, лень искать инфу. Распиши, плз, какой порт, как опрашивать. С примером.
goodboy, лень искать инфу. Распиши, плз, какой порт, как опрашивать. С примером.
интеpфейс довольно
пpост и понятен. Имеются тpи поpта, вот их
адpеса: #FADF, #FBDF, #FFDF; pазpядность
каждого - 8 битов, т.е. байт.
#FADF - поpт кнопок, значащими в нем
являются младшие тpи бита:
0 бит - состояние пpавой кнопки;
1 бит - состояние левой кнопки;
2 бит - состояние сpедней кнопки.
Пpи ненажатых кнопках все биты в `1'. Пpи
нажатии на кнопку соответствующий бит ус-
танавливается в `0'.
По стаpинной тpадиции левая кнопка ис-
пользуется как выбоp (Fire), пpавая - как
отмена (Cancel). Сpеднюю кнопку пpинято
использовать для дополнительных функций.
#FBDF - поpт X-кооpдинаты;
#FFDF - поpт У-кооpдинаты.
По меpе пеpедвижения мышь-манипулятоpа
значения в поpтах изменяются, пpичем еще и
циклически, т.е. пpи достижении #FF и
дальшейшем увеличении становятся снова ну-
лем и pастут далее, опять до #FF. Пpи дви-
жении в дpугую стоpону каpтина аналогич-
ная, только изменения пpоисходят в обpат-
ном напpавлении.
Пpедставить это дело поможет вот такая
картинка:
y^.
│.
│2
│1
│012..
┼─────────> x
Таким обpазом, необходимо считывать
значения поpтов, и по pазнице между теку-
щим и пpедыдущим значением опpеделяется
напpавление пеpемешения мышки.
Пpовеpить pаботу только-что собpанного
интеpфейса можно пpямо из Basic'а, делая
PRINT IN из поpтов: 64479 - X, 65503 - Y -
пpи пеpемещении мыши значения должны изме-
няться циклически. Пpи чтении из поpта
64423 - Fire должны щелкаться тpи младших
битика пpи нажатии кнопочек.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot