User Tag List

Показано с 1 по 10 из 1564

Тема: Программирование на УКНЦ как?

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

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

    По умолчанию

    Цитата Сообщение от ilynxy Посмотреть сообщение
    А покажите, пожалуйста, пример как писать оверлейные программы с помощью macro/link?
    В RT-11 все довольно примитивно. В линкере перечисляются модули с ключом /O:n (/V:n для XM оверлеев), где n указывает номер сегмента в который отображается код (номера писать в порядке возрастания). Вот вобщем-то и все.
    Для примера есть R.MAC - вызывает подпрограммы из оверлеев и печатает данные, переданные ими; и S(1,2,3,4).MAC которые эти данные передают...

    R:
    Код:
            .TITLE  ROOT - ROOT SEGMENT
            .MCALL  .EXIT,.PRINT            ;СИСТЕМНЫЕ ВЫЗОВЫ
    
    START:: CALL    SEG1                    ;ВЫЗОВ СЕГМЕНТА 1
            CALL    SEG2                    ;ВЫЗОВ СЕГМЕНТА 2
            CALL    SEG3                    ;ВЫЗОВ СЕГМЕНТА 3
            CALL    SEG4                    ;ВЫЗОВ СЕГМЕНТА 4
            .EXIT                           ;ВЫХОД
    
    PSTAT:: MOV     #BUFF,R0                ;АДРЕС БУФЕРА
            MOV     #FMTS,R1                ;СТРОКА ФОРМАТА
            MOV     #ARGS,R2                ;БЛОК АРГУМЕНТОВ
            MOV     (R5)+,@R2               ;СОХРАНЯЕМ НОМЕР СЕГМЕНТА
            MOV     (R5)+,2(R2)             ;СОХРАНЯЕМ СТАРТОВЫЙ АДРЕС СЕГМЕНТА
            CALL    $EDMSG                  ;ФОРМАТИРУЕМ
            CLRB    @R0                     ;ПРЕВРАЩАЕМ В ASCIZ
            .PRINT  #BUFF                   ;ПЕЧАТАЕМ
            RTS     R5                      ;ВОЗВРАЩАЕМСЯ
    
    BUFF:   .BLKB   80.                     ;БУФЕР
    ARGS:   .BLKW   2                       ;БЛОК АРГУМЕНТОВ
    
    FMTS:   .ASCIZ  /SEG %D, PC %P/
    
            .END    START
    S1-S4 (содержимое одинаковое, меняем только циферки):
    Код:
            .TITLE  SEG1
    
    SEG1::  JSR     R5,PSTAT                ;ПОДПРОГРАММА ПЕЧАТИ
            .WORD   1,SEG1                  ;НОМЕР СЕГМЕНТА, СТАРТОВЫЙ АДРЕС
            RETURN                          ;ВОЗВРАТ
    
            .END
    Компиляция:
    Код:
    .MAC R
    
    .MAC S1
    
    .MAC S2
    
    .MAC S3
    
    .MAC S4
    
    .
    Простая сборка:
    Код:
    .LIN/LINK:RSXLIB R,S1,S2,S3,S4
    
    .RU R
    SEG 1, PC 001224
    SEG 2, PC 001236
    SEG 3, PC 001250
    SEG 4, PC 001262
    
    .
    Оверлейная сборка (делаем два сегмента [кроме корневого]):
    Код:
    .LIN/LINK:RSXLIB R/PRO
    *S1/O:1
    *S2/O:1
    *S3/O:2
    *S4/O:2
    *//
    
    .RU R
    SEG 1, PC 003774
    SEG 2, PC 003774
    SEG 3, PC 004010
    SEG 4, PC 004010
    
    .
    Как-то так. Остальное легко понимается

    В первом случае в памяти будет примерно такая картина:
    Код:
    +--------+
    |   R    |
    +--------+
    |   S1   |
    +--------+
    |   S2   |
    +--------+
    |   S3   |
    +--------+
    |   S4   |
    +--------+
    | RSXLIB |
    +--------+
    Во втором - такая:
    Код:
    +--------+
    |   R    |
    +--------+
    | RSXLIB |
    +--------+
    |  S1/S2 |
    +--------+
    |  S3/S4 |
    +--------+
    Последний раз редактировалось form; 26.07.2016 в 16:34.
    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

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

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

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

Похожие темы

  1. Программирование на Эмуляторе. Возможно ли это?
    от Toxic в разделе Программирование
    Ответов: 10
    Последнее: 20.01.2008, 19:20
  2. Программирование Altera и JTAG
    от Mikka_A в разделе Несортированное железо
    Ответов: 7
    Последнее: 18.01.2008, 09:07
  3. Программирование и софтмейк на NES
    от Splinter в разделе Nintendo
    Ответов: 7
    Последнее: 30.06.2006, 04:31

Ваши права

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