User Tag List

Страница 18 из 28 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя
Показано с 171 по 180 из 276

Тема: Практическое программирование в среде RT-11 на ассемблере.

  1. #171

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,249
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Точнее до определенного момента. В 5.03 (и кажется 5.02) уже в RTDATA, но смещение с FB/XM не совпадает.
    Уже с версии 5.1 везде в секции RTDATA, но смещения скачут. А вот начиная с версии 5.4 уже всё стандартизировано. Это кстати описано в AA-52861-TC_54relNote_Jun86.pdf.

  2. #172

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    версии 5.4
    Версия 5.4 вообще во многом переломная: в ней впервые появился (в 5.4G) многострочный SL. В ней же появились макрокоманды для драйверов с расширенными номерами устройств (10-77), хотя сами расширенные номера появились только в 5.5.

    - - - Добавлено - - -

    Цитата Сообщение от Alex_K Посмотреть сообщение
    описано в AA-52861-TC_54relNote_Jun86.pdf
    Можно смело последний читать - там история есть.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  3. #173

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,249
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Можно смело последний читать - там история есть.
    История какая-то куцая, разница между 5.0 и 5.5, и ни слова, что это в 5.4 ещё появилось.

  4. #174

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    История какая-то куцая, разница между 5.0 и 5.5
    В 5.6 вроде подробная была.

    Там кстати также называется глава - между 5.0 и 5.5, но по ходу чтения указаны конкретные версии и даже буковки.

    - - - Добавлено - - -

    Попутно посмотрел, что RTEMовские заточки интегрировали в основной RT-11 начиная с версии 5.02, и ошибки которые были при этом допущены так и остались навсегда нетронутыми
    Последний раз редактировалось form; 14.12.2016 в 00:42.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  5. #175

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,249
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    В 5.6 вроде подробная была.
    Подробная. Что появилось в 5.6, а затем разница между 5.0 и 5.5. Подробно, это когда описываются все нововведения в каждой версии, т.е. 5.1, 5.2, ну и т.д.
    Ладно, много написали, hobot-у большая пища для размышлений.

  6. #176

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Подробно, это когда описываются все нововведения в каждой версии, т.е. 5.1, 5.2, ну и т.д.
    Именно так там и написано если читать - конкретные версии (в том числе 5.4 и разные буквы к нему упоминаются не раз).

    - - - Добавлено - - -

    По хорошему на досуге надо основные изменения с V4.0 записать. А то многое уже забываться стало, а ведь когда-то описание макробиблиотеки (к примеру) содержало приписку FB/XM only на большую часть макрокоманд

    - - - Добавлено - - -

    Сравнил смещения .GVAL для TSX+ и РАФОС/TS - вот где постоянство: ничего не изменилось. Только новое добавилось (ну и где-то подкорректировалось в связи с развитием: например раньше по смещению -6 был признак привилегированности задания, а позже стало указывать на конкретную привилегию SYSPRV, но смысл по сути не изменился)
    Последний раз редактировалось form; 14.12.2016 в 01:02.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  7. #177

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    374
    Поблагодарили
    311 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    form, вот мои изменения в исходнике SH.MAC

    Код:
    .MCALL  .MODULE
    .MODULE SH,VERSION=1,COMMENT=<RT-11 Shell Driver>,AUDIT=YES
    .ENABL  LC, MCL
    .DSABL  GBL
    
    $SYPTR  =:      54                      ;POINTER TO RMON
    $E16LS  =:      316                     ;EMT 340-357 DISPATCH TABLE OFFSET
    $KMONI  =:      450                     ;KMON INDICATOR OFFSET
    
    E6.PRI  =:      <351-340>*2             ;OFFSET TO .PRINT ROUTINE
    
            .MCALL  .ADDR,.CHAIN,.DRDEF     ;SYSTEM MACRO CALLS
            .MCALL  .DSTAT,.EXIT,.LOOKUP    ;
            .MCALL  .LOOKUP,.PURGE,.PRINT   ;
    
            .DRDEF  SH,340,0,0,0,0          ;DEFINE DRIVER PARAMETERS
            .DRPTR  LOAD=SHLOA,FETCH=*NO*,UNLOAD=SHUNL ;DEFINE SERVICE ENTRIES
    
            .DRBEG  SH                      ;START OF DRIVER CODE
            MOV     SHCQE,R4                ;GET ADDRESS OF QUEUE ELEMENT
            BIS     #HDERR$,@-(R4)          ;SET HARD ERROR STATUS
            .DRFIN  SH                      ;FINISH I/O
    
    SHINT:: TST     @(PC)+                  ;RUNNING KMON?
    SHKMI:: .BLKW                           ;
            BEQ     20$                     ;IF EQ NO
    .IF     EQ      MMG$T
            CMP     @14(SP),(PC)+           ;CHECK IF PROMPT IS PRINTED
    .IFF
            CMP     @16(SP),(PC)+           ;CHECK IF PROMPT IS PRINTED
    .ENDC
            MOV     R5,R5                   ;
            BNE     20$                     ;IF NE NO
    ;       MOV     R0,-(SP)                ;SAVE REGISTERS
    ;       MOV     R1,-(SP)                ;
    5$:     .ADDR   #SHARE,R0               ;POINT TO EMT AREA
            .ADDR   #SHPGM,R1               ;POINT TO PROGRAM NAME
            .LOOKUP R0,#0,R1                ;LOOKUP THE FILE
            ROL     -(SP)                   ;SAVE ERROR STATUS
            .PURGE  #0                      ;PURGE CHANNEL
            ROR     (SP)+                   ;RESTORE ERROR STATUS
            BCS     10$                     ;IF CS FILE NOT FOUND
            MOV     #500,R0                 ;POINT TO CHAIN AREA
            MOV     (R1)+,(R0)+             ;COPY PROGRAM NAME
            MOV     (R1)+,(R0)+             ;
            MOV     (R1)+,(R0)+             ;
            MOV     (R1)+,(R0)+             ;
            .CHAIN                          ;CHAIN TO PROGRAM
    10$:    ;MOV    (SP)+,R1                ;RESTORE REGISTERS
            ;MOV    (SP)+,R0                ;
    20$:    .PRINT  #FNF
            BR      5$
            ;JMP    @(PC)+                  ;JUMP TO SYSTEM ROUTINE
    SHPRI:: .BLKW                           ;ADDRESS OF SYSTEM .PRINT ROUTINE
    
    SHARE:: .BLKW   3                       ;EMT AREA
    SHPGM:: .RAD50  /SY SHELL SAV/          ;PROGRAM TO CHAIN TO
            .DREND  SH
    
            .PSECT  SETOVR
    SHLOA:: MOV     @R5,R5                  ;R5=SHLQE
            MOV     @#$SYPTR,R4             ;R4=RMON
            MOV     R4,R2                   ;COPY
            ADD     $E16LS(R4),R4           ;R4=EMT 340-357 DISPATCH TABLE
            MOV     E6.PRI(R4),R3           ;R3=ADDRESS OF .EXIT ROUTINE
            ADD     R4,R3                   ;
            MOV     R3,SHPRI-SHLQE(R5)      ;STORE IN DRIVER
            MOV     R5,R3                   ;R3=SHINT
            ADD     #SHINT-SHLQE,R3         ;
            SUB     R4,R3                   ;R3=OFFSET TO SHINT
            MOV     R3,E6.PRI(R4)           ;POINT TO OUR ROUTINE
            ADD     #$KMONI,R2              ;R2=KMON INDICATOR
            MOV     R2,SHKMI-SHLQE(R5)      ;STORE IN DRIVER
    SHXIT:: CLC                             ;FLAG NO ERROR
            RETURN                          ;RETURN
    
    SHUNL:: MOV     @R5,R5                  ;R5=SHLQE
            MOV     @#$SYPTR,R4             ;R4=RMON
            ADD     $E16LS(R4),R4           ;R4=EMT 340-357 DISPATCH TABLE
            MOV     E6.PRI(R4),R3           ;R3=ADDRESS OF .EXIT ROUTINE
            ADD     R4,R3                   ;
            MOV     #SHINT-SHLQE,R2         ;R2=SHINT
            ADD     R5,R2                   ;
            CMP     R3,R2                   ;OUR HOOK SET?
            BEQ     20$                     ;IF EQ YES
            JSR     R0,10$                  ;NO, SET ERROR MESSAGE
            .ASCIZ  /?SH-F-Other driver hooks .PRINT - can't unload/
            .EVEN
    10$:    COM     (SP)+                   ;CLEAN STACK, SET CARRY
            RETURN                          ;RETURN
    20$:    MOV     SHPRI-SHLQE(R5),R5      ;R5=ADDRESS OF SYSTEM .PRINT ROUTINE
            SUB     R4,R5                   ;CONVERT TO OFFSET FROM EMTLST
            MOV     R5,E6.PRI(R4)           ;UNHOOK .PRINT
            BR      SHXIT                   ;EXIT
    
    FNF:    .ASCIZ  /?SH-F-File not found SY:SHELL.SAV/
    
            .END
    
    .LO SH
     000066
    @
    Беда в том, что я основную часть программы просто не понимаю и воспринимаю скорее интуитивно.
    Правильно я понимаю, что драйвер проверяет приглашение и если оно выводится пытается
    запустить программу оболочки? Но только всё слишком не явно для меня.
    Даже .CHAIN директива описана "не моим" (чит. не простым) способом каким-то?
    Буду рад любым комментариям и обсуждению.

    - - - Добавлено - - -

    Цитата Сообщение от form Посмотреть сообщение
    Держи на закуску слегка дополненный драйвер (там же).
    увидел только сейчас, забираю
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  8. #178

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    5$: .ADDR #SHARE,R0 ;POINT TO EMT AREA
    Цитата Сообщение от hobot Посмотреть сообщение
    .LOOKUP R0,#0,R1 ;LOOKUP THE FILE
    ROL -(SP) ;SAVE ERROR STATUS
    .PURGE #0 ;PURGE CHANNEL
    ROR (SP)+ ;RESTORE ERROR STATUS
    BCS 10$ ;IF CS FILE NOT FOUND
    Цитата Сообщение от hobot Посмотреть сообщение
    20$: .PRINT #FNF
    BR 5$
    Все это выкинуть, JMP раскоментировать. Тогда будет до бесконечности писать что программы нет (если ее нет). А так получится сбой системы из-за использования вызовов за пределами перехваченного без сохранения регистров. То есть ничего добавлять не надо чтобы до бесконечности писало что программы нету - надо только убрать

    - - - Добавлено - - -

    Цитата Сообщение от form Посмотреть сообщение
    .PRINT #FNF
    А так, если когда придется делать что-то в этом роде - в драйвере так не получится. Нужно или во время загрузки подправлять в памяти адреса (но это 5.02 и новее) или использовать .ADDR чтобы на ходу определять адрес.
    Последний раз редактировалось form; 14.12.2016 в 03:20.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  9. #179

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    374
    Поблагодарили
    311 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    hobot-у большая пища для размышлений.
    мне нужны подробности. почему так а не по другому, это одна из причин
    почему я AC.SYS до сих пор не переделал, просто потому, что я не могу
    разделить ненужный функционал от нужного (точнее я разделяю, но прога
    перестаёт работать! "смайл")

    Цитата Сообщение от form Посмотреть сообщение
    в драйвере так не получится.
    я вот протакие вещи совсем совсем не в курсе (самой природы таких ограничений).

    ХА! form
    , ты будешь смеятся - забрал драйвер который с COM файлом - он так-же выпадает в 066
    перезагрузился и у меня висит система ))) То есть приглашение . и всё ничего не печатает,
    в смысле на клавиатуру нет реакции ))) это означает что???

    В любом случае всем очень благодарен за участие как минимум,
    честно сейчас уверен может проще дизасемблировать оригинальный JS.SYS и подсмотреть,
    как там эту задачу решили??? Только опять (писал выше) мне дизасм. скажет мало-мало чем (к примеру) form'у )))

    Сейчас выкину по последней шпоре, попробую.
    Почему и обязательно .CHAIN через регистры? Почему
    не
    Код:
    /*          MOV    #^RSY ,@#^O500
                MOV    #^RSHE,@#^O502
                MOV    #^RLL ,@#^O504
                MOV    #^RSAV,@#^O506
                .CHAIN
    Ладно, сейчас буду править по последней шпоре.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  10. #180

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    это означает что???
    Это ознчает, что в стартовом командном файле нет команды загрузки драйвера - выше писал, что она обязательна

    Цитата Сообщение от hobot Посмотреть сообщение
    Почему не
    Просто больше места займет, а так - пофигу.

    Кроме того нужно убрать тестирование KMON indicator - слишком много бардака с ним, да и смысла нет - мы вполне эффективно проверяем его наличие другим способом
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

Страница 18 из 28 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  2. Пишем на ассемблере под эмулятором
    от GM BIT в разделе Для начинающих
    Ответов: 76
    Последнее: 15.07.2016, 20:04
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 01.03.2012, 00:35
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •