Rev 8 | Blame | Compare with Previous | Last modification | View Log | Download
on_intpush afpush bcpush depush hlpush ixpush iyex af,af'push afld a,(_frameready)or ajr z,on_int_notreadyld hl,(_readyattrbuf) ;_attrbufld de,0x5800ld bc,768ldirxor ald (_frameready),aon_int_notreadycall PLAYld hl,(_timer)inc hlld (_timer),hlpop afex af,af'pop iypop ixpop hlpop depop bcpop afeiretborderborder.A.=$+1ld a,0out (0xfe),arethalterhaltretrandomseed=$+1ld hl,0x0564;0x0562ld bc,0x0305add hl,bcld a,(hl)inc hrrcarrcarrcarrcaxor (hl)inc hrrcaxor (hl)res 5,hld (seed),hlretpokenetpokenet.A.=$+2 ;rowpokenet.B.=$+1 ;colld hl,0ld bc,_netaddradd hl,bcpokenet.C.=$+1 ;datald (hl),0retpeeknetpeeknet.A.=$+2 ;rowpeeknet.B.=$+1 ;colld hl,0ld bc,_netaddradd hl,bcld a,(hl)retpokenetcolorpokenetcolor.A.=$+2 ;rowpokenetcolor.B.=$+1 ;colld hl,0ld bc,_netcoloraddradd hl,bcpokenetcolor.C.=$+1 ;datald (hl),0retpeeknetcolorpeeknetcolor.A.=$+2 ;rowpeeknetcolor.B.=$+1 ;colld hl,0ld bc,_netcoloraddradd hl,bcld a,(hl)retprchprch.A.=$+1 ;addrld de,0prch.B.=$+1 ;chld hl,0ld bc,font;-32add hl,bc;add a,a;ld l,a;ld h,15;add hl,hl;add hl,hlld b,8prch0.ld a,(hl);rrca;or (hl)ld (de),ainc h;linc ddjnz prch0.ret;юяЁхфхы хь ЎтхЄ ш фтшурхь _row (_col);хёыш hgt==_curhgt, Єю яюы ш _row++ (_col--);хёыш hgt>_curhgt, Єю ёЄхэр;хёыш hgt<_curhgt, Єю _row++ (_col--) ш ъЁєЄшьё;_row,_col єърч√тр■Є эр Єю, ўЄю ь√ тшфшь т ¤Єющ ъыхЄъх, шыш эр ьє;c=rowstep;b=curcolor;a=curhgt;hl=rowcoltestcube.crosscolnc;curhgt > hgt ; ьрinc h;rowdec c ;rowstep=TRUEtestcube.crossrow;\ - яхЁхёхўхэшх _row, фры№°х шф╕ь яю _col;rowstep == TRUEcp (hl);hgt;curhgt <= hgt ;ёЄхэр яхЁхёхўхэшх rowLD b,_clRed ;curcolorret zret c;curhgt > hgt ; ьрdec l;colinc c ;rowstep=FALSEdec a;d;curhgt;JP testcube.crosscoltestcube_s;backslash==FALSE;inc c;SUB c;[_rowstep.];dec c;ret nz ;ў╕ЄэюёЄ№ эх ёююЄтхЄёЄтєхЄ, Єръ ўЄю уЁрэшЎ√ эх сєфхЄtestcube.crosscol;/ - яхЁхёхўхэшх _col, фры№°х шф╕ь яю _row;rowstep == FALSEcp (hl);hgtjr NZ,testcube.crosscolnz;curhgt == hgt ;яюы (Єюы№ъю яЁш яЁртшы№эющ ў╕ЄэюёЄш!)set 7,lld b,(hl);curcolorres 7,linc h;rowdec c ;rowstep=TRUErettestcube.crosscolnzjr NC,testcube.crosscolnc;curhgt < hgt ;ёЄхэр яхЁхёхўхэшх _colinc a;d;curhgt ;ЄхяхЁ№ ў╕ЄэюёЄ№ _rowstep эх ёююЄтхЄёЄтєхЄ _backslash!LD b,_clBlue ;curcolorrettestcube_bs.crossrownc;curhgt > hgt ; ьрdec l;colinc c ;rowstep=FALSEtestcube_bs.crosscol;/ - яхЁхёхўхэшх _col, фры№°х шф╕ь яю _row;rowstep == FALSEcp (hl);hgt;curhgt <= hgt ;ёЄхэр яхЁхёхўхэшх _colLD b,_clBlue ;curcolorret zret c;testcube_bs.ba;curhgt > hgt ; ьрinc h;rowdec c ;rowstep=TRUEdec a;d;curhgt;JP testcube_bs.crossrowtestcube_bs;backslash==TRUE;inc c;SUB c;[_rowstep.];dec c;ret z ;ў╕ЄэюёЄ№ эх ёююЄтхЄёЄтєхЄ, Єръ ўЄю уЁрэшЎ√ эх сєфхЄtestcube_bs.crossrow;\ - яхЁхёхўхэшх _row, фры№°х шф╕ь яю _col;rowstep == TRUEcp (hl);hgtjr NZ,testcube_bs.crossrownz;curhgt == hgt ;яюы (Єюы№ъю яЁш яЁртшы№эющ ў╕ЄэюёЄш!)set 7,lld b,(hl);curcolorres 7,ldec l;colinc c ;rowstep=FALSErettestcube_bs.crossrownzjr NC,testcube_bs.crossrownc;curhgt < hgt ;ёЄхэр яхЁхёхўхэшх rowinc a;d;curhgt ;ЄхяхЁ№ ў╕ЄэюёЄ№ _rowstep эх ёююЄтхЄёЄтєхЄ _backslash!LD b,_clRed ;curcolorretcubecolumn;lx=y;hx=oldcolor;b=curcolor;c=rowstep;hl=rowcol;de=addrld hl,(_col)ld a,(_row)add a,_netaddr>>8ld h,a;ld hx,0x07;oldcolorld b,0x07;curcolorLD A,[_addr]AND 0x02JR Z,cubecolumn_bs.LD c,0;[_rowstep],Axor a ;curhgtLD lx,+(_hgt-_scrhgt)/2 ;ycubecolumn0inc cdec cCALL z,testcube_sLD hx,b;oldcolor=curcolorinc cdec cCALL nz,testcube_bsLD hx,b;oldcolor=curcolordec lx ;yJP NZ,cubecolumn0LD de,[_addr]LD lx,_scrhgt/2 ;ycubecolumn1inc cdec cCALL z,testcube_sex af,af'LD A,b;[_curcolor]add a,aadd a,aadd a,aADD A,hx;oldcolorLD [de],Ainc eLD [de],Ares 5,eLD hx,b;oldcolor=curcolorex af,af'inc cdec cCALL nz,testcube_bsex af,af'LD A,b;[_curcolor]add a,aadd a,aadd a,aADD A,hx;oldcolorLD [de],Adec eLD [de],Ald a,esub 0x20ld e,ajr nc,$+3dec dLD hx,b;oldcolor=curcolorex af,af'dec lx ;yJP NZ,cubecolumn1RETcubecolumn_bs.LD c,0xff;[_rowstep],Axor a ;curhgtLD lx,+(_hgt-_scrhgt)/2 ;ycubecolumn_bs0inc cdec cCALL nz,testcube_bsLD hx,b;oldcolor=curcolorinc cdec cCALL z,testcube_sLD hx,b;oldcolor=curcolordec lx ;yJP NZ,cubecolumn_bs0LD de,[_addr]LD lx,_scrhgt/2 ;ycubecolumn_bs1inc cdec cCALL nz,testcube_bsex af,af'LD A,b;[_curcolor]add a,aadd a,aadd a,aADD A,hx;oldcolorLD [de],Ainc eLD [de],Ares 5,eLD hx,b;oldcolor=curcolorex af,af'inc cdec cCALL z,testcube_sex af,af'LD A,b;[_curcolor]add a,aadd a,aadd a,aADD A,hx;oldcolorLD [de],Adec eLD [de],Ald a,esub 0x20ld e,ajr nc,$+3dec dLD hx,b;oldcolor=curcolorex af,af'dec lx ;yJP NZ,cubecolumn_bs1RETgetayreggetayreg.A.=$+1ld a,0x00getayrega.ld bc,0xfffdout (c),ain a,(c)retjumpayjumpay.A.=$+1jumpay.tonereg=$+1LD A,0CALL getayrega.LD L,ALD A,[jumpay.tonereg]inc aCALL getayrega.LD h,Apush hl;LD [jumpay.frq],hlLD A,0x07 ;tone/noise mask regCALL getayrega.cpljumpay.C.=$+1jumpay.mask=$+1AND 0JP Z,jumpay.e. ;both maskedjumpay.B.=$+1jumpay.volreg=$+1LD A,0CALL getayrega.LD lx,Acp 0x10JP C,jumpay.g.LD lx,0x04JP jumpay.h.jumpay.g.cp 0x0fJP NZ,jumpay.i.LD lx,0x06JP jumpay.j.jumpay.i.cp 0x0eJP NZ,jumpay.k.LD lx,0x05JP jumpay.l.jumpay.k.cp 0x0dJP NZ,jumpay.m.LD lx,0x04JP jumpay.n.jumpay.m.cp 0x0cJP NZ,jumpay.o.LD lx,0x03JP jumpay.p.jumpay.o.cp 0x0bJP NZ,jumpay.q.LD lx,0x02JP jumpay.r.jumpay.q.cp 0x09JP C,jumpay.s.LD lx,0x01JP jumpay.t.jumpay.s.LD lx,0x00jumpay.t.jumpay.r.jumpay.p.jumpay.n.jumpay.l.jumpay.j.jumpay.h.JP jumpay.f.jumpay.e.LD lx,0x00jumpay.f.;LD A,[jumpay.volreg];SUB 0x09;JP Z,jumpay.u.LD A,lxADD A,aLD lx,Ajumpay.u.pop hl;LD HL,[jumpay.frq]LD DE,8ADD HL,DE;LD [jumpay.frq],HL;LD A,0x02LD hx,0x02;[jumpay.y],A;LD HL,[jumpay.frq]jumpay.w.LD DE,1000LD A,LSUB ELD A,HSBC A,DJP NC,jumpay.x.ld d,hld e,lsrl drr esrl drr eADD HL,DE;LD HL,jumpay.y;INC [HL]inc hx;yJP jumpay.w.jumpay.x.LD A,[jumpay.volreg]SUB 0x08JP NZ,jumpay.y.LD A,hx;[jumpay.y]srl asrl aLD L,ALD H,0XOR ASUB LLD L,ASBC A,HSUB LLD H,ALD [jumpay.x],HLJP jumpay.ba.jumpay.y.LD A,[jumpay.volreg]SUB 0x0aJP NZ,jumpay.bb.LD A,hx;[jumpay.y]srl asrl aLD L,ALD H,0LD [jumpay.x],HLJP jumpay.bc.jumpay.bb.LD HL,-0LD [jumpay.x],HLjumpay.bc.jumpay.ba.LD a,[jumpay.x]add a,hx;[jumpay.y]LD [_row],ALD E,hx;yLD D,0LD BC,[jumpay.x]LD A,ESUB CLD E,ALD A,DSBC A,BLD D,ALD A,0x19SUB ELD [_col],ALD [peeknet.B.],ALD A,[_row]LD [peeknet.A.],ACALL peeknetSUB lxret ncLD A,[_row]LD [pokenet.A.],ALD A,[_col]ADD A,0x40LD [pokenet.B.],ALD A,lxLD [pokenet.C.],Ajp pokenetjumpay.xdw 0decay;ёярфхэшх рэрышчрЄюЁр 80000 ЄръЄют (+ эшцх ъюяшЁютрэшх);ьюцэю єёъюЁшЄ№ т 2 Ёрчр, яюЄюьє ўЄю яюыютшэр эх яюярфрхЄ т ¤ъЁрэ (эю ёыюцэр ЇюЁьр)ld h,0x01+(_netaddr>>8)ld c,0x15decay0ld l,0x41ld d,hld e,lset 7,eld b,0x19decay00ld a,(hl)inc ainc hcp (hl)dec hjr C,decaypoke ;updec lcp (hl)inc ljr C,decaypoke ;updec hcp (hl)inc hjr C,decaypoke ;upinc lcp (hl)dec ljr C,decaypoke ;updec ajr Z,decaypoke ;as isdec a ;decaydecaypoke;set 7,l;or a;jr nz,$+3;inc ald (de),a;res 7,linc einc ldjnz decay00inc hdec cjp nz,decay0;ъюяшЁютрэшх 40000 ЄръЄют - ьюцэю єёъюЁшЄ№ т 2 Ёрчр, яюЄюьє ўЄю яюыютшэр эх яюярфрхЄ т ¤ъЁрэ (эю ёыюцэр ЇюЁьр)ld h,0x01+(_netaddr>>8)ld hx,0x15decaycopyback0ld l,0x41ld d,hld e,lset 7,lld bc,0x19ldirld l,0x41ld e,0x01ld bc,0x193fdecaycopyback00ld a,(hl)rra;sra arra;sra aand c ;0x3finc ald (de),ainc linc edjnz decaycopyback00inc hdec hxjp nz,decaycopyback0retclearnetld hl,_netaddrld d,hld e,linc deld bc,0x15ffld (hl),l;0ldirretdrawcubetexture;halt;ld hl,0x5800;ld d,h;ld e,l;inc de;ld bc,0x2ff;ld (hl),l;0;ldirld hl,0x4000ld d,hld e,linc deld bc,0x17ffld (hl),l;0ldir;LD HL,0x4000;LD [drawcubetexture.addr],HLLD hx,0x00 ;ydrawcubetexture.j.LD A,hx;[drawcubetexture.y]cp _scrhgtJP NC,drawcubetexture.k.LD a,hx ;yadd a,aadd a,aadd a,aadd a,aadd a,aLD L,ALD A,0x18AND hx ;yadd a,0x40LD H,ALD [drawcubetexture.addry],hlLD lx,0x00 ;xdrawcubetexture.l.LD A,lx;[drawcubetexture.x]SUB _widJP NC,drawcubetexture.m.drawcubetexture.addry=$+1LD HL,0;LD A,[drawcubetexture.x]LD E,lx ;xLD D,0ADD HL,DELD b,0x08LD A,lx;[drawcubetexture.x]rraXOR hx;[drawcubetexture.y]rraJP c,drawcubetexture.n.LD de,0x0001drawcubetexture.p.LD [hl],dinc lLD [HL],Edec lscfrl erl dscfrl erl dinc hdjnz drawcubetexture.p.drawcubetexture.q.JP drawcubetexture.o.drawcubetexture.n.LD de,0x8000drawcubetexture.r.ld (hl),dinc lLD [HL],Edec lscfrr drr escfrr drr einc hdjnz drawcubetexture.r.drawcubetexture.o.;LD A,[drawcubetexture.x];ADD A,0x02;LD [drawcubetexture.x],Ainc lx ;xinc lx ;xJP drawcubetexture.l.drawcubetexture.m.;LD HL,drawcubetexture.y;INC [HL]inc hx ;yJP drawcubetexture.j.drawcubetexture.k.ret