Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Для начинающих (http://zx-pk.ru/forumdisplay.php?f=43)
-   -   Набор учащихся (http://zx-pk.ru/showthread.php?t=10389)

Mat1sha 24th June 2009 22:38

BYTEMAN, спасибо, вы гений! =)
я просто сразу в тр-дос выходила из менюшки.
Вопрос закрыт, извиняюсь что столько тупила...

BYTEMAN 24th June 2009 22:45

Да не за что :)

lisica 24th June 2009 23:53

Quote:

Способ работает только в режиме 48к. Для вашего случая выберите после выпадания в меню пункт 128 BASIC. На экране должен появиться листинг.
А если кому 48 режим с открытыми страницами то я делаю так Ctrl+F12
а уж потом Return

Mat1sha 29th June 2009 23:15

Для тех, кому интересен прогресс, сообщаю, что сегодня задисковала самостоятельно Panama Joe. Пока что все просто. Но не так интересно, как если бы это приходилось делать с реальной ленты на реальную дискету (мое имхо). Многое упустила в свое время =( с бобин грузилась, потом тот спек вместе с ними продали и спаяли с дисководом, а игры я не дисковала, мне их папины друзья сразу на дискеты поназаписывали. Я даже в тр-дос ничего не знала ничего кроме randomize usr 15616 run. Но сейчас пробелы восполняются =)

Ewgeny7 29th June 2009 23:52

Quote:

Originally Posted by Mat1sha (Post 205756)
сегодня задисковала самостоятельно Panama Joe.

О! Молодец!
А можешь выложить тот ленточный файлик Панамы чтобы я тоже попробовал (на заочной форме обучения)? :)

Mat1sha 29th June 2009 23:57

Quote:

Originally Posted by ewgeny7 (Post 205765)
О! Молодец!
А можешь выложить тот ленточный файлик Панамы чтобы я тоже попробовал (на заочной форме обучения)? :)

На WoS же есть! Link
Но надо сказать что мозг там в дисковке не участвует...

Ewgeny7 30th June 2009 00:03

Quote:

Originally Posted by Mat1sha (Post 205767)
На WoS же есть!

Ага, спасибо! Я не сумлевался, что ТАПок найти нетрудно, но мне был интересен именно тот файл, который вы мурыжили на занятиях с ТомКэтом. Ибо меня в класс не пускают :(

Mat1sha 30th June 2009 00:07

А мы не на занятиях мурыжили, а сами, он нам просто сказал что скачать и все =)

Ewgeny7 30th June 2009 00:10

Так, посмотрел файлик. Действительно, моск там не нужен... Просто вставляем Рандомайзе уср перед Лоадами.

Kurles 30th June 2009 00:32

Quote:

Originally Posted by ewgeny7 (Post 205772)
Так, посмотрел файлик. Действительно, моск там не нужен... Просто вставляем Рандомайзе уср перед Лоадами.

Для небольшого усложнения задания загрузчик на асме и монолоадер сделай :)

Sabrewulf 30th June 2009 00:34

Первый семестр, какой такой АСМ?

Kurles 30th June 2009 00:43

Quote:

Originally Posted by Mat1sha (Post 205756)
Пока что все просто. Но не так интересно, как если бы это приходилось делать с реальной ленты на реальную дискету (мое имхо). Многое упустила в свое время =( с бобин грузилась, потом тот спек вместе с ними продали и спаяли с дисководом,

Если интересен сам процесс, то можно попробовать без сторонних PCшных утилит попробовать, с помощью одного только эмулятора, грузить отдельно тап-файл, отдельно образ диска, и с помощью какого-либо tape-disk коопировщика, например Programmable Tape/Disk Copier by Родионов Н.'90 переводить файлы с "кассеты" на диск. Конечно, не 100% "эффект присутствия", но все равно радостней, чем в файл-менеджере на пц файлы содного образа на другой перетаскивать :)

---------- Post added at 23:43 ---------- Previous post was at 23:42 ----------

Quote:

Originally Posted by Sabrewulf (Post 205774)
Первый семестр, какой такой АСМ?

я для заочников :)

Ewgeny7 30th June 2009 00:43

Quote:

Originally Posted by Kurles (Post 205773)
Для небольшого усложнения задания загрузчик на асме и монолоадер сделай

Сейчас попытаюсь репу поднапрячь...
Считав бейсик системная переменная ТР-ДОСа хранит последний считанный сектор.дорожку. Расположив блоки кода сразу за Васиком и зная их длину двумя вызовами 3D13 закидываем блоки в память и возвращаем управление в бейсик-меню. Вставку асма в бейсик можно сделать просто по DATA. А моноблок склеить диск-доктором.
Верно я помыслил? Реально проводить сию операцию сегодня уже поздновато, мож завтра "тряхну стариной" :)

Kurles 30th June 2009 00:57

Quote:

Originally Posted by ewgeny7 (Post 205781)
Сейчас попытаюсь репу поднапрячь...
Считав бейсик системная переменная ТР-ДОСа хранит последний считанный сектор.дорожку. Расположив блоки кода сразу за Васиком и зная их длину двумя вызовами 3D13 закидываем блоки в память и возвращаем управление в бейсик-меню. Вставку асма в бейсик можно сделать просто по DATA. А моноблок склеить диск-доктором.
Верно я помыслил? Реально проводить сию операцию сегодня уже поздновато, мож завтра "тряхну стариной" :)

Ну да, так, только вставку асма в бейсик делать за оператором REM, не забыть уставовить стек куданить пониже загружаемых блоков, и возвращать управление в бейсик меню не надо, сразу из асм-загрузчика игру и запускать, через JP addr :)

Ewgeny7 30th June 2009 01:16

Спасибо за "оценку" :)
Ну да, навскидку и без копания литературы у меня лучше получиться и не могло.
Про код после РЕМ тоже вспомнил, но уже стоя под душем. :)

Quote:

Originally Posted by Kurles (Post 205783)
сразу из асм-загрузчика игру и запускать, через JP addr

А это низзя, бейсик там еще перед запуском по выбору в меню "покает" код, а уже потом запускает.

Vitamin 30th June 2009 01:21

На память:)

Скрытый текст


addr equ 24576

ld sp,addr-1
ld hl,addr
ld bc,len*256+5
ld de,(23796)
call #3d13
jp addr
[свернуть]

rasmer 30th June 2009 01:47

блин... ну ладно демятичные числа в исходах... но чтобы и десяти и шестнадцатиричные одноырменно - вот это жэсть...
ПыСы - изза пяти строк имхо необязательно юзать спойлер...

Kurles 30th June 2009 02:19

Quote:

Originally Posted by ewgeny7 (Post 205786)
А это низзя, бейсик там еще перед запуском по выбору в меню "покает" код, а уже потом запускает.

Точно, посмотрел, забавный загрузчик :) Так-то можно этот бейсик в код перевести, на радость КЛОНу, но не стоит плодить сущностей сверх необходимого ;)

goodboy 30th June 2009 11:21

Quote:

Originally Posted by Vitamin (Post 205787)
ld sp,addr-1

а зачем ставить стек на еденицу меньше ???

snb 30th June 2009 12:11

Quote:

Originally Posted by Vitamin (Post 205787)
На память:)

Скрытый текст


addr equ 24576

ld sp,addr-1
ld hl,addr
ld bc,len*256+5
ld de,(23796)
call #3d13
jp addr
[свернуть]

А "красивее" вместо call... jp... сделать push hl и jp #3d13 :v2_yahoo: (конечно при условии, что дальше грузим конечный блок данных, а не intro или screen).
И заканчивайте с dec, понять ведь невозможно такую адресацию :-)

---------- Post added at 11:11 ---------- Previous post was at 11:10 ----------

Quote:

Originally Posted by goodboy (Post 205812)
а зачем ставить стек на еденицу меньше ???

Чтоб не затереть при загрузке данных.

psb 30th June 2009 12:35

Quote:

Originally Posted by goodboy (Post 205812)
а зачем ставить стек на еденицу меньше ???

а это пошло от CLEAR ;))) его надо было на 1 меньше ставить:) привычко:)

---------- Post added at 13:34 ---------- Previous post was at 13:33 ----------

Quote:

Originally Posted by snb (Post 205818)
конечно при условии, что дальше грузим конечный блок данных, а не intro или screen).

ага, и при условии, что не выходим в бейсиг

---------- Post added at 13:35 ---------- Previous post was at 13:34 ----------

Quote:

Originally Posted by snb (Post 205818)
Чтоб не затереть при загрузке данных.

ето каких ето? ниче не затрется.

goodboy 30th June 2009 14:00

ld hl,addr
ld sp,hl
push hl
ld bc,len*256+5
ld de,(23796)
jp #3d13

наверно так короче

snb 30th June 2009 15:16

Quote:

Originally Posted by psb (Post 205826)
Quote:

Originally Posted by snb
Чтоб не затереть при загрузке данных.

ето каких ето? ниче не затрется.

Если вершина на #8000, а ты грузишь с #7F00 по #8100,то сам понимаешь куда ты из #3D13 вернёшься ;)

Mat1sha 30th June 2009 16:05

Quote:

Originally Posted by snb (Post 205844)
Если вершина на #8000, а ты грузишь с #7F00 по #8100,то сам понимаешь куда ты из #3D13 вернёшься ;)

Сильно звучит... :v2_blink: Ничего в асме не понимаю. В универе вели плохо и сдала исключительно благодаря кпк с инетом и аськой (вопросы туда задавала грамотным людям). Так что все кто тут листинги из асма постил: поздравляю, вы съели мозг.
Может после курса дисковки что-нить в этой теме прояснится, поскольку книжки по нему читать - это выше моих сил, я пробовала...

snb 30th June 2009 16:13

Mat1sha, инфоркомовскую прочти! Написана легко, куча пояснений и примеров. Каждая команда разобрана и расписана. Даже ААА разберётся :-)

goodboy 30th June 2009 17:12

Quote:

Originally Posted by snb (Post 205844)
Если вершина на #8000, а ты грузишь с #7F00 по #8100,то сам понимаешь куда ты из #3D13 вернёшься

а что мешает затереть стек, так что-бы наложился новый адрес для старта - вот и готова простенькая защита.

VNN_KCS 30th June 2009 17:36

Quote:

Originally Posted by Kurles (Post 204416)
ld bc,#1005 ;b - длинна файла картинки в секторах

В В - ясно, длина файла, а в С что? надо обьяснить, что это такое. Ведь люди, незнающие, подумают что длина файла = #1005, а фактически #1000. Надо обьяснять полностью.

---------- Post added at 15:36 ---------- Previous post was at 15:23 ----------

Quote:

Originally Posted by Mat1sha (Post 205023)
Можно идиотский вопрос? В unreal speccy можно ли (и если да, то как) изменить код своей программы? К примеру, написала я ее, сохранила, она выполняется, но ее надо немного модифицировать (бейсик) и запустить потом по-новой.

Так КОД или Бейсик? Это разные вещи.

Slider 30th June 2009 17:36

Quote:

Originally Posted by goodboy (Post 205812)
а зачем ставить стек на еденицу меньше ???

Ну, это как бы хороший тон, что ли...

VNN_KCS 30th June 2009 17:50

Quote:

Originally Posted by goodboy (Post 205839)
ld hl,addr
ld sp,hl
push hl
ld bc,len*256+5
ld de,(23796)
jp #3d13

наверно так короче

ИДЕАЛЬНО

VNN_KCS 30th June 2009 18:05

Quote:

Originally Posted by snb (Post 205844)
Если вершина на #8000, а ты грузишь с #7F00 по #8100,то сам понимаешь куда ты из #3D13 вернёшься

А нафига туда грузить? Ты для чего адрес стека устанавливаешь, просто так?
Грузишь в #7ffd, ну и ставь стек не этот адрес. И всё будет тип-топ.

---------- Post added at 16:05 ---------- Previous post was at 15:55 ----------

Quote:

Originally Posted by Mat1sha (Post 205873)
Спасибо, в PC я знаю что код - это последовательность нулей и единиц в памяти, а бейсик - это язык высокого уровня, исходник на нем компилятор переводит в машинный код. А как оно там все в спектруме происходит - для меня темный лес, поскольку никаких ехе-шников тут нет.

Да ты не обижайся, я сам с Бейсиком не дружу. Он мне нужен только для "RANDOMIZE USR адрес". Адрес - в Бейсик области, а там программа в машинных кодах. Поэтому и спросил. Если есть вопросы - пиши в личку. С удовольствием всё, что знаю расскажу.

snb 30th June 2009 18:28

Quote:

Originally Posted by goodboy (Post 205863)
а что мешает затереть стек, так что-бы наложился новый адрес для старта - вот и готова простенькая защита.

Никто, как раз один из способов. просто надо иметь в виду, что мы стек меняем, а не ломать потом голову на тему: почему же это она не работает?

Quote:

Originally Posted by VNN_KCS (Post 205874)
А нафига туда грузить? Ты для чего адрес стека устанавливаешь, просто так? Грузишь в #7ffd, ну и ставь стек на этот адрес. И всё будет тип-топ.

1. положим, не на этот, а на -1 ;-)
2. это мы с тобой понимаем, а начинающий может не понимать до конца этих моментов, вот для них и объясняется

По поводу TR-DOS:
ld hl, addr ;в hl указываем адрес для загрузки
ld bc, nn05 ;nn = количество секторов для загрузки, с = 5 - операция 5 (последовательное чтение nn секторов)
ld de (#5CF4) - в идеале в d указываем номер дорожки, а в e - номер сектора, с короых будем производить чтение. Но в #5CF4 (системная переменная TR-DOS) у нас хранятся эти значения после последней операции (то бишь, если последней операцией было чтение или запись 3-х секторов 2-й дорожки, начиная с 5-го, то после её завершения в #5CF4 у нас будет храниться следующее значение: дорожка 2 сектор 8 (ведь мы считали/записали последовательно 5-й, 6-й и 7-й сектора и после чтения 7-го сектора головка переместилась на 8-й). Соответственно, считав один файл головка у нас всегда стоит на начале следующего (естественно, не работает в ситуации когда следующий файл стёрт, а диск не уплотнён).
Как-то так... :)

Ewgeny7 30th June 2009 18:47

Ну и расфлеймились тут!
Но очень занимательно получилось! :)
У меня где-то табличка с функциями 3D13 нарисована, но по жизни мне пока хватало двух, по шаблону:

ld de, дорожка / сектор
ld hl, начальный адрес в памяти
ld bc, кол-во секторов / 5=чтение 6=запись блока секторов.
call / jp 3D13
/ ret

psb 30th June 2009 19:48

Quote:

Originally Posted by snb (Post 205844)
Если вершина на #8000, а ты грузишь с #7F00 по #8100,

вопрос-то был про "на единицу меньше". а из #3d13, положим, ты не вернешься никуда, если попортишь стек;) как только сектор затрет стек (даже не догрузив запрошенное до конца!), ты куда-нить вылетишь. можно, конечно, так приколоться, но радости мало. другое дело отмочить такой "пакованный хрустом" блок, который при его простой распаковке самозапустится:)
Quote:

Originally Posted by Slider (Post 205870)
Ну, это как бы хороший тон, что ли...

а по-моему это в чистом виде привычка:) я тоже так писал, но по привычке:)

---------- Post added at 20:48 ---------- Previous post was at 20:45 ----------

Quote:

Originally Posted by snb (Post 205883)
1. положим, не на этот, а на -1 ;-)

ну так с чего на -1???

Vitamin 30th June 2009 19:59

Я попутал. -1 не надо. Ибо при занесении данных на стек сначала делается декремент, а потом уже запись байт.

snb 1st July 2009 11:13

Quote:

Originally Posted by psb (Post 205905)
ну так с чего на -1???

Quote:

Originally Posted by Vitamin (Post 205912)
...при занесении данных на стек сначала делается декремент...

Да, только что потрейсил в US :-) Именно так, -1 не надо. Приношу свои извинения.

TomCaT 20th July 2009 15:11

Состав групп

Группа А, "практикующих" студентов:

1) rasmer
2) lisica
3) Kuper
4) molodcov_alex
5) elker
6) ewgeny7
7) VNN_KCS
______

Группа Б, для "слушающих" студентов:

1) Sabrewulf
2) Andrnow
3) Striker
4) Mat1sha
5) goodboy
________

Для всех групп: начаты практики третьего семестра.

Для желающих - есть места в группе Б.

Mat1sha 21st July 2009 01:30

Quote:

Originally Posted by TomCaT (Post 209144)
Состав групп

Группа Б, для "слушающих" студентов:

4) Mat1sha

Меня, наверное, вычеркивайте совсем... для меня эпоха спектрума закончилась в 1998, когда я свой подарила. Возвращение в 2006 прошло неудачно - поигралась и на дачу недавно вывезла, как ненужный хлам (или музейный экспонат). Спасибо TomCaT и прочим за подсказки по работе с тр-досом, наконец-то на меня снизошло озарение, как сохранять на дискеты свои программы. Поздновато оно конечно снизошло (году бы в 90-98 лучше), но все равно, лучше поздно, чем никогда. Сайт с лекциями и практикой буду почитывать по мере желания, но никаких зачетов и прочего сдавать не буду.

TomCaT 21st July 2009 13:00

Quote:

Originally Posted by Mat1sha (Post 209233)
Сайт с лекциями и практикой буду почитывать по мере желания, но никаких зачетов и прочего сдавать не буду.

Группа "Б" как раз так и делает... Поэтому пока не вычеркиваю.

Кстати, сайт с лекциями и практиками пока полностью публиковать рано, но для всех желающих открывается свободное поступление в группу "Б" - читающих лекции и практики, но не участвующих в практиках.

Shadow Maker 22nd July 2009 14:46

Томкат, даешь подкасты! Запишите меня в практиков ;)

TomCaT 22nd July 2009 15:14

Хорошо, но пока практикующие сдают зачеты, и я не расширяю группу, она остается в семь человек. Места пока среди слушающих.

И сразу расшифруй :) , что понимаешь под подкастами.


All times are GMT +4. The time now is 00:31.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.