Episode 11 – The PowerBASIC Card
Play: https://inverseatascii.info/wp-content/uploads/2019/12/podfolio-11-thepowerbasiccard.mp3
Download: 11 – The PowerBASIC Card
Box Scans
Card Scans
Other Images
Compiling the program that generated the “Have you played Atari today?” interlude music:
Manual
Atari_Portfolio_PowerBASIC_Manual_1991
Screen Shots
Editing tune program with the Portfolio’s built-in editor;
Compiling the tune program:
Trying to run the tune program from a card without the runtime installed to the card:
Compiling “Guess My Number” program I ported from the many other implementations I’ve done:
Goops, a syntax error encountered:
Running “Guess My Number”, game 1:
Running “Guess My Number”, game 2:
Source Code
Guess My Number
REM Declare & Init Vars
SINPT$="":SZERO$="00000":SGNUM$=""
STEMP$="":SGUESS$=""
GSNUM%=1:IGUESS%=0
REM Generate Random Number
ISEED%=VAL(MID$(TIME$,4,2)+MID$(TIME$,7,2))
RANDOMIZE ISEED%
MYNUM%=INT(RND*100)+1
REM Setup Screen
CLS
PRINT "-[Number Guess, PowerBASIC, V1]--------"
PRINT "My number is between 1 and 100."
PRINT "What is it?"
REM Main Guess Loop
DO WHILE IGUESS%<>MYNUM%
REM Create 0 padded guess number
STEMP$=STR$(GSNUM%)
STEMP$=RIGHT$(STEMP$,LEN(STEMP$)-1)
SGSNUM$=RIGHT$(SZERO$+STEMP$,5)
REM Display Guess & Get Input
PRINT "Guess #";SGSNUM$;
INPUT "?",SINPT$
REM Convert input to value
IGUESS%=VAL(SINPT$)
REM Check Value
IF IGUESS%>MYNUM% THEN
PRINT "Sorry, too high!"
ELSEIF IGUESS%
Truchet Tiles
' -----------------------------------------------
' Program....: TruchPB.BAS
' Description: Truchet Tiles
' -----------------------------------------------
TSTART:
CLS:SCREEN 0
T%=3:D%=1:X%=229:Y%=50
? "Truchet Tiles, PowerBASIC, V 1.0":? ""
? "Choose Pattern Type:"
? " 1 - Predefined X"
? " 2 - Random"
? " 3 - Quit"
INPUT T%
IF T%=3 THEN SCREEN 0:END
'
' --- DRAW TILES
TDRAW:
SCREEN 1
ON T% GOSUB TPREDEF,TRANDOM
WHILE INKEY$<>"":WEND
WHILE INKEY$="":WEND
GOTO TSTART
'
' --- PREDEF PATTERN X
TPREDEF:
FOR R=2 TO Y% STEP 12:FOR C=0 TO X% STEP 12
IF D%=5 THEN D%=1:RESTORE TDATA
READ V%:GOSUB TDOTILE
NEXT C
D%=D%+1
NEXT R
RETURN
'
' --- RANDOM PATTERN
TRANDOM:
FOR R=2 TO Y% STEP 12:FOR C=0 TO X% STEP 12
GOSUB TGETRAND
NEXT C
NEXT R
RETURN
'
' --- GET RANDOM NUMBER
TGETRAND:
ISEED%=VAL(MID$(TIME$,4,2)+MID$(TIME$,7,2))
RANDOMIZE ISEED%
V%=INT(RND MOD 2)
TDOTILE:
ON V%+1 GOTO TTILE0,TTILE1
'
' --- PLOT V=0
TTILE0:
LINE (C+5,R) - (C+5,R+2):LINE (C+5,R+2) - (C+2,R+5):LINE (C+2,R+5) - (C,R+5)
LINE (C+6,R) - (C+6,R+2):LINE (C+6,R+2) - (C+2,R+6):LINE (C+2,R+6) - (C,R+6)
LINE (C+11,R+5) - (C+9,R+5):LINE (C+9,R+5) - (C+5,R+9):LINE (C+5,R+9) - (C+5,R+11)
LINE (C+11,R+6) - (C+9,R+6):LINE (C+9,R+6) - (C+6,R+9):LINE (C+6,R+9) - (C+6,R+11)
RETURN
'
' --- PLOT V=1
TTILE1:
LINE (C+5,R) - (C+5,R+2):LINE (C+5,R+2) - (C+9,R+6):LINE (C+9,R+6) - (C+11,R+6)
LINE (C+6,R) - (C+6,R+2):LINE (C+6,R+2) - (C+9,R+5):LINE (C+9,R+5) - (C+11,R+5)
LINE (C,R+5) - (C+2,R+5):LINE (C+2,R+5) - (C+6,R+9):LINE (C+6,R+9) - (C+6,R+11)
LINE (C,R+6) - (C+2,R+6):LINE (C+2,R+6) - (C+5,R+9):LINE (C+5,R+9) - (C+5,R+11)
RETURN
'
' --- PREDEF PATTERN DATA
TDATA:
DATA 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
DATA 0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0
DATA 1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1
DATA 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
Atari Tune
tone 12,21
for i=1 to 2:next i
tone 12,21
for i=1 to 2:next i
tone 12,21
for i=1 to 2:next i
tone 12,21
for i=1 to 2:next i
tone 15,21
tone 14,36
tone 12,21
tone 10,85
Links
Wiki: https://en.wikipedia.org/wiki/Atari_Portfolio
BoxCat Map Theme: http://freemusicarchive.org/music/BoxCat_Games/Nameless_the_Hackers_RPG_Soundtrack/BoxCat_Games_-_Nameless-_the_Hackers_RPG_Soundtrack_-_17_Map_Theme
Special thanks goes out to BoxCat Games for the podcast intro music which I adapted from the track “Map Theme” from the album “Nameless: The Hackers RPG” which BoxCat released under the Creative Commons Attribution License.