-=RUS=- | Дата: Вторник, 12.08.2014, 18:22 | Сообщение # 1 |
 Генералиссимус
Группа: Администраторы
Сообщений: 352
Статус: Offline
| Я хочу, чтоб к штыку приравняли ки-борд!
#####│ #│ #│ #####│ #│ #│ #│ #│ #│ #│ #│ #│ ##│ #│ #│ #│ #│ #│ ###│ #│ #│ #│ #│ #│ #│ ##│ #####│ #####│ #####│ #│ #│
▒▒▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒▒▒▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒
Независимая файловая газета для программеров
══════════════════════════════════════════════════════════════ Основана в июне 1994 года N#4, 30.11.1994 Цена отсутствует ══════════════════════════════════════════════════════════════
┌──────────────────────────┐ │ СЕГОДНЯ В НОМЕРЕ: │▒ ╞══════════════════════════╡▒ │ 1. Брянские новости и... │▒ │ 2. Уроки языка. │▒ │ 3. Аппаратный раздел. │▒ │ 4. Пишем на Ассемблере. │▒ │ 5. Ошибки, глюки... │▒ │ 6. Наш анонс. │▒ │ 7. Немного UMORA. │▒ └──────────────────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
┌────────────────────┐ │ Брянские новости. │▒ │ + │▒ │ Уголок потребителя │▒ └────────────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
К сожалению, более трех месяцев наши Дuck Tales не выходили в свет. А все потому, что испортился купленный у А.М. Надежина контроллер (наши постоянные читатели знают, о чем идет речь). Даже самых бывалых членов Клуба неполадка поставила в тупик. Представьте: запускаете MIRAGE (или нечто подобное), начинаете дизассемблировать ПЗУ контроллера... Вдруг на какой-то ячейке ни с того ни сего происходит прерывание по вектору 4. В то же время дамп "выпавших" ячеек проходит нормально, без всяких прерываний. Но драйвер не запускается! А все оказалось просто. Испортилась МС К559ИП2 (по схеме - D9). Именно испортилась, а не сгорела. В результате сигнал SYNC стал нередко приходить к ПЗУ в момент, когда адрес уже частично снимался с шины. Естественно, после установки DIN (DOUT) процессор не получал сигнала RPLY и реагировал соответ- ственно. Но подобные вещи случаются редко; обычно ДОЗУ или ПЗУ начи- нают выдавать неправильную информацию. Как найти причину? Очень просто! Загрузите какой-нибудь отладчик и:
* Занесите в каждую ячейку ДОЗУ ее собственный адрес (извращенцам предлагаем сделать это вручную); * Теперь просмотрите содержимое ДОЗУ:
- адреса 120000-120100 с шагом 2; - адреса 120100-121000 с шагом 100; - адреса 121000-124000 с шагом 1000; - адреса 124000-130000 с шагом 4000; - адреса 130000-160000 с шагом 10000.
Если ДОЗУ неисправно, Вы заметите несоответствие значений в ячейках занесенным. Некоторые возможные варианты:
1) Во всех ячейках установлен или сброшен какой-либо бит (или биты); других несоответствий нет.
Причина: обрыв или КЗ линий данных на участке "МС ОЗУ-внут- ренняя шина контроллера". Номер линии шины опреде- ляется по номеру неверного бита.
2) На некотором участке памяти значения по адресам (A) и (A+X) совпадают; других несоответствий нет.
Причина: обрыв или КЗ линий адреса на участке "выход защел- ки адреса-МС ОЗУ"; неисправность регистров защелки адреса. Номер линии шины и регистра определяется по биту, соответствующему числу X.
3) Одновременно наблюдаются несоответствия, описанные в пунктах 1 и 2.
Причина: обрыв или КЗ линий адреса/данных на участке "вход защелки адреса-внутренняя шина контроллера"; пло- хой контакт в разъеме между платой ДОЗУ и платой контроллера.
На этом нам придется поставить точку. Память поджимает...
Chips, Dales & Technologies, Inc.
┌──────────────┐ │ Уроки языка. │▒ └──────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Начиная с этого номера Дuck Tales, мы несколько изменяем структуру наших "уроков". Иногда недостаточно лишь указать ошибку, необходимо ее прокомментировать. Такие комментарии заключены между символами "▒" и относятся к предыдущей строке таблицы.
┌───────────────────┬────────────────┬───────────────────┐ │ Как пишут │ Кто пишет │ Правильно: │ ├───────────────────┼────────────────┼───────────────────┤ │общеупотребиМых │??? │общеупотребиТЕЛЬных│ │устОновка │MV corp. │устАновка │ │dEvide │MV corp. │dIvide │ │прек-ращаться │MV corp. │пре-кращаться │ │в заключениИ... │VIC corp. │в заключениЕ... │ │oWerwrAT │VIC corp. │oVerwrITE │ │monochrom │Камнев С. │monochromE │ │проблеММы │LAV │проблеМы │ │съэкономить │LAV │сэкономить │ │динамичИскими │LAV │динамичЕскими │ │lengHT │LAV │lengTH │ ├───────────────────┬────────────────┬───────────────────┤ │line fINd │Камнев С. │line fEEd │ ▒ имеется в виду кнопка принтера "ПЕРЕВОД строки" ▒ ├───────────────────┬────────────────┬───────────────────┤ │DIL-переключатель │Камнев С. │DIP-переключатель │ ▒ аббревиатура от Dual-Inline Package (дословно - "двух- ▒ ▒ рядная упаковка") ▒ ├───────────────────┬────────────────┬───────────────────┤ │compare dlrectorY │Камнев С. │compare directorIES│ ▒ дословный перевод - "сравнить каталог". Встает вопрос: ▒ ▒ как можно сравнить ОДНУ вещь? Надо сказать, с чем ее ▒ ▒ сравнивать. Правильная фраза - "сравнить каталоги". ▒ └───────────────────┴────────────────┴───────────────────┘
Кстати, хотелось бы узнать, кто впервые стал употреблять слово "сквизирование"? Еще можно понять, почему в слэнг рус- ских программеров вошли специфические термины типа "рэндеринг" (процесс преобразования трехмерной каркасной модели объекта в его фотореалистическое изображение) - для них нет подходящих русских эквивалентов.
НАША СПРАВКА: to sqeeze ("уплотнять, сдвигать") - перерас- пределять динамически распределяемую память (обычно на диске) так, чтобы свободное пространство занимало непрерывный учас- ток.
Так вот, для обозначения этого процесса существует весьма точное и емкое русское слово: "сжатие". Нужно ли было изобре- тать что-то еще?..
┌────────────────────┐ │ Аппаратный раздел. │▒ └────────────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
...Итак, Вы приобрели контроллер с 16 Кбайт дополнительного ОЗУ, несколько дней порадовались приобретению, но Вас мучает один недостаток: с дисководом не работает Ваш (или Вашего бра- та, сестры, папы, мамы...) любимый БЕЙСИК ВИЛЬНЮС,1986.07.24. Что же делать? Лететь (для не москвичей - в прямом смысле сло- ва) в центр Altec (или к Надежину), платить 2.000 (ДВЕ ТЫСЯ- ЧИ!!!) за установку одной-единственной ЛА'шки?.. Нам могут возразить, как в одном анекдоте: 300 руб. за микросхему и 1700 за знание места и способа ее установки. В таком случае мы дарим Вам эти 1700 рублей! Если Вы имеете (а Вы, конечно, имеете) небольшой опыт работы с паяльником, то переделка отнимет у Вас не более пяти минут. Итак,
* перережьте дорожку XT1/A23-D1/18 * перережьте дорожку XT1/B19-D1/20 * установите перемычку D1/39-А14 * установите диод (Д9Б или аналогичный) между XT1/A29 и XT1/A14 анодом к A14 (A14 ─┤>├─ A29) * распаяйте микросхему К555ЛА3 (или аналогичную) следующим образом:
к XT1/B19 к D1/38 к D1/20 ↑ ↑ ↑ │ │ │ │\ │ о──о о──о │ о───────┼─>├────→ к XT1/A1 │ │ │ │ о──┼───┐ │/ │ ┌─┴──┴──┴──┴──┴──┴──┴─┐ │ │ 14 13 12 11 10 9 8 │ │ │Э D0 К555ЛА3 │ │ │ 1 2 3 4 5 6 7 │ │ └─┬──┬──┬──┬──┬──┬──┬─┘ │ │ │ │ │ │ │ │ о──┘ о──о о──┼──────┘ │ │ ↓ ↓ к XT1/A23 к D1/18
Микросхема располагается поверх МС К555ТМ2 (D10). Выводы D0/7 и D0/14 припаиваются к соответствующим выводам D10.
На этом работа с паяльником заканчивается. То, что Вы сде- лали, на принципиальной схеме выглядит так:
1┌────┐ ┌───┤ & │3 4┌────┐ к XT1/A23 ←────о 2│ о───────┤ & │6 (вых DIN) └───┤D0.1│ 5│ о─────────→ к D1/18 └────┘ ┌────┤D0.2│ (вх DIN) │ └────┘ к D1/38 ←────────────────о (вых DS3) │ 9┌────┐ 13┌────┐ └────┤ & │8 ┌───┤ & │11 10│ о────о────→ к D1/20 к XT1/B19 ←────о 12│ о───────┤D0.3│ │ (вх INIT) (вых RESET) └───┤D0.4│ └────┘ ─┼─ └────┘ \ / ─┼─ └─────→ к XT1/A1
Теперь установкой бита 2 (маска 4) в ячейке @#177130 (РС КНГМД) производится включение всех трех ПЗУ Бейсика, а бит 3 (маска 10) блокирует прохождение сигналов DIN и RESET на кон- троллер. Чтобы включить Бейсик, достаточно подать команду MOV #14,@#177130; чтобы выключить - CLR @#177130.
По материалам Chips, Dales & Technologies, Inc.
┌──────────────────────┐ │ Пишем на Ассемблере. │▒ └──────────────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
* Иногда использование команд TST (Rn)+ и TST -(Rn) для увеличения или уменьшения значения в регистре на 2 может при- вести к нежелательным эффектам. Так, если число в Rn лежит в пределах 177700...177777, выполнение этих команд приведет к обращению в "никуда" (по этим адресам нет устройств, которые могли бы выдать сигнал RPLY), и процессор, выждав 64 такта, произведет прерывание по вектору 4. Такое развитие событий редко предусматривается авторами программ...
* Если Вы используете какое-либо слово (или регистр) в ка- честве флага, принимающего только два значения, Вы, несомнен- но, очищаете его командой CLR FLAG. А устанавливаете? Наверня- ка чем-то типа MOV #1,FLAG. А можно короче и быстрее: MOV PC,FLAG.
* Как Вы проверяете наличие ПЗУ на некотором адресе? Конеч- но, командой TST @#ADDR. А наличие ОЗУ? Говорите, CLR @#ADDR? Увы, это может привести к фатальным последствиям, если ADDR попадет в область операционной системы. Немного длиннее, но значительно безопаснее: BIS #0,@#ADDR (или BIC #0,@#ADDR).
* Наиболее быстрый и экономичный способ поменять местами содержимое двух регистров:
XOR Ra,Rb XOR Rb,Ra XOR Ra,Rb
* И, наконец, "по горячим следам" - простейшая программа, обеспечивающую работу стандартного Бейсика с дисководом (аппа- ратная часть переделки была описана выше):
START: MOV #DISP30,@#30 ;Инициализируем диспетчер MOV #14,@#177130 ;Включим Бейсик EMT 272 ;JMP @#120000 DISP30: MOV R5,-(SP) MOV 2(SP),R5 MOV -(R5),R5 CMP R5,#104036 ;EMT 36 обрабатывается BEQ EMT36 ; отдельно, CALL @174000(R5) ;остальные - как обычно RETPP: MOV #DISP30,@#30 ;Вектор надо восстанавливать MOV (SP)+,R5 RTI ;Финиш. E3MT6: MOV SP,STOP+2 ;SP сохраним, MOV #STOP,@#4 ; по СТОПу - наша п/п CMPB @#326,#137 ;Первый символ - "_"? BNE TSTMAG COM TSTMAG+2 ;Да - переключим устройство TSTMAG: TSTB #0 ;Работаем с магнитофоном? BEQ MAG CLR @#177130 ;Нет - включим ОЗУ с системой CALL @#120002 ; и выполним ее EMT 36 BR STOP MAG: CALL @#116076 ;С магнитофона - как обычно STOP: MOV #0,SP ;Восстановим стек, MOV #14,@#177130 ; вернем Бейсик на место, MOV #120234,@#4 ; и вектор 4 тоже BR RETPP ;Теперь - на выход.
Большинство систем корректно работает с файлами .COD и .BIN; файлы .ASC нормально обрабатываются только системами с 16-символьным именем (DaleOS и т.п.).
┌──────────────────┐ │ Ошибки, глюки... │▒ └──────────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
* Если создать в MKDOS файл с именем "ABC.DEF GHI" и запус- тить MCommander, окажется, что файл носит имя "ABC.DEF"
┌────────────┐ │ Наш анонс. │▒ └────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒
В следующих номерах Дuck Tales:
* Все об условных переходах; * Как покупать новую клавиатуру; * СЕНСАЦИЯ! Как программно отличить свою БК'шку от чужой; * Быстрые алгоритмы построения геометрических фигур.
Выйдут в свет очередные выпуски приложения "Фантастика":
N#4. Роберт Шекли. "Специалист". N#5. Клиффорд Саймак. "Достойный противник". N#6. Л. Теплов. "Вертикаль". N#7. Айзек Азимов. "Вставьте деталь "А" в отверстие "B"". N#8. Роберт Хайнлайн. "Колумб был остолопом". N#9. Алексей Паншин. "Судьба Мильтона Гомрата". N#10. Герберт Франке. "Самоуничтожение". N#11. Дюла Хернади. "РНК".
┌────────────────┐ │ Немного UMORA. │▒ └────────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Наша реклама.
ЧАСЫ КОМАНДИРСКИЕ с зубонепрокусаемым ремешком и смертным боем
Часы имеют 8 стрелок. Четыре из них показывают время, ос- тальные - запасные, чтобы сбить с толку вероятного противника. Стрелки покрыты специальным составом, благодаря которому они светятся в темноте и служат для ослепления врага. Доза излуче- ния достаточна для радиационного поражения в радиусе 200 мет- ров. Для простоты угол между часовой и минутной стрелками всегда равен прямому. Все шестеренки часов выполнены из самых современных тран- зисторов и микросхем. При изготовлении часов использованы луч- шие западные технологии: сварка взрывом, клепка газом, сборка трезвым. Позолоченный корпус часов оцинкован вольфрамом. Часы командирские заводятся с пол-оборота, в северных рай- онах страны к ним прилагается специальная ручка для завода на морозе. В случае попадания внутрь часов песка они начинают ра- ботать как песочные. В боевой обстановке автоматически включается часовой меха- низм замедленного действия, и часы начинают тикать. В крити- ческий момент командир может метнуть их в сторону противника. При этом встроенный динамик пищит командирским голосом: "За мной! В атаку!" В темноте часы шепотом говорят: "Не бойся, я с тобой!".
Покупайте часы командирские! Это будут самые приятные часы в вашей жизни!
───────────────────┬───────────────────────────┬────────────── УЧРЕДИТЕЛЬ │АДРЕС РЕДАКЦИИ: │ Тираж Dale Publishing co.│241047, Брянск 47, а/я 109.│неограниченный ───────────────────┴───────────────────────────┴────────────── Номер сверстан в издательской системе VorteX!
|
|
| |