ORG 7000H SCREEN EQU 3C00H KEZDSEB EQU 8000 GYORSUL EQU 7 MAXSEB EQU 1500 AKTAV0 EQU 32 PROGRAM: CALL 01C9H LD HL,SCREEN2 LD DE,SCREEN2+1 LD BC,1023 LD (HL),32 LDIR LD A,32 LD (POS),A XOR A LD (FAZIS),A LD HL,KEZDSEB LD (SZUNET),HL LD HL,PONT LD (HL),' ' INC HL LD (HL),' ' INC HL LD (HL),' ' INC HL LD (HL),' ' INC HL LD (HL),'0' LD HL,0 LD (TAV),HL LD A,7 LD (AKFAZIS),A LD A,AKTAV0 LD (AKTAV),A LD A,5 LD (ELETEK),A LD A,0 LD (AK1000),A CIKLUS: CALL SCROLL CALL AKADALY CALL AKA1000 C1: LD HL,(KEZDET) INC HL PUSH HL LD DE,3000H OR A SBC HL,DE POP HL JR C,RAND1 LD HL,0 RAND1: LD (KEZDET),HL XOR A OR (HL) JR Z,C1 LD A,(MIVOLT) ADD A,(HL) LD (MIVOLT),A LD HL,SCREEN2 LD D,0 AND 63 LD E,A ADD HL,DE LD (HL),191 LD A,(POS) LD HL,14400 BIT 5,(HL) CALL NZ,BALRA BIT 6,(HL) CALL NZ,JOBBRA LD (POS),A LD E,A LD D,0 LD HL,SCREEN2+960 ADD HL,DE LD A,191 CP (HL) JP Z,UTKOZES INC HL CP (HL) JP Z,UTKOZES INC HL CP (HL) JP Z,UTKOZES DEC HL DEC HL EX DE,HL LD HL,KOCSI LD BC,3 LDIR EX DE,HL DEC HL DEC HL DEC HL LD A,(FAZIS) INC A AND 3 LD (FAZIS),A LD B,A INC A SRL A LD E,A LD D,0 ADD HL,DE LD A,B BIT 0,A JR Z,VAGY8 LD A,4 JR SZEM VAGY8: LD A,8 SZEM: OR (HL) LD (HL),A CALL FLIP CIKLUSXX: CALL PONTNOV CALL ELETNOV CALL TAVNOV LD DE,SCREEN CALL PONTIR CALL MAXPIR CALL ELETIR LD HL,(SZUNET) LD DE,GYORSUL OR A SBC HL,DE LD (SZUNET),HL LD DE,MAXSEB OR A SBC HL,DE JR NC,SEBOK LD HL,MAXSEB LD (SZUNET),HL SEBOK: LD HL,(SZUNET) LD B,H LD C,L CALL 0060H JP CIKLUS UTKOZES: LD A,(ELETEK) DEC A LD (ELETEK),A JR Z,GAMEOVR LD HL,SCREEN+64 LD DE,SCREEN+65 LD (HL),191 LD BC,1023-64 LDIR JP CIKLUSXX GAMEOVR: LD HL,0 LD A,16 C2: PUSH AF LD DE,15360 LD BC,1024 LDIR LD BC,3000 CALL 0060H POP AF DEC A JR NZ,C2 CALL 01C9H LD DE,SCREEN+541 CALL PONTIR C3: LD A,(14400) BIT 0,A JP NZ,PROGRAM BIT 1,A JP NZ,1A19H JR C3 SCROLL: LD HL,SCREEN2+959 LD DE,SCREEN2+1023 LD B,15 C4: PUSH BC LD BC,64 LDDR POP BC DJNZ C4 LD B,64 INC HL SORTORL: LD (HL),32 INC HL DJNZ SORTORL RET BALRA: DEC A BIT 7,(HL) JR Z,BALRA1 DEC A BALRA1: CP 128 RET C XOR A RET JOBBRA: INC A BIT 7,(HL) JR Z,JOBBRA1 INC A JOBBRA1: CP 62 RET C LD A,61 RET ELETNOV: LD A,(PONT+4) CP '0' RET NZ LD A,(PONT+3) CP '0' RET NZ LD HL,ELETEK LD A,(HL) CP 16 RET NC INC (HL) LD A,(PONT+2) CP '0' RET NZ LD HL,AK1000 INC (HL) RET PONTNOV: LD HL,PONT+4 LD B,5 PONTNO1: LD A,(HL) INC A CP '9'+1 JR C,PONTNO2 LD A,'0' PONTNO2: LD (HL),A RET C DEC HL LD A,(HL) CP ' ' JR NZ,PONTNO3 LD (HL),'0' PONTNO3: DJNZ PONTNO1 RET PONTIR: LD HL,PONT LD BC,5 LDIR RET MAXPIR: LD DE,SCREEN+57 LD HL,MAXPONT LD BC,5 LDIR RET TAVNOV: LD HL,(TAV) INC HL LD (TAV),HL EX DE,HL LD HL,(MAXTAV) OR A SBC HL,DE RET NC LD DE,MAXPONT CALL PONTIR LD HL,(TAV) LD (MAXTAV),HL RET AKADALY: LD HL,AKTAV DEC (HL) RET NZ LD (HL),AKTAV0 LD A,(AKFAZIS) INC A AND 7 LD (AKFAZIS),A LD E,A LD D,0 LD HL,AKPOZ ADD HL,DE LD A,(HL) LD C,A LD HL,AKH ADD HL,DE LD A,(HL) LD E,A LD B,0 LD HL,SCREEN2 ADD HL,BC LD (HL),191 LD C,E INC HL LD D,H LD E,L DEC HL LDIR RET AKA1000: LD A,(AK1000) OR A RET Z XOR A LD (AK1000),A LD HL,SCREEN2 LD DE,SCREEN2+1 LD BC,63 LD (HL),191 LDIR RET ELETIR: LD HL,SCREEN+29 LD A,(ELETEK) LD B,17 ELETIR1: LD (HL),'[' INC HL DEC B DEC A JR NZ,ELETIR1 ELETIR2: LD (HL),' ' INC HL DJNZ ELETIR2 RET ;ELETIR: LD HL,SCREEN+29 ; LD DE,SCREEN+30 ; LD (HL),'[' ; LD A,(ELETEK) ; LD C,A ; DEC C ; RET Z ; LD B,0 ; LDIR ; RET AKPOZ: DB 0,16,32,48,48,32,16,0 AKH: DB 15,15,15,15,15,15,15,15 POS: DB '#' MIVOLT: DB '#' KEZDET: DB '##' KOCSI: DB 166,179,153 FAZIS: DB '#' SZUNET: DB '##' TAV: DB '##' MAXTAV: DW 0 AKTAV: DB '#' AKFAZIS: DB '#' PONT: DB '99999' MAXPONT: DB ' 0' ELETEK: DB '#' AK1000: DB '#' FLIP: LD HL,SCREEN2+64 LD DE,SCREEN+64 LD BC,1024-64 LDIR RET SCREEN2: DS 1024 END PROGRAM