User Tag List

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

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

Комбинированный просмотр

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

    Регистрация
    05.04.2016
    Адрес
    г. Мончегорск, Мурманская обл.
    Сообщений
    414
    Спасибо Благодарностей отдано 
    98
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    45 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию загрузка файла в память

    Как можно загрузить файл в регион памяти. Пробую загрузить изображение используя следующий код, отрабатывает без ошибок, но не загружается даже хотя бы одного блока.
    Код:
    
    ReadFile:       ;------------------------------------------------------------{{{
                    .LOOKUP #AREA,#0,#FileName      ;.LOOKUP area,chan,dblk[,seqnum]
                    BCC     1$
                    .PRINT  LERR
    1$:             .READW  #AREA,#0,#FB,9600.,#0   ;.READW  area,chan,buf,wcnt,blk[,BMODE=strg]
                    BCC     2$
                    .PRINT  RERR
    2$:             .CLOSE  #0                      ;.CLOSE  chan
                    RETURN
    
    LERR:           .ASCIIZ /Lookup error/
    RERR:           .ASCIIZ /Read error/
                    .Even
    AREA:           .BLKW   5       ;EMT Argument Block
    FileName:       .RAD50  /DK REBELSBPS/
    ;----------------------------------------------------------------------------}}}

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

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

    По умолчанию

    Цитата Сообщение от randomizer Посмотреть сообщение
    не загружается даже хотя бы одного блока
    Недостаточно информации. К примеру чему равно FB. Все мониторы кроме SJ (включая SB) проверяют что адрес принадлежит задаче (то есть если адрес где-то в странице I/O, номер не пройдет.
    В строках, печатющих ошибку - ошибка - результат будет не тот, что ожидается (адрес символа пишется с #)
    В самих строках сообщений тоже (там получается .ASCII, а не .ASCIZ как предполагалось).
    Последний раз редактировалось form; 04.12.2018 в 18:18.
    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

  4. #3

    Регистрация
    05.04.2016
    Адрес
    г. Мончегорск, Мурманская обл.
    Сообщений
    414
    Спасибо Благодарностей отдано 
    98
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    45 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    FB определён в теле программы как
    Код:
    FB::            ;framebuffer
                    .=BP12
                    .BLKW   <320*240*2/16>
    Цитата Сообщение от form Посмотреть сообщение
    Все мониторы кроме SJ (включая SB) проверяют что адрес принадлежит задаче
    А я как раз использую SJ монитор версии 5.04g, на УКНЦ.
    Цитата Сообщение от form Посмотреть сообщение
    В строках, печатющих ошибку - ошибка - результат будет не тот, что ожидается (адрес символа пишется с #)
    упс...

  5. #4

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

    По умолчанию

    Цитата Сообщение от randomizer Посмотреть сообщение
    А я как раз использую SJ монитор версии 5.04g, на УКНЦ.
    5.04g переходная система к новым - там может так же быть. Или как минимум может проверяться, что адрес указывает выше самой системы в памяти. Так, что тут смотреть надо. В любом случае если адрес из I/O page, лучше через буфер делать.

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

    Да, ну и само устройство (или его эмуляция раз речь про УКНЦ) может не предусматривать передачу данных в I/O page.
    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

  6. #5

    Регистрация
    05.04.2016
    Адрес
    г. Мончегорск, Мурманская обл.
    Сообщений
    414
    Спасибо Благодарностей отдано 
    98
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    45 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Да, ну и само устройство (или его эмуляция раз речь про УКНЦ) может не предусматривать передачу данных в I/O page.
    Я пытаюсь загрузить как раз в память которая ниже ОС, в нижние 32КБ(в УКНЦ только их можно использовать как видеопамять с прямым доступом).

    Попробую ещё вечером запустить исправив ошибки с выводом сообщений на экран.

    Кстати, из описания вызова не совсем ясно как он работает: необходимо задать wcnt - количество слов для чтения и blk - блок для чтения. Я так понимаю что если задать wcnt=128, и blk=0, при размере блока 512 байт, в буфер будут занесены 256 байт. А если задать wcnt больше размера блока? Будут прочитаны несколько блоков?

  7. #6

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

    По умолчанию

    Цитата Сообщение от randomizer Посмотреть сообщение
    Я так понимаю что если задать wcnt=128, и blk=0, при размере блока 512 байт, в буфер будут занесены 256 байт.
    Да.

    Цитата Сообщение от randomizer Посмотреть сообщение
    А если задать wcnt больше размера блока? Будут прочитаны несколько блоков?
    Да.
    Без учета границ памяти и ограничений устройств, теоретическое максимальное количество слов может быть 32767.

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

    При чтении особых вопросов не возникает.
    При записи важно помнить, что блочные устройства зануляют остаток последнего блока если указывается количество слов не кратное размеру блока.

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

    Цитата Сообщение от randomizer Посмотреть сообщение
    .READW #AREA,#0,#FB,9600.,#0
    Кстати еще ошибка: вместо количества слов 9600., он возьмет количество слов по адресу 22600, а там скорее всего 0 - вот и причина
    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

  8. #7

    Регистрация
    05.04.2016
    Адрес
    г. Мончегорск, Мурманская обл.
    Сообщений
    414
    Спасибо Благодарностей отдано 
    98
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    45 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Кстати еще ошибка: вместо количества слов 9600., он возьмет количество слов по адресу 22600, а там скорее всего 0 - вот и причина
    Да, частая ошибка у меня, с непривычки, вместо укзателя на значение указываю само значение

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

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

Эту тему просматривают: 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

Ваши права

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