PDA

Просмотр полной версии : Task #01: определение модели zx-spectrum



breeze
22.09.2009, 10:12
Таск аннулирован! всем спасибо!

Vitamin
22.09.2009, 14:26
Не оно?
http://zxdn.narod.ru/coding/zf5autoc.txt

breeze
22.09.2009, 16:38
Не оно?
http://zxdn.narod.ru/coding/zf5autoc.txt

ну давай разберём :rolleyes: как говориться ничего личного, просто факты:

конечно, чисто теоретически, я должен сказать спасибо, но а практически… вот я создал таск, описал задачу. Что я ожидаю ? Я ожидаю подсказку где почитать, о том как кто-то другой делал схожее задание ? нет. Я хочу научиться разбираться с различными моделями спектрума — тоже нет. Я вижу решение данной задачи, в виде готового куска кода, который положит в ячейку Type всего лишь одну цифру! мне не нужно детектить тип памяти, мне не нужно знать порты, мне это ничего не надо в рамках данной задачи. Если бы мне не хватало каких-либо знаний, я бы спросил, подскажите, как сделать то-то и то-то…

Теперь для чего я создал этот топик? я просто хотел убедиться, что подняв проект (который тут (http://zx.pk.ru/showthread.php?goto=newpost&t=10923) так бурно обсуждается) люди, которые будут принимать в нём участие, понимали что послать на форуме в факи, маны или в гуголь - это не решение задачи! Решение задачи - это когда человек берётся за выполнение задачи, понимает задачу и предлагает её решение!

Rindex
22.09.2009, 16:48
Теперь для чего я создал этот топик? я просто хотел убедиться, что подняв проект (который тут так бурно обсуждается) люди, которые будут принимать в нём участие, понимали что послать на форуме в факи, маны или в гуголь - это не решение задачи!

Ээхххх. Походу нафиг это никому не нужно. Вообщем, сводится к моим писсеместичиским прогнозам... А жаль...

Vitamin
22.09.2009, 17:00
Я вижу решение данной задачи, в виде готового куска кода, который положит в ячейку Type всего лишь одну цифру! мне не нужно детектить тип памяти, мне не нужно знать порты, мне это ничего не надо в рамках данной задачи.
В подавляющем большинстве случаев тип машины определяется по конфигурации ее памяти, а в существующей постановке задания это и единственный способ (ибо нет возможности ответить "это машина с 72680 тактами за фрейм, возможно пентагон"). Приведенный (существующий и с большой долей вероятности отлаженный) код как раз возвращает 1 (один) байт, определяющий конфигурацию компьютера.

breeze
22.09.2009, 17:06
Ээхххх. Походу нафиг это никому не нужно. Вообщем, сводится к моим писсеместичиским прогнозам... А жаль...

вот я и хочу убедиться в том что все понимают зачем это нужно и как с этим работать :)

---------- Post added at 16:06 ---------- Previous post was at 16:04 ----------


В подавляющем большинстве…

верю :) но попробуй абстрагироваться :) и перечитай ещё раз - зачем я создал топик и что я ожидаю :)

Black_Cat
22.09.2009, 17:26
Я хочу научиться разбираться с различными моделями спектрума — тоже нет.breeze, ты ждёшь блюдечко с голубой каёмочкой? Насколько мне известно, полной и систематизированной информации такого плана не существует в природе. То, что есть - размазано по многим описаловам на разные клоны. Твоя задача здесь: ZX Detector. (http://zx.pk.ru/showthread.php?t=10940) Собсно задача вот:

Нужно для последующей корректировки смещения на border.Если тебе нужны только бордюрные эффекты, то на спеке существует только три архитектуры распространённые на территории СССР (и ЧССР), являющиеся стандартом и ещё как минимум одна нестандартная:
1) ZX48 и большинство отечественных клонов, в т.ч. Scorpion и KAY
2) ZX+128, ZX+2, ZX+2a,b/+3
3) Pentagon
4) Нестандартная - Baltik и все клоны на БМК (кроме БМК Кворума), в т.ч. чехословацкие модели

Все эти компы отличаются количеством тактов в кадре, в строке, и количеством самих строк. Посчитав количество тактов между INT'ами можно определить кто есть кто.

---------- Post added at 17:26 ---------- Previous post was at 17:23 ----------


В подавляющем большинстве случаев тип машины определяется по конфигурации ее памятидля его задачи конфигурация памяти абсолютно ничего не определяет, и не даёт никакой полезной информации

breeze
22.09.2009, 17:55
мда… :)

Vovoi
22.09.2009, 18:06
<...>
Проект #01: TSFM Collection #01
<...>
Описание проекта:
Создание музыкального сборника работ для музыкальной платы TurboSound FM.
<...>
Задача #01: определение модели ZX-Spectrum
<...>
Описание задачи:
Необходимо написать на языке assembler z80, блок кода который бы
<...>
Примечание:
Данный блок кода будет использован при корректировки положения рисунка на border.<...>

Уйё :v2_eek:
Тут есть недосказанное.
Скорее всего проект мало описан.
То есть "Проект #01" должен описываться полностью, например:
* Сборник музыки.

1 Играется на таких-то компах
1.1 необходим определитель модели железки (сроки, исполнители, текущее состояние)
1.2 тестирование определителя на моделях (сроки, исполнители, текущее состояние)

2 Выбор плейера
2.1 Набор голосов за такой-то плейер (сроки, исполнители, текущее состояние)
2.2 подготовка (сроки, исполнители, текущее состояние)
2.3 и написание кода (сроки, исполнители, текущее состояние)
2.4 тестирование плейера на моделях (сроки, исполнители, текущее состояние)

3 подготовка сборника
3.1 сбор музыки и согласование (сроки, исполнители, текущее состояние)
3.2 комплектация с плейером (сроки, исполнители, текущее состояние)
3.3 тестирование (сроки, исполнители, текущее состояние)

Продукт готов.

Разбираем->
Решение задачи 1:
Товарищ NNN самостоятельно нашел код (Vitamin) :), написал оттестил, добился результатов по пункту "1.1" и предоставил код.
готово
Решение задачи 2:
Выбрали плейер YYY
Исходники были, так что скомпилили, оттестили
готово
Решение задачи 3:
Решено натокать 300 треков
Натолкали на диск, влезло
Плейер грузит и играет
готово
Проект выполнен
____________
Вот, примерно так или что-то упущено?
Breeze поправь плиз. Надо проработать детали.

---------- Post added at 18:06 ---------- Previous post was at 17:56 ----------

Да, действительно, скорее всего Breeze ожидал других ответов, а именно, примерно следующих постов:

* я готов заняться поиском тестилки машины
* а я готов найти классный плейер
* у меня завалялось куча классного музона, щас покопаюсь

Но в действительности, должна существовать ветка наподобие "Чего бы сегодня на Спеке хотелось?" Все равно нужды есть. Например, я хотел бы, чтобы кто-нить аппаратно взялся за чип W5100 и довел схему до такого состояния, чтобы в своей проге мог бы написать так:

;посылка пакета
LD HL,49152;откуда читать пакет
LD DE, 32768; куда поставить результат
LD BC,1024;объем пакета
CALL netboard
RET
;разбор пакета
LD HL,49152
LD BC,1024
CALL print;печать принятой из и-нета ерунды на экране
RET

netboard LD.....
;Тест, есть ли сигнал в линии (RJ45)
;Сервер вообще ответил что-нить, пакет-то получу?

И я запляшу от щАсЬя принявшись писать браузер.
И реально отстегну Donate разработчикам (помимо стоимости собранной платы), потому что это мне было очень нужно.

psb
22.09.2009, 18:20
Вообщем, сводится к моим писсеместичиским прогнозам...
я бы сказал реалистичиским;)))


для его задачи конфигурация памяти абсолютно ничего не определяет
правильно, надо делать тест памяти, потом тест кол-ва тактов за инт, потом тест порта #FF, потом...... а потом на нечеткой логике сделать определятор компа по этим параметрам. наверное так надо, да? или лучше на нейронной сети?

сама задача тоже не досконально описана, к слову. ничего не сказано о том, что можно портить, а что нет, сколько все может занимать и откуда будет запускаться. например, при тесте памяти данные в страницах важны или нет. ну и я не говорю уже о том, что затея эта (детектор) не слишком успешна. она не отдетектит всё, и даже может ошибиться (т.е. навредить). ручная подстраивалка гораздо надежнее (совместить, конечно, еще более надежно).


что касается реализации идеи;) товарищи, будьте реалистами. ну какие 3-4 дня? вы же понимаете, что сейчас тем, кто в состоянии это закодить/отладить, обычно некогда/лень. и они бы могли это сделать, но тогда, когда они смогут/захотят. а случиться это может в основном, думаю, не чаще раза в месяц. если надо срочно - вы сами себе друг и товарищ (или злобный буратино:)).

---------- Post added at 20:20 ---------- Previous post was at 20:12 ----------


И я запляшу от щАсЬя принявшись писать браузер.
а ты раздели на этапы свою работу;) один из этапов будет парсение хтмл и отображение с юзер-интерфейсом. это в пицот тыщ раз сложнее, чем принять из инета этот хтмл. так что начинай, а параллельно повесь таск на разработу железки и реализацию хттп протокола:) и время дай год, все равно раньше не сделаешь;) я пока что во вменяемый хтмл-браузер (хотя бы как lynx, не хуже) не верю.

собс-но, спекртанет на W5100 уже сделан, и примеры сокетных либ к нему есть.

GM BIT
22.09.2009, 18:28
Чего-то подобное? Тестировалось в Spectaculatore реалов нет. Кстати в разных эмулях у всех клонов различные длины int'а
На выходе в type
1 - оригинал
2 - пентагон
3 - скорпион

org #8000
di
ld hl,int
ld (#80ff),hl
ld a,#80
ld i,a
im 2
ld de,0
ei
halt
ld hl,int2
ld (#80ff),hl
inc de
jr $-1
int ei
ret

int2 pop hl
ld h,d
ld l,e
add hl,hl
add hl,hl
ld a,h
cp #3d ; orig
jr nz,n1
ld a,1
jr endd
n1 cp #3e ; pent
jr nz,n2
ld a,2
jr endd
n2 cp #3c ; scorp
jr nz,nomash
ld a,3
jr endd
nomash xor a
endd ld (type),a
im 0
ei
ret
type db 0

Если честно то програма какая-то "вата", вроде бы еще никто не придумал автоконфига для бордер эфекта :)

Black_Cat
22.09.2009, 18:30
правильно, надо делать тест памяти, потом тест кол-ва тактов за инт, потом тест порта #FF, потом...... а потом на нечеткой логике сделать определятор компа по этим параметрам. наверное так надо, да? или лучше на нейронной сети?

сама задача тоже не досконально описанаописано всё достаточно, ему надо бордюрные эффекты.. для вычисления их положения нужно знать только архитектуру. Количество тактов за кадр даёт исчерпывающую информацию об архитектуре. Кроме этого надо ещё длину INT'а для вычисления смещения. Больше ничего не надо.

psb
22.09.2009, 18:42
ну-ну-ну:) как бы не так, исчерпывающую;) так бывает только в неполной теории. хотя о чем базар, если надо только пентагон/скорпион(1 из)/другое, то прокатит. наверное.

---------- Post added at 20:39 ---------- Previous post was at 20:35 ----------


Если честно то програма какая-то "вата"
ага:)
1. нет полной таблички для инта
2. че-то я не увидел метки int
3. бывает что запрос на прерывание слишком длинный, а это значит, что результат будет = 0 или 1.

качественная определялка - это вам не просто так. и задача, если к ней подходить серьезно, не полна и не так проста.

---------- Post added at 20:42 ---------- Previous post was at 20:39 ----------


Кроме этого надо ещё длину INT'а для вычисления смещения.
эээээ... а поподробнее? какого еще смещения? причем тут это?

GM BIT
22.09.2009, 18:45
2. че-то я не увидел метки int
сразу под jr $-1

Black_Cat
22.09.2009, 18:47
какого еще смещения? причем тут это?смещения экрана относительно INT'а

psb
22.09.2009, 19:05
сразу под jr $-1
упс:):)

смещения экрана относительно INT'а
и как же длина инта коррелирует со смещением экрана?;)

Black_Cat
22.09.2009, 20:14
и как же длина инта коррелирует со смещением экрана?если будет повторный захват INT'a из-за его нестандартной длины - собьётся начало отсчёта положения экрана

breeze
22.09.2009, 21:45
мда… ребята :) спасибо посмеялся… больше вопросов не имею!

psb
22.09.2009, 22:10
если будет повторный захват INT'a из-за его нестандартной длины
для этого просто не надо делать ei сразу же. и ничего не надо проверять, т.к. погрешность измерения все равно целых +-4 такта. может быть, что захватится повторно, а может и не захватится.

спасибо посмеялся…
надеюсь, понравилось:) пишы исчо задачке:)

Black_Cat
22.09.2009, 23:44
для этого просто не надо делать ei сразу же. и ничего не надо проверятьда собсно можно и не проверять, но если всёравно надо считать такты между прерываниями, то почему бы заодно и длину INT'a не проверить.. тогда даже на кривом компе с неправильным интом можно правильно засинхрить изображение

psb
23.09.2009, 02:16
да не зависит синхра изображения от длины инта. если угодно, плохой тон - делать во фреймовых демах ei до конца эффекта. плохо не будет, возможно, но надежность повысится:)

Black_Cat
23.09.2009, 03:00
:) да мне всё равно, я демы не пишу..

Vovoi
23.09.2009, 11:32
Кхе-хе, Breeze прав.
:)

VNN_KCS
23.09.2009, 18:23
мда… ребята спасибо посмеялся… больше вопросов не имею!
Да зря ты. Ясно, что тебе за прога нужна. Но определение длинны инта и количества строк растра необходимо. Тип компа можно определить переключая порты верхней памяти. Опять это не решение т.к., есть подобные. Определять по ПЗУ? А у кого какая стоит в данный момент? Мне кажется именно по временным характеристикам наиболее точно можно определить тип машины, имея заранее известные параметры для каждой из них. И опять же приблизительно. Почему? А кто даст гарантию, что тот-же Пентагон у всех с одинаковым INT-ом? Только приблизительно.

Black_Cat
23.09.2009, 18:30
Кхе-хе, Breeze прав.в том, что не знает как как решается подобная проблема он конечно прав :) - он действительно этого не знает :)

moroz1999
24.09.2009, 19:11
в том, что не знает как как решается подобная проблема он конечно прав :) - он действительно этого не знает :)Три страницы трепа, а задача не решена. Вообще никак не решена - ни плохо, ни хорошо. Даже неработающего варианта нет. Зато о сферических конях поболтали славненько.

breeze
24.09.2009, 19:23
Три страницы трепа, а задача не решена…

ну отчего же :) задача решена одна точно. Я например выяснил что 99% посетителей zx.pk.ru приходят сюда поболтать о сферических конях в вакууме :) так же благодаря этой супер замечательной задаче, я буду писать здесь только тогда тогда захочу просто прорекламировать какой-то продукт. Ничего спрашивать, ничего предлагать делать, я более не стану, спасибо всем за такой замечательный вклад.


p.s.Продолжайте дальше пополнять сообщения в ветке флейм, удачи на дорогах.

psb
24.09.2009, 20:34
Вообще никак не решена - ни плохо, ни хорошо. Даже неработающего варианта нет.
а 11й пост чем не устраивает? не надо голословных утверждений.

Я например выяснил что 99% посетителей zx.pk.ru приходят сюда поболтать о сферических конях в вакууме
точнее - просто поболтать. это форум, и ничего больше. здесь ты можешь узнать мнение народа о чем-либо. и мне кажется, что это основная задача, а если получилось что-то еще, так это просто повезло. не так что ли?

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

Ничего спрашивать, ничего предлагать делать, я более не стану
а это полностью дело твое. не ты первый, не ты последний. всегда очень легко типа обидеться и уйти.

если ты ставишь сомнительный эксперимент, то не надо заранее верить в результат. тогда и расстраиваться не придется.

Black_Cat
24.09.2009, 20:51
Три страницы трепа, а задача не решенакакое решение ты хотел? Тебя что, надо учить такты между прерываниями считать? Это что, тема из раздела "Для начинающих"? Для нормального программиста достатосно один раз сказать как проблема решается, чтоб он тут же сгенерил код.. господа, какие-то вы тут все тормознутые.. снимитесь уже с ручника! :) ..ждать больше нечего! ..решение вам уже сказали.. можете приступать к програм-м-и-рр-ооо-ввв-аааа-нннн-иииии-ююююю-уууууууууу.............................. ...........

Vitamin
24.09.2009, 22:44
То, что "задача на выполнение таски" выльется в обычный базар- я подозревал ("хочешь сделать что-то хорошо- сделай это сам"). Но вот что автор не сможет нормально сформулировать задачу без противоречий- это уже перебор...
Это я о

верю но попробуй абстрагироваться и перечитай ещё раз - зачем я создал топик и что я ожидаю
Т.е. то что написано в ТЗ и что ожидается на самом деле- разные вещи чтоли?

Как было совершенно верно сказано:

для его задачи конфигурация памяти абсолютно ничего не определяет, и не даёт никакой полезной информации

Но я лично вот формалист. Не стал обсуждать что breeze сузил ожидаемый результат до простого перечисления вместо кортежа (число тактов на инт, длина строки в тактах, число линий до экрана) и подобрал готовое решение (поначалу поискал у себя похожее, но оно оказалось хуже найденного).

Для размышления

Благодаря этому уникальному упражнению, вы, совершенно не зная ни одного языка программирования, сможете почувствовать себя настоящим программистом-профессионалом!

Для упражнения потребуются:
- два участника;
- часы (желательно с секундомером);
- листок чистой бумаги;
- ручка (шариковая или гелиевая, но именно ручка,- это важно).

Один из участников будет «Заказчиком» (Работодателем), другой - «Исполнителем» (Программистом).
«Заказчику» выдаются часы и право голоса, «Исполнителю» - бумага и ручка.

Начало упражнения:
«Заказчик» засекает 10 минут и дает задание «Исполнителю»:
«Нарисуйте мне, пожалуйста, красивую девушку.»
Далее, пока «Исполнитель» рисует, стоя у него «над душой», высказывать следующие пожелания к рисунку:

0:30 - Пусть у нее в руке будет меч.

1:00 - Двуручный меч, который она держит обеими руками!

1:30 - А в другую руку ей дайте УЗИ.

2:00 - Пусть она будет уставшей путешественницей, присевшей отдохнуть.

2:30 - На меч она опирается, отдыхает, значит.

3:00 - Пусть на ней будет развивающийся по ветру плащ!

3:30 - ...И купальник.

4:00 - А лучше доспех!

4:30 - Не... униформа!

5:00 - Уберите плащ, он не идет к униформе.

5:30 - Пусть она смело стоит на мостике космического крейсера!

6:00 - Почему у нее меч? Уберите это старье. А УЗИ переделайте в бластер!

6:30 - Ее волосы развиваются по ветру... для красоты, значит.

7:00 - Бластер не смотрится... уберите его. Она вообще капитан этого корабля, ей не нужен бластер!

7:30 - Ей нужна фуражка капитана! И аккуратно собранные на голове волосы!

8:00 - И сидеть она должна в кресле капитана!

8:30 - Красивая, суровая и необычайно смелая капитанша корабля пиратов...

9:00 - Нет, эскадры боевого флота Галактической Федерации!

9:30 - ... Вытягивая палец, отдающая приказ о смене курса...

По истечению 10 минут «Заказчик» берет работу «Исполнителя», критически ее осматривает и высказывает свое впечатление:
«Ну это же совсем не то, что я хотел! А где ее верный советник? А почему у нее нет табельного оружия? И вообще, почему она такая некрасивая и суровая? Я же просил КРАСИВУЮ девушку! И вообще на рисунке столько каракулей... Плохой вы программист, зря я к вам обратился... Не буду платить за такую халтуру!»

Для большей остроты ощущений, можно взять целую «Команду Разработчиков», и пусть они вместе рисуют «большой и красивый пейзаж» за 10 минут.

moroz1999
25.09.2009, 23:33
а 11й пост чем не устраивает? не надо голословных утверждений.А он не соответствовал поставленной задаче. ATM не определял и выходные данные давал по-другому стандарту. Скажите, что я придираюсь? Нет, я согласен, что это действительно самый близкий пост из всего, что тут написано, но поставленную задачу он не выполнил.

какое решение ты хотел?Банально - кусок кода, который просто решает поставленную задачу так, как было описано в поставленной задаче.

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

Black_Cat
25.09.2009, 23:44
говорю о том, что ценится в корпоративной разработке - умении максимально точно решить задачу в поставленные сроки.это вопрос не к аудитории, а к уровню программиста.. очевидно, он не высок, раз при готовом, предложенном ему алгоритме решения задачи методом подсчёта тактов в кадре, он до сих пор ничего не сделал, и продолжает хотеть странного.. :)

moroz1999
26.09.2009, 00:01
это вопрос не к аудитории, а к уровню программиста.. очевидно, он не высок, раз при готовом, предложенном ему алгоритме решения задачи методом подсчёта тактов в кадре, он до сих пор ничего не сделал, и продолжает хотеть странного.. :)Тролль?

Black_Cat
26.09.2009, 00:06
Банально - кусок кода, который просто решает поставленную задачу так, как было описано в поставленной задаче.Если аффтар не знает как считать такты между прерываниями, то почему он об этом прямо не спросит, вместо того чтоб хотеть неизвестно чего?

---------- Post added at 00:06 ---------- Previous post was at 00:03 ----------


Тролль?:) moroz1999, единственное верное решение в этой теме всё-таки предложил я , а не ты.. и кто тролль? :)
..в отличие от тебя, я решаю проблемы, а не развожу бодягу про корпоративные стандарты.. :)

Sinus
26.09.2009, 14:40
БК-0010, автор не спрашивал алгоритм решения проблеммы, автор хотел готовую процедуру, которая решает предложенную им задачу.

это как в том анекдоте про линуксоидов, когда человек просит туалетную бумагу, а ему вместо этого дают топор и карту ближайшего лесомассива.

GriV
26.09.2009, 21:04
Не знаю как резать тему, много флейма, но и не чистый флейм вроде.
Всё. Хватит о сферах, лошадях и локомотивах. Если не готовы дать ответ на задачу, не пишем в эту ветку совсем.

2breeze> зачем убрал задачу саму? Может быть в поставленных условиях задача не имеет решения? Или ты задачу неверно ставишь?

Black_Cat
26.09.2009, 21:17
2breeze> зачем убрал задачу саму? Может быть в поставленных условиях задача не имеет решения? Или ты задачу неверно ставишь?Задача здесь: ZX Detector. (http://zx.pk.ru/showthread.php?t=10940) Собсно задача вот:

Нужно для последующей корректировки смещения на border.
Не знаю как резать темуМой ответ в посте №7 перенеси в ZX Detector, а всю тему - удали, других верных решений в ней нет.
Задача не только правильно решена, но так же и корректно сформулирована за аффтара, кторый даже не понимает о чём надо спрашивать - потому и задачу убрал..