ZX81 Programs


Read about, play, run, or list games, animations, and more. These are my programs from the ’80s to today.

ZX81 Program Listing

funfonts (funfonts.p)


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 20068
VARS  : 20861
E-LINE: 20862
STKBOT: 20862
STKEND: 20862


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

  10 REM **FUNFONTS***SLR/2025**
  20 REM **SET THINGS UP**
  30 GOSUB 500
  40 REM **GET FONT**
  50 REM DIM F$(10,42)
  60 GOSUB 1000+100*INT (RND*NUM
FONTS)
  70 REM **TRANSITION**
  80 GOSUB 2000
  90 RUN
 100 REM **SAVE
 110 SAVE "FUNFONTS"
 120 RUN
 150 REM **PAUSE
 160 FOR D=1 TO DELAY
 170 LET DELAY=PI*SIN PI+1
 180 IF INKEY$<>"" THEN RUN
 190 NEXT D
 200 RETURN
 500 REM **SETUP
 510 CLS
 520 RAND 0
 530 LET PAUSE=150
 540 LET NUMFONTS=7
 550 RETURN
1000 REM **FONT 1 - ALLIGATOR2
1005 DIM F$(7,44)
1010 LET F$(1)="::::::::: :::   
 :::  ::::::::    :::"
1015 LET F$(2)="     :+:  :+:   
 :+: :+:    +:+ :+:+:"
1020 LET F$(3)="    +:+    +:+  
+:+  +:+    +:+   +:+"
1025 LET F$(4)="   +£+      +£++
:+    +£++:++£    +£+"
1030 LET F$(5)="  +£+      +£+  
+£+  +£+    +£+   +£+"
1035 LET F$(6)=" £+£      £+£   
 £+£ £+£    £+£   £+£"
1040 LET F$(7)="£££££££££ £££   
 £££  ££££££££  £££££££"
1090 LET H=7
1099 RETURN
1100 REM **FONT 2 - 3-D
1105 DIM F$(8,36)
1110 LET F$(1)=" ******** **    
 **  ****   **"
1115 LET F$(2)="//////** //**   
**  */// * ***"
1120 LET F$(3)="     **   //** *
*  /*   /*//**"
1125 LET F$(4)="    **     //***
   / ****  /**"
1130 LET F$(5)="   **       **/*
*   */// * /**"
1135 LET F$(6)="  **       ** //
** /*   /* /**"
1140 LET F$(7)=" ******** **  //
**/  ****  ****"
1145 LET F$(8)="//////// //     
//  ////  ////"
1190 LET H=8
1199 RETURN
1200 REM **FONT 3 - ALPHABET
1205 DIM F$(5,32)
1210 LET F$(1)="ZZZZZ X   X  888
   11"
1215 LET F$(2)="   Z   X X  8   
8 111"
1220 LET F$(3)="  Z     X    888
   11"
1225 LET F$(4)=" Z     X X  8   
8  11"
1230 LET F$(5)="ZZZZZ X   X  888
  1111"
1290 LET H=5
1299 RETURN
1300 REM **FONT 4 - ARROWS
1305 DIM F$(7,46)
1310 LET F$(1)=">=======>>=> >=>
      >=>"
1315 LET F$(2)="       >=>    >=
>   >=>      >=>    >=>"
1320 LET F$(3)="      >=>      >
=> >=>     >>   >=>  >=>"
1325 LET F$(4)="    >=>         
 >=>      >>     >>  >=>"
1330 LET F$(5)="   >=>         >
=> >=>      >=>>=>   >=>"
1335 LET F$(6)=" >=>          >=
>   >=>   >>     >>  >=>"
1340 LET F$(7)=">==========> >=>
      >=>   >====>  >===>"
1390 LET H=7
1399 RETURN
1400 REM **FONT 5 - COINSTAK
1405 DIM F$(7,44)
1410 LET F$(1)="O))))))) O))O)) 
     O))"
1415 LET F$(2)="       O))   O))
   O))      O)    O))"
1420 LET F$(3)="      O))     O)
) O))    O))  O))  O))"
1425 LET F$(4)="    O))         
O))     O))     O) O))"
1430 LET F$(5)="   O))        O)
) O))     O)) O)   O))"
1435 LET F$(6)=" O))         O))
   O))  O))     O) O))"
1440 LET F$(7)="O)))))))))))O)) 
     O))  O)))))  O))))"
1490 LET H=7
1499 RETURN
1500 REM **FONT 6 - MARQUEE
1505 DIM F$(7,44)
1510 LET F$(1)=".::::::: .::.:: 
     .::"
1515 LET F$(2)="       .::   .::
   .::      .:     .::"
1520 LET F$(3)="      .::     .:
: .::    .::  .::   .::"
1525 LET F$(4)="    .::         
.::     .::     .:  .::"
1530 LET F$(5)="   .::        .:
: .::     .:: .:    .::"
1535 LET F$(6)=" .::         .::
   .::  .::    .::  .::"
1540 LET F$(7)=".:::::::::::.:: 
     .::  .::::    .::::"
1590 LET H=7
1599 RETURN
1600 REM **FONT 7 - USA FLAG
1605 DIM F$(5,35)
1610 LET F$(1)=":::===== :::  ==
= :::====  :::"
1615 LET F$(2)="     === :::  ==
= :::  === :::"
1620 LET F$(3)="   ===    ======
   ======  ==="
1625 LET F$(4)=" ===      ======
  ===  === ==="
1630 LET F$(5)="======== ===  ==
=  ======  ==="
1690 LET H=5
1699 RETURN
2000 REM **DISPLAY FONT EFFECT
2010 LET DELAY=5
2020 LET Y=RND*12
2030 FOR L=1 TO 16+INT (RND*16)
2040 LET B$=""
2050 FOR Z=1 TO H
2060 LET B$=B$+F$(Z, TO 32)
2070 LET F$(Z)=F$(Z,2 TO )+F$(Z,
1)
2080 NEXT Z
2090 PRINT AT Y,0;B$
2100 GOSUB PAUSE
2110 NEXT L
2120 RETURN