User Tag List

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

Тема: РАДИО-86РК на Z80

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

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

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

    По умолчанию

    Цитата Сообщение от Vladimir_s
    Покопался и чуток поправил в мониторе п/п F818. теперь большинство программ заработали, но не пашет DOS2.95.
    Кажется, единственное место где надо править, - это 'JPO' указанное BLADE. Я в своё время тоже с этим столкнулся, когда делал ROM-BIOS РК86 для эмулятора РК на ОРИОНЕ с Z80 и исправил это место. Написал "кажется", потому, что может быть есть ещё где-то непереностимость Z80, но я этого не знаю. Т.к для эмулятора РК на ОРИОНЕ использовал только стандартные подпрограммы, а командный монитор РК выкинул. Таким образом в стандарных подпрограммах других несовместимостей нет, но надо посмотреть все ли команды RAM-монитора работают.

    Поэтому править надо п/п-мму F809 (COUT_C), а не F818 (MSSG). При коррекциях и перетрансляциях можно произвольно менять код ПЗУ РК86, но некоторые внутренние точки двигать нельзя. Надеюсь Вы посмотрели в моём исходнике монитора РК86 те внутренние входные точки ПЗУ F800 РК86, которые необходимо сохранить для совместимости. На всякий случай привожу их.
    Код:
    .
    GETLIN	EQU	0F8EEH
    CMPDH 	EQU	0F990H
    CRHLBL	EQU	0FB78H		; Выводит ВК, вправо на 4 позиции и ADR_BL
    RIGHT4	EQU	0F9B0H		; Выводит ВК и вправо на 4 позиции
    GETPRM	EQU	0F92CH
    PUSK_VG	EQU	0FACEH
    Эти точки внутренние и теоретически не обязаны соблюдаться, но к сожалению среди программистов для РК86 нашлось несколько, грубо говоря идиотов, которые не послушались советов авторов РК86 и "лезли" во внутренние точки ПЗУ.

    Хотя идея выпустить платы РК86 на Z80 "накрылась" из-за отсутствия интереса у пользователей, но теперь я сам собираюсь починить свой РК86 и поставить туда Z80. Поэтому, на досуге странслировал ПЗУ F800 РК86 для Z80 сохраняющее все указанные внутренние точки. При этом заменой на JR-команды, без труда выиграно 110 байт. Однако пока не проверил на практике. Для начала можно проверить в виде версии для ОЗУ, чтобы не перезашивать ПЗУ.

    Привожу фрагмент, чтобы показать как я избавился от неверно используемой команды JPO. Заодно посмотрите на подпрограмму HEX_A (F815). В мониторе РК она дико неэффективна (впрочем, в ПЗУ всех остальных отечественных 8-ми разрядок эта п/п-мма лишь на байт эффективнее). Я применил самый эффективный алгоритм, отчего на 11 байтах выиграл целых 3 байта ! Изменения в ПЗУ заключаются в том, чтобы заменить команду JPO (см.там где точка с запятой закомментирует JPO).

    Скрытый текст


    Код:
    .
    HEX_A:	PUSH	AF
    	RRCA
    	RRCA
    	RRCA
    	RRCA
    	CALL	NIBBLE
    	POP	AF
    NIBBLE: AND	0FH
    	CP	10
    	CCF
    	ADC	A,30H
    	DAA
    
    COUT_A:	LD	C,A
    COUT_C:	PUSH    AF
    	PUSH	BC
    	PUSH	DE
    	PUSH	HL
    	CALL    STATUS
    
    	LD	HL,TOBACK
    	PUSH	HL
    
    	LD	HL,(POSX)
    	EX	DE,HL
    	LD	HL,(EK_ADR)
    
    	LD	A,(ESC_F)
    	DEC	A
    	JP	M,NO_ESC	; если нет ESC-флага
    	JR      Z,BYTE2		; если ещё не было второго байта 'Y' (1)
    ;	JP	PO,AFD73	; <------ !!!!!! если 3-тий байт
    	DEC	A
    	JR	Z,AFD73		; если 3-тий байт
    	LD	A,C		; четвёртый байт
    	SUB	20H
    	LD	C,A
    AFCDD:	DEC	C
    	JP      M,ESCRES	; СБРОС ESC_F И ВЫХОД
    	PUSH	BC
    	CALL	COD18		; на следующее знакоместо
    	POP	BC
    	JR	AFCDD
    
    ; ----------------------------------------------
    
    AFD73:	LD	A,C		; третий байт
    	SUB	20H
    	LD	C,A		; номер строки
    AFD77:	DEC	C
    	LD	A,4
    	JP	M,SETESC
    	PUSH	BC
    	CALL	COD1A		; на строку вниз
    	POP	BC
    	JR	AFD77
    
    ; ----------------------------------------------
    
    BYTE2:	LD	A,C
    	CP      'Y'
    	JR	NZ,ESCRES
    	CALL    HOME
    	LD	A,2             ; ПРИНЯТО 2 БАЙТА ESC,'Y'
    	JR	SETESC
    
    ; ----------------------------------------------
    
    COD27:	LD	A,1             ; НАЧАЛАСЬ ESC-ПОСЛЕД-СТЬ
    	JR	SETESC
    
    ; ----------------------------------------------
    
    ESCRES:	XOR	A
    SETESC:	LD	(ESC_F),A
    	RET
    .
    [свернуть]

    Кажется Вы выводите звук по INTE ?

    Т.к звук в программах РК86 задействован слабо и качество его никудышное, я лично не планирую возиться со звуком по EI/DI на выходе INTE, т.е делать аппаратный эмулятор звука по схеме ОРИОН-СЕРВИС. Я собираюсь иметь звук по 'OUT FF', т.к тогда проще всего переделывать звуковые программы РК86 для Z80.

    Меня интересует список игр, которые не работают на Z80, т.к мне надо адаптировать все игры РК86 для ИРИШИ, причём так, чтобы это работало как на КР580 так и на Z80.

    Цитата Сообщение от Vladimir_s
    Может кто копался на предмет работы DOS2.95 на процессоре Z80?
    Кроме меня никто этого не делал, а я это очень давно сделал. Там не только убрал команды вызывающие несовместимость с Z80, но и убрал работу с сигналом READY (готовность эмулируется из сигнала INDEX). Я ранее публиковал готовый листинг версии RK-DOS для Z80 в варианте для ОРИОНА.

    Чтобы это работало на РК86, надо сменить адреса размещения ДОС (на E000) и базы служебных ячеек (на 7600) и в одном месте вернуть команду инициализации ВГ75. Больше ничего менять не надо, т.к это чисто текстовая программа. Т.е надо изменить 2 цифры и вставить 2 строчки текста.

    Если ещё сами не сделали и не хотите этим заниматься, то мне не трудно это для Вас сделать (тем более самому это может пригодиться, если я найду исправный НГМД, контроллер есть, а исправного дисковода нет, все 6 сдохли). Но сначала надо странслировать для ОЗУ и всё проверить. И только, потом странслировать для ПЗУ и прошить. Глупо сразу прошивать ПЗУ. Т.е, если хотите, я Вам странслирую версию RK-DOS для работы из ОЗУ и когда Вы её проверите, то можно странслировать версию для прошивки в ПЗУ.

    Когда переделываете ROM-BIOS РК86 для Z80, не обязательно сразу прошивать его в ПЗУ. Гораздо разумнее сначала проверить работу новой версии ROM-BIOS в эмуляторе B2M. Для этого в конфигурационном файле РК86 достаточно указать, что процессор Z80.

    NB: Новая версия эмулятора B2M (декабрь 2016) при эмуляции РК86 - не может работать со старым каталогом 'Radio', т.е недостаточно скопировать файл EMU.EXE - надо брать весь новый архив целиком. Кроме того, благодаря эмулятору можно понять какие программы РК86 не работают с Z80. К сожалению, РК-КНГМД эмулятор B2M не эмулирует и проверить RK-DOS в эмуляторе нельзя.
    Последний раз редактировалось barsik; 10.01.2017 в 06:39.

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

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

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

Похожие темы

  1. Радио-86РК: Видеовыход
    от m.d. в разделе Радио-86РК
    Ответов: 13
    Последнее: 21.05.2015, 08:19
  2. Радио-86РК: По страницам журнала "Радио"
    от Viktor2312 в разделе Радио-86РК
    Ответов: 79
    Последнее: 13.02.2014, 08:34
  3. эмулятор радио-86рк
    от sergey2b в разделе Эмуляторы отечественных компьютеров
    Ответов: 4
    Последнее: 09.06.2011, 15:59
  4. Радио 86РК
    от Shnurkov в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 02.01.2009, 12:52

Ваши права

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