К основному контенту

Сообщения

TSolitaire под TS-Conf

       Исходники к пасьянсу TSolitaire под TS-Conf можно скачать ниже по ссылке. Немного пояснений к файлам на диске: 1 - Все файлы нужно запускать в Xasme (он уже есть на диске). 2- Главный файл XASASM 1, чтобы запустить его, в Хасме жмите Shift+Caps затем L. Появится каталог в котором нужно выбрать наш файл. Жмем Shift+Caps затем A, как проассемблируется жмем R. Алилуя!!! Игра запустилась. 3 - Файл Coloda - основной массив всех карт. 4- Файд - TSCONFI2 список портов TS CONFIG. Если нужно поменять графику под другие системы, то все карты печатаются DMA как обычные спрайты (запоминаем фон, печатаем карту, двигаем ее, восстанавливаем фон). Стрелочка это аппаратный спрайт, кроме стрелки аппаратных спрайтов я не использую. Скачать: http://pmc-wagner.su/tsolitedit.trd
Недавние сообщения

TFM звук на ZX EVO для ленивых (как я:))

  TFM звук на ZX EVO для ленивых (как я:))     TurboSound FM (TFM, TSFM) - устройство для ZX Spectrum и клонов, предназначенное для расширения возможностей генерации звука. Является развитием устройства TurboSound и имеет полную обратную совместимость с ним. Помимо обычных возможностей TurboSound (6 каналов вместо 3 каналов стандартного AY-3-8910) добавляет 6-канальный FM-синтезатор, совместимый с синтезатором игровой приставки Sega Mega Drive. Заказать карту можно тут: http://www.nedopc.com/TURBOSOUND/ts-fm-pro.php Алгоритм добавления музыкальных композиций в свой код:     1)  Качаем софтину:  http://pmc-wagner.su/tfm.rar      2) Запускаем редактор музыки - папка  tfmmaker152, выбираем или создаем композицию, сохраняем ее как EXPORT tfd file for TFM      3) Открываем папку tfmcom и наш трек перетаскиваем прямо на файл tfmcom, он сжимает наш трек раза в четыре :)      4) Уже откомпилированный плеер в папке   tfmcom называется player.bin (в виде текста сам код tfmplay.txt), качаем на TR

Драйвер для мышки для любого разрешения

        Драйвер для мышки для любого разрешения (спасибо Сергею Смирнову). Ни для кого не секрет, старый дрова которые можно найти в интернете рассчитаны на разрешение 256х192. Под ts-config их необходимо допиливать. Допилятор ниже.  driver:     ld a,(lastv);    опрашиваем координату X     ld e,a     ld bc,#fbdf     in a,(c)     ld (lastv),a     sub e     ld e,a     add a,a     sbc a,a     ld d,a     ld hl,(mcoordx)     add hl,de     ld (mcoordx),hl      ld a,(lastv2);    опрашиваем координату Y     ld e,a     ld bc,#ffdf     in a,(c)     ld (lastv2),a     sub e     ld e,a     add a,a     sbc a,a     ld d,a     ld hl,(mcoordy)     add hl,de     ld (mcoordy),hl     ret lastv          db 0 lastv2        db 0 mcoordx dw 0 mcoordy dw 0      В mcoordx, mcoordy получаем значение на экране от #0 до #ffff, ну и в этих координатах печатаем наш курсор.     

Проигрываем SoundFX на NEOGS в играх.

   Проигрываем SoundFX на NEOGS в играх. Имеем 8 каналов. Семплы используем 8 bit, wav, сохраняем как PCM. Процедура сама выбирает свободный канал и играет семпл. Каждое обращение к загрузке семпла определяет его номер от 1....255. При проигрывании просто указываем этот номер семпла.  Не забываем сбросить карту.               LD A,#F4; resset               CALL SC               CALL WC             LD IX,PARAMETR             LD HL,ADDR_SAMPLE             LD DE,LENGHT_SAMPLE             CALL SAMPLE_LOAD             RET SAMPLE_LOAD:           LD A,#38           CALL SENDCOM           LD A,#D1;  Открыли поток           CALL SENDCOM           LD A,(HL) LOOPG:          IN B,(C)          JP P,READY          IN B,(C)          JP M,LOOP READY:          OUT (GSDAT),A          INC HL          LD A,(HL)          INC E          JP NZ,LOOP          DEC D          JP NZ,LOOP WAIT:          IN B,(C)          JP M,WAIT          LD A,#D2;  Конец стрима          CALL SENDCOM          LD A,(IX)          O

Full Kempston joy for Evo

  Однокнопочный джойстик для ZXSPECTRUM морально устарел, очень советую всем любителям ZXEvo, установить версию прошивки с поддержкой full kempston joy. В этом случае вы получите джойстик сеговского формата: крестовина, кнопка start + кнопки ABC. На данный момент испробовать его можно в такой игре как: Delta Shadow или в демке Street Fighter . Также мы будем его поддерживать в будущих играх.  Скачать три прошивки в архиве:  pmc-wagner.su/fw_kempston.rar 1.zxevo_fw.bin  файл для base conf 2.zxevo_fw_vdac.bin  для ts conf 3.zxevo_fw_vdac2.bin для tsconf с поддержкой VDAC2 Программируем джойстик:  Пример:       in a,(1f)                          bit 1,a                          jp nz,left Значение битов:    bit 0 = right, bit 1=left, bit2=down, bit 3=up                                       bit 4=fire3, bit 5 = fire2, bit 6=fire1, bit 7=start 

Работа с часами

Работа с часами.  Мы часто сталкиваемся с ситуацией когда нужно вывести таймер. Я не буду расписывать порты, благо это сделано до меня, дам лишь простой пример, как в регистр "A" получить, часы, минуты, секунды. В нашем случае нет разницы, программируете вы на Base conf или Ts conf. TIME         LD A,#80                    LD BC,#EFF7                    OUT (C),A                    LD A,0;   если 0 - получаем секунды, если 2 - получаем минуты, если 4 - получаем часы.                    CALL READCMOS                    RET REACMOS                    LD BC,#DFF7                    OUT (C),A                    LD B,#BF                    IN A,(C)                    RET ;   Вызвали процедуру TIME, на выходе в регистр А время. В данном примере получим секунды, но можно получить и минуты и часы, меняйте регистра А на входе, где стоит коментарий. Время выдается в формате BCD, потому переводим его в удобоваримую форму:                    LD A,C                    AND #F0             

Печать спрайта в TS CONF 256 color

  TS-CONF по умолчанию имеет аппаратные спрайты и тайлы которые используют 16 цветов, однако это не значит, что нет возможности использовать спрайты в 256 цветов. Для того, чтобы вывести такой спрайт, нужно воспользоватся DMA в режиме BLT1. В этом режиме перекидываются любые данные если они не равны нулю. Рисуем спрайты любыми цветами, но нулевой цвет оставляем для фона который нужно будет вырезать. Как всегда процедура и спрайты для теста тут: SPR.TRD Ниже привожу пример процедуры:             ORG       30000              LD            HL,0; X COORDINATE            LD            BC,0; Y COORDINATE             LD            (XX),BC LD            D,#C0; ADDRESS SPRITE IN MEMORY LD            E,#10; START VIDEO PAGE CALL       PERECHET; GET NUMBER PAGE PUSH     DE POP        HL LD            DE,16 SBC         HL,DE LD            DE,(XX) ADD        HL,DE PUSH     HL POP       DE LD           (PAGETO),A LD            B,6; SPRITE SIZE X ABSCISSA LD            C,15; SPRIT