A downloadable game

Rogue Abyss81

For the Sinclair ZX81

By Luis Pieri


COMPO : BASIC 10 LINER CONTEST

(https://gkanold.wixsite.com/homeputerium/rules2026)

CATEGORY : PUR-120

DEADLINE : March 22th, 2026

LINK : https://lupoman.itch.io/RogueAbyss81

DATE : 15-MAR-2025 TO 18-MAR-2026


IDEA

“Roguish”-like game in 10 sentences/commands of ZX81 BASIC (yes only 10 sentences aka 10 lines also).

The player is descending into the Abyss81 (yes there are 80 at least, maybe more).

The screen scrolls automatically, you can control your player left and right only (Use O and P keys).

You need to pick food to increase health, pick coins and fight the nasty Orks!


# -----------------------------------------------------------------------------

# Rogue Abyss81 - LPieri - 10 Line Basic

#

# BY LUIS PIERI <https: lupoman.itch.io=""></https:>

#

# ZX81 BASIC to be converted using ZXText2P

#             

# DATE      : 02-MAR-2026 TO 14-MAR-2025

# COMPO     : https://gkanold.wixsite.com/homeputerium/rules-2026

# DEADLINE  : March 22th, 2026

#

# IDEA      : Very simple Roguish like, survive the Rogue Abyss.

#             Pick food to heal, avoid poisoned walls, pick the gold.

#             Fight the orks!

#             But beware, if you greed make your health or gold or experience

#             get over high levels, the level will reset to 0 again.

#             

#             Use 'O' and 'P' keys to move the player left and right.

#             To fight an Ork, just move to the same tile.

#

# 2026-03-15: My previous entry (Survivor81) was the proof of concept.

#             I had this ideas since Aug 2025...

#             First ideas in code, checking more representing chars.

#         @: Mage  (you use O and P to move left or right 

#                you will descend the abyss automatically)

#        X: Ork   (enemy will take health 1..5 depending experience)

#        .: Floor (you can walk over)

#           #: Wall  (will drop health and experience by 1..3 amount)

#       +: Food  (will increase health by 2..5)

#           $: Gold  (will increase gold)

#

#             Important the screen is divided in 2 horizontally

#             To the left the status

#             To the right the game map

#

# 2026-03-16: Line 1 is init, line 2 prints the status, called by goto when

#             the player make contact with anything but floor.

#             Line 9 can be used if needed

#             Line 10, can goto to gameover (line 1), status (line 2) and loop (line 3)

#

# 2026-03-17: I found a way around getting negative HP or getting HP, XP, $ > 255

#             Strange beahavior in scroll, workaround need testing on real zx81.

#

# 2026-03-18: Put MSG to the player in the screen

#             add some feedback to the player

#             if fight ork, change to *

#             if pick food, change to O

#             if pick money, change to O

#             if touch wall, change to *

#             Show always H - $ stats, 

#             Lots of microchanges to fit in PUR-120

#

# 01: INIT VARS ---------------------------------------------------------------

# pos 01: Player x

# pos 02: HP

# pos 03: XP

# pos 04: $ 

# pos 05: detection

# pos 06: rnd section

# pos 07: rnd player

# pos 08-12: DFILE address

# pos 13: types of section 1x8 chars, walls are added (40 chars)

#         ........ ...##... .##..##. #......# ###..###

# pos 53-: Text Messages

#         

#          + VARS   + DFILE RAM ADDRESS                 +               *                 *                 *                 *                 + MESSAGES TO THE PLAYER

#          0------  --1--                               1-------------2 ----------------- --3-------------- -------4--------- ------------5---- 5------6---------7---------8----- 
#          1234567  89012                               3 4 5 6 7 8 9 0 1  2 3 4 5 6 7 8  9 0  1 2 3 4 5  6 7 8 9  0 1 2  3 4 5 6 7 8  9  0 1 2 345678901234567890123456789012345
1 let a$= "/4     "+str$(PEEK 16396+32+PEEK 16397*256)+"%.%.%.%.%.%.%.%.\##%.%.%.%.%.%.\##%.\##%.%.%.%.\##%.%.%.\##%.%.\##%.%.%.%.%.\##\##%.%.%.HEALEDPOISONEDORK KILLEDGAME OVER"
# 02: PRINT STATUS ------------------------------------------------------------
#
2 print at 0,12;"X:";code a$(3),,a$(59-(a$(5)="%+")*6+(a$(5)="%X")*8+(a$(5)=" ")*18 to 66-(a$(5)="%+")*8+(a$(5)="%X")*10+(a$(5)=" ")*19)
# 03: UPD VARS Player and RND -------------------------------------------------
3 let a$= chr$( code a$(1)-(code a$(1)>1 and inkey$="O")+(code a$(1)<30 and inkey$="P") )+a$(2to5)+chr$(int(RND*5)*8+13)+chr$(int(RND*3))+a$(8to)
# 04: Check collision and also update XP after fighting ork -------------------
4 let a$ = a$(to2) + chr$( code a$(3)+(1+rnd*3)*(a$(5)="%X")*(code a$(3)<250) ) +  a$(4) + chr$(PEEK (val(a$(8to12))+(code a$(1)))) + a$(6to)
# 05: SCROLL ------------------------------------------------------------------
5 scroll 
# 06: PRINT Player and Abyss new section --------------------------------------
6 print at 0,code(a$(1));chr$( 156+(a$(5)="%$")*24 - (a$(5)="%X")*5 ); AT 0,0;"H:";code a$(2);tab 6;"$:";code a$(4);at 21,20;"\##"+a$(code a$(6) TO code a$(6)+7)+"\##"
# 07: Put object ( ork, food, coin) at 30% chance -----------------------------
#
# ORK X = 189,  COIN $ = 141, FOOD + = 149  WALL \## = 136
#
7 if rnd>.8 then print at21,21+rnd*7;chr$( 141 + (A$(7)="\' ")*8 + (A$(7)>"\' ")*48 )
# 08: Check if health kit or coin is picked -----------------------------------
8 let a$ = a$(1)+chr$( code a$(2)+(a$(5)="%+")*(2+rnd*4)*(code a$(2)<250) )+a$(3) + chr$( code a$(4)+(a$(5)="%$")*(code a$(4)<250) ) +a$(5to)
# 09: Check if fight Ork or touch wall ----------------------------------------
9 if a$(5)="%X" or a$(5)="\##" then let a$ = a$(1)+chr$( code a$(2)-(2+rnd*6-(code a$(3))/50)*(code a$(2)>7)-(code a$(2))*(code a$(2)<8 ) ) +  a$(3to)
# 10: GO TO Loop OR Display stats or GAME OVER --------------------------------
10 goto 3-(a$(5)<>"%." and a$(5)<>" " and a$(5)<>"%$")-(a$(2)=" ")
# =============================================================================


Download

Download
Rogue Abyss81.pdf 4.4 MB
Download
rogueabyss81.bas 5.3 kB
Download
RogueAbyss81.p 2.3 kB

Comments

Log in with itch.io to leave a comment.

Fun game! It scrolls at a nice speed to keep the game flowing and allows for planning the optimal path through the walls.

very good

Fair play, I'm a fan of new content on the 81 and you've managed this in very few characters.  That's not easy to do