|
Faultless
#01
11 февраля 1996 |
|
Сделай сам - контроллер принтера на ZX Spectrum. Доработка контроллера дисковода ФАПЧ.

КОРРЕКТНО ПОДКЛЮЧИТЬ К speccy КОНТРОЛЛЕР ПРИНТЕРА МОЖНО C ИС-
ПОЛЬЗОВАНИЕМ К589АП16,К555АПб.ЭТО ИСКЛЮЧАЕТ ЗАВИСАНИЕ КОМПЬЮТЕ-
РА ПРИ ВКЛЮЧЕНИИ ИЗ-ЗА НАЛИЧИЯ НА ШИНЕ ДАННЫХ СИГНАЛА КОНТРОЛЛЕ-
РА 'ПРИТЕР ОТСУТСТВУЕТ' ИЛИ 'ПРИНТЕР ЗАНЯТ'.ПРИМЕНЯЕТСЯ MUKPOC-
ХЕМА KPS8ОВА86 (РИСУНОК 1).ВМЕСТО К5SSЛА9 МОЖНО ИСПОЛЬЗОВАТЬ БО-
ЛЕЕ РАСПРОСТРАНЕННУЮ-KSS5ЛАЗ.В ТЕКСТЕ ПЕРЕМЕЩЕНИЯ ДРАЙВЕРА ДЛЯ
ЭТОГО КОНТРОЛЛЕРА ЕСТЬ CУЩЕCТВЕННЯ НЕТОЧНОСТЬ,КОТОРАЯ ПРОЯВЛЯЕТ-
СЯ,ЕСЛИ ПЕЧАТАЕМАЯ СТРОКА СОДЕРЖИТ БОЛЕЕ 65-ТИ СИМВОЛОВ (ТЕРЯ-
ЕТСЯ 1 СИМВОЛ И ПЕЧАТАЕТСЯ ЛИШНЯЯ 'ПУСТАЯ СТРОКА').ДЛЯ ЕЕ YCTPA-
НЕНИЯ ДОСТАТОЧНО ПЕРЕСТАВИТЬ МЕСТАМИ ОПЕРАНДЫ newline И conto В
СЛЕДУЮЩЕМ ФРАГМЕНТЕ ПРОГРАММЫ:
ld bc,conto-base
add hl,bc
ex (sp),hl
jr newline
ДЛЯ ИСПОЛЬЗОВАНИЯ ОПИСЫВАЕМОГО ДРАЙВЕРА ПРИ РАБОТЕ C tlw2 ПОД-
ПРОГРАММУ ОБСЛУЖИВАНИЯ ПРИНТЕРА МОЖНО ЗНАЧИТЕЛЬНО УПРОСТИТЬ:
prn ld hl,base
cp {7f +5В $$$$$$$$$$$$$$$$$
jr nz,sym ddS
ld a,{23 KPS8ОВА86 & & & & & & r19-r14
jr print К& &%%%%%%& & & & & & & (1К)
sym jr c,print &$$$1& ` & &19$$$&$&$&$&$&$$$$&К
sub 165 z&$$$2&%%%%%%&18$$$$$&$&$&$&$$$$&
jp nc,{0c10 x&$$$3& ` & &17$$$$$$$&$&$&$$$$&d
print ld d,a &$$$4& ` & &16$$$$$$$$$&$&$$$$&d
wait call {1f54 d&$$$5& `ЕП& &15$$$$$$$$$$$&$$$$&1
jr c,cont1 a&$$$6& ` & &14$$$$$$$$$$$$$$$$&
rst 8 t&$$$7& ` & &13$$$$$$$$$$$$$$$$&
defb {14 a&$$$8& ` & &12$$$$$$$$$$$$$$$$&
cont1 in a,({fb) &$`$$&$&
add a,a $$$$$$$9&-` & &
ret m & $$11&+` & & РИСУНОК 1
jr nc,wait & & %%%%%%%%
ld a,d & &
out ({fb),А & &$$$ К ВЫВОДУ 8 dd2
ret &
&$$$$$$$ К ВЫВОДЫ 3 dd2
----------------------------------------------------------------
ДОРАБОТКА КОНТРОЛЛЕРА Д-А
РАЗРАБОТКА ФИРМЫ western digital-СХЕМА ПОМЕХОЗАЩИЩЕННОЙ ЦИФРОВОЙ
ФАПЧ-СТАЛА ШИРОКО ИЗВЕСТНОЙ В Г.ХАРЬКОВЕ РАНЬШЕ,ЧЕМ В ДРУГИХ ГО-
РОДАХ СНГ БЛАГОДАРЯ ОПЕРАТИВНОМУ РЕАГИРОВАНИЮ В.М.Г. И Б.А.Е.
НА ПОТРЕБНОСТИ РЫНКА.В 1992 ГОДУ СХЕМА ЗАНЯЛА ПЕРВОЕ МЕСТО ПО
РАCКУПАЕМОCТИ,ОНА ВКЛЮЧАНА ПРАКТИЧЕСКИ ВО ВСЕ НОВЫЕ РАЗРАБОТКИ
ХАРЬКОВСКИХ РАИОЛЮБИТЕЛЕЙ.РЕКЛАМНЫЙ ПРОСПЕКТ ФИРМЫ УТВЕРЖДАЕТ,
ЧТО ДАННАЯ СХЕМА ПОВЫШАЕТ ДОСТОВЕРНОСТЬ ЧТЕНИЯ ИНФОРМАЦИИ ДИСКА
НЕ МЕНЕЕ,ЧЕМ В 10 РАЗ.ОПЫТ ИСПОЛЬЗОВАНИЯ СХЕМЫ C КОНТРОЛЛЕРАМИ
'ЭХО','betadisk','pentagon' И ДРУГИМИ ПОДТВЕРЖДАЕТ ЭТУ ИНФОРМА-
ЦИЮ В 90 ПРОЦЕНТОВ СЛУЧАЕВ.ОСОБЕННО ЗАМЕТНА РАЗНИЦА ПРИ РАБОТЕ C
НИЗКОКАЧЕCТВЕННЫМИ ДИСКОВОДАМИ И ДИСКЕТАМИ.
$$$$$$$$$ $$$$$$ r1 10k ПРОШИВКА МИК-
& `. & ` &. & РОСХЕМЫ 556 РТЧ
& ` & ` & & $$$$$ $$$$$ C . +5v ОПУБЛИКОВАНА В
& ` & ` C & & &. & &. & & . wf/de ЖУРНАЛЕ 'РАДИО-
& `556& ` О &555 & &555& &555& . rclk ЛЮБИТЕЛЬ' В НО-
& ` & ` П & ТМ9& &ТМ2& &ЛАЗ& & . -rawr МЕРЕ 3 ЗА 1993
& `ПТЧ& ` Р & & & & & & r . -rdata ГОД (СТР.6)
& ` & ` О & & & & & & 2 . 8 mhz
& ` & ` & & & & & & & . gnd
%%%%%%%%% %%%%%% %%%%% %%%%%
r3...r6 1k
4 x 1К!
ЕСЛИ ВАМ ТРЕБУЕТСЯ СХЕМА ЭТОЙ ДОРОБОТКИ ТО ПИШИТЕ И Я ВАМ ЕЕ
ВЫШЛЮ (БЕСПЛАТНО!),А ТАКЖЕ ИМЕЕТСЯ CХЕМЯ sound drive by flash!
----------------------------------------------------------------
А ТЕПЕРЬ ХОТЕЛОСЬ БЫ ВАМ РАССКАЗАТЬ О ТЕНЕВОМ ПЗУ tr-dos!
ТЕНЕВОЕ ПЗУ tr-dos ПОДКЛЮЧАЕТСЯ К ОСНОВНОМУ ПЗУ КОМПЬЮТЕРА ПРИ
ОБРАЩЕНИИ z-80 К ОПРЕДЕЛЕННЫМ АДРЕСАМ ПАМЯТИ.ОДНИМ ИЗ ТАКИХ АД-
PECOB-АДРЕСС {3d13.ЕСЛИ ЖЕ tr-dos'У НУЖНО ОБРАТИТЬСЯ К ОСНОВНО-
МУ ПЗУ,ТО ОН ДЕЛАЕТ СЛЕДУЮЩЕЕ:
-В СТЕК КЛАДЕТСЯ АДРЕС ВОЗВРАТА К ТЕМ ЧАСТЯМ ИЛИ МОДУЛЯМ tr-dos.
-В СТЕК КЛАДЕТСЯ АДРЕС ТРЕБУЕМОЙ ПОДПРОГРАММЫ ИЗ ОСНОВНОГО ПЗУ
-ТЕНЕВОЕ ПЗУ ОТКЛЮЧАЕТСЯ.
-ВЫПОЛНЯЕТСЯ ПЕРЕХОД ПО АДРЕСУ 23746.
-ПО ЭТОМУ АДРЕСУ РАСПОЛОЖЕНА ИНСТРУКЦИЯ ret,ПОЭТОМУ СО СТЕКА
БЕРЕТСЯ АДРЕС ПОДПРОГРАММЫ В ОСНОВНОМ ПЗУ И ОНА ЗАПУСКАЕТСЯ.
-ИНСТРУКЦИЯ ret В КОНЦЕ ПРОГРАММЫ ВЫЗОВЕТ ПЕРЕХОД НАЗАД-В ТЕНЕ-
ВОЕ ПЗУ tr-dos'А.
ПЕАДЛАГАЕМЫЙ ПРИМЕР ПОКАЗЫВАЕТ,КАК МОЖНО ОБРАТИТЬСЯ К tr-dos'У
ТАК,ЧТОБЫ ПОЗВОЛИТЬ ЕЙ ОЧИСТИТЬ ЭКРАН И ВЫДАТЬ СВОЕ СООБЩЕНИЕ
В НИЖНЕЙ ЧАСТИ ЭКРАНА.ВМЕСТО ЭТОГО tr-dos ВЫДАЕТ В ОКНЕ 'СООБ-
ЩЕНИЕ СИСТЕМЫ',ПРИМЕНЯЕМОГО ОКОННОГО ИНТЕРФЕЙСА.В ПРИМЕРЕ
ЕСТЬ ОБРАЩЕНИЕ К НЕОПРЕДЕЛЕННОМУ ЗДЕСЬ ОКОННОМУ ИНТЕРФЕЙСУ.
ПРОСТО СВОЮ ПРОГРАММУ C АНАЛОГИЧНЫМ ЗНАЧЕНИЕМ ВЫ МОЖЕТЕ ВСТА-
ВИТЬ НА МЕСТА ВЫЗОВОВ ЭТИХ ПРОЦЕДУР СВОИ СПЕЦИАЛЬНЫЕ ВЫЗОВЫ C
АНАЛОГИЧНЫМИ ФУНКЦИЯМИ.В ДАННОМ СЛУЧАЕ ВЫЗОВ tr-dos РАЗДЕЛЕН
НА 3 ЭТАПА:
1.ПООДГОТОВКА ОПЕРАЦИИ:УСТАНОВКИ ПЕРЕХВАТЧИКОВ.
2.НЕПОСРЕДСТВЕННЫЙ ВЫЗОВ tr-dos ПО {3Д13 (C ВОЗВРАТОМ ПЕРЕХ.)
3.ЗАВЕРШЕНИЕ ОПЕРАЦИИ:СНЯТИЕ ПЕРЕХВАТЧИКА.
ИТАК,1-Й ЭТАП-УСТАНОВКА ПЕРЕХВАТЧИКА:
pospre sub a
ld (rstflg),a
ld hl,posw
ld (rstptr),hl
call im1
posswp ld hl,dos st
ld de,23746
ld bc,3
swap2 ld a,(de)
ldi
dec hl
ld (hl),a
inc hl
jp pe,swap2
ld hl,(23633)
ld c,(hl)
inc hl
ld b,(hl)
ld de,(dos oh)
ld (dos oh),bc
ld (hl),d
dec hl
ld (hl),e
ret
ВТОРОЙ ЭТАП:
dos push af
ld (iy),-1
sub a
ld (23823),a
ld (23824),a
pop af
call {3Д13
ld a,(23823)
and a
ret z
scf
ret
dos st jp dosend
dos hl defw 0
dos bc defw 0
dos oh defw dos rst
dosend ld (dos hl),hl
ld (dos bc),bc
pop bc
push af
and a
ld hl,{Odбb
sbc hl,bc
jr z,dos cls
ld hl,{1601
sbc hl,bc
jr z,dosing
pop af
push bc
ld hl,(dos hl)
ld bc,(dos bc)
ret
posign pop af
ret
rstflg defb 0
rstptr defw dosw
doscls pop af
ld hl,dosw
ld de,dosw+1
ld bc,5*21-1
ld (hl),{ff
ldir
ld hl,dosw
ld (rstptr),hl
ld a,(rstflg)
and a
ld a,28
call z,open
ld a,-1
ld (rstflg),А
jp reddraw
dosrst push bc
push de
push hl
ld hl,(rstptr)
ld (hl),a
inc hl
ld (rstptr),hl
call text-n ;ОБНОВИТЬ ТЕКСТ В ОКНЕ
pop hl
pop de
pop bc
ret
dosend ld (iy),-1
caЛЛ dosswp
ld a,(rstflg)
and a ;ЕСЛИ ОКНО СООБЩАЕТ tr-dos ОТКРЫВАЕТ
call nz,close ;ТО ЗАКРЫТЬ ЕГО
ret
ТАКИМ ОБРАЗОМ,ЕСЛИ tr-dos ЗАХОЧЕТ В ПРОЦЕССЕ РАБОТЫ ВЫДАТЬ
СООБЩЕНИЕ disk error ИЛИ read only,ПРОГРАММА ПЕРВЫМ ДЕЛОМ ПО-
ПЫТАЕТСЯ ОЧИСТИТЬ ЭКРАН.ЭТА ПОПЫТКА БУДЕТ ОБНАРУЖЕНА dosend
И ВМЕСТО ОТЧИCТКИ ЭКРАНА БУДЕТ ВЫПОЛНЕН ВЫВОД ОКНА СООБЩЕНИЯ
tr-dos И ЕГО ОТЧИСТКА.ЗАТЕМ tr-dos ПОПЫТАЕТСЯ ОТКРЫТЬ ПОТОК
'k',НО ЭТА ПОПЫТКА БУДЕТ ПЕРЕХВАЧЕНА И ПРОИГНОРИРОВАНА.В РЕ-
ЗУЛЬТАТЕ СООБЩЕНИЕ tr-dos ПОЯВЛЯЕТСЯ В КРАСИВОМ МНОГОЦВЕТНОМ
ОКНЕ ПОСЕРЕДИНЕ ЭКРАНА,А НЕ ВНИЗУ.ПО ЗАВЕРШЕНИЕ ПОСЛЕДНИХ ВЫ-
ЗОВОВ В tr-dos ОКНО ЗАКРОЕТСЯ (В ПРОЦЕССЕ dosend).
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
p.p.s ВОРОЖКИН АЛЕКСАНДР,БАЖЕНОВ СТАС
Другие статьи номера:
Похожие статьи:
В этот день... 12 ноября