Pull to refresh
140
0
Сергей @tronix286

User

Send message
Походу внешняя синхронизация — один из разъемов подписан как «ВЧ» и сам разъем по исполнению ВЧ.
Ну, наличие ВВ51 как бы намекает на RS232, хотя микросхем приемо-передатчиков не видно, но могли и на транзисторах собрать. Фотка с платами увы низкого разрешения. Так что компьютер мог быть любой, имеющий подобие последовательного порта. А софт… Софт, конечно, вопрос интересный.
Для создания эскизов.
Не, прогнал я, работают там макросы и табличка со списком зарезервированных слов создается. Но, тем не менее, части кода все равно нет.

Как я компилил? Во-первых сконвертировал все файлы из UNIX-like [LF] в DOS-like [CR][LF], иначе многие досовые ассемблеры с ума сходили. Потом, собсна, начал подбирать ассемблеры — пробовал Intel ASM86 ver 3.1 / 3.2, Digital Research CP-M 8086 Assembler ver 1.1, MASM v1.0, MASM v3.0, MASM v4.0, MASM v5.0 and Borland TASM v4.1. В итоге остановился на MASM v4.0, с остальными были разные проблемы. Создал makefile, куда просто накидал все ASM-файлы в кучу. Вылезли небольшие проблемы в паре мест с компиляцией, пофиксил вот здесь:

GWEVAL.ASM line 452: MOV DX,OFFSET 256*100+OPCNT replaced to MOV DX,25600+ OFFSET OPCNT
Потом объединил файлы MATH1.ASM и MATH2.ASM в новый большой MATH.ASM, и там тоже поправил чутка:

MATH.ASM line 1311: MOVS ?CSLAB,WORD PTR ?CSLAB replaced to MOVSW
MATH.ASM line 5020: MOVS ?CSLAB,WORD PTR ?CSLAB replaced to MOVSW
MATH.ASM line 5022: MOVS ?CSLAB,WORD PTR ?CSLAB replaced to MOVSW


И на этом все, все файлы стали собираться без проблем в объектники, но итоговый результативный файл получить не удается, так как банально отсутствуют процедуры:

Unresolved externals:

MAPSUP in file(s):
GIOKYB.OBJ(GIOKYB)
POKFLT in file(s):
GWMAIN.OBJ(GWMAIN)
SCRINP in file(s):
SCNDRV.OBJ(SCNDRV) GWSTS.OBJ(GWSTS)
POLLEV in file(s):
GWSTS.OBJ(GWSTS)
TRMCOM in file(s):
GIOCOM.OBJ(GIOCOM)
SCRATR in file(s):
GWSTS.OBJ(GWSTS)
SETCLR in file(s):
GWSTS.OBJ(GWSTS)
PNTINI in file(s):
ADVGRP.OBJ(ADVGRP)
SCROUT in file(s):
SCNDRV.OBJ(SCNDRV) GWSTS.OBJ(GWSTS)
SETATR in file(s):
ADVGRP.OBJ(ADVGRP) GENGRP.OBJ(GENGRP)
CSRDSP in file(s):
GIOKYB.OBJ(GIOKYB) GWSTS.OBJ(GWSTS)
...etc...


В коде их нигде нет. Канешн, можно взять уже скомпиленный GW-BASIC с более-менее похожей версией, дизассемблернуть, найти места вызовов отсутствующих процедур и тупо из дизасма воссаздать нужные функции. Но, оставляю это для других энтузиастов.
Там нет списка зарезервированных слов BASIC, соответственно не развернуть макросы BINTRP.H и др. Походу у них какая-то самописная утилитка была, которая проходилась по дефайнам и собирала нужный инклюд в зависимости от. Ее не положили. Так что «из коробки» не собрать. Нужно допиливать напильником. Я думаю, фанаты справятся, а мне уже лень.
Наследие PDP? Хорошо, хоть от восьмеричной СС избавились, а то бы было до сих пор — «запишем в ячейку по адресу 233303211223 значение 1; читаем из порта 266640002 значение...»
Теперь просыпаемся и видим, что речь здесь идет про Радио-86РК с процом ВМ80 на частоте 1,77 МГц с 32 Килобайтами оперативы. И понимает, что хорошо, если данная конфигурация умеет хотя-бы раз в секунду текст на экране обновлять. И объемы «прокачки» данных с SD-карты редко когда превышают 32 килобайта.
Поэтому, несомненно, здесь все упирается в тормозной SPI, и надо делать обязательно SDIO.
Афтор же хотел делать на православных советских DIP, о чем особо подчеркнул вначале.
Я вам даже больше скажу, так как являюсь диванным экспертом по стрелкам — они и на действующих трамвайных маршрутах Москвы — автоматические. Отменяет ли это наличие лома в кабине, и их перевод в ручном режиме, когда стрелка засирается реагентами/песком/льдом?
Препятствия, светофоры — это все понятно и ясно. Не ясно другое — где у трамвая роборука спереди, которая достает лом, что бы переводить стрелки?
Для DIY-экспериментов процессор продаётся отдельно в магазинах Chipdip


Конечно, любой андруинщик каждый день разводит BGA на 12 слоев с DDR3, в спринг лайоте, естественно, чтобы блюсти каноны, затем разогревает свою термопро тыщ за 200, которая, естественно, у каждого стоит дома на рабочем столе, и запаивает этот камень. Такой, ненавязчивый DIY, не сложнее чем лампочкой помигать.
Да-да, знаем конечно, знаменитый dispatcher, который смотрит в CPUID, и если там не genuineintel — тогда весь код выполняется для generic i386, без всяких там SSE2 и прочего мракобесия. Как в старые добрые времена, ага.
Маткад
Начали оптимизировать аж с 2009 года
Отличный материал! Ждем с нетерпением гайды, как развернуть окошко ворд на полный экран.
В то время с компьютерной литературой было очень сложно, ничего не было. Я, будучи в то время школьником начальных классов и уже кое-где получая доступ к ЭВМ (у кого-то из школьных приятелей был клон спектрума, где-то на выставках виднелись ЕС-ки), испытывал острейшую нехватку информации. Те, кто шарил в компьютерах, естественно отмахивались от школьника — ну, типа чего он там поймет-то, покажем как игрушку запускать и ладно. А объяснять чего-то — не дорос еще. А потом у меня внезапно появился свой собственный ПК Поиск, хотя я по-моему клянчил «денди». ПК появился, а информация — нет. Поэтому сразу за книжкой авторов у меня последовал какой-то здоровенный толмуд по статистике и математическому анализу с примерами расчетов на бейсике, невесть откуда скомунизженный. Была зачитана до дыр, ходила по школе из рук в руки и вообще была чем-то вроде библии, архиценным артефактом. Я думаю, подсунь бы нам в то время книгу о квантовой физике или о высшей математики с примерами программ — и они бы стали хитом.
Кстати, может кто подсказать что вообще за светодиоды стоят в таких лампах, хотя бы примерно? Есть дохлая лампочка, с одним явно битым светодиодом, оставлена на опыты, так я на ней не могу ни один светодиод зажечь от регулируемого блока питания — пробовал от 3 вольт и до 50 вольт — диод не горит, ток не потребляет. В то же время диоды на плате никак абсолютно не звонятся мультиметром. Это нормально? Сколько им надо напряжения, какое напряжение (постоянка/переменка??/меандр???), какой ток нужен?
Для полноценной работы нужны два кварца, на 8МГц и 32.768КГц


Для полноценной работы в качестве чего? Для текущей задачи — часовой кварц имхо нафиг не нужен. Я уж забыл все и могу ошибаться, но в основном часовой кварц нужен когда у нас есть всякие sleep mode, особенно deep sleep mode — можно всю периферию рубануть, включая конечно и HSE и все что от него тактируется, а оставить только таймер или прерывание, которое завязано на LSE — короче говоря, меньше наноОмпэр будет кушать. Ну и второе применение — точные часы секунда в секунду за года непрерывной работы.

В принципе, здесь даже и HSE кварц не особо нужен, UART'ы и на встройке неплохо работают, даже в большом температурном режиме, ну если не жалко — то пусть будет, конешно -)
Алгоритм автора плохо ложится на 8051 с 64-мя байтами памяти…
Интересно другое — если допустим ошибиться в связи между [слой500: клетка 100500 — слой 500, клетка 500100], ну чисто зрение замылилось, то означает ли это, что все остальные связи неверны и весь остальной труд 99,9% — неверный. Контрольных сумм то нет нифига (
А зачем два динамика на моно звук? Чтоб получше долбило?
Делать, так стерео, чего там. В качестве усилителя можно заюзать TEA2025B, 2W на канал, только гдеб 12 вольт найти… Ну или другие усилители низковольтные, тысячи их.
Да-да, вы про Qt только обязательно расскажите, что простая формочка с двумя кнопками со статическими либами на винде занимает всего лишь ~200 Mb, ребилдится при этом полностью всего за 8 часов, если полностью из сорцов собирать. А уж какая у Qt идеальная обратная совместимость — легенды прямо ходят! То, что писано в предыдущей _минорной_ версии не соберется более нигде — ни в следующей версии Qt, ни в предыдущей, ни в какой. Про кросс-платформенность и Qt также можно почитать веселые истории на тему сокетов в винде и линупсе, например. Про мак даже и вообще лучше не вспоминать от греха.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity