ZX81 Listing for birds.p


ZX81 program listing for ***BIRDS**SLR/2026***

***BIRDS**SLR/2026*** (birds.p)

Flocking birds using Boids simulation.


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 17646
VARS  : 18439
E-LINE: 18440
STKBOT: 18445
STKEND: 18445


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

   1 REM /-***BIRDS**SLR/2026***
52523 EúE£RND6E?LN ??JM<>?LN **
RNDLN òINKEY$LN 6?LN POKE PILN /
INKEY$LN )INKEY$LN "?LN 3PILN
POKE PILN ??U<>?RASN TRNDLN ???A
RNDö=5??LN 1?NEW Z?7LN 1?NEW 3
LEN ô?7LN 1?NEW óCHR$ ò?7LN 1?
NEW óCHR$ ò?7(>=TAN 5PEEK ?)**
õLN 1?NEW ÷CHR$ ó¶>7<(NEXT TAN 5
??ñ  )  Y=MSIN ?7777USIN ?XMSIN
?4SCROLL STR$ ??LN ?INKEY$?M??
LPRINT LN ?INKEY$?MCODE ?5??- 2 
ö=?777(POKE ?LN µINKEY$MVAL ??
LN µINKEY$MLEN ?TAN )  ñ= R
GOSUB PISó</SAVE FOR TAN RCOS
ACS ?CóYCOPY TAN TAN 5??ö=VAL
6COS ??RETURN ñCö)ô ;/ó5??MLN ?E
COS ?MACS ?LN FPIUEXP ?RC=7UINT
LN ?PI?7USQR LN ?PI?/?7??U
ASN ?LN ?PIUSGN ?R4öUVAL ?MSGN ?
USGN ?LN ?PI?7??UACS ?LN ?PIU
SGN ?R4öULEN ?MSGN ?USGN ?LN ?PI
?ECOS ?)ô ;AT õTAB -INKEY$TAN JM
EXP ?UASN ??UATN ???(LN ?PISQR M
INT ?UACS ??ULN ???(LN ?PISQR M
SQR ?YñMEXP ?TAN RC=ACS ?Cù
GOSUB ?RETURN ôSQR YCOPY RTAN
RETURN ôSQR YñRTAN JRTAN ??(COS
ACS ?4"RETURN £**USGN ?WMSGN ?
TAN RETURN PRINT SQR USGN ?XM
SGN ?TAN ACS ?4öRETURN ô**TAN
RETURN CLEAR SQR YCLEAR TAN ö=5?
?VAL FAST ?7?7?7?LPRINT ? ACS ?4
£RETURN RNDS(-Z?GOSUB ??/ù- ?
GOSUB ??/ñ??±ACS ?4£RETURN GS(2F
?GOSUB ??/ù2 ?GOSUB ??/ñ???7??7?
?7??7AT (LTAN ö=5??VAL FAST LN (
LOAD TAN ö=5??VAL FAST LN ATN ?
LPRINT 77AT (LOAD TAN öJ: VAL
LN RNDSPRINT 5**?YõPRINT öIFAST
LN X?öHFAST LN ?öHFAST LN W?öH
FAST LN ACS TAN RND7J:/ö4?7(
UNPLOT 7$4PLOT TAN ?ACS ?""CHR$
RNDLIST ?ACS ?""CHR$ KLIST
ACS CABS +?-ôACS DABS 0?ACS 6
STR$ ?A DDDDDFOR ?³?5  7;ö ùSGN
?ACS ??ASN Y?ACS SY?(M?ACS ?ASN
ASN ?Y?>ACS COPY ?TAN ?ACS ?""
CHR$ RNDLIST ?ACS ?""CHR$ KLIST
ACS CABS STOP ?-ôACS DABS REM
?ACS 6STR$ ?A DDDDDFOR ?³?E£RND7
;ö ùSGN ?ACS ??ASN £?ACS SY?(??J
7?ACS ?ASN .?Y?>ACS COPY ?TAN
VAL Y9?UORNDC?GOSUB ?CR4ñW????C?
ACS BC?ACS ZACS ZCM3?AT TAN OR
LN ??K:GOSUB ?9RND£CõYñM<>? OR
TAN INT COPY GOSUB ?9RND£COS /
SAVE   5? 6??LN INKEY$?E??F?P4
PAUSE TAN                       
                                
                                
          ö>3IT      
   2 RAND USR VAL "16514"