Сообщение от
Pyk
могут быть проблемы при чтении файлов rks из-за процедуры автонастройки скорости
Это не проблема, т.к настройка на скорость - это подпрограмма CALL CNST. Достаточно этот CALL забить, например код CALL, т.е байт CDH перепрошить в байт 21H (или все 3 байта заменить на нули), тогда при вводе с МГ ячейка CLD останется той, что инициализируется по сбросу (3CH для 2 МГЦ, 4CH для 2.5 МГЦ). Удаление процедуры автонастройки освободит в ПЗУ загрузчика 89 байтов для других нужд.
Кстати, в эмуляторе B2M с этим проблем не было, работало оригинальное ПЗУ. Вот процедура определения константы чтения по пилотону.
Код:
; ОПРЕДЕЛЕНИЕ КОНСТ.ЧТЕНИЯ
; (C) В.ИВИНСКИХ
; ЛЕНИНГРАД - 1988
.8080
cseg
PORTB EQU 0FF01H
CLD EQU 08FFFH
CNST: MVI D,150 ; КРИТЕРИЙ ЗАХВАТА - 150
CNS2: MOV B,C ; ОТМЕТОК ПОДРЯД
CALL CNS10
JZ CNST
MOV A,C
SUB B
JNC CNS3
CMA
INR A
CNS3: CPI 8 ; КРИТЕРИЙ ПРОПУСКА ОТМЕТКИ
JNC CNST
DCR D
JNZ CNS2
CNS4: LXI H,0 ; ПОЙМАЛИ ПИЛОТОН
MOV B,L
MVI D,178 ; ДЛИНА УЧАСТКА ПОДСЧЕТА
CNS5: CALL CNS10
JZ CNS4
DAD B
DCR D
JNZ CNS5
;* РАСЧЕТ КОНСТАНТЫ ЧТЕНИЯ
DAD H
MOV A,H
SUI 3
MOV L,A
ORA A
RAR
ADD L
STA CLD ; КОНСТАНТА ЧТЕНИЯ
RET
CNS10: LDA PORTB ; ПОИСК 0 И 2-Х ПЕРЕПАДОВ
CPI 80H
JC 0C800H
RRC
JC CNS10
MVI E,0
MVI C,0
CALL CNS11
CNS11: INR C
RZ
LDA PORTB
RRC
XRA E
JP CNS11
MOV A,E
CMA
MOV E,A
RET
END