;z80 ;zx-spectrum ;assembler ; FULSCREEN PART -=LD=- X-TRADE ; ORG #6000 DI LD SP,#6000 CALL DPC,SYN LD HL,BUF256 LD BC,#C000 S0 LD (HL),C:INC L:DJNZ S0 LD HL,MINT:LD (#7F80),HL ; XOR A:RET C M0 EI:HALT LD HL,(DPOS) INC HL LD (DPOS),HL JP M0 MINT LD (USP),SP ; NOP CALL PLAY LD DE,(DPOS):OR A LD HL,#0040:SBC HL,DE LD A,0 JP NC,MINTB:OR A LD HL,#00FE:SBC HL,DE JP NC,MINTO:OR A LD HL,#00FF:SBC HL,DE JP NC,REST:OR A LD HL,#0200:SBC HL,DE JP NC,MINTQ:OR A LD A,(DPOS+1):CP #FF RLA:AND 1:DEC A:CPL LD B,A LD A,(DPOS):AND B LD (DPOS),A .7 NOP MINTM LD A,(DPOS):CALL SCROLL LD DE,3*7 MINT0 DEC DE:LD A,D:OR E NOP:NOP:JP NZ,MINT0 LD A,(DPOS):AND #3F LD B,A:RRA JR C,MINT1 LD HL,TABLE1 LD SP,#5900 LD A,#50 JR MINT2 MINT1 JR NC,$ LD HL,TABLE1+8 LD SP,#D900 LD A,#5F MINT2 OUT (#FD),A LD A,B:AND #06 LD E,A:LD D,0:ADD HL,DE LD A,(HL):INC HL LD H,(HL):LD L,A PUSH HL LD A,B:RRA:RRA AND #0E:LD E,A LD HL,TABLE1+16 ADD HL,DE LD A,(HL):LD LX,A:INC HL LD A,(HL):LD HX,A EXX LD HL,(USTR):LD A,(HL) INC A LD HL,BUF256+192-8-1 JR Z,MINT2A JR MINT2B MINT2A LD H,2 MINT2B EXX LD C,#FE LD B,(IX+31) LD D,(IX+32) LD A,(IX+25) LD H,(IX+26) LD L,(IX+27) LD E,#80 LD IY,BUF3 OR A RET MINT3 LD A,0:OUT (#FE),A LD SP,(USP) RET MINTQ LD (USP),SP LD A,(DPOS):LD D,A .4 RRCA AND #0E:LD L,A:LD H,0 LD BC,TBQCOL:ADD HL,BC LD A,(HL):LD (QCOL0),A LD C,A:INC HL LD A,(HL):LD (QCOL1),A LD B,A LD A,D:AND #1F:LD D,A SUB 24:JR NC,MINTQ0 LD A,B MINTQ0 LD B,A RLCA:RLCA:RLCA OR B:LD L,A:LD H,A LD B,24:LD SP,#5B00 MINTQ1 .16 PUSH HL DJNZ MINTQ1 LD SP,(USP) LD A,D CP 24:JR NC,MINTQ3 LD D,A LD A,C:OUT (#FE),A LD A,D:LD C,A ADD A,A:LD B,A LD A,46:SUB B LD B,A ADD A,A ADD A,A:LD D,A SUB B:ADD A,D LD E,A LD A,0:ADC A,0 LD D,A .4 NOP XOR A:RET C LD HL,4*7+5 ADD HL,DE:EX DE,HL MINTQ2 DEC DE:LD A,D:OR E NOP:NOP:JP NZ,MINTQ2 LD A,C ADD A,A:ADD A,104 LD D,1:CALL CRM2 EX DE,HL:LD IX,DE LD A,27:SUB C LD D,2:CALL CRM2 EX DE,HL:LD IY,DE LD A,27:SUB C LD D,0:CALL CRM2 EX DE,HL LD A,C:ADD A,A,A,A ADD A,192 LD B,0:RL B:LD C,A SLA C:RL B LD HL,BUF570+570-2 SBC HL,BC LD SP,HL EX DE,HL LD A,(QCOL1):LD B,A LD A,(QCOL0) LD C,#FE RET MINTQ3 SUB 24:OUT (#FE) XOR A:RET C RET MINTQE LD SP,(USP) LD A,0 RET MINTC JP (HL) MINTB LD A,COL0:OUT (#FE),A XOR A:RET C:RET REST INC DE LD A,BANKM0:OUT (#FD),A LD HL,#C000,DE,#4000 CALL REST1 LD HL,#C01E:LD DE,#401E CALL REST1 LD HL,#D0C0,DE,#50C0 CALL REST1 LD HL,#D0DE,DE,#50DE CALL REST1 LD H,COL1+8*COL1:RET NZ LD L,H LD (#5800),HL LD (#581E),HL LD (#5820),HL LD (#583E),HL LD (#5AC0),HL LD (#5ADE),HL LD (#5AE0),HL LD (#5AFE),HL RET NZ LD A,0:LD (PHASE),A RET REST1 LD A,2 REST2 EXA LD B,8 REST3 LD A,(HL):LD (DE),A INC L,E LD A,(HL):LD (DE),A DEC L,E INC H:INC D DJNZ REST3 LD BC,#F820 ADD HL,BC EX DE,HL ADD HL,BC EX DE,HL EXA DEC A:JR NZ,REST2 RET MINTO LD A,COL0:OUT (#FE),A LD A,BANK2:OUT (#FD),A LD DE,22*7 MINTO0 DEC DE:LD A,D:OR E NOP:NOP:JP NZ,MINTO0 LD A,(DPOS):AND #1F CP #10:JR NC,MINTO1 NOP:NOP:JR MINTO2 MINTO1 LD E,A:LD A,#1F:SUB E MINTO2 ADD A,A:LD E,A,D,0,H,D ADD A,A,A,A,A,A:LD L,A ADD HL,HL,HL,HL,HL,DE LD DE,BUFADR:ADD HL,DE LD E,(HL):INC HL LD D,(HL):INC HL EX DE,HL:LD SP,HL LD HL,#4000,IX,#57E0 LD C,2 MINTO4 LD B,8 MINTO5 LD A,(DE):INC DE LD (HL),A,(IX),A:INC L LD A,(DE):INC DE LD (HL),A,(IX+1),A LD A,L:OR #1F:LD L,A LD A,LX:OR #1F:LD LX,A LD A,(DE):INC DE LD (HL),A,(IX),A:DEC L LD A,(DE):INC DE LD (HL),A,(IX-1),A LD A,L:AND #E0:LD L,A LD A,LX:AND #E0:LD LX,A INC H:DEC HX DJNZ MINTO5 LD A,C LD BC,#F820:ADD HL,BC LD BC,#07E0:ADD IX,BC LD C,A:DEC C JR NZ,MINTO4 LD H,COL0+8*COL1:LD L,H LD (#5800),HL LD (#581E),HL LD (#5820),HL LD (#583E),HL LD (#5AC0),HL LD (#5ADE),HL LD (#5AE0),HL LD (#5AFE),HL LD D,COL1:LD E,COL0 LD C,#FE XOR A:RET C RET MINTOE LD SP,(USP) INC DE RET SCROLL LD (USPS),SP ADD A,A:AND #02:OR #55 OUT (#FD),A LD A,(MPOS) ADD A,12:AND #1F LD L,A:LD H,0 LD DE,TBJUMP ADD HL,DE LD A,(DPOS+1):CP 3 JR NC,SR0 LD A,12:JR SR0A SR0 LD A,(HL):LD A,(HL) SR0A LD (PY),A .3 RLCA LD L,A:LD H,0:ADD HL,HL LD DE,BUF784:ADD HL,DE EX DE,HL LD HL,24*16:ADD HL,DE LD (HL),#FD:INC HL LD (HL),#E9 EX DE,HL LD IY,SR1:LD SP,BUF256 JP (HL) SR1 EX DE,HL LD (HL),#22:DEC HL LD (HL),#E1 LD A,(PY):LD C,A ADD A,A,A,A,A,A:SUB C LD C,A:LD B,0 LD HL,BUF343 ADD HL,BC:LD (HL),#E9 EX DE,HL:LD BC,0 LD HL,SR2 JP BUF343 SR2 EX DE,HL:LD (HL),#31 LD A,(PY):ADD A,24 LD E,A:LD D,0 ADD A,A,A,A LD L,A:LD H,D ADD HL,HL:SBC HL,DE LD DE,BUF343:ADD HL,DE EX DE,HL:LD IY,DE LD HL,SR3 JP (IY) SR3 LD SP,(USPS) LD A,BANKM0:OUT (#FD),A LD HL,(USTR) LD A,(HL):ADD A,A LD L,A:LD H,0 LD DE,TBFONT:ADD HL,DE LD E,(HL):INC HL LD D,(HL):EX DE,HL LD C,(HL):INC HL LD A,(SBIT):LD B,A PUSH BC ADD A,A:ADD A,B LD C,A:LD B,0 ADD HL,BC LD DE,BUF3:LD C,3:LDIR POP BC LD A,B:INC A CP C:JR Z,SCRL3 LD B,3 DJNZ $ INC DE,DE JR SCRL5 SCRL3 LD HL,(USTR) LD A,(HL):INC A JR Z,SCRL6 INC HL:LD (USTR),HL XOR A SCRL5 LD (SBIT),A RET SCRL6 LD B,2 DJNZ $ INC DE RET ;******************************* MEIRET EI:RET ; ":______ DPC ; LD A,#50 ; LD (BANK),A:OUT (#FD),A ; LD HL,#5B00:LD DE,MEIRET ; CALL SETINT:EI LD HL,#5800,DE,#5801 LD BC,#02FF,(HL),L:LDIR LD HL,LTBBASE LD DE,TBBASE LD BC,ELTBB-LTBBASE LDIR LD A,BANKM0 LD (BANK),A:OUT (#FD),A LD HL,SCR0:LD DE,#C000 LD BC,#1800:LDIR PUSH DE LD BC,ELFONT-LFONT LDIR PUSH DE LD HL,LMUS LD BC,ELMUS-LMUS LDIR LD A,#57 LD (BANK),A:OUT (#FD),A LD HL,SCR1:LD DE,#C000 LD BC,#1800:LDIR LD IY,TABLE1 LD BC,TBBASE LD HL,#8000,(AMAIN),HL LD DE,#1A04,A,BANK0 CALL DPC2 LD DE,#1A05,A,BANK1 CALL DPC2 LD HL,(AMAIN) CALL DPCC0 LD A,BANK2 LD (BANK),A:OUT (#FD),A LD IX,TABLEA LD HL,BUFDEMO LD IY,BUFADR LD B,16 DPC0 PUSH BC:CALL CRT:POP BC DJNZ DPC0 LD HL,BUF570 LD DE,MINTC LD B,284/2 DPC1 LD (HL),E:INC HL LD (HL),D:INC HL LD (HL),E:INC HL LD (HL),D:INC HL DJNZ DPC1 LD (HL),MINTQE]:INC HL LD (HL),MINTQE[ LD DE,TBASE LD HL,TWAIT LD A,24 DPT1 EXA:XOR A:LD B,25 DPT2 LD (DE),A:INC E LD (DE),A:INC E DJNZ DPT2 LD C,(HL):INC HL LDIR LD A,E:OR #3F:LD E,A INC DE EXA:DEC A:JR NZ,DPT1 LD A,BANKM0 LD (BANK),A:OUT (#FD),A POP HL LD BC,ELMUS-LMUS LD DE,MUS:LDIR ; HALT LD HL,#7E00 LD DE,MEIRET CALL SETINT ; WAIT PATTERN ; DI LD HL,MUS+#051B LD (HL),#C3:INC HL LD (HL),WR]:INC HL LD (HL),WR[:INC HL XOR A:LD (MUS+#030E),A LD HL,#FFFF,(MPOS),HL CALL MUS LD A,BANKM0 LD BC,#0200:CALL DPCM LD A,BANKM1 LD BC,#0400:CALL DPCM LD HL,0:LD (MPOS),HL LD A,BANKM0:OUT (#FD),A LD HL,#C000,DE,#4000 LD BC,#1800:LDIR POP DE:LD IX,TBSYM DPF1 LD A,(IX):INC IX CP #FF:JR Z,DPF3 EXA LD A,(IX):INC IX ADD A,A:LD C,A:LD B,0 LD HL,TBFONT:ADD HL,BC EXA DPF2 EXA LD (HL),E:INC HL LD (HL),D:INC HL LD A,(DE):INC DE LD C,A:ADD A,A,A,C LD C,A EX DE,HL:ADD HL,BC EX DE,HL EXA DEC A:JR NZ,DPF2 JR DPF1 DPF3 LD HL,BUF343 LD DE,#C834 LD BC,#30C5 DPS1 LD (HL),#31:INC HL LD (HL),E:INC HL LD (HL),D:INC HL LD (HL),C:INC HL LD (HL),C:INC HL LD (HL),C:INC HL LD (HL),C:INC HL INC D:LD A,D:AND 7 JR NZ,DPS2 LD A,E:ADD A,#20:LD E,A LD A,D:SUB 8:LD D,A DPS2 DJNZ DPS1 LD (HL),#E9 LD HL,BUF784 LD DE,#C82C LD C,#31 DPS3 PUSH DE LD B,4 DPS4 LD (HL),#E1:INC HL LD (HL),#22:INC HL LD (HL),E:INC HL LD (HL),D:INC HL INC E,E DJNZ DPS4 POP DE INC D:LD A,D:AND 7 JR NZ,DPS5 LD A,E:ADD A,#20:LD E,A LD A,D:SUB 8:LD D,A DPS5 DEC C:JR NZ,DPS3 RET WR LD DE,(MPOS) LD BC,14 LDDR LD (MPOS),DE XOR A LD (MUS+#0233),A LD (MUS+#0239),A RET DPCM OUT (#FD),A LD HL,#FFFF,(MPOS),HL DPCM1 PUSH BC CALL MUS+6 POP BC DEC BC:LD A,B:OR C JR NZ,DPCM1 RET DPC2 LD H,A AND #F7 LD (BANK),A:OUT (#FD),A LD A,H EXA LD (LRCOL),DE LD HL,#C000,(ABANK),HL LD DE,TBBASE LD A,(BC):INC BC:LD L,A LD A,(BC):INC BC:LD H,A ADD HL,DE:LD (BSC),HL LD A,(BC):INC BC:LD L,A LD A,(BC):INC BC:LD H,A ADD HL,DE:LD (BLR),HL XOR A DPC3 LD HL,(AMAIN) LD (IY),L:INC IY LD (IY),H:INC IY PUSH IY LD LY,A:EXA:LD HY,A LD A,(BC),L,A:INC BC LD A,(BC),H,A:INC BC ADD HL,DE:PUSH HL LD A,(BC),L,A:INC BC LD A,(BC),H,A:INC BC ADD HL,DE:LD (BDW),HL POP IX PUSH DE,BC CALL DPC4 LD A,HY:EXA:LD A,LY POP BC,DE,IY INC A:CP 4:JR NZ,DPC3 RET DPC4 XOR A:LD (NSCRL),A PUSH IX CALL DPSCR POP IX LD HL,(AMAIN) LD D,45 CALL DPUD LD IX,(BLR),BC,(LRCOL) LD A,224:SUB D:LD D,A CALL DPLR LD A,224:SUB D:LD D,A LD IX,(BDW) CALL DPUD LD A,D:ADD A,16 CALL PS DPC5 LD (HL),#C3:INC HL LD (HL),MINT3]:INC HL LD (HL),MINT3[:INC HL LD (ABANK),HL RET ;******************************* DPSCR LD IX,(BSC) LD HL,BUF768 PUSH HL DPSC1 LD B,(IX):INC IX INC B:JR Z,DPSC10A:DEC B LD A,(IX):INC IX CP #FF:JR Z,DPSC10 ADD A,LY:RRA:RRA:AND #07 LD C,A LD A,(IX):INC IX ADD A,LY:RRA:RRA:AND #07 CP C :JR Z,DPSC9 SUB C:JR NC,DPSC7 CP -7 JR Z,DPSC8 DPSC6 ADD A,#10:ADD A,C JR DPSC9 DPSC7 CP 7:JR Z,DPSC6 DPSC8 LD A,C:ADD A,8 DPSC9 LD (HL),A:INC HL DJNZ DPSC9 JR DPSC1 DPSC10 INC IX:LD A,24:JR DPSC9 DPSC10A POP IX LD HL,BUF4096,(ASBUF),HL LD BC,#FFFF LD D,0 DPSC11 INC HX DPSC11A LD E,16 DPSC12 DEC IX:LD A,(IX) CP B:JR Z,DPSC15 CP C:JR NZ,DPSC13 LD B,C:LD A,#41 JR DPSC14 DPSC13 LD B,A LD (HL),#DD:INC HL LD (HL),#46:INC HL DPSC14 LD (HL),A:INC HL DPSC15 DEC IX:LD A,(IX) CP C:JR Z,DPSC18 CP B:JR NZ,DPSC16 LD C,B:LD A,#48 JR DPSC17 DPSC16 LD C,A LD (HL),#DD:INC HL LD (HL),#4E:INC HL DPSC17 LD (HL),A:INC HL DPSC18 LD (HL),#C5:INC HL DEC E:JR NZ,DPSC12 INC D LD A,D:AND 7 JR NZ,DPSC11A LD A,D:CP 24 JR Z,DPSC20 LD (HL),#31:INC HL LD (HL),#00:INC HL LD A,D:ADD A,8 RRCA:RRCA:RRCA:ADD A,#58 LD (HL),A LD A,HY:BIT 3,A JR Z,DPSC19 SET 7,(HL) DPSC19 INC HL INC HX JR DPSC11 DPSC20 LD (HL),#31:INC HL LD (HL),#02:INC HL LD (HL),#5B:INC HL LD (HL),#FD RET ;******************************* ;D-C.LEFT E-C.RIGHT IX+-96 TBL ;LY-PHASE DPLR PUSH BC EXX:POP DE:LD C,0:EXX LD B,0 DPL5 EXX BIT 5,(IX-96):JR Z,DPL6 DEC D:CALL P,DPL6 LD D,31 DPL6 BIT 5,(IX+96):JR Z,DPL7 INC E:BIT 5,E:JR Z,DPL7 LD E,0 DPL7 EXX LD A,D:ADD A,32:LD D,A EXX:LD B,0:EXX LD E,(IX-96):LD A,-32 CALL DPL10 CALL DPL15 EXX:LD B,160:EXX LD E,(IX+96):LD A,140 CALL DPL10A INC IX PUSH HL:LD HL,(ASBUF) LD A,(HL):CP #FD JR NZ,DPL9B INC (HL) DPL9B POP HL INC B:LD A,B:CP 192 JR NZ,DPL5 RET DPL10 CP D:JR C,DPL12 DPL10A SUB D CP 4:JR NC,DPL11 LD A,4 DPL11 PUSH AF ADD A,D:LD D,A POP AF CALL PS DPL12 LD A,D:ADD A,12:LD D,A EXX LD A,B:OR A LD A,D:JR Z,DPL12A LD A,E DPL12A EXX PUSH DE:CALL PUTCOL POP DE:LD A,E AND #1F:RET Z LD A,E:RLCA:RLCA AND 3:CP LY:RET NZ LD A,E:AND #1F EXX:ADD A,B:EXX SUB D:PUSH AF CALL PS POP AF ADD A,12:ADD A,D:LD D,A LD A,B:CP 192/2 LD E,#01:JR C,DPL13 LD E,#FF DPL13 EXX LD A,B:OR A LD A,D:JR Z,DPL14 LD A,E DPL14 EXX ADD A,E:CALL PUTCOL RET DPL15 PUSH HL LD HL,(ASBUF):LD A,(HL) CP #FE:JR NZ,DPL16 INC (HL) POP HL LD (HL),#08:INC HL LD (HL),#3E:INC HL LD A,HY LD (HL),A : INC HL LD (HL),#D3:INC HL LD (HL),#FD:INC HL LD (HL),#08:INC HL LD (HL),#C3:INC HL PUSH DE:LD DE,(ABANK) LD (HL),E:INC HL LD (HL),D:INC HL LD (AMAIN),HL EX DE,HL:POP DE LD A,192 :LD (NSCRL),A XOR A:LD (NSCRLM),A LD A,36:JR DPL20 DPL16 POP HL:LD A,B SUB 94:JR Z,DPL17 DEC A :JR Z,DPL18 DEC A :RET NZ LD (HL),#DD:INC HL LD (HL),#66:INC HL LD (HL),#1C:INC HL JR DPL19 DPL17 LD (HL),#DD:INC HL LD (HL),#7E:INC HL LD (HL),#1D:INC HL JR DPL19 DPL18 LD (HL),#DD:INC HL LD (HL),#56:INC HL LD (HL),#1E:INC HL DPL19 LD A,19 DPL20 ADD A,D:LD D,A RET PUTCOL LD (HL),#ED:INC HL ADD A,LY:RRA:RRA:AND 7 DEC A:LD E,#61:JR Z,PTC1 DEC A:LD E,#69:JR Z,PTC1 DEC A:LD E,#61:JR Z,PTC1 CP 3 :LD E,#41:JR Z,PTC1 LD E,#51 PTC1 LD (HL),E:INC HL:RET ;******************************* DPUD EXX:LD D,0:EXX DPU0 LD B,(IX):INC IX DPU1 LD A,(IX):INC IX OR A:CALL M,DPU2 ADD A,D:CALL PS LD (HL),#ED:INC HL LD (HL),C : INC HL CALL DPU7 LD D,-12:JR DPU1 DPU2 CP #FE:JR Z,DPU0 JR NC,DPU6 AND #7F LD C,B:ADD A,D:SUB 32 JR C,DPU5 LD D,32-12 CP 4:JR NC,DPU3 SUB 4:ADD A,D:LD D,A LD A,4 DPU3 CALL PS DPU4 LD (HL),#ED:INC HL LD (HL),C : INC HL CALL DPU7 JR DPU1 DPU5 ADD A,32-12:LD D,A JR DPU4 DPU6 ; D-WAIT RET DPU7 LD A,C CP #41:JR Z,DPU8 CP #51:JR Z,DPU9 CP #79:JR Z,DPU10 LD C,#69:RET DPU8 LD C,#51:RET DPU9 LD C,#79:RET DPU10 LD C,#61:RET ;******************************* DPCC0 LD C,0 DPCC1 LD (IY),L:INC IY LD (IY),H:INC IY LD D,C,E,C CALL DPCC3 LD D,C,E,C:INC E CALL DPCC3 LD D,C,E,C:INC D CALL DPCC3 LD (HL),COLR:INC HL LD B,8 LD A,C DPCC2 LD (HL),A:INC HL INC A:AND 7:DJNZ DPCC2 INC C:LD A,C CP 8:JR NZ,DPCC1 RET DPCC3 LD B,8 DPCC4 LD A,E:AND 7:LD E,A LD A,D:AND 7 .3 RLCA OR E:LD (HL),A:INC HL INC E:INC D DJNZ DPCC4 RET ;******************************* PS PUSH BC,DE CALL PSS POP DE,BC RET PSS CP 19 CALL NC,PS10 OR A:RET Z CP 167:JR C,PS0A PUSH AF SRL A:CALL PS0 POP AF:SRL A:ADC A,0 PS0A CP 66:CALL NC,PS17 OR A:RET Z PS0 CP 31:JR NC,PS5 PS1 CP 15:JR C,PS2:SUB 11 LD (HL),#34:INC HL JR PS1 PS2 CP 6:JR Z,PS3 SUB 4 LD DE,TBTIME ADD A,A:ADD A,A ADD A,E:LD E,A JR NC,$+3:INC D EX DE,HL LD C,(HL):INC HL LD B,0:LDIR:EX DE,HL RET PS3 LD A,(DDEMD):XOR #80 LD (DDEMD),A LD (HL),#13 CALL P,PS4 LD (HL),#1B PS4 INC HL:RET PS5 SUB 31 LD D,(TBASE[)+4 JP PS19 PS10 PUSH IX LD IX,(ASBUF) SUB 8:LD D,A:LD E,0 PS11 LD A,(IX) CP #FD:JR NC,PS15 LD BC,#0313 CP #DD:JR Z,PS12 LD BC,#0104 CP #C5:JR NZ,PS12 LD C,11 LD A,(IX+1) CP #31:JR NZ,PS12 LD BC,#0415 PS12 LD A,D:SUB C JR C,PS15 JR Z,PS13 CP 4:JR C,PS15 PS13 LD D,A BIT 0,E:JR NZ,PS14 LD (HL),#D9:INC HL SET 0,E PS14 LD A,(IX):LD (HL),A INC IX,HL:DJNZ PS14 JR PS11 PS15 BIT 0,E LD E,8:JR Z,PS16 LD (ASBUF),IX LD (HL),#D9:INC HL LD E,0 PS16 LD A,D:ADD A,E POP IX RET PS17 LD E,A LD A,(NSCRL):OR A:LD D,A LD A,E RET Z LD A,192:SUB D:LD D,A AND #3F:JR NZ,PS17A LD A,(NSCRLM):OR A JR NZ,PS18 LD A,D:RLCA:RLCA NEG:ADD A,2 LD (HL),#D9:INC HL LD (HL),#FD:INC HL LD (HL),#4E:INC HL LD (HL),A:INC HL LD (HL),#D9:INC HL LD A,E:SUB 27:LD E,A PS17A LD A,D:AND 7:JR NZ,PS18 LD A,(NSCRLM):OR A JR NZ,PS18 LD (HL),#D9:INC HL LD (HL),#08:INC HL LD (HL),#CB:INC HL LD (HL),#11:INC HL LD (HL),#08:INC HL LD (HL),#D9:INC HL LD A,1:LD (NSCRLM),A LD A,E:SUB 24 CP 66:RET C LD E,A PS18 XOR A:LD (NSCRLM),A LD A,(NSCRL):DEC A LD (NSCRL),A LD A,E SUB 66 LD D,(TBASE[)+5 PS19 PUSH HL LD H,A SRL H:SRL H AND 3:RRCA:RRCA ADD A,50:SUB H LD E,A POP HL LD (HL),#CD:INC HL LD (HL),E:INC HL LD (HL),D:INC HL XOR A RET ;******************************* SYN LD HL,SINT:LD (#7F80),HL LD HL,BUF256,BC,#FF3C PUSH HL SYN1 LD (HL),C:INC L DJNZ SYN1:LD (HL),#E9 POP HL SYN2 LD HX,5:CALL SINT1 LD A,C CP #10:JR C,SYN3 CP #F0:JR C,SYN4 SYN3 LD HL,BUF256+128 XOR A:EI CALL BUF256 SYN4 PUSH BC LD H,0:LD L,B LD B,0:ADD HL,BC LD C,D:ADD HL,BC LD C,E:ADD HL,BC POP BC INC HL:LD A,L .2 RR H:RRA DEC A CP E:JR Z,SYN5:INC HL CP B:JR Z,SYN5:INC HL CP C:JR Z,SYN5:INC HL SYN5 RET SINT LD B,C,C,D,D,E,E,A POP AF DEC HX:JP Z,SINT2 INC (HL),(HL) DEC (HL),(HL) SINT1 XOR A:EI JP (HL) SINT2 INC HL:RET ;******************************* INT DS 3 CRT LD (IY),L:INC IY LD (IY),H:INC IY EXX XOR A:EXA:LD L,128 LD DE,BUF128,C,0 CRT1 LD A,(IX):INC IX LD (DE),A:INC DE CALL CRT7 DEC L LD A,L:DEC A LD A,(IX-1) JR Z,CRT2 LD A,(IX) CRT2 ADD A,(IX-1):RRA LD (DE),A:INC DE CALL CRT7 DEC L:JR NZ,CRT1 LD L,1,C,L CRT3 DEC DE:LD A,(DE) CALL CRT7 INC L:LD A,L:CP 129 JR NZ,CRT3 EXA:ADD A,30 LD D,1:CALL CRM1 EXX LD (HL),MINTOE]:INC HL LD (HL),MINTOE[:INC HL RET CRT7 CP 68:JR NC,CRT12 LD H,A LD A,L CP 97:JR NC,CRT8 LD A,H:CP #10 JR NC,CRT13 CRT8 PUSH DE LD D,0 EXA:ADD A,H ADD A,10 CALL CRM1 LD A,80:SUB H:ADD A,A SUB 26 LD D,1:CALL CRM1 LD A,H:ADD A,198-160-10 EXA POP DE CRT9A LD A,L CP 97:RET NC CP 81:RET C CRT9 LD A,C:OR A:RET NZ PUSH DE LD A,H:SUB #10:LD B,A LD A,0,H,A,D,A,E,A JR C,CRT11 JR Z,CRT11 CRT10 SLI E:RL D SLI E:RL D SCF:RRA:RR H SCF:RRA:RR H DJNZ CRT10 CRT11 LD (IY),A:INC IY LD (IY),H:INC IY LD (IY),E:INC IY LD (IY),D:INC IY POP DE RET CRT13 CALL CRT9A CRT12 EXX LD (HL),WAIT224]:INC HL LD (HL),WAIT224[:INC HL EXX RET CRM1 PUSH HL:LD H,A SRL H:SRL H AND 3:RRCA:RRCA ADD A,50:SUB H:LD E,A LD HL,TBASE:ADD HL,DE PUSH HL EXX:POP DE LD (HL),E:INC HL LD (HL),D:INC HL EXX POP HL RET CRM2 LD H,A SRL H:SRL H AND 3:RRCA:RRCA ADD A,50:SUB H:LD E,A LD HL,TBASE+#0200 ADD HL,DE RET WAIT224 LD A,13 WT2241 DEC A:JR NZ,WT2241 NOP:RET SETINT LD A,H:LD C,H:INC C LD B,#00 STINT1 LD (HL),C:INC L DJNZ STINT1 INC H:LD (HL),C LD L,H LD (HL),#C3:INC L LD (HL),E : INC L LD (HL),D : INC L LD I,A:IM 2 RET ;____:' #7FFD PLAY LD HL,(MPOS) LD A,H:CP 2 JR C,PLAY1 SUB 2:LD H,A LD A,BANKM1 JR PLAY2 PLAY1 LD A,BANKM0 INC DE,DE,DE PLAY2 OUT (#FD),A LD D,H:LD E,L ADD HL,HL,HL,HL,HL,HL SBC HL,DE:ADD HL,HL EX DE,HL LD HL,#FFFF:SBC HL,DE LD DE,#FFBF LD C,#FD LD A,(HL):OR A LD A,#0D JR NZ,PLAY3 DEC HL,HL,HL SUB 3 LD B,6 DJNZ $ NOP:NOP JR PLAY4 PLAY3 LD B,D:OUT (C),A; 13 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 12 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 11 LD B,E:OUTD:DEC A PLAY4 LD B,D:OUT (C),A; 10 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 9 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 8 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 7 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 6 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 5 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 4 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 3 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 2 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 1 LD B,E:OUTD:DEC A LD B,D:OUT (C),A; 0 LD B,E:OUTD:DEC A LD HL,(MPOS) INC HL LD A,H:CP 6 JR NZ,PLAY5 LD H,2 JR PLAY6 PLAY5 INC DE:NOP:NOP PLAY6 LD (MPOS),HL RET TBTIME DB 1:NOP:DS 2 DB 1:RET C:DS 2 DS 4 DB 1:LD (HL),A:DS 2 DB 2:DS 3 DB 2:NOP:RET C:DS 1 DB 2:RET C:RET C:DS 1 DB 1:INC (HL):DS 2 DB 2:INC DE:DEC DE:DS 1 DB 3:NOP:NOP:RET C DB 2:LD (HL),A,(HL),A:DI TWAIT DB 4 NOP:OUT (C),D:RET DB 4 RET C:OUT (C),D:RET DB 4 INC HL:OUT (C),D:RET DB 5 LD A,0:OUT (C),D:RET DB 4 NOP:OUT (C),E:RET DB 4 RET C:OUT (C),E:RET DB 4 INC HL:OUT (C),E:RET DB 5 LD A,0:OUT (C),E:RET DB 5 NOP:OUT (C),B:JP (IX) DB 5 RET C:OUT (C),B:JP (IX) DB 5 INC DE:OUT (C),B:JP (IX) DB 6 LD C,#FE:OUT (C),B:JP (IX) DB 5 NOP:OUT (C),A:JP (IY) DB 5 RET C:OUT (C),A:JP (IY) DB 5 INC DE:OUT (C),A:JP (IY) DB 6 LD C,#FE:OUT (C),A:JP (IY) DB 2:NOP:RET DB 2:RET C : RET DB 2:RET C : RET NC DB 3:LD C,#FE:RET DB 9:NOP:EXA EXX:RL (HL):DEC L:EXX EXA:RET DB 9:RET C:EXA EXX:RL (HL):DEC L:EXX EXA:RET DB 9:RET C:EXA EXX:RL (HL):DEC L:EXX EXA:RET NC DB 10:LD C,#FE:EXA EXX:RL (HL):DEC L:EXX EXA:RET TBSYM DB 26,#41,10,#30,26,#61 DB 1,#2D,1,#3D,1,#20 DB 1,#2E,1,#2C,1,#3A,#FF TBQCOL DB 2,0,5,1,0,6,1,4 DB 3,7,2,5,4,0,3,2 TBJUMP _DB 1,1,2,2,3,4,5,6,8,9,11,13,15 _DB 18,20,23,20,18,15,13,11,9 _DB 8,6,5,4,3,2,2,1,1,1 STR _DB " So, fullscreen " _DB "finally " _DB "part... This demo was " _DB "coded in 5 weeks by " _DB "DARK, -=LD=-, -STS- and " _DB "CACHE, " _DB "music composed by -LAV-. " _DB "We used STORM turbo " _DB "assembler, XAS 9.07, " _DB "STS 5.1, ART STUDIO 128, " _DB "DPaint III, " _DB "PRO TRACKER 2.1 and BASIC " _DB "48... " _DB "This demo timed for " _DB "PENTAGON 128. " _DB "For more info, press " _DB "SPACE after start. " _DB "Presented by " _DB "X-TRADE group, 1997. " _DB " END.",#FF USP DW 0 PHASE DB 0 BSC DW 0 LRCOL DW 0 BLR DW 0 BDW DW 0 DDEMD DB 0 ASBUF DW 0 ABANK DW 0 AMAIN DW 0 BANK DB 0 MPOS DW 0 DPOS DW 0 NSCRL DB 0 USTR DW STR SBIT DW 0 PY DB 0 USPS DW 0 NSCRLM DB 0 QCOL0 DB 0 QCOL1 DB 0 TBNUL TBASE EQU $^ FREE EQU TBASE-TBNUL TABLEA INCB "DATA.O"; 1024 SCR1 INCB "scr1" ; __"__"!!! SCR0 INCB "scr0" LFONT INCB "F24/16";2729 ELFONT LMUS INCB "MUSIC" ELMUS LTBBASE INCB "TBMC.EXE"; 4946 ELTBB ECODE FONT EQU #C000+6144 TBFONT EQU ELFONT-LFONT+FONT BUFDEMO EQU #C000 BUFADR EQU 0-1024-32 BUF343 EQU #759B BUF784 EQU #76F2 BUF196 EQU #7A02 BUF570 EQU #7AC6 BUF128 EQU #7D00 BUF256 EQU #7D00 BUF3 EQU #7DC0 BUF4096 EQU #F000 BUF768 EQU #FD00 BANK0 EQU #50+0 BANK1 EQU #51+8 BANK2 EQU #53 BANKM0 EQU #54 BANKM1 EQU #56 COLR EQU #07 COL0 EQU #02 COL1 EQU #00 TABLE1 EQU #7F01; L=2 TBBASE EQU #4000 MUS EQU #4000