OFFTOP: Ох уж эта строчная "к"... Мы ее всегда фиксили на кружке.
OFFTOP: Ох уж эта строчная "к"... Мы ее всегда фиксили на кружке.
Пожалуйста
Код нужно вставить в начало подпрограмм : загрузки DOS и смены дисков FDCКод:;; REKALIBR ; FFF1H порт мотора 1= ВКЛ , 0= ВЫКЛ ; перемещает головку на один шаг STEP+ без контроля готовности диска , затем на TRACK00 ; CPU i8080/85 ; ; SYR-ALEX 03-06-2018 RKALIBR: MVI A,01H ; включаем STA FFF1H ; мотор MVI A,53H ; делаем STEP+1 STA FFE8H ; без контроля готовности диска MVI H,20H ; пауза RKALIBR_P: DCX H ; необходима что бы MOV A,L ; контроллер успел ORA H ; сделать JNZ RKALIBR_P ; шаг MVI A,03H ; отправляем головку STA FFE8H ; на TRACK00 MVI A,OOH ; выключаем STA FFF1H ; мотор RET ; возврат
Последний раз редактировалось SYR-ALEX; 03.06.2018 в 18:02.
Вот дизассемблированный исходник DOS Специалиста МХ от Vinxru и меня. Правда в мнемонике Z80. Здесь наверное, коды нужно в ставить в программу инициализации дискеты и смены диска, соответственно метки MK1 и M0D. Сам MX-DOS находится на каждой дискете и DOS грузит его с дискеты в память по адресу #e400 и запускается отсюда же. Буду искать свободное место в прошивке.
Вот в мнемонике Z80
- - - Добавлено - - -Код:; REKALIBR ; FFF1H порт мотора 1= ВКЛ , 0= ВЫКЛ ; перемещает головку на один шаг STEP+ без контроля готовности диска , затем на TRACK00 ; CPU z80 ; ; SYR-ALEX 03-06-2018 RKALIBR: LD A,#01 ; включаем LD (#FFF1),A ; мотор LD A,#53 ; делаем STEP+1 LD (#FFE8),A ; без контроля готовности диска LD H,#20 ; пауза RKALIBR_P: DEC HL ; необходима что бы LD A,L ; контроллер успел OR H ; сделать JP NZ,RKALIBR_P ; шаг LD A,#03 ; отправляем головку LD (#FFE8),A ; на TRACK00 LD A,#OO ; выключаем LD (#FFF1),A ; мотор RET ; возврат
Вставил в инициализацию :
В переключение дисков :Код:; подпрограмма инициализации дисковода ; вход: [А] - =#00 - запустится DOS, ; = не #00 - запустится дисковод и произойдет вытаскивание DOS с дискеты и уход в программу MK1 pop af call RKALIBR push af ld b, a call LC885 ; команда восстановление ld a, #01 ld (SID), a ; установить сторону диска ld (Cek), a ; и сектора ld h, #13 ; 4871*10mkc GXD dec hl ld a, l or h jp nz, GXD ld (SID), a ; установить сторону диска
Как то так . Если при компиляции адреса не собьются , то будет счастье.Код:; подпрограмма переключения дисководов M0D ld a, (LC7FD) xor #01 ld (LC7FD), a ; номер дисковода ld (#fff3), a ; номер дисковода call RKALIBR ; ре калибровка LC885 ld a, #01 ld (PD0), a ; регистр команды LC88A ld a, (PD0) ; регистр состояния rra ; сдвиг вправо аккумулятора jp nc, LC88A LC891 ld a, (PD0) ; регистр состояния rra jp c, LC891 ret
Нет места, нет места...
Вот эти подпрограммы уже используются для работы, назначение не ясно, какая-то работа с RAM/ROM-дисками:
Можно убрать подпрограммы работы с принтером:C0C jp M05 ; С-байт на ленту
C24 jp MUC ; чтение заголовка с ленты
или забрать место под какие-то символы работы с принтером:C3F jp PSI ; C-символ на принтер
C42 jp BAU ; A-байт на принтер
Чем жертвуем?TZN defb #ee,#d0,#d1,#e6,#d4,#d5,#e4,#d3
defb #e5,#d8,#d9,#da,#db,#dc,#dd,#de
defb #df,#ef,#e0,#e1,#e2,#e3,#d6,#d2
defb #ec,#eb,#d7,#e8,#ed,#e9,#e7,#ea
defb #ce,#b0,#b1,#c6,#b4,#b5,#c4,#b3
defb #c5,#b8,#b9,#ba,#bb,#bc,#bd,#be
defb #bf,#cf,#c0,#c1,#c2,#c3,#b6,#b2
defb #cc,#cb,#b7,#c8,#cd,#c9,#c7,#ca
Конечно принтером .
Да никак был в отпуске, сегодня приехал. Сделаю.
SYR-ALEX, переделка кода в прошивке ещё нужна?
Так точно . Надо доделывать проект затянувшийся почти на 30 лет
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)