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

User Tag List

Страница 44 из 47 ПерваяПервая ... 4041424344454647 ПоследняяПоследняя
Показано с 431 по 440 из 466

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

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

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Оу е!
    Класс! Смотрю, артефакты пропали! Ура!
    А я тут тестилку текстового вывода замастырил: touttest
    расчитывает количество выводимых символов и скроллов строк в секунду.
    трдшник называется по имени добавленной проги.

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

    Цитата Сообщение от Eltaron Посмотреть сообщение
    А есть она вообще, нормальная дока-то? Или только этот автосгенеренный, такое чувство, из верилога tsconf.xls?
    Ну как, - он и есть дока, - интуитивнопонятный же, типа.

    Ну что, пока можно передохнУть, а там впереди добавление цвета.
    Вложения Вложения
    С уважением,
    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

  2. #432
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    834
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    96
    Поблагодарили
    65 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У тэсэла появиться официальная ОС?
    ¡Un momento, señor fiscal!


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

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    У тэсэла появиться официальная ОС?
    Я о таких планах не знаю. Разве что Бриз сделает CLI3.
    С уважением,
    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

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

    По умолчанию

    Добавил в модуль "zxvideo" для платформы "zx128:"
    - поддержку цвета (+22 байта). Смешанный цвет берётся из _vtattr. Поддерживается "как бы" 16 цветов: если код хотя бы одного из атрибутов больше 7, включается яркость. Данное изменение замедляет вывод символа на 78 тактов.
    - функцию _vtattr_notify (+27 байт).
    - работающий beep (880Гц., 1/8с.)


    Код:
    ;
    ;        zx128 vt primitives
    ;
    
            .module zxvideo
    
            ; exported symbols
            .globl _plot_char
            .globl _scroll_down
            .globl _scroll_up
            .globl _cursor_on
            .globl _cursor_off
            .globl _clear_lines
            .globl _clear_across
            .globl _do_beep
    	.globl _vtattr_notify
    
            .area _VIDEO
    
            ; colors are ignored everywhere for now
    
    videopos:
            ld a,e
            and #7
            rrca
            rrca
            rrca 
            add a,d
            ld d,e
            ld e,a
            ld a,d
            and #0x18
            or #0xC0	    ; not 0x40 as in screen 7
            ld d,a
            ret
    
    _plot_char:
    	pop iy
            pop hl
            pop de              ; D = x E = y
            pop bc
            push bc
            push de
            push hl
    	push iy
    
    	ld h,e
    	ld l,d
    	xor a,a
    	srl h
    	rra
    	srl h
    	rra
    	srl h
    	rra
    	or a,l
    	ld l,a
    	ld a,h
    	or a,#0xd8
    	ld h,a
    	ld a,(_vtattr)
    	ld (hl),a 
    	;-------------------
    	;	+22b & 78t.
            call videopos
    
    	;
    	;	TODO: Map char 0x60 to a grave accent bitmap rather
    	;	than fudging with a quote
    	;
    
            ld b, #0            ; calculating offset in font table
            ld a, c
    	cp #0x60
    	jr nz, nofiddle
    	ld a, #0x27
    nofiddle:
    	or a		    ; clear carry
            rla
            rl b
            rla
            rl b
            rla
            rl b
            ld c, a
    
            ld hl, #0x3C00	    ; ROM font
            add hl, bc          ; hl points to first byte of char data
    
    
            ; printing
            ld c, #8
    plot_char_loop:
            ld a, (hl)
            ld (de), a
            inc hl              ; next byte of char data
            inc d               ; next screen line
            dec c
            jr nz, plot_char_loop
            ret
    
    
    _clear_lines:
    	pop bc
            pop hl
            pop de              ; E = line, D = count
            push de
            push hl
    	push bc
    
    clear_next_line:
            push de
            ld d, #0            ; from the column #0
            ld b, d             ; b = 0
            ld c, #32           ; clear 32 cols
            push bc
            push de
    	push af
            call _clear_across
    	pop af
            pop hl              ; clear stack
            pop hl
    
            pop de
            inc e
            dec d
            jr nz, clear_next_line
    
            ret
    
    
    _clear_across:
    	pop iy
            pop hl
            pop de              ; DE = coords 
            pop bc              ; C = count
            push bc
            push de
            push hl
    	push iy
            call videopos       ; first pixel line of first character in DE
            push de
            pop hl              ; copy to hl
            xor a
    
            ; no boundary checks. Assuming that D + C < SCREEN_WIDTH
    
    clear_line:
            ld b, #8            ; 8 pixel lines to clear for this char
    clear_char:
            ld (de), a
            inc d
            dec b
            jr nz, clear_char
    
            ex de, hl
            inc de
            push de
            pop hl
    
            dec c
            jr nz, clear_line
            ret
    
    copy_line:
            ; HL - source, DE - destination
    
            ; convert line coordinates to screen coordinates both for DE and HL
            push de
            ex de, hl
            call videopos
            ex de, hl
            pop de
            call videopos
    
            ld c, #8
    
    copy_line_nextchar:
            push hl
            push de
    
            ld b, #32
    
    copy_pixel_line:
            ld a, (hl)
            ld (de), a
            inc e
            inc l
            dec b
            jr nz, copy_pixel_line
    
            pop de
            pop hl
            inc d
            inc h
            dec c
            jr nz, copy_line_nextchar
            ret
    
            ; TODO: the LDIR way should be much faster
    
    _scroll_down:
            ; set HL = (0,22), DE = (0, 23)
            xor a
            ld d, a
            ld h, a
            ld l, #22
            ld e, #23
            ld c, #23           ; 23 lines to move
    
    loop_scroll_down:
            push hl
            push de
            push bc
    
            call copy_line
    
            pop bc
            pop de
            pop hl
    
            dec l
            dec e
            dec c
            jr nz, loop_scroll_down
    
            ret
    
    
    _scroll_up:
            ; set HL = (0,1), DE = (0, 0)
            xor a
            ld d, a
            ld e, a
            ld h, a
            ld l, #1
            ld c, #23           ; 23 lines to move
    
    loop_scroll_up:
            push hl
            push de
            push bc
    
            call copy_line
    
            pop bc
            pop de
            pop hl
    
            inc l
            inc e
            dec c
            jr nz, loop_scroll_up
    
            ret
    
    _cursor_on:
    	pop bc
            pop hl
            pop de
            push de
            push hl
    	push bc
            ld (cursorpos), de
    
            call videopos
            ld a, #7
            add a, d
            ld d, a
            ld a, #0xFF
            ld (de), a
            ret
    _cursor_off:
            ld de, (cursorpos)
            call videopos
            ld a, #7
            add a, d
            ld d, a
            xor a
            ld (de), a
            ret
    
    _do_beep:       ; do 880Hz dure 1/8s
            di
            ld bc,#00fe
            ld h,110
    loop_beep1:
            ld de,149
    loop_beep:
            dec de
            ld  a,d
            or  a,e
            jr  nz,loop_beep
            ld  a,l
            cpl
            ld l,a
            and a,#10
            out (c),a
            dec h
            jr nz,loop_beep1
            ei
            ret
    
    _vtattr_notify: ; void vtattr_notify(void)
            ld a,(_vtpaper)
            rlca
            rlca
            rlca
    	and a,#0x78
            ld c,a
            ld a,(_vtink)
    	ld b,a
    	and a,#0x07
    	or a,c
    	ld c,a
    	ld a,b
    	rlca
    	rlca
    	rlca
    	and a,#0x40
    	or a,c
    	ld (_vtattr),a
            ret
    ;	--------------
    ;		27b.
    
            .area _DATA
    
    cursorpos:
            .dw 0
    С уважением,
    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

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

    По умолчанию

    Посмотрел мап-файл ядра, и возник вопрос: многие ли из тех, кто может запустить FUZIX, пользуются микродрайвом?

    00004DA8 _mdv_motor_off microdrive
    00004DB2 _mdv_motor_on microdrive
    00004DBE _mdv_bread microdrive
    00004DDB _mdv_bwrite microdrive
    С уважением,
    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

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

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Посмотрел мап-файл ядра, и возник вопрос: многие ли из тех, кто может запустить FUZIX, пользуются микродрайвом?

    00004DA8 _mdv_motor_off microdrive
    00004DB2 _mdv_motor_on microdrive
    00004DBE _mdv_bread microdrive
    00004DDB _mdv_bwrite microdrive
    Это была ключевая составляющая фузикса на ZX-48. Ядро воткнуть в слот расширения в РОМ-картридже, а задачи своппить на 8 микродрайвов. Переключение бы было адово медленным, но оно бы работало. Алан писал в бложик, что у него это всё даже работало, но сильно глючило, а разбираться ему уже стало лень.

    Я почти допилил нормальную систему сборки ядра zx128, а парадигме скриптов из /Build. С ней можно будет запилить отдельные конфиги для ZX-128 (микродрайв и DISCiPLE), Pentagon (Betadisk), TS-Conf etc, собирая только те модули, которые нужны.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

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

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

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Я почти допилил нормальную систему сборки ядра zx128, а парадигме скриптов из /Build. С ней можно будет запилить отдельные конфиги для ZX-128 (микродрайв и DISCiPLE), Pentagon (Betadisk), TS-Conf etc, собирая только те модули, которые нужны.
    Это просто замечательно!
    К сожалению, собственные попытки вникнуть во все взаимосвязи модулей фузикса представляются мне бесперспективными, но я готов написать весь необходимый код для использования всех возможностей тсконфы.
    Программа минимум:
    - своп нижней памяти процессов не копированием банок, а переключением страниц через порт -0x12af;
    - копирование контекста (стэка и т.п.) средствами ПДП.
    Программа максимум - вынести ядро за пределы адресного пространства, освободив для программ более 48кБ.

    Покамест, хакнул твой последний снапшот: добавил полноценный шрифт от CLI2 (прехватываю инициализацию шрифта. Доп. код размещён на месте подпрограмм, обслуживающих микродрайв).
    Вложения Вложения

  9. #438
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кто-нибудь в курсе, как там дела с FUZIX - TCPIP фунциклирующий они таки уже родили или еще нет? А то пятилетка уже к концу, а взятые повышенные обязательства пока всё никак.

    Хочу поделиться - очень прикольная тема: прокси, рендерящий современные тяжеловесные страницы в GIF/JPEG-картинку с пиксель-привязанной картой кликабельных ссылок из оригинальных страниц. Кто там хотел браузер на Спеке? uIP на Z80 уже портирован { таки придется, ведь "это вам не это"(с) }, ставите этот прокси на арендованной виртуалке (PC с Mac OS X или Linux), пишете простого html-клиента, и вуаля.

    https://github.com/tenox7/wrp

    Народ в восторге, браузят древнючими браузерами первого html 30-летней давности с Амиг и прочего антиквариата.

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

    На древнем UZIX от MSX по точно таком принципу работал браузер FudeBrowser - через прокси, хостящейся в Инете (UZIX вообще был куда как более продвинут относительно UZI/FUZIX, я до сих пор не понимаю почему для FUZIX образцом не взяли UZIX). Но тот прокси от UZIX был куда как более примитивен с одной стороны, т.к. корежил исходное форматирование, но с другой - более сложен, т.к. не просто гнал картинку, а делал некий переформатированный гипертекстовый вывод (что впрочем требовало более сложного клиента-браузера на MSX).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  10. #439
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,544
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    384
    Спасибо Благодарностей получено 
    1,173
    Поблагодарили
    382 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    https://github.com/tenox7/wrp
    Да оно ещё и на Питоне! Супер! Люблю Питон
    С уважением, Станислав.

  11. #440
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Подскажите, знающие люди, есть ли в природе репозитории с бинарями для FUZIX под какие-нибудь платформы? Желательно обновляющиеся, ну или достаточно свежие. Хочу в UZIX сделать выполнение бинарей из FUZIX через "прокладку" (как это там же работает с исполнением бинарей от CP/M).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

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

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

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

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

Ваши права

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