
Сообщение от
Patron
Если в коде программы установить бит 0400 по адресу 044 ( т.е. бит CHAIN$ в JSW ) то коды программ для RT-11 можно начинать не с адреса 01000, а с адреса 0400.
Я не любитель пользовать не по назначению вещи. И так хватает драйверов которые пытаются зачем-то влепитьтся во все дырки нулевого блока, а потом лотерея - будет работать в этой системе или нет - хотя место для всяких SET/INSTALL кодов практически не ограничено (в пределах разумного) - было бы желание правильно запользовать 
Вот BASIC-PLUS-2 когда ковырял - там пришлось повозиться, ужать родной код, воткнуть свой, а ради RTшного лениво тем более, что в оверлейном варианте все делается легко 
---------- Post added at 01:05 ---------- Previous post was at 00:35 ----------
На случай если захочется поковыряться, код ищется легко в думпе...
Код:
056220 010500 MOV R5,R0 ;R0 -> ДАТА
056222 000300 SWAB R0
056224 042700 177603 BIC #177603,R0 ;R0 -> МЕСЯЦ * 4
056230 062700 021354 ADD #21354,R0 ;АДРЕС ТАБЛИЦЫ "-JAN-FEB-...DEC-" ВЕЗДЕ РАЗНЫЙ
056234 012702 000005 MOV #5,R2
056240 112021 MOVB (R0)+,(R1)+
056242 005302 DEC R2
056244 001375 BNE 56240
Изначально неправильная маска - должно быть 177703 вместо 177603.
056246 010500 MOV R5,R0 ;RO -> ДАТА
056250 042700 177740 BIC #177740,R0 ;R0 -> ГОД-72
056254 062700 000110 ADD #110,R0 ;R0 -> ГОД
056260 004767 000066 CALL 56352 ;ВАРИАНТ TWODEC
В моем случае BIC заменяется на вызов "фиксатора" даты, а ADD нопается. Тут уж как захочется.
А вызывается такая подпрограмма:
FIXDAT: MOV R0,R4
ASR R0
SWAB R0
BIC #^C37,R4
BIC #^C140,R0
ADD R0,R4
ADD #72.,R4
CLR R0
MOV #16.,R2
20$: ASL R4
ROL R0
CMP R0,#100.
BLO 30$
SUB #100.,R0
30$: DEC R2
BNE 20$
RETURN
на входе R0 - дата, на выходе R0 -двухциферный год, регистры R2 и R4 меняются, но это не мешает - они там все-равно
везде меняются.
С оверлеем все просто - втыкаешь в конец сегмента и расширяешь его.
С не оверлеями - можно поискать куда приткнуть.
Ну и как вариант - вместо цпу-независимого кода можно запользовать EIS и упростить часть кода до одного DIV :)