User Tag List

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

Тема: Descent - демо игры с 8-цветными спрайтами для УКНЦ

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

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

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    483
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от randomizer Посмотреть сообщение
    Заметил что после запуска игры, так же как и после запуска Krackout и RiverRide, не останавливается двигатель дисковода.
    Хм, я не использую в софте ничего из RT-11 после загрузки игрух, но если что-то не так то ну в этой-то игре код на гитхабе, в кракоуте и ривер рейде оно чего-то похожее. Может где-то и накосячил, вот уж не знаю точно. После считывания данных через ЕМТ больше не должно быть никаких обращений к дискам.

    Весь код чтения с диска:

    Тут некий код дурной

    Код:
    READFL:	mov	#MSG001, MSGADR		; possible error: device error
    	.fetch	#BUF001, #DKN001	; test device
    	bcc	10$
    	return
    10$:	mov	#MSG002, MSGADR		; possible error: channel is active
    	.looku	#AREA01, #7, #DKN001	; test file, return R0-file size in blocks
    	bcc	20$
    	tstb	@#52			; check what error
    	beq	12$			; it's channel is active?
    	mov	#MSG003, MSGADR		; file not found
    12$:	sec
    	return
    20$:	; reading prepare
    	mov	R0, MAXBLK		; file size
    	clr	CURBLK			; block to read
    	mov	#MSG005, MSGADR		; possible error: file read error
    	mov	#176640, R4
    	mov	#176642, R5
    40$:	; reading cycle
    	.readw	#AREA01, #7, #BUF002, #256., CURBLK
    	bcs	90$			; C=1 is error
    	tst	R0			; R0=readed words count
    	beq	50$			; nothing readed? (eof?)
    	; readed, data in BUF002
    	inc	CURBLK
    	mov	#BUF002, R0
    	mov	FILNUM, R2
    	asl	R2	
    	call	@WRITAB(R2)		; call per-file write proc
    	cmp	CURBLK, MAXBLK
    	blt	40$
    	; eof
    50$:	.close	#7
    	clc				; set no error
    	return
    90$:	; read error
    	tstb	@#52			; error word addr
    	beq	50$			; no error - it's what? eof again?
    	.close	#7
    	sec
    	return
    [свернуть]


    На эмуляторе UKNCBTL и правда показывает что мотор дисковода работает. Хм. Интересно конечно. А как его остановить получается тогда? (у меня железка с загрузкой через rs-232 и даже не знаю чего там с дисководом, но видимо это нехорошо)

    >Если обращение к дисководу больше не продполагается, то можно просто вызввать подпрограмму.
    >Код: CALL @#07132
    >Если двигатель был запущен, он будет остановлен.

    Это вот в ЦП или в ПП надо вызвать? В ПП наверное да? (блин у меня конечно там сильно портится вся память при загрузке, ну чтож.. работающий мотор дисковода это плохо и так нельзя)

    UPD: попробовал и там и сям вызвать, в ПП просто все зависло, в ЦП выдало веселящую надпись ***СТОП*** Короче нужны еще способы как остановить мотор у дисковода

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

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Ну не совсем. Это можно, если адрес вашей программы в ОЗУ ПП заранее известен, и программа так и транслируется. Но в ПП программа может грузится по разным адресам, потому лучше такую комбинацию: CLR R0, CALL @7132(R0).
    А вот это вот в ПП заработало. Я не знаю что оно делает но вроде мотор отключился после загрузки игрухи как показывает UKNCBTL.. Спс Алекс Чудеса какие-т, но оно сработало! Алилуйя Реально не знаю что сделал код, но мотор он отключил вроде.

    (надо будет встроить в ривер рейд и в кракоут если найду уже как их скомпилять)

    Получилось как-то так Но работает ведь да? У меня нет дисковода, могу только по Никитиному эмулятору смотреть.

    Еще один тупой код

    Код:
    ; //////////////////////////////////////////////////////////////////////////////	
    ; // PPU second phase prepare
    ; //////////////////////////////////////////////////////////////////////////////
    
    PPUST2:
    	CLR	R0		; I dunno what is here? Alex_K said DO THAT
    	CALL	@7132(R0)	; and it's working! stopping FD motor
    
    	; set PSW (HP**TNZVC) = 110000000 (HP=11, disable interrupts, halt mode)
    	mtps	#600
    	; 11 110 001 (all RAM banks of plane 0)
            ; WARNING !!! We can't read (and bit/tst so on..) from there, but CAN write
    [свернуть]


    Спасибо парни что заметили этот факап!
    Последний раз редактировалось BlaireCas; 22.08.2022 в 02:56.

    Эти 2 пользователя(ей) поблагодарили BlaireCas за это полезное сообщение:

    nzeemin(22.08.2022), randomizer(22.08.2022)

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

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

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

Похожие темы

  1. Ответов: 42
    Последнее: 22.11.2021, 02:55
  2. Демо-версия новой игры SaNchez-а ;)
    от SaNchez в разделе Игры
    Ответов: 91
    Последнее: 26.02.2014, 22:08
  3. Помогите найти Демо из игры Dizzy
    от женя999 в разделе Демо
    Ответов: 8
    Последнее: 15.09.2012, 00:08
  4. Ответов: 10
    Последнее: 07.06.2012, 12:24

Ваши права

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