ZXTape! 0Created with Ramsoft MakeTZX5 F go  org 40000  ! RND HRnd;ld hl,(Seed);ld d,h;ld e,l;ld h,e;ld l,10;or a;sbc hl,de;add hl,hl (-add hl,hl;add hl,de;inc hl;ld (Seed),hl;ret 2! RANDOM NO. DOWN <Rdwn;push hl;call Rnd;ld a,h;and 7;inc a;ld h,a;ld a,e;and 15;add a,h;ld e,0;rra;rr e;rra;rr e;rra;rr e;or 88;ld d,a;pop hl;ret F! RND*24 P_Rd24;push hl;call Rnd;ld a,h;and 7;ld h,a;ld a,l;and 7;add a,h;inc a;inc a;res 0,a;pop hl;ret Z! BLANK LINER dBlin;push de;push bc;ld b,22;A;dec de;ld a,e;and 31;cp 31;jr z,B;ld a,(de);cp 16;jr nz,+3;ld a,56;ld (de),a;djnz A;B;pop bc;pop de;ret n ! FIND xFind;inc hl;inc hl;inc hl;ld a,(hl);or a;jr nz,Find;call Rdwn;ld (hl),d;inc hl;ld (hl),e;inc hl;ld a,(23672);and 1;or 128;ld (hl),a;ret ! NEXT POS Nxpos;push bc;push de;ld bc,32;bit 0,(hl);jr nz,+3;ld bc,65504;ex de,hl;add hl,bc;ex de,hl;bit 2,d;jr nz,C;ld a,d;cp 91;jr nz,C;pop bc;pop bc;ret;C;pop de;ld a,1;xor (hl);ld (hl),a;pop bc;ret ! FOUR CHR DFchr;push bc;push hl;push de;ld h,0;ld l,a;ld a,(Pnum)add a,l;jr D ! CHR ^Chr;push bc;push hl;push de;ld h,0;ld l,a;D;ld a,(hl);ld (de),a;inc hl;ld a,d;and 3;or 8;rla Zrla;rla;ld d,a;ld b,8;E;ld a,(hl);ld (de),a;inc hl;inc d;djnz E;pop de;pop hl;pop bc;ret ! FUZBALL ҇Fuz;ld hl,Fcnt;ld a,(hl);or a;jr nz,F;dec (hl);ret nz;call Rdwn;jr G;F;ld de,(Fpos);ld hl,F1;xor a;bit 0,(hl);jr z,+2;ld a,0;call Chr ܐG;push de;ld hl,(Ship);ld bc,7936;ld a,e;and b;ld e,a;sbc hl,de;pop de;jr nc,+2;ld c,1;ld a,h;or l;dec de;jr z,H;ld hl,F2;ld (hl),c;call Nxpos H;ld a,e;and 31;jr nz,+7;ld a,(Fr);ld (Fcnt),a;ret;ld a,(de);cp 0;jr nz,+5;ld a,1;ld (F1),a;ld a,0;call Fchr;ld (Fpos),de;ret ! LINER Lin;ld hl,Lcnt;dec (hl);jr nz,+10;ld a,(Lr);ld (hl),a;ld hl,Lpos;call Find;ld b,4;ld hl,Lpos;L1;ld d,(hl);ld a,d;or a;jr z,I;inc hl;ld e,(hl);inc hl ebit 7,(hl);jr nz,J;bit 1,(hl);jr z,K;ld a,0;call Chr;dec de;ld a,(de);cp 56;jr nz,L;res 1,(hl);jr L K;xor a;call Chr;ld a,e;and 31;jr nz,+3;ld d,a;jr M;call Blin;J;dec de;call Nxpos;ld a,(de);cp 0;jr nz,+2;set 1,(hl);push bc;ld b,22;push de fL2;dec de;ld a,e;and 31;cp 31;jr z,N;ld a,(de);cp 0;jr z,+4;cp 56;jr nz,+3;ld a,16;ld (de),a;djnz L2 "vN;pop de;pop bc;L;ld a,0;call Fchr;M;dec hl;dec hl;ld (hl),d;I;inc hl;ld (hl),e;inc hl;res 7,(hl);inc hl;djnz L1;ret ,! WALKER 6`Walk;ld hl,Wcnt;dec (hl);jr nz,+10;ld a,(Wr);ld (hl),a;ld hl,Wpos;call Find;ld hl,Wpos;ld b,16 @L3;ld d,(hl);ld a,d;or a;jr z,O;inc hl;ld e,(hl);inc hl;bit 7,(hl);jr nz,P;bit 1,(hl);jr z,Q;ld a,0;call Chr;dec de;ld a,(de);cp 56;jr nz,+2;res 1,(hl);jr R J5Q;xor a;call Chr;ld a,e;and 31;jr nz,+3;ld d,a;jr S TDP;bit 5,(hl);dec de;call z,Nxpos;ld a,(de);cp 0;jr nz,R;set 1,(hl) ^~R;ld a,0;call Fchr;S;dec hl;dec hl;O;ld (hl),d;inc hl;ld (hl),e;inc hl;ld a,32;xor (hl);res 7,a;ld (hl),a;inc hl;djnz L3;ret h! SPIKER rhSpi;ld hl,Scnt;dec (hl);jr nz,+16;ld a,(Sr);ld (hl),a;ld hl,Spos;call Find;call Rd24;set 7,a;ld (hl),a |ld b,16;ld hl,Spos L4;ld d,(hl);inc hl;ld a,d;or a;jr nz,T;ld e,(hl);inc hl;bit 7,(hl);jr nz,+5;ld a,0;call Chr;ld a,(hl);or a;jr z,U;dec (hl);dec de ?V;ld a,0;call Fchr;W;dec hl;dec hl;ld (hl),d;inc hl;ld (hl),e (T;inc hl;res 7,(hl);inc hl;djnz L4;ret ,U;inc de;ld a,e;and 31;jr nz,V;ld d,a;jr W @! J! VARIABLES T! Seed;defw 23583  Pnum;defb 0 Ship;defw 0 !YOUR POS !4! FLAGS !5F1;defb 0 !FUZ ON SPIKE? !>F2;defb 0 !FUZ DIREC. !! ROM2 VALUES !Fr;defb 40 !FUZ !Lr;defb 45 !LINER !Wr;defb 6 !WALKER !Sr;defb 30 !SPIKER !! ALIEN POSIT'S " Fpos;defw 0 "Lpos;defs aaaaaaaaaaaa "<Wpos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "$<Spos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "`! COUNTS "j Fcnt;defb 0 "t Lcnt;defb 1 "~ Wcnt;defb 1 " Scnt;defb 1 #finish #'60000` 6  < go  org 40000  ! RND HRnd;ld hl,(Seed);ld d,h;ld e,l;ld h,e;ld l,10;or a;sbc hl,de;add hl,hl (-add hl,hl;add hl,de;inc hl;ld (Seed),hl;ret 2! RANDOM NO. DOWN <Rdwn;push hl;call Rnd;ld a,h;and 7;inc a;ld h,a;ld a,e;and 15;add a,h;ld e,0;rra;rr e;rra;rr e;rra;rr e;or 88;ld d,a;pop hl;ret F! RND*24 P_Rd24;push hl;call Rnd;ld a,h;and 7;ld h,a;ld a,l;and 7;add a,h;inc a;inc a;res 0,a;pop hl;ret Z! BLANK LINER dBlin;push de;push bc;ld b,22;A;dec de;ld a,e;and 31;cp 31;jr z,B;ld a,(de);cp 16;jr nz,+3;ld a,56;ld (de),a;djnz A;B;pop bc;pop de;ret n ! FIND xFind;inc hl;inc hl;inc hl;ld a,(hl);or a;jr nz,Find;call Rdwn;ld (hl),d;inc hl;ld (hl),e;inc hl;ld a,(23672);and 1;or 128;ld (hl),a;ret ! NEXT POS Nxpos;push bc;push de;ld bc,32;bit 0,(hl);jr nz,+3;ld bc,65504;ex de,hl;add hl,bc;ex de,hl;bit 2,d;jr nz,C;ld a,d;cp 91;jr nz,C;pop bc;pop bc;ret;C;pop de;ld a,1;xor (hl);ld (hl),a;pop bc;ret ! FOUR CHR DFchr;push bc;push hl;push de;ld h,0;ld l,a;ld a,(Pnum)add a,l;jr D ! CHR ^Chr;push bc;push hl;push de;ld h,0;ld l,a;D;ld a,(hl);ld (de),a;inc hl;ld a,d;and 3;or 8;rla Zrla;rla;ld d,a;ld b,8;E;ld a,(hl);ld (de),a;inc hl;inc d;djnz E;pop de;pop hl;pop bc;ret ! FUZBALL ҇Fuz;ld hl,Fcnt;ld a,(hl);or a;jr nz,F;dec (hl);ret nz;call Rdwn;jr G;F;ld de,(Fpos);ld hl,F1;xor a;bit 0,(hl);jr z,+2;ld a,0;call Chr ܐG;push de;ld hl,(Ship);ld bc,7936;ld a,e;and b;ld e,a;sbc hl,de;pop de;jr nc,+2;ld c,1;ld a,h;or l;dec de;jr z,H;ld hl,F2;ld (hl),c;call Nxpos H;ld a,e;and 31;jr nz,+7;ld a,(Fr);ld (Fcnt),a;ret;ld a,(de);cp 0;jr nz,+5;ld a,1;ld (F1),a;ld a,0;call Fchr;ld (Fpos),de;ret ! LINER Lin;ld hl,Lcnt;dec (hl);jr nz,+10;ld a,(Lr);ld (hl),a;ld hl,Lpos;call Find;ld b,4;ld hl,Lpos;L1;ld d,(hl);ld a,d;or a;jr z,I;inc hl;ld e,(hl);inc hl ebit 7,(hl);jr nz,J;bit 1,(hl);jr z,K;ld a,0;call Chr;dec de;ld a,(de);cp 56;jr nz,L;res 1,(hl);jr L K;xor a;call Chr;ld a,e;and 31;jr nz,+3;ld d,a;jr M;call Blin;J;dec de;call Nxpos;ld a,(de);cp 0;jr nz,+2;set 1,(hl);push bc;ld b,22;push de fL2;dec de;ld a,e;and 31;cp 31;jr z,N;ld a,(de);cp 0;jr z,+4;cp 56;jr nz,+3;ld a,16;ld (de),a;djnz L2 "vN;pop de;pop bc;L;ld a,0;call Fchr;M;dec hl;dec hl;ld (hl),d;I;inc hl;ld (hl),e;inc hl;res 7,(hl);inc hl;djnz L1;ret ,! WALKER 6`Walk;ld hl,Wcnt;dec (hl);jr nz,+10;ld a,(Wr);ld (hl),a;ld hl,Wpos;call Find;ld hl,Wpos;ld b,16 @L3;ld d,(hl);ld a,d;or a;jr z,O;inc hl;ld e,(hl);inc hl;bit 7,(hl);jr nz,P;bit 1,(hl);jr z,Q;ld a,0;call Chr;dec de;ld a,(de);cp 56;jr nz,+2;res 1,(hl);jr R J5Q;xor a;call Chr;ld a,e;and 31;jr nz,+3;ld d,a;jr S TDP;bit 5,(hl);dec de;call z,Nxpos;ld a,(de);cp 0;jr nz,R;set 1,(hl) ^~R;ld a,0;call Fchr;S;dec hl;dec hl;O;ld (hl),d;inc hl;ld (hl),e;inc hl;ld a,32;xor (hl);res 7,a;ld (hl),a;inc hl;djnz L3;ret h! SPIKER rhSpi;ld hl,Scnt;dec (hl);jr nz,+16;ld a,(Sr);ld (hl),a;ld hl,Spos;call Find;call Rd24;set 7,a;ld (hl),a |ld b,16;ld hl,Spos L4;ld d,(hl);inc hl;ld a,d;or a;jr nz,T;ld e,(hl);inc hl;bit 7,(hl);jr nz,+5;ld a,0;call Chr;ld a,(hl);or a;jr z,U;dec (hl);dec de ?V;ld a,0;call Fchr;W;dec hl;dec hl;ld (hl),d;inc hl;ld (hl),e (T;inc hl;res 7,(hl);inc hl;djnz L4;ret ,U;inc de;ld a,e;and 31;jr nz,V;ld d,a;jr W ! ASTEROID _Ast;ld hl,Acnt;dec (hl);jr nz,+10;ld a,(Ar);ld (hl),a;ld hl,Apos;call Find;ld b,16;ld hl,Apos •L5;ld d,(hl);ld a,d;or a;jr z,X;inc hl;ld e,(hl);inc hl;bit 7,(hl);jr nz,Y;xor a;bit 1,(hl);jr z,+4;res 1,(hl);ld a,0;call Chr;ld a,e;and 31;jr z,Z DY;dec de;ld a,(de);cp 0;jr nz,+2;set 1,(hl);ld a,0;call Fchr;jr +1 "Z;ld d,a;dec hl;dec hl;ld (hl),d 9X;inc hl;ld (hl),e;inc hl;res 7,(hl);inc hl;djnz L5;ret ! SCREEN ZScr;push de;L6;ld d,(hl);inc hl;ld e,(hl);inc hl;inc hl;ex (sp),hl;sbc hl,de;ld a,h;or l Qjr z,+4;add hl,de;ex (sp),hl;jr L6;pop hl;dec hl;dec hl;dec hl;ld (hl),a;jp Chr  ! INC ]Inc;push hl;inc (hl);ld a,(hl);cp 58;jr z,+4;pop hl;djnz Inc;ret;ld (hl),48;dec hl;jr Inc+1 @! J! VARIABLES T! Seed;defw 23583  Pnum;defb 0 Ship;defw 0 !YOUR POS !4! FLAGS !5F1;defb 0 !FUZ ON SPIKE? !>F2;defb 0 !FUZ DIREC. !! ROM2 VALUES !Fr;defb 40 !FUZ !Lr;defb 45 !LINER !Wr;defb 6 !WALKER !Sr;defb 30 !SPIKER !Ar;defb 11 !ASTEROID !! ALIEN POSIT'S " Fpos;defw 0 "Lpos;defs aaaaaaaaaaaa "<Wpos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "$<Spos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ".<Apos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "`! COUNTS "j Fcnt;defb 0 "t Lcnt;defb 1 "~ Wcnt;defb 1 " Scnt;defb 1 " Acnt;defb 1 #finish #'60000` o7 dV  go  org 40000  ! RND HRnd;ld hl,(Seed);ld d,h;ld e,l;ld h,e;ld l,10;or a;sbc hl,de;add hl,hl (-add hl,hl;add hl,de;inc hl;ld (Seed),hl;ret 2! RANDOM NO. DOWN <Rdwn;push hl;call Rnd;ld a,h;and 7;inc a;ld h,a;ld a,e;and 15;add a,h;ld e,0;rra;rr e;rra;rr e;rra;rr e;or 88;ld d,a;pop hl;ret F! RND*24 P_Rd24;push hl;call Rnd;ld a,h;and 7;ld h,a;ld a,l;and 7;add a,h;inc a;inc a;res 0,a;pop hl;ret Z! BLANK LINER dBlin;push de;push bc;ld b,22;A;dec de;ld a,e;and 31;cp 31;jr z,B;ld a,(de);cp 16;jr nz,+3;ld a,56;ld (de),a;djnz A;B;pop bc;pop de;ret n ! FIND xFind;inc hl;inc hl;inc hl;ld a,(hl);or a;jr nz,Find;call Rdwn;ld (hl),d;inc hl;ld (hl),e;inc hl;ld a,(23672);and 1;or 128;ld (hl),a;ret ! NEXT POS Nxpos;push bc;push de;ld bc,32;bit 0,(hl);jr nz,+3;ld bc,65504;ex de,hl;add hl,bc;ex de,hl;bit 2,d;jr nz,C;ld a,d;cp 91;jr nz,C;pop bc;pop bc;ret;C;pop de;ld a,1;xor (hl);ld (hl),a;pop bc;ret ! FOUR CHR DFchr;push bc;push hl;push de;ld h,0;ld l,a;ld a,(Pnum)add a,l;jr D ! CHR ^Chr;push bc;push hl;push de;ld h,0;ld l,a;D;ld a,(hl);ld (de),a;inc hl;ld a,d;and 3;or 8;rla Zrla;rla;ld d,a;ld b,8;E;ld a,(hl);ld (de),a;inc hl;inc d;djnz E;pop de;pop hl;pop bc;ret ! FUZBALL ҇Fuz;ld hl,Fcnt;ld a,(hl);or a;jr nz,F;dec (hl);ret nz;call Rdwn;jr G;F;ld de,(Fpos);ld hl,F1;xor a;bit 0,(hl);jr z,+2;ld a,0;call Chr ܐG;push de;ld hl,(Ship);ld bc,7936;ld a,e;and b;ld e,a;sbc hl,de;pop de;jr nc,+2;ld c,1;ld a,h;or l;dec de;jr z,H;ld hl,F2;ld (hl),c;call Nxpos H;ld a,e;and 31;jr nz,+7;ld a,(Fr);ld (Fcnt),a;ret;ld a,(de);cp 0;jr nz,+5;ld a,1;ld (F1),a;ld a,0;call Fchr;ld (Fpos),de;ret ! LINER Lin;ld hl,Lcnt;dec (hl);jr nz,+10;ld a,(Lr);ld (hl),a;ld hl,Lpos;call Find;ld b,4;ld hl,Lpos;L1;ld d,(hl);ld a,d;or a;jr z,I;inc hl;ld e,(hl);inc hl ebit 7,(hl);jr nz,J;bit 1,(hl);jr z,K;ld a,0;call Chr;dec de;ld a,(de);cp 56;jr nz,L;res 1,(hl);jr L K;xor a;call Chr;ld a,e;and 31;jr nz,+3;ld d,a;jr M;call Blin;J;dec de;call Nxpos;ld a,(de);cp 0;jr nz,+2;set 1,(hl);push bc;ld b,22;push de fL2;dec de;ld a,e;and 31;cp 31;jr z,N;ld a,(de);cp 0;jr z,+4;cp 56;jr nz,+3;ld a,16;ld (de),a;djnz L2 "vN;pop de;pop bc;L;ld a,0;call Fchr;M;dec hl;dec hl;ld (hl),d;I;inc hl;ld (hl),e;inc hl;res 7,(hl);inc hl;djnz L1;ret ,! WALKER 6`Walk;ld hl,Wcnt;dec (hl);jr nz,+10;ld a,(Wr);ld (hl),a;ld hl,Wpos;call Find;ld hl,Wpos;ld b,16 @L3;ld d,(hl);ld a,d;or a;jr z,O;inc hl;ld e,(hl);inc hl;bit 7,(hl);jr nz,P;bit 1,(hl);jr z,Q;ld a,0;call Chr;dec de;ld a,(de);cp 56;jr nz,+2;res 1,(hl);jr R J5Q;xor a;call Chr;ld a,e;and 31;jr nz,+3;ld d,a;jr S TDP;bit 5,(hl);dec de;call z,Nxpos;ld a,(de);cp 0;jr nz,R;set 1,(hl) ^~R;ld a,0;call Fchr;S;dec hl;dec hl;O;ld (hl),d;inc hl;ld (hl),e;inc hl;ld a,32;xor (hl);res 7,a;ld (hl),a;inc hl;djnz L3;ret h! SPIKER rhSpi;ld hl,Scnt;dec (hl);jr nz,+16;ld a,(Sr);ld (hl),a;ld hl,Spos;call Find;call Rd24;set 7,a;ld (hl),a |ld b,16;ld hl,Spos L4;ld d,(hl);inc hl;ld a,d;or a;jr nz,T;ld e,(hl);inc hl;bit 7,(hl);jr nz,+5;ld a,0;call Chr;ld a,(hl);or a;jr z,U;dec (hl);dec de ?V;ld a,0;call Fchr;W;dec hl;dec hl;ld (hl),d;inc hl;ld (hl),e (T;inc hl;res 7,(hl);inc hl;djnz L4;ret ,U;inc de;ld a,e;and 31;jr nz,V;ld d,a;jr W ! ASTEROID _Ast;ld hl,Acnt;dec (hl);jr nz,+10;ld a,(Ar);ld (hl),a;ld hl,Apos;call Find;ld b,16;ld hl,Apos •L5;ld d,(hl);ld a,d;or a;jr z,X;inc hl;ld e,(hl);inc hl;bit 7,(hl);jr nz,Y;xor a;bit 1,(hl);jr z,+4;res 1,(hl);ld a,0;call Chr;ld a,e;and 31;jr z,Z DY;dec de;ld a,(de);cp 0;jr nz,+2;set 1,(hl);ld a,0;call Fchr;jr +1 "Z;ld d,a;dec hl;dec hl;ld (hl),d 9X;inc hl;ld (hl),e;inc hl;res 7,(hl);inc hl;djnz L5;ret ! SCREEN ZScr;push de;L6;ld d,(hl);inc hl;ld e,(hl);inc hl;inc hl;ex (sp),hl;sbc hl,de;ld a,h;or l Qjr z,+4;add hl,de;ex (sp),hl;jr L6;pop hl;dec hl;dec hl;dec hl;ld (hl),a;jp Chr  ! INC ]Inc;push hl;inc (hl);ld a,(hl);cp 58;jr z,+4;pop hl;djnz Inc;ret;ld (hl),48;dec hl;jr Inc+1 & ! CHECK 0XChek;cp 0;jr nz,Aa;xor a;call Chr;inc de;xor a;call Chr;push hl;ld hl,Ss2;ld b,2;jr Ab :2Aa;push hl;cp 0;jr nz,+7;ld hl,Wpos;ld b,5;jr Ac D'cp 0;jr nz,+7;ld hl,Apos;ld b,3;jr Ac N2cp 0;jr nz,+10;call Blin;ld hl,Lpos;ld b,1;jr Ad X'cp 0;jr nz,+7;ld hl,Spos;ld b,2;jr Ad b$ld a,(Fr);ld (Fcnt),a;ld b,3;jr +3 lAd;call Scr;ld hl,Ss0;jr Ab vAc;call Scr;ld hl,Ss1 IAb;push bc;call Inc;ld bc,5;add hl,bc;pop bc;call Inc;pop hl;ld d,b;ret ! KEYPRESS AKp;in a,(223);xor 255;jr nz,Jy;ld a,(23560);ret;Jy;ld a,255;ret ! SET TIME ;Sti;ld hl,Fcnt;ld bc,1320;L7;ld (hl),c;inc hl;djnz L7;ret ! BLANKOUT ABout;ld hl,Fpos;ld d,178;L8;ld (hl),0;inc hl;dec d;jr nz,L8;ret ! BLANK SCREEN HBscr;ld de,22528;ld bc,768;L9;cp 0;jr z,+8;cp 0;jr z,+4;xor a;call Chr (inc de;dec bc;ld a,b;or c;jr nz,L9;ret @! J! VARIABLES T! Seed;defw 23583  Pnum;defb 0 Ship;defw 0 !YOUR POS ,defs 0000;Ss0;defs 0;Ss1;defs 0;Ss2;defs 0 Wscr;defs 00000 !4! FLAGS !5F1;defb 0 !FUZ ON SPIKE? !>F2;defb 0 !FUZ DIREC. !! ROM2 VALUES !Fr;defb 40 !FUZ !Lr;defb 45 !LINER !Wr;defb 6 !WALKER !Sr;defb 30 !SPIKER !Ar;defb 11 !ASTEROID !! ALIEN POSIT'S " Fpos;defw 0 "Lpos;defs aaaaaaaaaaaa "<Wpos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "$<Spos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ".<Apos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "`! COUNTS "j Fcnt;defb 0 "t Lcnt;defb 1 "~ Wcnt;defb 1 " Scnt;defb 1 " Acnt;defb 1 #finish #'60000` 9 f,fh go  org 40000  ! RND HRnd;ld hl,(Seed);ld d,h;ld e,l;ld h,e;ld l,10;or a;sbc hl,de;add hl,hl (-add hl,hl;add hl,de;inc hl;ld (Seed),hl;ret 2! RANDOM NO. DOWN <Rdwn;push hl;call Rnd;ld a,h;and 7;inc a;ld h,a;ld a,e;and 15;add a,h;ld e,0;rra;rr e;rra;rr e;rra;rr e;or 88;ld d,a;pop hl;ret F! RND*24 P_Rd24;push hl;call Rnd;ld a,h;and 7;ld h,a;ld a,l;and 7;add a,h;inc a;inc a;res 0,a;pop hl;ret Z! BLANK LINER dBlin;push de;push bc;ld b,22;A;dec de;ld a,e;and 31;cp 31;jr z,B;ld a,(de);cp 16;jr nz,+3;ld a,56;ld (de),a;djnz A;B;pop bc;pop de;ret n ! FIND xFind;inc hl;inc hl;inc hl;ld a,(hl);or a;jr nz,Find;call Rdwn;ld (hl),d;inc hl;ld (hl),e;inc hl;ld a,(23672);and 1;or 128;ld (hl),a;ret ! NEXT POS Nxpos;push bc;push de;ld bc,32;bit 0,(hl);jr nz,+3;ld bc,65504;ex de,hl;add hl,bc;ex de,hl;bit 2,d;jr nz,C;ld a,d;cp 91;jr nz,C;pop bc;pop bc;ret;C;pop de;ld a,1;xor (hl);ld (hl),a;pop bc;ret ! FOUR CHR DFchr;push bc;push hl;push de;ld h,0;ld l,a;ld a,(Pnum)add a,l;jr D ! CHR ^Chr;push bc;push hl;push de;ld h,0;ld l,a;D;ld a,(hl);ld (de),a;inc hl;ld a,d;and 3;or 8;rla Zrla;rla;ld d,a;ld b,8;E;ld a,(hl);ld (de),a;inc hl;inc d;djnz E;pop de;pop hl;pop bc;ret ! FUZBALL ҇Fuz;ld hl,Fcnt;ld a,(hl);or a;jr nz,F;dec (hl);ret nz;call Rdwn;jr G;F;ld de,(Fpos);ld hl,F1;xor a;bit 0,(hl);jr z,+2;ld a,0;call Chr ܐG;push de;ld hl,(Ship);ld bc,7936;ld a,e;and b;ld e,a;sbc hl,de;pop de;jr nc,+2;ld c,1;ld a,h;or l;dec de;jr z,H;ld hl,F2;ld (hl),c;call Nxpos H;ld a,e;and 31;jr nz,+7;ld a,(Fr);ld (Fcnt),a;ret;ld a,(de);cp 0;jr nz,+5;ld a,1;ld (F1),a;ld a,0;call Fchr;ld (Fpos),de;ret ! LINER Lin;ld hl,Lcnt;dec (hl);jr nz,+10;ld a,(Lr);ld (hl),a;ld hl,Lpos;call Find;ld b,4;ld hl,Lpos;L1;ld d,(hl);ld a,d;or a;jr z,I;inc hl;ld e,(hl);inc hl ebit 7,(hl);jr nz,J;bit 1,(hl);jr z,K;ld a,0;call Chr;dec de;ld a,(de);cp 56;jr nz,L;res 1,(hl);jr L K;xor a;call Chr;ld a,e;and 31;jr nz,+3;ld d,a;jr M;call Blin;J;dec de;call Nxpos;ld a,(de);cp 0;jr nz,+2;set 1,(hl);push bc;ld b,22;push de fL2;dec de;ld a,e;and 31;cp 31;jr z,N;ld a,(de);cp 0;jr z,+4;cp 56;jr nz,+3;ld a,16;ld (de),a;djnz L2 "vN;pop de;pop bc;L;ld a,0;call Fchr;M;dec hl;dec hl;ld (hl),d;I;inc hl;ld (hl),e;inc hl;res 7,(hl);inc hl;djnz L1;ret ,! WALKER 6`Walk;ld hl,Wcnt;dec (hl);jr nz,+10;ld a,(Wr);ld (hl),a;ld hl,Wpos;call Find;ld hl,Wpos;ld b,16 @L3;ld d,(hl);ld a,d;or a;jr z,O;inc hl;ld e,(hl);inc hl;bit 7,(hl);jr nz,P;bit 1,(hl);jr z,Q;ld a,0;call Chr;dec de;ld a,(de);cp 56;jr nz,+2;res 1,(hl);jr R J5Q;xor a;call Chr;ld a,e;and 31;jr nz,+3;ld d,a;jr S TDP;bit 5,(hl);dec de;call z,Nxpos;ld a,(de);cp 0;jr nz,R;set 1,(hl) ^~R;ld a,0;call Fchr;S;dec hl;dec hl;O;ld (hl),d;inc hl;ld (hl),e;inc hl;ld a,32;xor (hl);res 7,a;ld (hl),a;inc hl;djnz L3;ret h! SPIKER rhSpi;ld hl,Scnt;dec (hl);jr nz,+16;ld a,(Sr);ld (hl),a;ld hl,Spos;call Find;call Rd24;set 7,a;ld (hl),a |ld b,16;ld hl,Spos L4;ld d,(hl);inc hl;ld a,d;or a;jr nz,T;ld e,(hl);inc hl;bit 7,(hl);jr nz,+5;ld a,0;call Chr;ld a,(hl);or a;jr z,U;dec (hl);dec de ?V;ld a,0;call Fchr;W;dec hl;dec hl;ld (hl),d;inc hl;ld (hl),e (T;inc hl;res 7,(hl);inc hl;djnz L4;ret ,U;inc de;ld a,e;and 31;jr nz,V;ld d,a;jr W ! ASTEROID _Ast;ld hl,Acnt;dec (hl);jr nz,+10;ld a,(Ar);ld (hl),a;ld hl,Apos;call Find;ld b,16;ld hl,Apos •L5;ld d,(hl);ld a,d;or a;jr z,X;inc hl;ld e,(hl);inc hl;bit 7,(hl);jr nz,Y;xor a;bit 1,(hl);jr z,+4;res 1,(hl);ld a,0;call Chr;ld a,e;and 31;jr z,Z DY;dec de;ld a,(de);cp 0;jr nz,+2;set 1,(hl);ld a,0;call Fchr;jr +1 "Z;ld d,a;dec hl;dec hl;ld (hl),d 9X;inc hl;ld (hl),e;inc hl;res 7,(hl);inc hl;djnz L5;ret ! SCREEN ZScr;push de;L6;ld d,(hl);inc hl;ld e,(hl);inc hl;inc hl;ex (sp),hl;sbc hl,de;ld a,h;or l Qjr z,+4;add hl,de;ex (sp),hl;jr L6;pop hl;dec hl;dec hl;dec hl;ld (hl),a;jp Chr  ! INC ]Inc;push hl;inc (hl);ld a,(hl);cp 58;jr z,+4;pop hl;djnz Inc;ret;ld (hl),48;dec hl;jr Inc+1 & ! CHECK 0WChk;cp 0;jr nz,Aa;xor a;call Chr;inc de;xor a;call Chr;push hl;ld hl,Ss2;ld b,2;jr Ab :2Aa;push hl;cp 0;jr nz,+7;ld hl,Wpos;ld b,5;jr Ac D'cp 0;jr nz,+7;ld hl,Apos;ld b,3;jr Ac N2cp 0;jr nz,+10;call Blin;ld hl,Lpos;ld b,1;jr Ad X'cp 0;jr nz,+7;ld hl,Spos;ld b,2;jr Ad b$ld a,(Fr);ld (Fcnt),a;ld b,3;jr +3 lAd;call Scr;ld hl,Ss0;jr Ab vAc;call Scr;ld hl,Ss1 IAb;push bc;call Inc;ld bc,5;add hl,bc;pop bc;call Inc;pop hl;ld d,b;ret ! KEYPRESS AKp;in a,(223);xor 255;jr nz,Jy;ld a,(23560);ret;Jy;ld a,255;ret ! SET TIME ;Sti;ld hl,Fcnt;ld bc,1320;L7;ld (hl),c;inc hl;djnz L7;ret ! BLANKOUT ABout;ld hl,Fpos;ld d,178;L8;ld (hl),0;inc hl;dec d;jr nz,L8;ret ! BLANK SCREEN HBscr;ld de,22528;ld bc,768;L9;cp 0;jr z,+8;cp 0;jr z,+4;xor a;call Chr (inc de;dec bc;ld a,b;or c;jr nz,L9;ret ! MOVE MISSILE "Mis;ld ix,Snd;ld b,10;ld hl,Mstr bL10;ld e,(hl);inc hl;ld d,(hl);ld a,d;or a;jr z,N1;dec hl;ld a,(de);sub 0;jr z,+5;call Chk;jr N2 5call Chr;inc de;ld a,e;and 31;jr nz,+3;ld d,a;jr N2  'ld a,(de);cp 0;jr z,+5;call Chk;jr N2 Eld a,0;call Chr;ld a,e;sub (ix+0);jr nc,N2;add a,(ix+0);ld (ix+0),a  N2;ld (hl),e;inc hl;ld (hl),d *N1;inc hl;djnz L10;ret @! J! VARIABLES T! Seed;defw 23583  Pnum;defb 0 Ship;defw 0 !YOUR POS ,defs 0000;Ss0;defs 0;Ss1;defs 0;Ss2;defs 0 Wscr;defs 00000 Snd;defb 1 !Sound str !4! FLAGS !5F1;defb 0 !FUZ ON SPIKE? !>F2;defb 0 !FUZ DIREC. !! ROM2 VALUES !Fr;defb 40 !FUZ !Lr;defb 45 !LINER !Wr;defb 6 !WALKER !Sr;defb 30 !SPIKER !Ar;defb 11 !ASTEROID !! ALIEN POSIT'S " Fpos;defw 0 "Lpos;defs aaaaaaaaaaaa "<Wpos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "$<Spos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ".<Apos;defs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "8 Mstr;defs aaaaaaaaaaaaaaaaaaaa "`! COUNTS "j Fcnt;defb 0 "t Lcnt;defb 1 "~ Wcnt;defb 1 " Scnt;defb 1 " Acnt;defb 1 #finish #'60000`