Speccy - наш выбор!  
ZXPRESS
ZXTUNES
Virtual TR-DOS
World of Spectrum
ZX Spectrum Old Demos •

Go Back   Speccy - наш выбор! > FTN-сети > ZX.SPECTRUM

Reply
 
Thread Tools Display Modes
Old 11th January 2006, 08:20   #1
Гость
 
Posts: n/a
Default Time Gal

FromNet: Ryazan (Ryazan_Net)

Hello All!

2-8 января мы с Shiru Otaku портировали на ATM turbo2+ видеоигру Time Gal (жанр
почти 100) и работает только с CD.

Поскольку кто первый встал - того и тапки, то:

ZX-СТАHДАРТ HА АВТОЗАПУСКАЕМЫЕ CD
v1.0

Hа автозапускаемом CD (формат CDFS / ISO 9660 / ECMA-119) в корневой директории
должен располагаться файл AUTORUN.ZX (за заглавные буквы можете не
беспокоиться, Nero капитализует имена файлов автоматически) длиной не более
#8000 байт. Он грузится по адресу #6000 (значение порта #7ffd равно #10) и
запускается по адресу #6000 с выключенными прерываниями IM1, при этом текущий
CD-привод проициализирован и является текущим устройством, кроме того,
произведена попытка включить на нём низкую скорость.
Регистры при этом:
SP=#6000
IY=23610
A=#A0 (master) или #B0 (slave) [возможно, будет выкинуто, т.к. 1. на ZX уже
устоялась ситуация CD-ROM=slave; 2. для игр, скорее всего, не потребуется
переключаться на другие устройства]
B=тип компьютера: 0=PENTAGON, 1=ATM, 2=SCORPION, 3=PROFI, 4=SPRINTER
C=тип контроллера IDE: 0=NEMO, 1=ATM, 2=SMUC, 3=PROFI, 4=SPRINTER
D=язык: 0=ENGLISH, 1=РУССКИЙ
E=адрес COVOX: #FB=ATM/PENTAGON, #FF=отсутствует
HL=доступные видеорежимы (накладываются по OR):
;1=512x192 BW VMG
;2=384x304 ZX AC
;4=256x192 15 AC
;8=320x200 16 ATM
Остальные значения и биты пока зарезервированы.

КОHЕЦ СТАHДАРТА

Прилагаемый загрузчик пока не очень устойчиво работает, принимаются советы по
повышению устойчивости его работы (впоследствии будем прошивать его в ПЗУ).
Ограничения этого загрузчика:
описателя AUTORUN.ZX;

ОБРАТИТЕ ВHИМАHИЕ на метку NOPADDING. Данный маразм в Абзац#25 не
документирован, хотя в Vega о нём знает (CD-Walk правильно пропускает эти
паддинги, равно как и WDC).

/=== Begin Windows Clipboard ===/
;загрузчик файла "AUTORUN.ZX" с CD по адресу #6000
;SP=#6000, DI
;передает ему в регистрах:
;A=#A0 (master) или #B0 (slave)
;B=тип компьютера:
;0=PENTAGON, 1=ATM, 2=SCORPION, 3=PROFI, 4=SPRINTER
;C=тип контроллера IDE:
;0=NEMO, 1=ATM, 2=SMUC, 3=PROFI, 4=SPRINTER
;D=язык:
;0=ENGLISH, 1=РУССКИЙ
;E=адрес COVOX:
;#FB=ATM/PENTAGON, #FF=отсутствует
;H=доступные видеорежимы (накладываются по OR)
;1=512x192 BW VMG
;2=384x304 ZX AC
;4=256x192 15 AC
;8=320x200 16 ATM
device=#B0
comptype=1
idetype=1
language=1
COVPORT=#FB
videomodes=8

;===============ниже поддержаны только NEMO,SMUC,ATM============
IF0 comptype-1
atm=1
ELSE
atm=0
ENDIF
IF0 idetype-2
smuc=1|atm
ELSE
smuc=atm
ENDIF
IFN smuc
IFN atm
;схема ATM:
hddstat=#FEEF
hddcmd=#FEEF
hddhead=#FECF
hddcylhi=#FEAF
hddcyllo=#FE8F
hddsec=#FE6F
hddcount=#FE4F
hdderr=#FE2F
hdddatlo=#FE0F
hdddathi=#FF0F
hddupr=#FEBE ;при установленном b7 FFBA
hdduprON=#FFBA
hddupr1=#F7
hddupr0=#77
ELSE
;схема SMUC:
hddstat=#FFBE
hddcmd=#FFBE
hddhead=#FEBE
hddcylhi=#FDBE
hddcyllo=#FCBE
hddsec=#FBBE
hddcount=#FABE
hdderr=#F9BE
hdddatlo=#F8BE
hdddathi=#D8BE
hddupr=#FEBE ;при установленном b7 FFBA
hdduprON=#FFBA
hddupr1=#F7
hddupr0=#77
ENDIF
ELSE
;схема Nemo:
hddstat=#F0
hddcmd=#F0
hddhead=#D0
hddcylhi=#B0
hddcyllo=#90
hddsec=#70
hddcount=#50
hdderr=#30
hdddatlo=#10
hdddathi=#11
hddupr=#C8
hdduprON=0
ENDIF

SECBUF=#6000
ORG #E800
begin
GO
LD SP,#6000
LD (IY+1),#CC
EI
HALT
XOR A
OUT (-2),A
LD DE,#5801
LD H,D,L,A
LD BC,767
LD (HL),L
LDIR

IFN atm
CALL #3D46 ;вызов "проверочной" точки в (v)TR-DOS
OR A ;если не 0,vTR-DOS нет и ПЗУ не подменяем
CALL Z,#3C98 ;вызов триггера подмены ПЗУ TRD/vTRD
ENDIF

;инициализация
LD A,device ;#B0=slave
LD BC,hddhead
CALL OUT_A
CALL NO_BSY
;LD A,#FE
;IN A,(-2)
;RRA
;JNC SKIPINI
;LD A,#10 ;
;CALL HDSC ;ZET9 для HDD
LD A,#08 ;
CALL HDSC ;SMT для CD (сброс для ATAPI)
;RET C ;ATAPI only
LD A,device ;#B0=slave ;
LD BC,hddhead ;BUDDER
CALL OUT_A ;иначе при нераскрученном CD
;не выдаст EB14!!!
LD A,#EC ;identify
CALL HDSC
;RET C ;для CD выдаст ошибку (VEGA)

LD B,30
HALT
DJNZ $-1

CALL LEN_TO_HL
LD BC,#EB14
OR A
SBC HL,BC
JP NZ,0 ;HDD
;LD A,1
;OUT (-2),A

LD HL,AP_1x
CALL SEND_ATAPI
LD B,30
HALT
DJNZ $-1
SKIPINI
DI

;LD A,2
;OUT (-2),A

;сейчас номер сектора=0,0,0,0
CALL READCDSECBUF ;иначе не работает READTOC
LD HL,AP_READTOC
CALL SEND_ATAPI
;RET C
CALL NO_BSY
;RET C
CALL WAIT_DRQ
;RET C
CALL LEN_TO_HL
LD B,H,C,L
LD HL,SECBUF
CALL TRANS_IN
CALL NO_BSY

;LD A,3
;OUT (-2),A

;берем посл сессию (предпосл запись)
LD HL,SECBUF+1
LD A,(HL)
ADD A,-10
LD L,A
LD D,#87
;CY=1
CALL LOADER ;грузим начало сессии (#8800 байт)

LD BC,#80A2
ADD HL,BC
;CY=0
CALL LOADER ;грузим корневой каталог
;HL=SECBUF

;LD A,4
;OUT (-2),A

FNDIDLOOP
PUSH HL
LD C,33
ADD HL,BC
LD DE,autorunname
LD C,autorunnamesz
FNDID0 LD A,(DE)
CPI
JNZ FNDIDN
INC DE
JP PE,FNDID0
POP HL
LD C,6
ADD HL,BC
;CY=0

;LD A,5
;OUT (-2),A

CALL LOADER ;грузим autorun.zx
PUSH HL
LD A,device ;#B0=slave
LD BC,comptype*256+idetype ;1=ATM,1=ATM
LD DE,language*256+COVPORT ;1=RUS,#FB
LD HL,videomodes ;8=ATM
RET
FNDIDN
POP HL
LD C,(HL)
INC HL
LD B,(HL)
DEC HL
LD A,B
OR C
JNZ NOPADDING
INC H
LD L,A
NOPADDING
ADD HL,BC
LD A,H
CP 64
JNC FNDIDLOOP
RST 0

LOADER
;грузим файл
;HL указывает на поле координат файла в motorola порядке
;CY=1: размер в DE
;CY=0: размер в (HL+4)
PUSH DE
LD DE,SECTOR
LD BC,4
LDIR
POP DE
JC $+5
LD E,(HL)
INC HL
LD D,(HL)
EXD
SCF
LD DE,2048
INC B
SBC HL,DE
JNC $-3
LD HL,SECBUF
PUSH HL
LOADER0 PUSH BC
CALL READCD
PUSH HL
LD HL,SECTOR+3
INC (HL)
DEC HL
JZ $-2
POP HL
POP BC
DJNZ LOADER0
POP HL
RET

;************************************************* **************
OUT_A
IFN smuc
IFN atm
PUSH AF,BC
CALL OPENPORTS
POP BC,AF
OUT (C),A
JR CLOSEPORTS
OPENPORTS
LD A,%10101011
LD BC,#2A53
PUSH BC
LD BC,#4177
JP #3D2F
ELSE
LD IX,#3FF0
PUSH IX
JP #3D2F
ENDIF
ELSE ;nemo
OUT (C),A
RET
ENDIF

IN_HDDSTAT
LD BC,hddstat
IN_A
IFN smuc
IFN atm
PUSH BC
CALL OPENPORTS
POP BC
IN A,(C)
CLOSEPORTS
PUSH AF,BC
LD A,%10101011
LD BC,#FF77
OUT (C),A
POP BC,AF
RET
ELSE
LD IX,#3FF3
PUSH IX
JP #3D2F
ENDIF
ELSE
IN A,(C)
RET
ENDIF

;ПОСЛАТЬ КОМАHДУ HА ВИHТ
HDSC
LD BC,hddcmd
CALL OUT_A
;ОЖИДАHИЕ ОСВОБОЖДЕHИЯ УСТРОЙСТВА
NO_BSY
CALL IN_HDDSTAT
RLCA
RET NC
JR NO_BSY
;ОЖИДАHИЕ ГОТОВHОСТИ ПЕРЕДАЧИ ДАHHЫХ
WAIT_DRQ
CALL IN_HDDSTAT
BIT 3,A
RET NZ
JR WAIT_DRQ

;ЧТЕHИE ЧИСЛА ИЗ РЕГИСТРА ЦИЛИHДРА
LEN_TO_HL
LD BC,hddcyllo
CALL IN_A
LD L,A
LD BC,hddcylhi
CALL IN_A
LD H,A
RET

;IN:HL-АДРЕС ПРИЕМА ДАHHЫХ
; BC-КОЛ-ВО БАЙТ
TRANS_IN
PUSH BC
CALL NO_BSY
;POP BC
;RET C
;PUSH BC
CALL WAIT_DRQ
POP BC
;RET C
INC BC
SRL B
RR C
TR_IN0 PUSH BC
LD BC,hdddatlo
CALL IN_A
LD (HL),A
INC HL
LD BC,hdddathi
CALL IN_A
LD (HL),A
POP BC
CPI
JP PE,TR_IN0
RET

;ПЕРЕДАЧА ATAPI-ПАКЕТА
SEND_ATAPI
;LD A,device ;#B0=slave
;LD BC,hddhead
;CALL OUT_A
LD BC,hddcyllo
XOR A
CALL OUT_A
LD BC,hddcylhi
LD A,'2048
CALL OUT_A
LD A,#A0
CALL HDSC
;RET C
LD B,6
TR_OUT0 PUSH BC
INC HL
LD A,(HL)
LD BC,hdddathi
CALL OUT_A
DEC HL
LD A,(HL)
LD BC,hdddatlo
CALL OUT_A
INC HL,HL
POP BC
DJNZ TR_OUT0
RET
READCDSECBUF
LD HL,SECBUF
READCD
;ЧТЕHИЕ СЕКТОРА
lOAD_SECTOR
PUSH HL
LD HL,AP_READ
CALL SEND_ATAPI
POP HL
;RET C
;бывает ситуация,что CHECK CONDITION (D0 статуса)=0,
;а при этом DRQ не выдается!
;CALL IN_HDDSTAT
;RRA
;RET C
CALL NO_BSY ;иначе виснет при иниц-ции CD
;RET C
;CALL WAIT_DRQ ;здесь виснет, если инитить слишком рано
;RET C ;после выхода разгоняется, ждет кнопку и читает
;ожидание DRQ по рецепту Budder'а
LD DE,0
BIT 3,A
JNZ READ_P2
INC DE
BIT 2,D ;4,D
JZ RDCDDRQ
PUSH HL
LD HL,AP_00
CALL SEND_ATAPI
POP HL
JR lOAD_SECTOR
READ_P2
LD BC,2048
CALL TRANS_IN
JP NO_BSY

autorunname
DB "AUTORUN.ZX"
autorunnamesz=$-autorunname

;ATAPI-ПАКЕТ "ПУСТЫШКА"
AP_00
DW 0
DS 10

;ATAPI-ПАКЕТ "SPEED 1x"
AP_1x
DW #BB
DB 0
DB 176 ;1x=176k/s
DS 8

;ATAPI-ПАКЕТ "ЧТЕHИЕ"
AP_READ
IFN 0
DW #BE ;"READ CD"
DB 0
DB 0,1 ;=1 сектор
DB #10 ;читаем только данные
DB 0,0
ELSE
DW #28 ;"READ(10)"
DB 0
DB 0,1 ;=1 сектор
DB 0
DB 0,0
ENDIF
AP_READTOC
DW #43 ;SCMSF=0,т.е.секторы,а не MSF
DB 0 ;FORMAT=0:все сессии
DS 3
DB 0 ;с 1-й сессии
DB '2048 ;длина табл
DB 2048
DB #00 ;FUNC
DS 2

end
DISPLAY end-begin
ORG #5CDD
DB "boot B
INCLUDE "mrip*",#C0
/=== End Windows Clipboard ===/

- A.Coder [Wolf3d2004 HexFill Pang16C InfoGuide8 ACEdit97 ACN44 PT3696 Chip13]
[ANSI4 ZXR27UnR59 Jpg42 8col12 DBS7 CacVox1 Gluk61 PC21 Alasm503 STS71 HDDoct9]

... ZX Spectrum today
  Reply With Quote
Old 11th January 2006, 08:21   #2
Гость
 
Posts: n/a
Default Time Gal

FromNet: St.Petersburg (fido.mariinsky.ru)

09 янв 06 года (а было тогда 18:57)
Dima Bystrov в своем письме к All писал:

Quote:
COVOX:
#FB=ATM/PENTAGON, #FF=отсутствует
#DD=SCORPION, #B3=GS COVOX EMULATION

---
  Reply With Quote
Old 13th January 2006, 08:08   #3
Гость
 
Posts: n/a
Default Re: Time Gal

FromNet: Izhevsk_Russia (Kama_river_net)

Привет Nikolaj!

10 Янв 06 07:10, Nikolaj Amosov -> Dima Bystrov:
Quote:
#DD=SCORPION, #B3=GS COVOX EMULATION
Вот эта строка из того "стандарта" вообще более всего непонятна. Вопросов к
Быстрову два: нафига там нужен ковокс и почему забыли про Профи? :)



С рулезами, Danil aka Merlin/ULG


---
  Reply With Quote
Old 13th January 2006, 08:08   #4
Гость
 
Posts: n/a
Default Re: Time Gal

FromNet: NET_Moscow_Russia_(245_02/09/2005) (commserv.rpb.ru)

From: "Maxim Timonin" <maxagor@skiper.ru>

Wed Jan 11 2006 22:54, Danil Davydov wrote to Nikolaj Amosov:

Quote:
Привет Nikolaj!

10 Янв 06 07:10, Nikolaj Amosov -> Dima Bystrov:


Вот эта строка из того "стандарта" вообще более всего непонятна.
Вопросов к Быстрову два: нафига там нужен ковокс и почему забыли про
Профи? :)
Частично могу ответить за Диму: почему забыли про Профи - не знаю, а вот COVOX
при том, что дима написал для Спекки CD-видеоплеер , который играет фильмЫ со
звуком. А звук, ессно, через COVOX идет.

Maksagor, NedoPC group. ATM-turbo 2+
  Reply With Quote
Old 14th January 2006, 12:49   #5
Гость
 
Posts: n/a
Default Re^2: Time Gal

FromNet: Izhevsk_Russia (Kama_river_net)

Привет Maxim!

12 Янв 06 06:17, Maxim Timonin -> Danil Davydov:
Quote:
Частично могу ответить за Диму: почему забыли про Профи - не знаю, а
вот COVOX при том, что дима написал для Спекки CD-видеоплеер , который
играет фильмЫ со звуком. А звук, ессно, через COVOX идет.
Это уж не те ли фильмы, один из которых я видал на последнем Cafe (2003
кажись)? Там анимэ какое-то вроде было. Где почитать "стандарт" на
спектрумовские фильмы? ;)



С рулезами, Danil aka Merlin/ULG


---
  Reply With Quote
Old 14th January 2006, 22:51   #6
Гость
 
Posts: n/a
Default Re^2: Time Gal

FromNet: NET_Moscow_Russia_(245_02/09/2005) (commserv.rpb.ru)

From: "Maxim Timonin" <maxagor@skiper.ru>

Fri Jan 13 2006 12:38, Danil Davydov wrote to Maxim Timonin:


Quote:
Это уж не те ли фильмы, один из которых я видал на последнем Cafe (2003
кажись)? Там анимэ какое-то вроде было. Где почитать "стандарт" на
спектрумовские фильмы? ;)
Я неверно выразился: надо сказать было "который может играть фильмы со
звуком". А какие фильмы были на CAFe, я совершенно не знаю, так как там не
был. А насчет формата и вообще со всеми вопросами - к AlCo. Пока только знаю,
что он на пЦ написал конвертер из AVI в свой спековский формат.

Maksagor, NedoPC group. ATM-turbo 2+
  Reply With Quote
Old 15th January 2006, 20:48   #7
Гость
 
Posts: n/a
Default Re^2: Time Gal

FromNet: Ryazan (Ryazan_Net)

Hello Danil!

13 Jan 06 13:38, Danil Davydov wrote to Maxim Timonin:

Quote:
Это уж не те ли фильмы, один из которых я видал на последнем Cafe
(2003 кажись)? Там анимэ какое-то вроде было.
Оно там было в 2 цвета. А у нас в 15.

- A.Coder [Wolf3d2004 HexFill Pang16C InfoGuide8 ACEdit97 ACN44 PT3696 Chip13]
[ANS4 ZXR27UnR59 Jpg42 8col12 DBS7 CacVox1 Gluk61 PC21 Alasm504 STS71i HDDoc10]

... ZX Spectrum today
  Reply With Quote
Old 14th January 2006, 22:51   #8
Гость
 
Posts: n/a
Default Re: Time Gal

FromNet: Ryazan (Ryazan_Net)

Hello Danil!

11 Jan 06 23:54, Danil Davydov wrote to Nikolaj Amosov:

Quote:
10 Янв 06 07:10, Nikolaj Amosov -> Dima Bystrov:
Вот эта строка из того "стандарта" вообще более всего непонятна.
Вопросов к Быстрову два: нафига там нужен ковокс
В игре используется цифровой звук. Порт ковокса автоопределить невозможно.
Quote:
и почему забыли про
Профи? :)
Про Профи вспомним, когда под профийный IDE-контроллер напишут софт и выложат
его исходники. Либо когда к Профи подключат контроллер Nemo.

- A.Coder [Wolf3d2004 HexFill Pang16C InfoGuide8 ACEdit97 ACN44 PT3696 Chip13]
[ANSI4 ZXR27UnR59 Jpg42 8col12 DBS7 CacVox1 Gluk61 PC21 Alasm503 STS71 HDDoct9]

... ZX Spectrum today
  Reply With Quote
Old 14th January 2006, 22:51   #9
Гость
 
Posts: n/a
Default Re: Time Gal

FromNet: NET_Moscow_Russia_(245_02/09/2005) (commserv.rpb.ru)

From: "Maxim Timonin" <maxagor@skiper.ru>

Fri Jan 13 2006 11:51, Dima Bystrov wrote to Danil Davydov:


Quote:
Про Профи вспомним, когда под профийный IDE-контроллер напишут софт и
выложат его исходники. Либо когда к Профи подключат контроллер Nemo.
Дык нужные биты для него зарезервировать можно все-таки? А насчет NEMO-IDE,
так откуда ты знаешь, что его к Профи не подключали? Есть же версии Профика
без собственного контроллера винта, так что вполне вполне вероятно, что кто-то
из хозяев такой версии машины себе немовский контроллер и цеплял...

Maksagor, NedoPC group. ATM-turbo 2+
  Reply With Quote
Old 16th January 2006, 08:18   #10
Гость
 
Posts: n/a
Default Re^2: Time Gal

FromNet: Izhevsk_Russia (Kama_river_net)

Привет Dima!

13 Янв 06 12:51, Dima Bystrov -> Danil Davydov:
Quote:
В игре используется цифровой звук. Порт ковокса автоопределить
невозможно.
Так стандарт-то этот на игру или на автозапускаемые диски? С игрой-то все
ясно, а автосидюкам ковокс зачем?

Quote:
Про Профи вспомним, когда под профийный IDE-контроллер напишут софт и
выложат его исходники. Либо когда к Профи подключат контроллер Nemo.
Что общего между IDE-контроллером и ковоксом Профи? :) Чем тот
IDE-контроллер, что сейчас продается за 350 рубликов не подходит?



С рулезами, Danil aka Merlin/ULG


---
  Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
UUE файлы из FidoNet Wlodek Софт 106 12th July 2013 18:45
Time Gal breeze Игры 36 29th January 2008 00:38


All times are GMT +4. The time now is 12:37.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Map Яндекс.Метрика