User Tag List

Страница 4 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 31 по 40 из 78

Тема: Элита для Специалиста

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

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

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от OrionExt Посмотреть сообщение
    Если говорить о стартере, то там он один
    Что вижу о том и пишу.

    Цитата Сообщение от OrionExt Посмотреть сообщение
    И форматом ORD это не решить, он для другого был придуман.
    Ошибаетесь. Программы типа LORD форматом ORD именно эту задачу и решили.

    Цитата Сообщение от OrionExt Посмотреть сообщение
    Вот мне интересно как их можно запускать из CP/M, когда эти форматы были придуманы для хранения файлов ORDOS на дискетах. И соответственно были рассчитаны для запуска и работы в ORDOS.
    Без проблем.

    Во-первых, с 1991 на моих дистрибутивных дискетах была программа TAPE READER, которая читала с МГ формат РК86 (формат CH$ тогда еще не распространился) и записывала на дискету в виде COM-файла, причём не такого тупого, как делали конверторы ORD в COM для банки 1 от М.Бриджиди и С.Коровкина, а в универсальный COM, который можно запускать из любой банки ОЗУ (при старте вычислялось в какой банке работает CP/M). Потому проблем с запуском игр из любой CP/M не было и ORD-формат для запуска игр был совсем не нужен. Потому и ORD-формат придумал не я. И потому встраивать старт ORD-файлов из CCP CP/M было не надо.

    Некоторые программы ORDOS работают не только лишь при наличии в ОЗУ ORDOS, но главное - с файлами в квазидиске ORDOS. Потому, если снабдить ORDOS COM-файл стартёром, что перед запуском загружает на B800 ORDOS и форматирует квазидиск (так и делается при запуске ORD из нортонов в банке 1), то сама программа ORDOS (например текст.редактор) работать будет, но текстовый файл из квазидиска не считает, т.к квазидиск будет пуст. Потому-то и придумали программы типа LORD$ и PMBB$. ORD-формат был нужен как для этого, так и для того, чтобы был один файл игры, что можно запускать и из ORDOS и из нормальной DOS.

    Я пользовался DOS в банке 2, а с конца 90-тых пользуюсь DOS в банке 0, причём квазидиск ORDOS можно сохранять. Для обоих случаев есть программы LORD.COM позволяющие заполнять квазидиск ORD-файлами, потому из CP/M можно использовать все программы ORDOS и запускать их из CP/M. А т.к файлы DOS$ хранились в ROM-диске, то ни CCP ORDOS-а, ни ORDOS-нортоны были вообще не нужны. По выходу из ORDOS-программы стартовал EXT$ в 20 байтов и пользователь снова мгновенно оказывался в NC или LORD CP/M. Т.е программы ORDOS оказывались точно также доступны и из CP/M, только для старта не с крошечных квазидисков ORDOS, а с дискеты, освобождая квазидиски для данных.

    Цитата Сообщение от Pyk Посмотреть сообщение
    потому и был выбран этот формат [с именем] в качестве ленточного .rko
    Понятно. Я этим заинтересовался, т.к никогда не использовал чужие эмуляторы для программ ОРИОНА (своего хватает), оттого и не знал. Думал, что и там у Вас организовалась путаница форматов из-за отсутствия фантазии на имена и желания все форматы для эмулятора сделать подобными РК86.

    Цитата Сообщение от Pyk Посмотреть сообщение
    Кстати, ord и bru - это ведь один и тот же формат?
    Естественно. В программах для BRU (ALT33$, BRU4.COM, ATLAS$) достаточно изменить 3 байта, чтобы на дискетах не надо было хранить все файлы в 2-х вариантах ORD и BRU.
    Последний раз редактировалось barsik; 28.03.2018 в 14:26.

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

  3. #2

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от OrionExt Посмотреть сообщение
    Да кстати Error404, стартеров не писал. Они из глубокого прошлого, насколько я помню. А что сделал Error404, он обернул оверлеи декомпрессором. Отчего размер оверлея уменьшился в разы.
    На самом деле, оба варианта были. Первый (COM-файл загрузчик + файл-оверлей с кодом игры для страницы 0) был сделан в 20 веке как временное решение для АСРМ и подобных CP/M, работавших в странице 1 ОЗУ (и потому просущестововал долго став как постоянное решение ). Там была еще особенность в том, что несжатый код некоторых игр был больше ТРА и такие файлы можно было грузить только из оверлея внешним загрузчиком (COM-файл не может быть размером более ТРА), поэтому и не было смысла что-то менять и cделано было одинаково для всех игр ZX - и больших и мелких.

    А вот когда уже в 21 веке для Альтаир-ДОС (она работает в странице 2) захотелось сделать сборник игр для SD-карты, то не стал перепиливать загрузчики для другой страницы, а прилепил распаковщик (пакер работает на РС, код игры ужимается в полтора-два раза, т.к. обычно рыхлый из-за графики и музыки) что дало уменьшение кода всех игр и теперь все они помещаются в ТРА (и можно обойтись одним файлом, без загрузчика), и распаковщик, стартуя из кода пожатого СОМ-файла игры и работая в F-области, берет входящий (сжатый) поток из страницы 2, а исходящий поток кладет сразу в нужную страницу по нужному адресу (т.е. без лишних пересылок).

    Цитата Сообщение от OrionExt Посмотреть сообщение
    И форматом ORD это не решить, он для другого был придуман. У авторов Ориона существовал аналогичный формат BRU. Вот мне интересно как их можно запускать из CP/M, когда эти форматы были придуманы для хранения файлов ORDOS на дискетах. И соответственно были рассчитаны для запуска и работы в ORDOS.
    Запускать ордосовское в виде СОМ-файла имеет смысл только для игр (которым по сути не надо ничего), т.к. для системных надо в ОЗУ окружение для Ордос: саму Ордос, ROM/RAM диски, корректное содержимое F-области (фонт и переменные Монитора) - все то, что работающая CP/M обычно к моменту старта этого ордософайла затерла своим кодом. Ну и такие мелочи как некуда сохранять результат.
    Последний раз редактировалось Error404; 01.04.2018 в 23:17.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  4. #3
    zx_
    Гость

    По умолчанию

    jerri, есть ли новости об элите?

  5. #4

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zx_ Посмотреть сообщение
    jerri, есть ли новости об элите?
    играбельного пока, извините, нет.
    но я не бросил, не думайте.
    С уважением,
    Jerri / Red Triangle.

  6. #5

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    линия с исходником для специалиста
    рекомендации по ускорению, улучшению, итд принимаются
    Код:
    ;hl xy начала
    ;de xy конца
    ;
    ;x,y 0,0
    ;
    ;
    ;   x,y 3,4
    
    beginning
    	ld	hl,#1020  ; yx dest
    	ld	de,#3060  ; yx sour
    	call	line00	
    	jp	beginning
    bitstream	db	#80,#40,#20,#10,#08,#04,#02,#01
    
    
    
    
    ;в HL - yx конца
    ;в DE - yx начала
    line00
     	ld a,h		;вычисляем DY
    	sub d
    	ld bc,#141c	;создаем базовые изменения координат
    	jp nc,line1	;основная пара de
    	inc b
    			;поэтому меняем DE><HL если рисуем сверху вниз
    			
    	cpl
    	inc	a
    line1 	ld h,a		;H=DY
    	ld a,l		;вычисляем DX
    	sub e		;
    	jp nc,line2
    	inc c		;если рисуем справа налево то меняем направление
    
    	cpl
    	inc	a
    
    		 
    line2 	cp h		;DX=DY?
    	ld l,a
    	jp c,line3
    			;если меньше то считаем основной координатой DY
    	ld l,h
    	ld h,a
    	ld a,b
    	ld b,c
    	ld c,a
    
    line3 	ld a,b		;обозначаем как менять координаты
    	ld (line5),a
    	ld a,c
    	ld (line6),a
    	ld b,h
    	ld a,h
    	inc l
    	inc b
    line4 	
    	push	af,hl,de
    ;здесь печать точки - в de координаты yx
    
    
    	ld	a,e
    	rra
    	rra
    	rra
    	and	#1f
    	add	a,#98
    	ld	h,a
    	ld	l,d	
    	ld	a,e
    	ex	de,hl
    	and	#07
    	ld	hl,bitstream
    	add	a,l
    	ld	l,a
    	ld	a,(de)
    	xor	(hl)
    	ld	(de),a
    	pop	de,hl,af
    
    line5 	nop 
    	sub l
    	jp nc,line7
    line6 	nop 
    	add a,h
    line7 	
    	dec	b
    	jp nz,line4
    	ret
    Вложения Вложения
    Последний раз редактировалось jerri; 14.02.2019 в 19:54.
    С уважением,
    Jerri / Red Triangle.

  7. #6

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    рекомендации по ускорению, улучшению, итд принимаются
    ты бы хоть инфы сперва дал побольше - для начала, линию рисуешь куда? в буфер, повторяющий структуру (части) экрана?

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

    и сколько памяти позволительно потратить на процедуру?

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

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

  8. #7

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    ты бы хоть инфы сперва дал побольше - для начала, линию рисуешь куда? в буфер, повторяющий структуру (части) экрана?
    ты Элиту на Акорне видел?

    все рисуется на экран - экран большой буферизовать не куда


    и сколько памяти позволительно потратить на процедуру?

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

    так, навскидку, основной цикл раза в полтора возможно ускорить
    ну ты код то пиши

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

    Цитата Сообщение от blackmirror Посмотреть сообщение
    Не уверен в нужности ld a,1/ld a,128 после rra/rla и условного перехода, может там нужны rrca/rlca ?
    если эта команда есть в наборе i8080 то думаю можно и так.


    ссыль на последний RKS
    С уважением,
    Jerri / Red Triangle.

  9. #8

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    Цитата Сообщение от jerri Посмотреть сообщение
    ты Элиту на Акорне видел?
    это в которой всё мерцает и мигает? а у тебя еще и проц дохлей примерно в два раза

    Цитата Сообщение от jerri Посмотреть сообщение
    все рисуется на экран - экран большой буферизовать не куда
    но ты же не на весь экран рисуешь... или на весь??

    Цитата Сообщение от jerri Посмотреть сообщение
    ну ты код то пиши
    я бы сделал как-нибудь вот так:
    Код:
    ; основной цикл для "горизонтальных" отрезков
    
    ; "прямая" подветка
    _hh0:
     or (hl)
     ld (hl),a
     dec CTR
     ret z
    _hh1:
     ld a,ERR
     sub DY
     ld ERR,a
     jp c,_hd2
    _hh2:
     ld a,MASK
     rrca
     ld MASK,a
     jp nc,_hh0
     inc h
     or (hl)
     ld (hl),a
     dec CTR
     jp nz,_hh1
     ret
    
    ; "диагональная" подветка
    _hd0:
     or (hl)
     ld (hl),a
     dec CTR
     ret z
    _hd1:
     ld a,ERR
     sub (DY-DX)
     ld ERR,a
     jp nc,_hh2
    _hd2:
     inc l
     ld a,MASK
     rrca
     ld MASK,a
     jp nc,_hd0
     inc h
     or (hl)
     ld (hl),a
     dec CTR
     jp nz,_hd1
     ret
    основной цикл для "вертикальных" - аналогично
    CTR, MASK, ERR - распихиваешь в любые из регистров b c d e
    в оставшийся свободный можно поместить одно из значений DY или (DY-DX)
    второе придётся вписывать прямо в код
    Прихожу без разрешения, сею смерть и разрушение...

  10. #9

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    это в которой всё мерцает и мигает? а у тебя еще и проц дохлей примерно в два раза
    ну во первых они вычисляют каждую точку
    чтото похожее на первый вариант брошенный сюда


    но ты же не на весь экран рисуешь... или на весь??
    в оригинале кусок экрана 192*256


    много лишних телодвижений
    я бы сделал как-нибудь вот так:
    Код:
    ; основной цикл для "горизонтальных" отрезков
    
    ; "прямая" подветка
    _hh0:
     xor (hl)
     ld (hl),a
     dec CTR
     ret z
     ld a,MASK
     rrca
     ld MASK,a
     jp nc,_hh0
     inc h
     jp _hh0
    ; "диагональная" подветка
    _hd0:
     or (hl)
     ld (hl),a
     dec CTR
     ret z
     inc l
     ld a,MASK
     rrca
     ld MASK,a
     jp nc,_hd0
     inc h
     jp _hd0
    основной цикл для "вертикальных" - аналогично
    CTR, MASK, ERR - распихиваешь в любые из регистров b c d e
    в оставшийся свободный можно поместить одно из значений DY или (DY-DX)
    второе придётся вписывать прямо в код
    короче ты предлагаешь добавить еще по 3 варианта линий
    и да - линии рисуются по XOR
    Последний раз редактировалось jerri; 16.02.2019 в 22:20.
    С уважением,
    Jerri / Red Triangle.

  11. #10
    zx_
    Гость

    По умолчанию

    в тему вызывается ivagor

Страница 4 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

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

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

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

Похожие темы

  1. PS/2 адаптер клавиатуры для Специалиста
    от fifan в разделе Специалист
    Ответов: 244
    Последнее: 02.12.2025, 11:10
  2. Ответов: 48
    Последнее: 12.01.2019, 19:46
  3. OriNET для Специалиста ?
    от SYR-ALEX в разделе Специалист
    Ответов: 22
    Последнее: 21.07.2017, 07:40
  4. Есть 3 кассеты для Специалиста...
    от Bolt в разделе Специалист
    Ответов: 60
    Последнее: 27.10.2013, 14:24
  5. Изучается спрос на плату для Специалиста
    от Павел Рябцов в разделе Барахолка (архив)
    Ответов: 109
    Последнее: 30.11.2010, 10:16

Ваши права

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