[QUOTE=forth32;712176]Ну почему же странном? Это обычный .lib, только переименованный в .A. Видимо, таков стандарт наименования файлов в микродос. Кстати, в юниксах и по сей день объектные библиотеки имеют такое расширение.
Библиотекарь lib запросто разобрал этот файл на 2 объектных модуля - net.r и stt2012.r. Можно копать и их, поскольку формат .r - файлов полностью описан в доке по системе программирования С.
Но я пошел более простым путем. Создал программу-пустышку -
Код:
#include "net.h"
int main() {
char str[40];
net(1,str)
return 0
}
Оттранслировал и скомпоновал с этой библиотекой. Получился файл net.com, который я теперь сижу и потихоньку ковыряю в IDA. Преимущество такого подхода в том, что в полученном COM-файле практически нет лишнего мусора - только сетевая библиотека и все. Кроме того, линкер мне выдал карту компоновки, содержащую абсолютные адреса всех глобальных имен в программе. То есть не надо искать main, net итд, продираясь сковзь корявый стартовый код сишного рантайма.
удобно, а я как-то с такими вещами не знаком ;(
Сообщение от
forth32
Корнет - это отдельная интересная песня. Было бы у меня 2 корвета - мог бы поснифать протокол обмена между ними, благо моя программа это умеет. Мне вот интересно, как они боролись с коллизиями, если любой РМУ в люой момент может начать срать в линию связи. Ладно, IDA есть, может что-нибудь придумаю.
ага, еще есть некая ОС "СФЕРА" (возможно как-то соотносится с корнетом
и естьт еще CP/N-90
похоже она попроще будет чем корнет.
Сообщение от
forth32
А, ну понятно. Видел я этот исходник среди твоих файлов. Он странный. Не похож на оригинальный исхожники от авторов корвета. Скорее, это кто-то уже ковырял ОПТС в каком-то примитивном дизасме и написал все это в порядке предположения.
мне кажется что это просто некий промежуточный код некий
т.к. смущает нам наличие макросов ...
Код:
OTL SET 0
MACLIB KERMACT
....
IF OTL EQ 1
PRINT C10
ENDIF
.....
IF OTL EQ 1
C1: DB 0DH,0AH,'ПАКЕТ А ПРИНЯТ$'
C2: DB 0DH,0AH,'ПАКЕТ R ПРИНЯТ$'
C3: DB 0DH,0AH,'ПАКЕТ D ПРИНЯТ$'
C4: DB 0DH,0AH,'ПАКЕТ Z ПРИНЯТ$'
C5: DB 0DH,0AH,'ПАКЕТ S ПРИНЯТ$'
C6: DB 0DH,0AH,'ACK$'
C7: DB 0DH,0AH,'NACK$'
C8: DB 0DH,0AH,'ПАКЕТ А ПЕРЕДАН$'
C9: DB 0DH,0AH,'ПАКЕТ R ПЕРЕДАН$'
C10: DB 0DH,0AH,'ПАКЕТ D ПЕРЕДАН$'
C11: DB 0DH,0AH,'ПАКЕТ Z ПЕРЕДАН$'
C12: DB 0DH,0AH,'ПАКЕТ Y ПРИНЯТ$'
PRTSTR: LDAX D
CPI '$'
JZ R
PUSH D
PRTSYM
POP D
INX D
JMP PRTSTR
ENDIF
END INPKT
это имхо говорит что его как минимум компилили с этими флагами ...
Сообщение от
forth32
Кстати, хочу спросить. Ты в какой версии IDA делаешь свои базы? У меня ни 4.7 ни 5.5 их не открывают. В результате я еще ни одной твоей баз так и не посмотрел...
ida 6.1
я запускаю IDAQ
http://rutracker.org/forum/viewtopic.php?t=3625386
---------- Post added at 14:21 ---------- Previous post was at 14:08 ----------
кстати про TESTLS
похоже он есть только в ОПТС 1
вот кусок из R002.ASM
Код:
;
; ВЕКТОР ПЕРЕХОДОВ
;
JMP LOADBS ; ПЕРЕХОД К БЕЙСИКУ
JMP LOADTST ; ПЕРЕХОД К ЗАГРУЗКЕ С ПРОВЕРКОЙ
; ВХОДЫ В ДРАЙВЕР КОНСОЛИ
JMP CONST ; ОПРОС СОСТОЯНИЯ КОНСОЛИ
JMP CONIN ; ВВОД С КОНСОЛИ
JMP CONOUT ; ВЫВОД НА КОНСОЛЬ
; ВХОДЫ В ДРАЙВЕР КАССЕТНОГО МАГНИТОФОНА
JMP TAPION ; ЧТЕНИЕ МАРКЕРА
JMP TAPIN ; ЧТЕНИЕ БАЙТА
JMP TAPIOF ; ОСТАНОВ ЧТЕНИЯ
JMP TAPOON ; ЗАПИСЬ МАРКЕРА
JMP TAPOUT ; ЗАПИСЬ БАЙТА
JMP TAPOOF ; ОСТАНОВ ЗАПИСИ
JMP MTRCONT ; УПРАВЛЕНИЕ МОТОРОМ
JMP SETRATE ; УСТАНОВКА СКОРОСТИ ЗАПИСИ
; ВХОДЫ В ДРУГИЕ ПОДПРОГРАММЫ
JMP LOADOS ; ПЕРЕХОД К ЗАГРУЗКЕ ОС
JMP TLS ; ПЕРЕХОД К ТЕСТУ ЛОКАЛЬНОЙ СЕТИ
JMP SND ; ВЫВОД ОДИНОЧНОГО ЗВУКОВОГО СИГНАЛА
в ОПТС 1 есть код, а в ОПТС2 там jmp на ресет
и кстати, врядли ТАКОЕ результат дизасма
Код:
; инициализация контроллера прерываний
;;;;;;;;;;;
; Контроллер прерываний запрограммирован в
; режиме вложенных прерываний.Вектор прерываний
; находиться начиная с адреса 02Е0Н с интервалом 4.
; Наложена маска запрета
; прерываний по всем уровням кроме 3-го.
;;;;;;;;;;;
MVI L,SICP0
MVI M,ICW1 + SHORT + (LOW INTTBL)
INR L
MVI M,HIGH INTTBL
MVI M,NOT INT3
DCR L
MVI M,SELRID + SELEN + SELIRR
....
; Дешифратор функциональных клавишей
MOV A,C
RRC
JC BOOT ; F1 - Загрузка ОС
RRC
JC LDROM ; F2 - Загрузка ПЗУ
RRC
JC TESTLS ; F3 - Тест ЛС
RRC
JC BASIC ; F4 - Резерв
JMP DOSBOOT ; F5 - Резерв
---------- Post added at 15:38 ---------- Previous post was at 14:21 ----------
кстати, про сеть и передачу графики
похож они хотели сделать, но не смогли
во всех STS (1.0,1.1,2.0)
есть такие строчки
Код:
RAM:28BB m0ACZU: db '\r\n' ; DATA XREF: RAM:157Fo,RAM:15CBo ...
RAM:28BB db '0 - АЦЗУ\r\n$'
RAM:28C8 m1GZU: db '1 - ГРАФ. ЗУ\r\n$'
RAM:28D7 m2BASIC: db '2 - БЕЙСИК\r\n$' ; DATA XREF: RAM:1585o, sub_27EB+6o
RAM:28E4 m4DISK: db '4 - ДИСК\r\n$' ; DATA XREF: RAM:15D1o
RAM:28EF m5RAM: db '3 - ОЗУ\r\n$' ; DATA XREF: RAM:158Bo
но пункт '1 - ГРАФ. ЗУ' не используется