Важная информация

User Tag List

Страница 41 из 47 ПерваяПервая ... 373839404142434445 ... ПоследняяПоследняя
Показано с 401 по 410 из 466

Тема: Алан Кокс представил Unix-подобную ОС Fuzix, ядро которой потребляет около 40 Кб ОЗУ

  1. #401
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Собрал. Не работает, ресетит машину.

    Я там дописал переключение банки при выводе текста и инициализацию в crt0.s
    При выходе из инициализации банки стоят верные, в страницу 33 скопирован фонт из ROM
    Но я ни разу не видел, чтоб текстовый режим вообще запустился. Может быть что-то всё же недоинициализировал?
    Исходник https://github.com/atsidaev/FUZIX/co...79b7edbdf1fc6d

    sna и map, если захочешь поотлаживаться tsconf-video-test.zip
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  2. #402
    Activist Аватар для Sergey
    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    473
    Спасибо Благодарностей отдано 
    94
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    буду ловить тараканов, но, скорее, уже только сегодня вечером после 9.

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

    Для начала, у тебя текст пишется в ROM3. Я упоминал о том, что RAM 32 должна быть включена с 0x0000 ВСЕГДА, и лишь для доступа к дисководу временно замещаться ROM 3. Сделал ли ты так?
    Ковыряю дальше

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

    А вот почему не включается текстовый режим. Кусок кода его инициализации:
    ; text mode
    ld bc,#0x01af ; #_tsVPage
    ld a,#32
    out (c),a
    dec b ; #_tsVConfig
    ld a,#0x43 ; %01000011, text mode in 320x240pix window.
    ld a, #7
    ld (_vtink), a

    Вместо записи номера режима в порт, идет загрузка аккумулятора числом 7.

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

    Что касается установки цвета. После записи значений цветов для ink и paper необходимо вызвать процедуру _vtattr_notify - она занесёт необходимое значение в переменную _tsconfig_screen_mix_color, которая используется при установке атрибутов печатаемого символа.
    Последний раз редактировалось Sergey; 19.08.2016 в 03:49.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  3. #403
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Для начала, у тебя текст пишется в ROM3. Я упоминал о том, что RAM 32 должна быть включена с 0x0000 ВСЕГДА, и лишь для доступа к дисководу временно замещаться ROM 3. Сделал ли ты так?
    Я сделал наоборот, что всегда ROM, но на время plot_char включается RAM32

    А вот почему не включается текстовый режим. Кусок кода его инициализации:
    ; text mode
    ld bc,#0x01af ; #_tsVPage
    ld a,#32
    out (c),a
    dec b ; #_tsVConfig
    ld a,#0x43 ; %01000011, text mode in 320x240pix window.
    ld a, #7
    ld (_vtink), a

    Вместо записи номера режима в порт, идет загрузка аккумулятора числом 7.
    А, это я твой кусок скопировал и не осмыслил. Там тоже out не было. Добавил, режим включается, но экран заполнен мусором и буков не видно. Сами буквы в 32ю пагу пишутся, я проверял.
    7 в A грузится, чтоб инициализировать _vtink. У тебя она в исходнике описана как локальная переменная с .db #7, но на деле она хранится в vt.c, поэтому приходится.

    Что касается установки цвета. После записи значений цветов для ink и paper необходимо вызвать процедуру _vtattr_notify - она занесёт необходимое значение в переменную _tsconfig_screen_mix_color, которая используется при установке атрибутов печатаемого символа.
    в том коде, что в ветке в git, я вообще вместо _tsconfig_screen_mix_color всегда вывожу 7, чтоб наверняка

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

    В общем, добавил di:halt в _plot_char, чтобы вешалось сразу после вывода первого символа. Состояние в халте - RAM32 в 0000, по адресу 0000 - 'F', по адресу 0080 - 0x07. Верный символ с верным атрибутом в верной паге. Но на экране чернота.
    Коммит
    Снапшот tsconf-video-2.zip

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

    В странице 33 лежит шрифт из ROM. Пробел по адресу 0x100 ведь должен быть? Первые 256 байт шрифту обрезать не нужно?
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  4. #404
    Activist
    Регистрация
    06.04.2015
    Адрес
    г. Приозерск, Ленинградская обл.
    Сообщений
    299
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    может я не въехал в суть вопроса,но так на всякий
    ld bc,#0x01af ; #_tsVPage
    ld a,#32 - а включена страница #20
    out (c),a
    dec b ; #_tsVConfig
    ld a,#0x43 ; %01000011, text mode in 320x240pix window.
    out (C), a
    Scorpion ZS-256turbo_Проф ПЗУ27040_Smuc_HDD_PCkeyMause(Scorp)_GS_512+XTR Модем(X-Trade)
    ZX-Evolution rev.С+VDAC+OldGS_512+OpenSMUC+TSFM+TS-conf
    Amiga500 1m+512k
    Schneider EuroPC
    ReVerSE-U16

  5. #405
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AndyD Посмотреть сообщение
    может я не въехал в суть вопроса,но так на всякий
    Да-да, оно счас так и есть
    Режим переключается. Но почему-то сразу после переключения экран черный (хотя и в 32, и в 33 лежит мусор, оставшийся от WC), а где-то через секунду выводятся цветные прямоугольники вроде бы нужного размера.
    И вот чувство, что за эту секунду происходит какая-то дополнительная инициализация, возможно даже и не предусмотренная (в результате исполнения данных или куска ПЗУ), из-за чего появляется картинка.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  6. #406
    Activist Аватар для Sergey
    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    473
    Спасибо Благодарностей отдано 
    94
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Начнём, помолясь.
    Во-первых, включать ОЗУ надо не только перед _plot_char, но и:
    _clear_across,
    copy_line,
    _cursor_on,
    _cursor_off. - ВСЕ они производят запись в видеопамять, а там ВНЕЗАПНО ПЗУ!
    Остальное пока в процессе - никогда у меня с текстовым режимом ничего путного не получалось

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

    Elaron, привет!
    Поэкспериментировал в Аласме. Тестовый режим запустился нормально. Однако, не совсем понятно, что мы делали не так. Вроде, инициализация один в один. Предлагаю заменить код инициализации режима на этот. Добавил выставление Y-координаты текстового окна в 0 - хз что там после WC было.
    Также добавил очистку текстового экрана - все 64 строки (видимых 30). Вызов очистки не по феншую, но, думаю, ввиду неизменности первых 6-ти байт (POP/PUSH) не фатально.
    Дальше думаю, сделать отдельные подпрограммки включения/выключения видеопамяти и засунуть их непосредственно в модуль zxvideo.
    Код:
    ; making sure that we have Basic48 as ROM
            ld      bс, #0x21af ; 0x21af is the MemConfig port of TS-Conf
            ld      l,#0xC0     ; Enable ROM instead of RAM in #0000      
            out     (c),l
            ld      b,#0x10     ; #_tsPage0 port (0x10af)
            ld      l,#0x03     ; ROM Basic-48
            out     (c),l
    	
    ; map basic-48
    	ld bc, #0x7ffd
    	ld a, #0x18
    	out (c), a
    
    ; setting Font in page 0x33
            ld      b,#0x12af ; #_tsPage1 port (0x12af)
            ld      l,#33
            out     (c),l
            ld 	hl,#0x3D00 ; font data in ROM,
            ld 	de,#0x8100 ; skip data for first 20 char codes.
            ld 	bc,#0x300
            ldir		   ; copy font data to page 33
    
            ld      b,#0x12af  ; #_tsPage1 port (0x12af)
            ld      l,#2	   ; put RAM2 back
            out     (c),l
            
    ;        ld      bc,#0x10af
    ;	ld l, #32
    ;	out (c), l      ; set ram to 0000
    ;        ld      b, #0x21 ; 0x21af is the
    ;        ld      c, #0xaf ;   MemConfig port of TS-Conf
    ;        ld      l,#0xCE ;  Enable RAM instead of ROM in #0000      
    ;        out     (c),l
    ;        ld      b,#0x10 ; #_tsPage1 port (0x11af)
    ;        ld      c,#0xaf
    ;        ld      l, #32
    ;        out     (c), l
    
    ; text mode:
    	; set vertical screen position to 0.
    	ld	bc,#0x04af ; GYOffsL
    	xor 	a,a
    	out	(c),a
    	inc	b	   ; GYOffsH
    	out	(c),a
    	; set up video memory to RAM page 0x20: 
            ld      bc,#0x01af ; #_tsVPage
            ld      a,#32
            out     (c),a
            dec     b          ; #_tsVConfig
            ld      a,#0x43    ; %01000011, text mode in 320x240pix window.
    	out 	(c),a
    	
            ld a,#7
            ld (_vtink),a
    	ld a,#1
            ld (_vtpaper),a
    	call _vtattr_notify
    	; clear videomemory:
    	ld d,#64 ; lines
    	ld e,#00 ; from 0.
    	call _clear_lines+6 ; (clear_next_line).
    - - - Добавлено - - -

    Сегодня буду отлаживать весь модуль на работоспособность в alasm/sts.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

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

  8. #407
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Также добавил очистку текстового экрана - все 64 строки (видимых 30). Вызов очистки не по феншую, но, думаю, ввиду неизменности первых 6-ти байт (POP/PUSH) не фатально.
    На самом деле фатально, там же хитрый маппер. Но я пофиксил всё. Картина, увы, та же самая - черный экран.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  9. #408
    Activist Аватар для Sergey
    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    473
    Спасибо Благодарностей отдано 
    94
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    На самом деле фатально, там же хитрый маппер. Но я пофиксил всё. Картина, увы, та же самая - черный экран.
    А установка видеопамяти вызывается теперь перед всеми функциями, которые я перечислил?
    Скинь, пожалуйста, новый снапшот после фикса.

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

    Сейчас вот исходник для аласма подготовил. По-пробую без фузикса видеодрайвер поднять.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  10. #409
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    А установка видеопамяти вызывается теперь перед всеми функциями, которые я перечислил?
    Я её везде отключил, сейчас внизу всегда 32я страница. Плюс оно счас намеренно халтится в _plot_char, так что другие функции даже не пытаются исполняться.
    Вообще ты прав, надо подключать ром для бетадиска, в остальное время там пусть видеопамять будет.
    Ради вывода одного символа дергать туда-обратно два порта - это слишком накладно.

    Снапшот tsconf-video-3.zip

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

    А в unrealts нет возможности посмотреть, что в xxAF-порты выведено? Сравнить бы их состояние у WC и у фузиха.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  11. #410
    Activist Аватар для Sergey
    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    473
    Спасибо Благодарностей отдано 
    94
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну, пока, для отладки так оставим. подсчитал: даже с дёрганьем для каждого символа быстрее получается. На дёрганье уходит 111 тактов. Вывод битмапа с вычислениями координат и положения в шрифте - не менее 370 тактов.

    Кстати нашёл ошибку - у меня HL и DE для LDIR`а одним и тем же значением загружаются! Лошаро!
    Строка не чистилась.
    - - - Добавлено - - -

    Всё, отлаживаю в аласме/стс. Как будет результат, запощу, и можно будет фузикс фиксить.

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

    АХТУНГ!!!! Сейчас очень авторитетный товарищ понаблюдав за нашими мучениями со стороны, наконец, сжалился и выдал вот это:
    Короче, в VPage-регистре вместо 32 паги - стоит 7-я. А всё потому, что, оказывается, "когда делаешь аут 7ффд включается или 5 или 7 видеопага".
    (маппер в конфе один, а вот "ворота" к нему разные: 0xNNAF и 7FFD).
    Т.е. надо переделывать маппер фузикса на тс-регистры целиком. Или, хотя бы, на скорую руку - после каждой записи в 7ffd "насильно" сразу включать 32-ю пагу в VPage.
    Последний раз редактировалось Sergey; 20.08.2016 в 12:49.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

Страница 41 из 47 ПерваяПервая ... 373839404142434445 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Куплю БК 0010 или подобную машинку в Украине
    от LeBohdan в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 06.07.2008, 23:29
  2. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  3. Ответов: 16
    Последнее: 02.08.2005, 12:20
  4. Ответов: 10
    Последнее: 18.02.2005, 17:45

Ваши права

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