Hello Maxim!
04 Oct 05 04:31, Maxim Timonin wrote to Dima Bystrov:
После сброса в ассемблер вернуться можно? если нельзя - систему в помойку. мыЦитата:
DB>> под TR-DOS есть ГОТОВАЯ ПРОФЕССИОHАЛЬHАЯ СРЕДА РАЗРАБОТКИ. Это
DB>> ALASM +
DB>> STS + BGE + SCUT + PT + Hrust + Rar + Gluk. Под CP/M этого нет.
DB>> Под
MT> Своя среда разработки есть и в CP/M и iS-DOS (в том числе и
MT> автораспаковщики, пусть и не RARовсие, а попроще (в CP/M)). Другое
MT> дело, что ты говоришь о своей ЛИЧHОЙ среде разработки, которую создал
MT> себе сам за долгие годы,и пересоздавать ее тебе влом. Это понятно,
MT> конечто. И про то, что ты просто привык к TR-DOS (создав себе среду
MT> разработки), я предполагал, иговорил это.
не древние математики-программисты, которые умели отлаживать программу на
бумажке.
да.Цитата:
DB>> TR-DOS написан и отлажен готовый автосборщик с упаковкой. Под
DB>> TR-DOS
DB>> написан и отлажен готовый универсальный игровой
DB>> загрузчик-выгрузчик с
DB>> распаковкой из Rar (использован в Wolf2004). Писать всё заново?
MT> О каком загрузчике идет речь? Загрузчике дополнительных оверлеев и
MT> файлов состояний?
в TR-DOS тоже есть файловый уровень. См. урок ассемблера в ZX-Guide#4.5. Hо оЦитата:
MT> Hамного проще чем в TR-DOS, так как все происходит на файловом уровне,
MT> а не потреково-посекторно, как в примитивной тырдосине.
каком файловом уровне может идти речь, когда я ВЫHИМАЮ ФАЙЛ ИЗ .RAR? на пц это
делается через перестановку указателя внутри файла и функцию blockread. а как в
CP/M?
вообще-то я глядел в сторону фотошопа :)Цитата:
DB>> Адаптировать? Или рисовать-музицировать под TR-DOS, потом тащить
DB>> файлы в
MT> Hу, если будешь использовать расширенную графику, то рисовать будешь
MT> точно не в тырдосе, ибо тама редакторов таких не будет.
^^^^^^^^^^^^^Цитата:
MT> ТОгда или
MT> рисовать в CP/M, или на пЦ, с переносом/конвертацией. Кстати, в CP/M
MT> под ATM есть
MT> неплохой
не верю (c) Unbeliever! мышка есть? горячие кнопки есть? написанное до 1996Цитата:
MT> редактор спрайтов...
года обычно не имеет либо одного, либо другого.
ага, после которого проходит столетие, а исходник из памяти исчезает.Цитата:
DB>> CP/M, кодить в доисторических системах, где редактор отдельно от
DB>> транслятора (в котором синтаксис явно не аласмовский, а
DB>> где-нибудь на
MT> А чем тебе не нравится сам принцип набора тела программы в текстовом
MT> редакторе и компиляция ее через командную строку (в iS-DOS это
MT> делается одним нажатие клавиши)
ну, для примера, компильни под HЕаласмом вот это:Цитата:
DB>> уровне MASM или ещё хуже), от линковщика и от отладчика, а по
DB>> сбросу
MT> Hу вот, уже синтаксис ему не нравится! :)
/=== Begin Windows Clipboard ===/
MACRO pp
tba_smp=MUZ+105
tba_orn=tba_smp+64
PLAYER
frq_A=MUZ
frq_B=MUZ+2
frq_C=MUZ+4
N_frq=MUZ+6
vol_A=MUZ+8
vol_B=MUZ+9
vol_C=MUZ+10
frq_E=MUZ+11
E_form=MUZ+13
play
LD HL,int_qty
DEC (HL)
JP NZ,NOINS
;--- nota_A + calc_next_position ---
INC HL
;LD HL,A_qty
DEC (HL)
JR NZ,Aq_0
Ach_adr LD DE,tab_vol+16
LD A,(DE)
OR A
JR NZ,Ps_n0
_m1=$+2
LD (N_frq),A ;;5!!!
LD D,A ;;
LD (sav_SP2+1),SP
Psa_beg LD HL,MUZ+201
LD A,(HL)
INC A ;AAA;6
JR NZ,Ps_n1 ;NC ;6
Psa_lop LD HL,MUZ+201
Ps_n1 LD E,(HL) ;6
INC HL
LD (Psa_beg+1),HL
Psa_chn LD HL,0
ADD HL,DE
ADD HL,DE
LD SP,HL
;POP HL
;ia_pos0 LD BC,MUZ
;ADD HL,BC
;EX DE,HL ;DE=adr_chn_A
POP DE
POP HL
;ADD HL,BC ;HL=adr_chn_B
LD (Bch_adr+1),HL
POP HL
;ADD HL,BC ;HL=adr_chn_C
LD (Cch_adr+1),HL
sav_SP2 LD SP,0
Ps_n0
_m12=$+1
LD H,'tba_smp
CALL An_clc1
LD (Ach_adr+1),DE
Ai_qty LD A,0
LD (A_qty),A
DJNZ Aq_0
LD H,B
LD L,B
LD (Asl_dsp+1),HL
Aq_0
;--- nota_B ---
LD HL,B_qty
DEC (HL)
JR NZ,Bq_0
Bch_adr LD DE,0
_m13=$+1
LD H,'tba_smp
CALL Bn_clc1
LD (Bch_adr+1),DE
Bi_qty LD A,0
LD (B_qty),A
DJNZ Bq_0
LD H,B
LD L,B
LD (Bsl_dsp+1),HL
Bq_0
;--- nota_C ---
LD HL,C_qty
DEC (HL)
JR NZ,Cq_0
Cch_adr LD DE,0
_m14=$+1
LD H,'tba_smp
CALL Cn_clc1
LD (Cch_adr+1),DE
Ci_qty LD A,0
LD (C_qty),A
DJNZ Cq_0
LD H,B
LD L,B
LD (Csl_dsp+1),HL
Cq_0
;--- install_E ---
Ei_form LD A,0 ;env_form
_m11=$+2
LD (E_form),A
OR A
JR Z,temp
Ei_frq LD HL,0 ;env_frq
LD (E_frq+1),HL
XOR A
LD L,A
LD H,A
LD (Ei_form+1),A
LD (Esl_frq+1),HL
LD (Esl_stp+1),A
temp LD A,3 ;temp
LD (int_qty),A
NOINS
play_0 LD L,0 ;smp_sl_env
EXX
N_add LD IX,0 ;HX=noise LX=mix
LD (sav_SP1+1),SP
E_ins0 JR Ei_Q
Esl_ids LD HL,0 ;stp_sld_env
LD (Esl_sds+1),HL
Esl_ist LD A,0 ;stp_sld_p
LD (Esl_stp+1),A
LD (Esl_sts+1),A
LD A,24
LD (E_ins0),A
Ei_Q
;---- sampler_A ----
Avb_lok LD A,-1
LD H,A
INC A
JP Z,Avb_n0
As_adr LD SP,DUMMYSMP ;sample
POP DE ;loop E=beg D=end
As_dsp LD A,0
LD L,A
INC A
CP D
JR C,As_n0 ;bug NZ/C
LD A,E
As_n0 LD (As_dsp+1),A
SLA L
SLA L
;ADD HL,HL,HL,HL
ADD HL,SP
LD SP,HL
POP DE ;D= Nm ts ns Tm v3 v2 v1 v0
LD A,D ;E= sv +- N4 N3 N2 N1 N0 Em
OR #F0
;AND 15
LD L,A
LD A,E
ADD A,A
As_Vsl LD A,16
JR NC,As_VslG
JP M,As_n2
SUB 1
JR As_n3
As_n2 CP 31
As_n3 ADC A,0
LD (As_Vsl+1),A
As_VslG
ADD A,L
JR C,As_n4
XOR A
As_n4 CP 16
JR C,Ag_vol
LD A,15
Ag_vol ADD A,#F0
LD L,A
LD H,'tab_vol
LD A,(HL)
SRL E
JR C,Am_vo0
Am_vol OR 0
Am_vo0 EXA
LD A,D
;LD L,A
RLCA
;LD H,A
JR C,As_n5
As_Nsl LD A,0
ADD A,E
BIT 5,D
JR Z,As_n6
LD (As_Nsl+1),A
As_n6 LD HX,A
JR As_n7
As_n5 LD A,E
AND 31
CP 16
JR C,As_Esl
OR #F0
As_Esl ADD A,0
BIT 5,D
JR Z,As_n9
LD (As_Esl+1),A
As_n9 EXX
ADD A,L
LD L,A
EXX
As_n7 LD A,D
RLCA
RLCA
RLCA
RLCA
AND 9
LD LX,A
POP BC
;LD A,D
As_dtn LD HL,0 ;dsp_frq_smp
ADD HL,BC
BIT 6,D
;AND 64
JR Z,As_n10
LD (As_dtn+1),HL
As_n10 EX DE,HL
Ao_adr LD SP,DUMMYORN ;ornament
POP BC ;loop C=beg B=end
Ao_dsp LD A,0
LD L,A
INC A
CP B
JR C,$+3 ;bug NZ/C
LD A,C
LD (Ao_dsp+1),A
LD H,0
ADD HL,SP
LD A,(As_note+1)
ADD A,(HL) ;dsp_orn
ADD A,A
JR NC,$+3
XOR A
LD L,A
LD H,'tab_frq
LD SP,HL
POP HL
ADD HL,DE
Asl_dsp LD BC,0
ADD HL,BC
_m3=$+2
LD (frq_A),HL
Asl_stp LD A,0
DEC A
JP M,Asl_s0
JR NZ,Asl_s1
Asl_tfr LD DE,0
ADD HL,DE
EX DE,HL
ADD HL,BC
LD (Asl_dsp+1),HL
JR Asl_sts ;port off/on
Asl_plk
Asl_not LD A,0
LD L,A
ADD HL,HL
LD H,'tab_frq
LD SP,HL
POP HL
As_note CP 0
JR NC,$+3
EX DE,HL
SBC HL,DE
JR C,Asl_sts
LD (As_note+1),A
XOR A
LD L,A
LD (Asl_dsp+1),HL
JR $+4
Asl_sts LD A,0
Asl_s1 LD (Asl_stp+1),A
Asl_s0 EXA
_m7=$+2
Avb_n0 LD (vol_A),A
Avb_stp LD A,0
DEC A
JP M,Bvb_lok
JR NZ,Avb_n1
DEC A ;;
LD HL,Avb_lok+1;;
XOR (HL) ;;
LD (HL),A ;;4
Avb_frq LD A,0
JR NZ,Avb_n1
Avb_sts LD A,0
Avb_n1 LD (Avb_stp+1),A
;---- sampler_B ----
Bvb_lok LD A,-1
LD H,A
INC A
JP Z,Bvb_n0
Bs_adr LD SP,DUMMYSMP
POP DE
Bs_dsp LD A,0
LD L,A
INC A
CP D
JR C,Bs_n0
LD A,E
Bs_n0 LD (Bs_dsp+1),A
SLA L
SLA L
;ADD HL,HL,HL,HL
ADD HL,SP
LD SP,HL
POP DE
LD A,D
OR #F0
;AND 15
LD L,A
LD A,E
ADD A,A
Bs_Vsl LD A,16
JR NC,Bs_VslG
JP M,Bs_n2
SUB 1
JR Bs_n3
Bs_n2 CP 31
Bs_n3 ADC A,0
LD (Bs_Vsl+1),A
Bs_VslG
ADD A,L
JR C,Bs_n4
XOR A
Bs_n4 CP 16
JR C,Bg_vol
LD A,15
Bg_vol ADD A,#F0
LD L,A
LD H,'tab_vol
LD A,(HL)
SRL E
JR C,Bm_vo0
Bm_vol OR 0
Bm_vo0 EXA
LD A,D
;LD L,A
RLCA
;LD H,A
JR C,Bs_n5
Bs_Nsl LD A,0
ADD A,E
BIT 5,D
JR Z,Bs_n6
LD (Bs_Nsl+1),A
Bs_n6 LD HX,A
JR Bs_n7
Bs_n5 LD A,E
AND 31
CP 16
JR C,Bs_Esl
OR #F0
Bs_Esl ADD A,0
BIT 5,D
JR Z,Bs_n9
LD (Bs_Esl+1),A
Bs_n9 EXX
ADD A,L
LD L,A
EXX
Bs_n7 LD A,D
RRCA
RRCA
RRCA
AND 18
OR LX
LD LX,A
POP BC
;LD A,D
Bs_dtn LD HL,0
ADD HL,BC
BIT 6,D
;AND 64
JR Z,Bs_n10
LD (Bs_dtn+1),HL
Bs_n10 EX DE,HL
Bo_adr LD SP,DUMMYORN
POP BC
Bo_dsp LD A,0
LD L,A
INC A
CP B
JR C,Bo_n0
LD A,C
Bo_n0 LD (Bo_dsp+1),A
LD H,0
ADD HL,SP
LD A,(Bs_note+1)
ADD A,(HL)
ADD A,A
JR NC,$+3
XOR A
LD L,A
LD H,'tab_frq
LD SP,HL
POP HL
ADD HL,DE
Bsl_dsp LD BC,0
ADD HL,BC
_m5=$+2
LD (frq_B),HL
Bsl_stp LD A,0
DEC A
JP M,Bsl_s0
JR NZ,Bsl_s1
Bsl_tfr LD DE,0
ADD HL,DE
EX DE,HL
ADD HL,BC
LD (Bsl_dsp+1),HL
JR Bsl_sts
Bsl_plk
Bsl_not LD A,0
LD L,A
ADD HL,HL
LD H,'tab_frq
LD SP,HL
POP HL
Bs_note CP 0
JR NC,$+3
EX DE,HL
SBC HL,DE
JR C,Bsl_sts
LD (Bs_note+1),A
XOR A
LD L,A
LD (Bsl_dsp+1),HL
JR $+4
Bsl_sts LD A,0
Bsl_s1 LD (Bsl_stp+1),A
Bsl_s0 EXA
_m8=$+2
Bvb_n0 LD (vol_B),A
Bvb_stp LD A,0
DEC A
JP M,Cvb_lok
JR NZ,Bvb_n1
DEC A ;;
LD HL,Bvb_lok+1;;
XOR (HL) ;;
LD (HL),A ;;4
Bvb_frq LD A,0
JR NZ,Bvb_n1
Bvb_sts LD A,0
Bvb_n1 LD (Bvb_stp+1),A
;---- sampler_C ----
Cvb_lok LD A,-1
LD H,A
INC A
JP Z,Cvb_n0
Cs_adr LD SP,DUMMYSMP
POP DE
Cs_dsp LD A,0
LD L,A
INC A
CP D
JR C,Cs_n0
LD A,E
Cs_n0 LD (Cs_dsp+1),A
SLA L
SLA L
;ADD HL,HL,HL,HL
ADD HL,SP
LD SP,HL
POP DE
LD A,D
OR #F0
;AND 15
LD L,A
LD A,E
ADD A,A
Cs_Vsl LD A,16
JR NC,Cs_VslG
JP M,Cs_n2
SUB 1
JR Cs_n3
Cs_n2 CP 31
Cs_n3 ADC A,0
LD (Cs_Vsl+1),A
Cs_VslG
ADD A,L
JR C,Cs_n4
XOR A
Cs_n4 CP 16
JR C,Cg_vol
LD A,15
Cg_vol ADD A,#F0
LD L,A
LD H,'tab_vol
LD A,(HL)
SRL E
JR C,Cm_vo0
Cm_vol OR 0
Cm_vo0 EXA
LD A,D
;LD L,A
RLCA
;LD H,A
JR C,Cs_n5
Cs_Nsl LD A,0
ADD A,E
BIT 5,D
JR Z,Cs_n6
LD (Cs_Nsl+1),A
Cs_n6 LD HX,A
JR Cs_n7
Cs_n5 LD A,E
AND 31
CP 16
JR C,Cs_Esl
OR #F0
Cs_Esl ADD A,0
BIT 5,D
JR Z,Cs_n9
LD (Cs_Esl+1),A
Cs_n9 EXX
ADD A,L
LD L,A
EXX
Cs_n7 LD A,D
RRCA
RRCA
;RRCA
AND 36
OR LX
LD LX,A
POP BC
;LD A,D
Cs_dtn LD HL,0
ADD HL,BC
BIT 6,D
;AND 64
JR Z,Cs_n10
LD (Cs_dtn+1),HL
Cs_n10 EX DE,HL
Co_adr LD SP,DUMMYORN
POP BC
Co_dsp LD A,0
LD L,A
INC A
CP B
JR C,Co_n0
LD A,C
Co_n0 LD (Co_dsp+1),A
LD H,0
ADD HL,SP
LD A,(Cs_note+1)
ADD A,(HL)
ADD A,A
JR NC,$+3
XOR A
LD L,A
LD H,'tab_frq
LD SP,HL
POP HL
ADD HL,DE
Csl_dsp LD BC,0
ADD HL,BC
_m6=$+2
LD (frq_C),HL
Csl_stp LD A,0
DEC A
JP M,Csl_s0
JR NZ,Csl_s1
Csl_tfr LD DE,0
ADD HL,DE
EX DE,HL
ADD HL,BC
LD (Csl_dsp+1),HL
JR Csl_sts
Csl_plk
Csl_not LD A,0
LD L,A
ADD HL,HL
LD H,'tab_frq
LD SP,HL
POP HL
Cs_note CP 0
JR NC,$+3
EX DE,HL
SBC HL,DE
JR C,Csl_sts
LD (Cs_note+1),A
XOR A
LD L,A
LD (Csl_dsp+1),HL
JR $+4
Csl_sts LD A,0
Csl_s1 LD (Csl_stp+1),A
Csl_s0 EXA
_m9=$+2
Cvb_n0 LD (vol_C),A
Cvb_stp LD A,0
DEC A
JP M,Esl_
JR NZ,Cvb_n1
DEC A ;;
LD HL,Cvb_lok+1;;
XOR (HL) ;;
LD (HL),A ;;4
Cvb_frq LD A,0
JR NZ,Cvb_n1
Cvb_sts LD A,0
Cvb_n1 LD (Cvb_stp+1),A
;---- sampler_E ----
Esl_ EXX
LD A,L
Esl_frq LD DE,0 ;stp_sl_env
E_frq LD HL,0 ;frq_env
ADD A,L
LD L,A
ADD HL,DE
_m10=$+2
LD (frq_E),HL
Esl_stp LD A,0
DEC A
JP M,sav_SP1
JR NZ,E_n0
Esl_sds LD HL,0
ADD HL,DE
LD (Esl_frq+1),HL
Esl_sts LD A,0
E_n0 LD (Esl_stp+1),A
;---- out_to_processor ----
sav_SP1 LD SP,0
out_
LD DE,#FFBF
LD C,-3
_m4=$+2
LD HL,frq_A
LD A,7
CALL OUTER
LD A,HX ;noise
LD (N_add+3),A
ADD A,(HL)
OUT (C),A
INC L
LD B,D
OUT (C),L
LD A,LX ;mix
LD B,E
OUT (C),A
INC L
LD A,6
CALL OUTER
OR (HL)
RET Z
OUT (C),A
LD (HL),0 ;;4
RET
;--- nota_A ---
Ani_vol JR NZ,Ani_v0
LD (Avb_stp+1),A
DEC A
LD (Avb_lok+1),A
RET
Ani_v0
DUP 4
ADD A,A
EDUP
LD (Ag_vol+1),A
JP An_clc2
Ani_s_o
CALL ornPP
LD (Ao_adr+1),BC
Ani_vse
CALL NZ,EiPP
Ani_sm0 LD (Am_vol+1),A
XOR A
LD (Ao_dsp+1),A
LD A,(DE)
INC DE
JR Anism0U ;
Ani_smp RET Z ;
ADD A,A ;
Anism0U
CALL smpPP
LD (As_adr+1),BC
An_clc1 LD BC,#1020
An_clc2 LD A,(DE)
INC DE
ADD A,B
JR C,Ani_s_o
ADD A,C
JR C,Ani_smp
ADD A,B
JR C,Ani_vol
ADD A,B
JR C,Ani_vqe
ADD A,96
JR C,Ani_not
ADD A,B
JR C,Ani_orn
ADD A,48
JR C,Ani_vse
LD HL,A_eff+30
LD BC,As_note+1
CALL NPUSH
JR An_clc1
Ani_vqe JR Z,Ani_v1
DEC A
JR NZ,Ani_e0
LD A,(DE)
LD (Ai_qty+1),A
INC DE
JR An_clc2
Ani_e0 CALL EiPP
Ani_v1 LD (Am_vol+1),A
JR An_clc2
Ani_orn
CALL ornPP
LD (Ao_adr+1),BC
LD (Ao_dsp+1),A
JR An_clc1
Ani_not LD (As_note+1),A
XOR A
LD H,A
LD L,A
LD (As_dsp+1),A
LD (As_Nsl+1),A
LD (As_Esl+1),A
LD (Ao_dsp+1),A
LD (Asl_stp+1),A
LD (Avb_lok+1),A
LD (Avb_stp+1),A
;LD (Asl_dsp+1),HL
LD (As_dtn+1),HL
LD A,16
LD (As_Vsl+1),A
;JR LDB1
LD B,1
RET
;--- nota_B ---
Bni_vol JR NZ,Bni_v0
LD (Bvb_stp+1),A
DEC A
LD (Bvb_lok+1),A
RET
Bni_v0
DUP 4
ADD A,A
EDUP
LD (Bg_vol+1),A
JP Bn_clc2
Bni_s_o
CALL ornPP
LD (Bo_adr+1),BC
Bni_vse
CALL NZ,EiPP
Bni_sm0 LD (Bm_vol+1),A
XOR A
LD (Bo_dsp+1),A
LD A,(DE)
INC DE
JR Bnism0U ;
Bni_smp RET Z ;
ADD A,A ;
Bnism0U
CALL smpPP
LD (Bs_adr+1),BC
Bn_clc1 LD BC,#1020
Bn_clc2 LD A,(DE)
INC DE
ADD A,B
JR C,Bni_s_o
ADD A,C
JR C,Bni_smp
ADD A,B
JR C,Bni_vol
ADD A,B
JR C,Bni_vqe
ADD A,96
JR C,Bni_not
ADD A,B
JR C,Bni_orn
ADD A,C
JR C,Bni_noi
ADD A,B
JR C,Bni_vse
LD HL,B_eff+30
LD BC,Bs_note+1
CALL NPUSH
JR Bn_clc1
Bni_not LD (Bs_note+1),A
XOR A
LD H,A
LD L,A
LD (Bs_dsp+1),A
LD (Bs_Nsl+1),A
LD (Bs_Esl+1),A
LD (Bo_dsp+1),A
LD (Bsl_stp+1),A
LD (Bvb_lok+1),A
LD (Bvb_stp+1),A
;LD (Bsl_dsp+1),HL
LD (Bs_dtn+1),HL
LD A,16
LD (Bs_Vsl+1),A
LDB1 LD B,1
RET
_m2=$+2
Bni_noi LD (N_frq),A;GLOBALnoise
JR Bn_clc2
Bni_vqe JR Z,Bni_v1
DEC A
JR NZ,Bni_e0
LD A,(DE)
LD (Bi_qty+1),A
INC DE
JR Bn_clc2
Bni_e0 CALL EiPP
Bni_v1 LD (Bm_vol+1),A
JR Bn_clc2
Bni_orn
CALL ornPP
LD (Bo_adr+1),BC
LD (Bo_dsp+1),A
JR Bn_clc1
;--- nota_C ---
Cni_not LD (Cs_note+1),A
XOR A
LD H,A
LD L,A
LD (Cs_dsp+1),A
LD (Cs_Nsl+1),A
LD (Cs_Esl+1),A
LD (Co_dsp+1),A
LD (Csl_stp+1),A
LD (Cvb_lok+1),A
LD (Cvb_stp+1),A
;LD (Csl_dsp+1),HL
LD (Cs_dtn+1),HL
LD A,16
LD (Cs_Vsl+1),A
;JR LDB1
LD B,1
RET
Cni_vol JR NZ,Cni_v0
LD (Cvb_stp+1),A
DEC A
LD (Cvb_lok+1),A
RET
Cni_v0
DUP 4
ADD A,A
EDUP
LD (Cg_vol+1),A
JP Cn_clc2
Cni_s_o
CALL ornPP
LD (Co_adr+1),BC
Cni_vse
CALL NZ,EiPP
Cni_sm0 LD (Cm_vol+1),A
XOR A
LD (Co_dsp+1),A
LD A,(DE)
INC DE
JR Cnism0U ;
Cni_smp RET Z ;
ADD A,A ;
Cnism0U
CALL smpPP
LD (Cs_adr+1),BC
Cn_clc1 LD BC,#1020
Cn_clc2 LD A,(DE)
INC DE
ADD A,B
JR C,Cni_s_o
ADD A,C
JR C,Cni_smp
ADD A,B
JR C,Cni_vol
ADD A,B
JR C,Cni_vqe
ADD A,96
JR C,Cni_not
ADD A,B
JR C,Cni_orn
ADD A,48
JR C,Cni_vse
LD HL,C_eff+30
LD BC,Cs_note+1
CALL NPUSH
JR Cn_clc1
Cni_vqe JR Z,Cni_v1
DEC A
JR NZ,Cni_e0
LD A,(DE)
LD (Ci_qty+1),A
INC DE
JR Cn_clc2
Cni_e0 CALL EiPP
Cni_v1 LD (Cm_vol+1),A
JR Cn_clc2
Cni_orn
CALL ornPP
LD (Co_adr+1),BC
LD (Co_dsp+1),A
JR Cn_clc1
;---- special_effects_COM.xxxx ----
EiPP LD (Ei_form+1),A
LD A,(DE)
INC DE
LD (Ei_frq+2),A
LD A,(DE)
INC DE
LD (Ei_frq+1),A
LD A,16
RET ;16
Aef_dSm LD A,(DE) ;dsp_smp
INC DE
LD (As_dsp+1),A ;;si
RET
Bef_dSm LD A,(DE)
INC DE
LD (Bs_dsp+1),A ;;si
RET
Cef_dSm LD A,(DE)
INC DE
LD (Cs_dsp+1),A
RET
A_eff DW Aef_slT ;1xxx,2xxx - sld_tone
DW Aef_nsT ;3xxx - port_note
DW Aef_dSm ;4.xx - dsp_smp
DW Aef_dOr ;5.xx - dsp_orn
DW Aef_vib ;6.xx - vibrato
Aef_vib LD A,(DE)
INC DE
JR Aef_vjr
DW Eef_sld ;9xxx,Axxx - sld_env
DW eff_tmp ;B.xx - temp
Aef_vjr LD (Avb_sts+1),A;fix fr/st;;ist
LD (Avb_stp+1),A
LD A,(DE)
INC DE
LD (Avb_frq+1),A;fix st/fr;;ifr
RET
B_eff DW Bef_slT
DW Bef_nsT
DW Bef_dSm
DW Bef_dOr
DW Bef_vib
Bef_vib LD A,(DE)
INC DE
JR Bef_vjr
DW Eef_sld
DW eff_tmp
Bef_vjr LD (Bvb_sts+1),A;fix fr/st;;ist
LD (Bvb_stp+1),A
LD A,(DE)
INC DE
LD (Bvb_frq+1),A;fix st/fr;;ifr
RET
C_eff DW Cef_slT
DW Cef_nsT
DW Cef_dSm
DW Cef_dOr
DW Cef_vib
int_qty DB 1
A_qty DB 1
B_qty DB 1
C_qty DB 1
DW Eef_sld
DW eff_tmp
Cef_vib LD A,(DE)
INC DE
LD (Cvb_sts+1),A;fix fr/st
LD (Cvb_stp+1),A
LD A,(DE)
INC DE
LD (Cvb_frq+1),A;fix st/fr
RET
Aef_nsT
CALL Aef_slT
;LD (Asl_pfr+1),HL ;;pi
CALL GETHL
LD (Asl_tfr+1),HL ;;pi
LD (Asl_plk-1),A;port_on ;;pi_lok
LD HL,As_note+1 ;;si
LD A,(HL)
LD (Asl_not+1),A ;;pi
AnsQ EXA
LD (HL),A
LD B,0
RET
Bef_nsT
CALL Bef_slT
;LD (Bsl_pfr+1),HL ;;pi
CALL GETHL
LD (Bsl_tfr+1),HL ;;pi
LD (Bsl_plk-1),A ;;pi_lok
LD HL,Bs_note+1 ;;si
LD A,(HL)
LD (Bsl_not+1),A ;;pi
JR AnsQ
Cef_nsT
CALL Cef_slT
;LD (Csl_pfr+1),HL
CALL GETHL
LD (Csl_tfr+1),HL
LD (Csl_plk-1),A
LD HL,Cs_note+1
LD A,(HL)
LD (Csl_not+1),A
JR AnsQ
Aef_slT LD A,(DE)
LD (Asl_stp+1),A ;;pi
LD (Asl_sts+1),A
CALL IGETHL ;sld_ton
LD (Asl_tfr+1),HL ;;pi
LD (Avb_stp+1),A
LD A,Asl_sts-Asl_plk
LD (Asl_plk-1),A;port_off ;;pi
RET
Bef_slT LD A,(DE)
LD (Bsl_stp+1),A ;;pi
LD (Bsl_sts+1),A
CALL IGETHL
LD (Bsl_tfr+1),HL ;;pi
LD (Bvb_stp+1),A
LD A,Bsl_sts-Bsl_plk
LD (Bsl_plk-1),A ;;pi
RET
Cef_slT LD A,(DE)
LD (Csl_stp+1),A
LD (Csl_sts+1),A
CALL IGETHL
LD (Csl_tfr+1),HL
LD (Cvb_stp+1),A
LD A,Csl_sts-Csl_plk
LD (Csl_plk-1),A
RET
eff_tmp
LD A,(DE)
tab_vol
INC DE
LD (temp+1),A
RET
ornPP ADD A,A
ADD A,tba_orn-tba_smp
smpPP ADD A,tba_smp
LD L,A
LD C,(HL)
INC L
LD B,(HL)
XOR A
RET ;11
DUMMYORN
DUMMYSMP
tab_frq DS #C0
Eef_sld LD A,(DE) ;sld_env
LD (Esl_ist+1),A ;;stp
CALL IGETHL
LD (Esl_ids+1),HL ;;sds
LD A,6
LD (E_ins0),A
RET ;16
OUTI
OUT (C),L
LD B,E
DEC A
JR NZ,OUTER-2
RET ;10
Aef_dOr LD A,(DE) ;dsp_orn
INC DE
LD (Ao_dsp+1),A ;;oi
RET
Bef_dOr LD A,(DE)
INC DE
LD (Bo_dsp+1),A ;;oi
RET
Cef_dOr LD A,(DE)
INC DE
LD (Co_dsp+1),A
RET ;6
GETHL
EX DE,HL
LD E,(HL)
INC HL
LD D,(HL)
INC HL
EX DE,HL
XOR A
RET ;9
ADD A,L
LD L,A
;LD H,'A_eff
LD A,(HL)
INC L
LD H,(HL)
LD L,A
EX (SP),HL
LD A,(BC)
EXA
JP (HL) ;11
LENP=$-PLAYER
DISPLAY "SIZE=",LENP
T_m
DW _m1
DW _m2
DW _m3
DW _m4
DW _m5
DW _m6
DW _m7
DW _m8
DW _m9
DW _m10
DW _m11
DW _m12
DW _m13
DW _m14
T_m_l=$-T_m/2
ENDM
IF $-#8000
MUZ
P1
LOCAL
pp
ENDL
ORG #C000
P2
pp
ORG $
LD IX,#7000
LD HL,P1
LD DE,P2
LD BC,LENP
CP0 LD A,(DE)
SUB (HL)
JR Z,CPOK
CP #40
JR NZ,ERR
LD (IX),E
LD (IX+1),D
INC IX,IX
DEC BC
LD A,B
OR C
JR NZ,CP0
RET
LD DE,#5800
LD BC,768
LDIR
RET
ELSE
pp
ENDIF
/=== End Windows Clipboard ===/
Это плейер, использовавашийся в Wolf2004. Обрати внимание на адрес компиляции
по умолчанию и на двукратную компиляцию одного и того же куска. Плейер
playFAST.H тоже можешь с интересом посмотреть - там в метки подставляется
параметр макроса.
синтаксис ALASM - заслуга ALEM'а и KVA.Цитата:
MT> Я понимаю, что ты долго
MT> усовершенствовал ALASM. За это время подогнал его под себя как хотел
MT> или почти как хотел. Hо вот чем тебя синтаксис не устраивает, никак не
MT> пойму. Hу да ладно...
ага, компилируя в пакетном режиме :)Цитата:
DB>> опять-таки рисовать-музицировать под TR-DOS, писать в кроссасме,
DB>> сочинять
DB>> пцшные спецутилиты для вытаскивания ресурсов с TR-DOSных
DB>> графмузыкальных
DB>> трдшников и создания CP/M-овских отладочных трдшников, а при
DB>> отладке по
DB>> каждому чиху грузить/закрывать эмулятор, и не видеть меток
DB>> отлаживаемой
DB>> программы?
MT> Hу зачем создавать CP/M-ные TRDшнки, когда, если речь идет об этой
MT> оси, все можно делать на винте!
нужна возможность INCBIN'ить файлы из trdшника, ни больше, ни меньше.Цитата:
MT> А утилиты по "вытаскиванию ресурсов" итак есть. Если я все правильно
MT> понял и ты не имеешь ввиду что-то специфическое.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^Цитата:
DB>> Или кодить по кусочкам в аласме, а потом неизвестно как склеивать
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Цитата:
DB>> программу из кусочков в CP/M, причём непонятно, как отлаживать
см. подчёркнутое.Цитата:
DB>> загрузчик-выгрузчик и вообще работоспособность полученной сборки
DB>> (вспомним Гоблинов) в этом случае (под аласмом техника очень
DB>> простая -
DB>> файлы программы лежат на диске, движок ассемблируем и запускаем,
DB>> движок
DB>> грузит файлы на диске, тестируем, отлаживаем, если глючит -
DB>> перекомпилируем и т.д.)?
MT> Вообще-то я всегда предполагал, что это в любом нормально ассме так:
MT> компилируешь основной файл, он подгружает при ассемблировании все
MT> прописанные по INCBIN/INCLUDE и подобным командам все необходимое,
MT> если надо, отдельно компилируем оверлеи, которые потом будут
MT> подгружаться в страницы. Затем все запускаем и проверяем. Это возможно
MT> и в CP/M и в iS-DOS. Что здесь я не так
MT> понял?
CP/M с существующими пакетами программ - регресс по отношению в TR-DOS. iS-DOSЦитата:
MT> Hу опять-таки, разговор идет о том, что ты привык пользоваться
MT> определенным набором утилит, в том числе и написанных лично, что у
MT> тебя под ALASM накопилась большая библиотека заготовок и процедурок. С
MT> этой точки зрения, конечно, TR-DOS тебе не заменит ни одна, даже самая
MT> наикрутейшая ОСь. Hо это не довод для отказа от прогресса. :)
понятно, rar'ы отменяем... ну, шут с ними...Цитата:
MT> 1) Файлы на диске должны быть перемещаемыми (и никаких бейсиковских
MT> моноблоков), никакой привязки к конкретным координатам. Работа с
MT> дисков только на файловом уровне! Длина отдельных файлов желательно не
MT> должна быть больше 32Кб (это не обязательное условие. Просто оно
MT> сильно облегчит жизнь), а для страничных оверлеев - 16К.
можно поточнее?Цитата:
MT> 2) Структура проги в ОЗУ: не использовать некоторые страницы и участки
MT> основного адресного пространства (или временно сохранять его
MT> содержимое, а прислучае восстанавливать), работать с вектором
MT> прерываний и стеком аккуратней, по определенным соглашениям.
ты начал говорить про скорость загрузки trdшников в память, а я поддержалЦитата:
MT>>> Может быть есть возражение о тормознусти CP/M? Да, действительно
MT>>> эта
MT>>> ОС тормоз еще тот. К примеру, TRD-образ (т.е. 640Кб) заливался в
MT>>> ее
MT>>> среде с винта в ОЗУ целых 40-секунд (специально замерял
MT>>> секундомером)!
MT>>> Тогда как тот же образ из-под TASiS - всего 10 секунд! Разница в
MT>>> 4
MT>>> раза!
DB>> в DNA 30 секунд без турбо, но ZET-9 уже доработал ПЗУ Матлаша, и
DB>> теперь у
MT> Кстати, уже давно с начала текста порывался спросить, а причем здесь
MT> DNA? Речь же про игры на ATM с ее ОСями шла!
разговор :)
Можешь, он там отдельным исходником. Исходники доступны (могу списать). Я ужеЦитата:
DB>> него 0 секунд (а я ещё не перешил ПЗУ). 30-секундный тормоз
DB>> исправим
DB>> (можно перекомпилировать ядро с другим драйвером винта, но не
DB>> нужно, т.к.
DB>> ZET-9 ещё живой и имеет свои планы по наворачиванию системы).
MT> Вообще-то насколько эта система универсальна, раз имеются проблемы
MT> даже с заменой драйвера? Могу я просто заменить его на ATMовский
MT> драйвер и запустить у себя?
пробовал менять драйвер в одной из старых версий.
Сейчас DNA имеет такую идеологию, что драйвера компилируются в ядро. Можешь
предложить ZET-9 другой вариант. Его мыло zet9_zx()mail.ru.
Игры бывают разные. Игра размером 4M должна ставиться на винт. Это аксиома (дляЦитата:
DB>> Только DNA OS на ZX поддерживает FAT. Больше никакая система.
DB>> Разделы
MT> Это хорошо, конечно. Hо какая это разница для гиптетической игры?
амижников система аксиом другая Ж)). А разговор шёл о выборе системы, которую
следует подерживать при разработке игр.
Hаше дело правое, наши темы тоже :)Цитата:
MT> Hе
MT> перепрыгивай на левые темы.
Среда абсолютно такая же, как в TR-DOS. Т.к. DNA OS, кроме файловой системыЦитата:
MT> Я понимаю, что ты сейчас увлеченновой
MT> ОСью. Hо оставим ее обсуждение для другой ветки. В контексте
MT> разработки разработки игрушек пока что это упоминание не к месту.
MT> Кстати, а как обстоит дело со средой разработки у DNA OS?
FAT, поддерживает ещё и файловую систему TR-DOS. Через те же функции.
Скажи это Амосову, он тебя переубедит насчёт кажущейся лёгкости :)Цитата:
DB>> других систем (iS-DOS, CP/M, MOA) даже невозможно по-человечески
DB>> скопировать, не говоря уж об их ограничениях.
MT> IS-DOSные разделы достаточно легко копируются - создается их
MT> IMG-образ. Потом он режется на части, чтобы влезть на MS-DOS дискетки,
MT> переносится на пЦ, там склеивается и
MT> просматривается/редактируется/копируется пофайлово через FAR
Если со времён SN и AMD (1997-99) не написали нормальный пцшный коммандер дляЦитата:
MT> ЗЫ: А так, конечно, давно пора написать командер (или доработать
MT> существующие, например, ZX-Navigator или плагины к FAR), чтобы, будучи
MT> настроенным как надо на нужные разделы, он бы открывал CP/Mные и
MT> iS-DOSные разделы на подключенном к пЦ как SLAVE спековском винте.
MT> Обращаюсь к народу: как вам такая идея иесть ли кому взяться? Я в
MT> программировании под пЦ - ноль.
настолько общеизвестными, что известны даже авторам), то чего надеяться на
коммандеры под другие системы...
- A.Coder [Wolf3d2004 InfoGuide7 ACEdit96 ACN42 PT3695 Chip13 HexFill HDDoct6]
[Ansi04 8col12 ZXRar27UnR59 Jpg042 CacVox1 Dbs07 Gluk61R PC21 Alasm50f2 Sts70i]
... ZX Spectrum today
