mstdn.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A general-purpose Mastodon server with a 500 character limit. All languages are welcome.

Administered by:

Server stats:

12K
active users

#basicprogramming

1 post1 participant0 posts today
The Oasis BBS<p>Drawing Lissajous Curves in BASIC on the Commander X16<br><a href="https://techhub.social/tags/CommanderX16" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommanderX16</span></a> <a href="https://techhub.social/tags/LissajousCurves" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LissajousCurves</span></a> <a href="https://techhub.social/tags/RetroCoding" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroCoding</span></a> <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://techhub.social/tags/X16Emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>X16Emulator</span></a><br><a href="https://theoasisbbs.com/drawing-lissajous-curves-in-basic-on-the-commander-x16/?feed_id=4964&amp;_unique_id=68a86f0306045" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/drawing-lissaj</span><span class="invisible">ous-curves-in-basic-on-the-commander-x16/?feed_id=4964&amp;_unique_id=68a86f0306045</span></a></p>
Gothic Card (Robert G)<p>Can someone release a new Sinclair ZX80/81. In stead of tape, us SD card, and have HDMI connection.</p><p><a href="https://mastodonapp.uk/tags/Sinclair" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Sinclair</span></a> <a href="https://mastodonapp.uk/tags/zx80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zx80</span></a> <a href="https://mastodonapp.uk/tags/zx81" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zx81</span></a> <a href="https://mastodonapp.uk/tags/sinclairbasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sinclairbasic</span></a> <a href="https://mastodonapp.uk/tags/basic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>basic</span></a> <a href="https://mastodonapp.uk/tags/basicprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>basicprogramming</span></a> <a href="https://mastodonapp.uk/tags/LoveThe80s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LoveThe80s</span></a></p>
The Oasis BBS<p>Meteor Defender X16 Lands on Commander X16<br><a href="https://techhub.social/tags/CommanderX16" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommanderX16</span></a> <a href="https://techhub.social/tags/RetroGaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroGaming</span></a> <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://techhub.social/tags/ComputeGazette" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ComputeGazette</span></a> <a href="https://techhub.social/tags/MeteorDefenderX16" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MeteorDefenderX16</span></a><br><a href="https://theoasisbbs.com/meteor-defender-x16-lands-on-commander-x16/?feed_id=4349&amp;_unique_id=6878f8c7e5d43" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/meteor-defende</span><span class="invisible">r-x16-lands-on-commander-x16/?feed_id=4349&amp;_unique_id=6878f8c7e5d43</span></a></p>
HackerNews VN bot<p>Muốn học lập trình BASIC trên máy Commodore 64? Bài viết này hướng dẫn bạn cách gõ lại các trò chơi dạng văn bản để hiểu rõ hơn về lập trình và khám phá thế giới máy tính cổ điển. Một cách thú vị để quay về quá khứ và tự tạo game đơn giản!</p><p><a href="https://mastodon.maobui.com/tags/Commodore64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Commodore64</span></a> <a href="https://mastodon.maobui.com/tags/BASIC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASIC</span></a> <a href="https://mastodon.maobui.com/tags/Programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Programming</span></a> <a href="https://mastodon.maobui.com/tags/RetroGaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroGaming</span></a> <a href="https://mastodon.maobui.com/tags/TextBasedGames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TextBasedGames</span></a><br><a href="https://mastodon.maobui.com/tags/L%E1%BA%ADpTr%C3%ACnh" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LậpTrình</span></a> <a href="https://mastodon.maobui.com/tags/M%C3%A1yT%C3%ADnhC%E1%BB%95" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MáyTínhCổ</span></a> <a href="https://mastodon.maobui.com/tags/GameC%E1%BB%95%C4%90i%E1%BB%83n" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GameCổĐiển</span></a> <a href="https://mastodon.maobui.com/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a></p><p><a href="https://retrogamestart.com/answers/learn-commodore-64-basic-programming-type-text-based-games" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">retrogamestart.com/answers/lea</span><span class="invisible">rn-commodore-64-basic-programming-type-text-based-games</span></a></p>
Bornach<p><span class="h-card" translate="no"><a href="https://techhub.social/@SQLAllFather" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>SQLAllFather</span></a></span> <span class="h-card" translate="no"><a href="https://hexa.club/@phooky" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>phooky</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@diyelectromusic" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>diyelectromusic</span></a></span> <span class="h-card" translate="no"><a href="https://oldbytes.space/@rc2014" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>rc2014</span></a></span> <br>Relive those memories as Kari gets to experience all the pain her generation missed out on<br><a href="https://youtu.be/Pw97o4HvsHs" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">youtu.be/Pw97o4HvsHs</span><span class="invisible"></span></a><br><a href="https://fosstodon.org/tags/Atari2600" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Atari2600</span></a> <a href="https://fosstodon.org/tags/BasicProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BasicProgramming</span></a></p>
The Oasis BBS<p>Using PS/2 Mouse in SuperBasic<br><a href="https://techhub.social/tags/FoenixF256K2" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FoenixF256K2</span></a> <a href="https://techhub.social/tags/SuperBasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SuperBasic</span></a> <a href="https://techhub.social/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroComputing</span></a> <a href="https://techhub.social/tags/PS2Mouse" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PS2Mouse</span></a> <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://techhub.social/tags/8BitReimagined" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>8BitReimagined</span></a><br><a href="https://theoasisbbs.com/using-ps-2-mouse-in-superbasic/?feed_id=3687&amp;_unique_id=6842eb8251cdf" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/using-ps-2-mou</span><span class="invisible">se-in-superbasic/?feed_id=3687&amp;_unique_id=6842eb8251cdf</span></a></p>
DimaLink<p>BBC Basic for SDL2 – for 80s fans!</p><p><a href="https://dimalinkeng.blogspot.com/2025/05/bbc-basic-for-sdl2-for-80s-fans.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">dimalinkeng.blogspot.com/2025/</span><span class="invisible">05/bbc-basic-for-sdl2-for-80s-fans.html</span></a></p><p><a href="https://mastodon.social/tags/bbcbasicforsdl2" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>bbcbasicforsdl2</span></a> <a href="https://mastodon.social/tags/retroprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retroprogramming</span></a> <a href="https://mastodon.social/tags/ide" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ide</span></a> <a href="https://mastodon.social/tags/80sprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>80sprogramming</span></a> <a href="https://mastodon.social/tags/1980s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>1980s</span></a> <a href="https://mastodon.social/tags/bbcmicro" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>bbcmicro</span></a> <a href="https://mastodon.social/tags/basic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>basic</span></a> <a href="https://mastodon.social/tags/8bit" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>8bit</span></a> <a href="https://mastodon.social/tags/modernqbasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>modernqbasic</span></a> <a href="https://mastodon.social/tags/programmingtool" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>programmingtool</span></a> <a href="https://mastodon.social/tags/soft" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>soft</span></a> <a href="https://mastodon.social/tags/software" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>software</span></a> <a href="https://mastodon.social/tags/developmenttool" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>developmenttool</span></a> <a href="https://mastodon.social/tags/coolthing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>coolthing</span></a> <a href="https://mastodon.social/tags/uniquebasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>uniquebasic</span></a> <a href="https://mastodon.social/tags/oldschool" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>oldschool</span></a> <a href="https://mastodon.social/tags/8bitcomputers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>8bitcomputers</span></a> <a href="https://mastodon.social/tags/writeprogram" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>writeprogram</span></a> <a href="https://mastodon.social/tags/codeeditor" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>codeeditor</span></a> <a href="https://mastodon.social/tags/retrosoft" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrosoft</span></a> <a href="https://mastodon.social/tags/basicprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>basicprogramming</span></a> <a href="https://mastodon.social/tags/compile" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>compile</span></a> <a href="https://mastodon.social/tags/like80s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>like80s</span></a> <a href="https://mastodon.social/tags/modern80s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>modern80s</span></a></p>
The Oasis BBS<p>ugBASIC Programming Guide Updated<br><a href="https://techhub.social/tags/ugBASIC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ugBASIC</span></a> <a href="https://techhub.social/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroComputing</span></a> <a href="https://techhub.social/tags/8bitCoding" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>8bitCoding</span></a> <a href="https://techhub.social/tags/BASICLanguage" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICLanguage</span></a> <a href="https://techhub.social/tags/Commodore64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Commodore64</span></a> <a href="https://techhub.social/tags/MSX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MSX</span></a> <a href="https://techhub.social/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://techhub.social/tags/AmstradCPC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AmstradCPC</span></a> <a href="https://techhub.social/tags/GameDevRetro" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GameDevRetro</span></a> <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a><br><a href="https://theoasisbbs.com/ugbasic-programming-guide-updated/?feed_id=3525&amp;_unique_id=68370a7d8e450" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/ugbasic-progra</span><span class="invisible">mming-guide-updated/?feed_id=3525&amp;_unique_id=68370a7d8e450</span></a></p>
DimaLink<p>I like Basic a lot</p><p><a href="https://dimalinkeng.blogspot.com/2025/05/i-like-basic-lot.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">dimalinkeng.blogspot.com/2025/</span><span class="invisible">05/i-like-basic-lot.html</span></a></p><p><a href="https://mastodon.social/tags/Basicprogramminglanguage" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Basicprogramminglanguage</span></a> <a href="https://mastodon.social/tags/retroprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retroprogramming</span></a> <a href="https://mastodon.social/tags/qbasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>qbasic</span></a> <a href="https://mastodon.social/tags/qb64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>qb64</span></a> <a href="https://mastodon.social/tags/bbcbasicforsdl2" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>bbcbasicforsdl2</span></a> <a href="https://mastodon.social/tags/freebasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>freebasic</span></a> <a href="https://mastodon.social/tags/vim" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vim</span></a> <a href="https://mastodon.social/tags/basicprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>basicprogramming</span></a> <a href="https://mastodon.social/tags/startingprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>startingprogramming</span></a> <a href="https://mastodon.social/tags/80s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>80s</span></a> <a href="https://mastodon.social/tags/modern" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>modern</span></a> <a href="https://mastodon.social/tags/software" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>software</span></a> <a href="https://mastodon.social/tags/ide" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ide</span></a> <a href="https://mastodon.social/tags/simpleprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>simpleprogramming</span></a> <a href="https://mastodon.social/tags/itisfun" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>itisfun</span></a> <a href="https://mastodon.social/tags/compiler" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>compiler</span></a> <a href="https://mastodon.social/tags/codeeditor" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>codeeditor</span></a> <a href="https://mastodon.social/tags/dialectsBasic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dialectsBasic</span></a> <a href="https://mastodon.social/tags/differentversions" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>differentversions</span></a> <a href="https://mastodon.social/tags/soft" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>soft</span></a> <a href="https://mastodon.social/tags/app" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>app</span></a> <a href="https://mastodon.social/tags/application" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>application</span></a> <a href="https://mastodon.social/tags/development" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>development</span></a> <a href="https://mastodon.social/tags/coolretro" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>coolretro</span></a> <a href="https://mastodon.social/tags/thisismodern" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>thisismodern</span></a> <a href="https://mastodon.social/tags/retrofuture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrofuture</span></a></p>
The Oasis BBS<p>BASIC MEGA65 Dungeon Crawler Crammed Into One Screen<br><a href="https://techhub.social/tags/Mega65" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Mega65</span></a> <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://techhub.social/tags/8BitTheory" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>8BitTheory</span></a> <a href="https://techhub.social/tags/RetroDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroDev</span></a> <a href="https://techhub.social/tags/OneScreenGame" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OneScreenGame</span></a> <a href="https://techhub.social/tags/DungeonCrawler" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DungeonCrawler</span></a> <a href="https://techhub.social/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroComputing</span></a> <a href="https://techhub.social/tags/GameDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GameDev</span></a><br><a href="https://theoasisbbs.com/basic-mega65-dungeon-crawler-crammed-into-one-screen/?feed_id=3256&amp;_unique_id=6821f498e55b8" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/basic-mega65-d</span><span class="invisible">ungeon-crawler-crammed-into-one-screen/?feed_id=3256&amp;_unique_id=6821f498e55b8</span></a></p>
ianoid<p>Tried my hand at the Bally Basic tutorial. It doesn't take long to get used to the keypad for programming. Powerful for a game console of it's time. <a href="https://mastodon.social/tags/astrocade" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>astrocade</span></a> <a href="https://mastodon.social/tags/BallyAstrocade" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BallyAstrocade</span></a> <a href="https://mastodon.social/tags/basicprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>basicprogramming</span></a> <br><a href="https://mastodon.social/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a></p>
The Oasis BBS<p>Teaching a Commodore 64 to “Think” — ProjectCD.Chronicles Pulls It Off in BASIC<br><a href="https://techhub.social/tags/C64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>C64</span></a> <a href="https://techhub.social/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroComputing</span></a> <a href="https://techhub.social/tags/NeuralNetwork" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>NeuralNetwork</span></a> <a href="https://techhub.social/tags/ProjectCDChronicles" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ProjectCDChronicles</span></a> <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://techhub.social/tags/Commodore64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Commodore64</span></a> <a href="https://techhub.social/tags/8bitAI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>8bitAI</span></a> <a href="https://techhub.social/tags/PatternRecognition" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PatternRecognition</span></a><br><a href="https://theoasisbbs.com/teaching-a-commodore-64-to-think-projectcd-chronicles-pulls-it-off-in-basic/?feed_id=3043&amp;_unique_id=6810d028ad1e3" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/teaching-a-com</span><span class="invisible">modore-64-to-think-projectcd-chronicles-pulls-it-off-in-basic/?feed_id=3043&amp;_unique_id=6810d028ad1e3</span></a></p>
The Oasis BBS<p>Classic Snake Game Now Playable on Commodore 64 and VIC-20<br><a href="https://techhub.social/tags/C64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>C64</span></a> <a href="https://techhub.social/tags/VIC20" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>VIC20</span></a> <a href="https://techhub.social/tags/RetroGaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroGaming</span></a> <a href="https://techhub.social/tags/Commodore64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Commodore64</span></a> <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://techhub.social/tags/Homebrew" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Homebrew</span></a> <a href="https://techhub.social/tags/SnakeGame" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SnakeGame</span></a> <a href="https://techhub.social/tags/8bitgames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>8bitgames</span></a><br><a href="https://theoasisbbs.com/classic-snake-game-now-playable-on-commodore-64-and-vic-20/?feed_id=2861&amp;_unique_id=68024e06524c6" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/classic-snake-</span><span class="invisible">game-now-playable-on-commodore-64-and-vic-20/?feed_id=2861&amp;_unique_id=68024e06524c6</span></a></p>
The Oasis BBS<p>MEGA65 Intro Disk V4: New Demos, Tools, Games &amp; Community Highlights<br><a href="https://techhub.social/tags/MEGA65" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MEGA65</span></a> <a href="https://techhub.social/tags/IntroDiskV4" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>IntroDiskV4</span></a> <a href="https://techhub.social/tags/Commodore65" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Commodore65</span></a> <a href="https://techhub.social/tags/XEMU" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>XEMU</span></a> <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://techhub.social/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroComputing</span></a> <a href="https://techhub.social/tags/TypeInGames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeInGames</span></a> <a href="https://techhub.social/tags/8BitCommunity" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>8BitCommunity</span></a> <a href="https://techhub.social/tags/HomebrewSoftware" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HomebrewSoftware</span></a><br><a href="https://theoasisbbs.com/mega65-intro-disk-v4-new-demos-tools-games-community-highlights/?feed_id=2823&amp;_unique_id=67ffabf98a11f" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/mega65-intro-d</span><span class="invisible">isk-v4-new-demos-tools-games-community-highlights/?feed_id=2823&amp;_unique_id=67ffabf98a11f</span></a></p>
The Oasis BBS<p>How to Grab Commodore 64 Kernel Data Using BASIC<br><a href="https://techhub.social/tags/Commodore64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Commodore64</span></a> <a href="https://techhub.social/tags/C64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>C64</span></a> <a href="https://techhub.social/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroComputing</span></a> <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://techhub.social/tags/SD2IEC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SD2IEC</span></a> <a href="https://techhub.social/tags/JosipRetroBits" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JosipRetroBits</span></a> <a href="https://techhub.social/tags/Code" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Code</span></a><br><a href="https://theoasisbbs.com/how-to-grab-commodore-64-kernel-data-using-basic/?feed_id=2487&amp;_unique_id=67e69fb2e8227" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/how-to-grab-co</span><span class="invisible">mmodore-64-kernel-data-using-basic/?feed_id=2487&amp;_unique_id=67e69fb2e8227</span></a></p>
The Oasis BBS<p>Exploring Commodore User (Dec 1986): Fixing &amp; Optimizing the Christmas Eve BASIC Game!<br><a href="https://techhub.social/tags/c64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>c64</span></a> <a href="https://techhub.social/tags/Commodore64" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Commodore64</span></a>, <a href="https://techhub.social/tags/CommodoreUser" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommodoreUser</span></a>, <a href="https://techhub.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a>, <a href="https://techhub.social/tags/TypeInGames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeInGames</span></a>, <a href="https://techhub.social/tags/ChristmasEveGame" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ChristmasEveGame</span></a>, <a href="https://techhub.social/tags/SandyMunro" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SandyMunro</span></a>, <a href="https://techhub.social/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroComputing</span></a>, <a href="https://techhub.social/tags/VintageMagazines" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>VintageMagazines</span></a>, <a href="https://techhub.social/tags/8BitGaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>8BitGaming</span></a>, <a href="https://techhub.social/tags/GameOptimization" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GameOptimization</span></a>, <a href="https://techhub.social/tags/C64Bugs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>C64Bugs</span></a>, <a href="https://techhub.social/tags/RetroChristmas" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroChristmas</span></a><br><a href="https://theoasisbbs.com/exploring-commodore-user-dec-1986-fixing-optimizing-the-christmas-eve-basic-game/?feed_id=902&amp;_unique_id=676ee81dc8507" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">theoasisbbs.com/exploring-comm</span><span class="invisible">odore-user-dec-1986-fixing-optimizing-the-christmas-eve-basic-game/?feed_id=902&amp;_unique_id=676ee81dc8507</span></a></p>
retrogamecoders (unofficial)<p><strong><a href="https://retrogamecoders.com/c64-adventure-programming/" rel="nofollow noopener" target="_blank">C64 Text Adventure Game Programming Tutorial</a></strong></p> <p></p> <p>We wrote a kind of C64 text adventure in the previous part of this series, but it was more of a <a href="https://retrogamecoders.com/strings-text-adventure/" rel="nofollow noopener" target="_blank">"choose your own" adventure</a> kind of style.</p> <p>Now let's take a look at writing a <em>true</em> text adventure for the Commodore 64 using BASIC.</p> <p>C64 text adventure game</p> <p>There is a lot of benefit to writing these kinds of games, even if the game itself is not the end result you are working towards. A text adventure is really a kind of interactive database, with some logic, but to fit on a C64 it needs to be highly efficient in how it handles that data.</p> <p><strong>Planning the Adventure Game Engine</strong></p> <p><strong>Commodore 64 BASIC Programming Series</strong></p> <p>Part 1: <a href="https://retrogamecoders.com/commodore64-basic-programming/" rel="nofollow noopener" target="_blank">Introduction to Commodore BASIC</a></p> <p>Part 1.5: <a href="https://retrogamecoders.com/cbm-prg-studio-mac-linux-with-wine/" rel="nofollow noopener" target="_blank">Installing CBM Prg Studio on Mac/Linux</a></p> <p>Part 2: <a href="https://retrogamecoders.com/commodore-64-basic-commands/" rel="nofollow noopener" target="_blank">Commodore BASIC Commands GOSUB and FOR Loops</a></p> <p>Part 3: <a href="https://retrogamecoders.com/commodore-basic-game-logic/" rel="nofollow noopener" target="_blank">If/Then, Game Logic and Cursor Movement</a></p> <p>Part 4: <a href="https://retrogamecoders.com/c64-poke-peek/" rel="nofollow noopener" target="_blank">The Magic of POKE</a></p> <p>Part 5: <a href="https://retrogamecoders.com/c64-dos-commands/" rel="nofollow noopener" target="_blank">C64 DOS Commands</a></p> <p>Part 6: <a href="https://retrogamecoders.com/c64-write-load-data/" rel="nofollow noopener" target="_blank">Working with Data Files</a></p> <p>Part 7: <a href="https://retrogamecoders.com/c64-visual-studio-code/" rel="nofollow noopener" target="_blank">Programming C64 with Visual Studio Code</a></p> <p>Part 8: <a href="https://retrogamecoders.com/strings-text-adventure/" rel="nofollow noopener" target="_blank">C64 BASIC String Manipulation</a></p> <p>Part 9: <a href="https://retrogamecoders.com/c64-adventure-programming/" rel="nofollow noopener" target="_blank">C64 Text Adventure Game</a></p> <p>What do we need for a minimal text adventure?</p> <ol> <li>Navigatable <strong>map</strong> represented in data.</li> <li>Description of <strong>locations</strong>.</li> <li><strong>Objects</strong> to interact with in those locations.</li> <li><strong>Inventory</strong>.</li> <li>Text input <strong>parser</strong>.</li> </ol> <p>That is quite a to-do list, let's start with the map.</p> <p><strong>Representing Maps in C64 BASIC</strong></p> <p>3D Monster Maze</p> <p>There are a few ways we can approach the map, but for a text adventure the first question we need to ask ourselves is how much freedom should the user have?</p> <p>If you consider the games that we are familiar with, there are the most basic two dimensional games like 3D Monster Maze where the player can go North, South, East or West, all the way to the modern day first-person shooter where the player can essentially move in full 360 degress.</p> <p>The former option is the easiest, and can be represented by a two-dimensional array:</p> <p><code>dim m$(4,4)</code></p> <p>Adventure Game Map Array</p> <p>In the example above, our player can move North or South only where he currently sits at the coordinate 2,3 (arrays start counting at zero, and I am listing the horizontal coordinate before the vertical).</p> <p>It is quite possible to have a three-dimensional array in Commodore BASIC programming, but once you start fleshing out your map you will see allocating space in memory for unused areas, so we should try another approach here.</p> <p>Another disadvantage with the traditional 2D or 3D array for our map is it leads to a grid-based structure. In dungeon or maze style scenarios, this is perfect, but for a text adventure you soon start to find it restrictive.</p> <p>For example, what if your player steps out of an airlock into space? Or descends to the bottom of the ocean in a submarine? Or even walks along the shore picking up driftwood, assembles a raft and explores the nearby island?</p> <p><strong>Linked Lists</strong></p> <p>You might be familiar already with Linked Lists, they have been around since the early days of computing, but essentially they are simply lists of data items where each item points to the next (or more) item in the list:</p> <blockquote> <p>In computer science, a linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each element points to the next. It is a data structure consisting of a collection of nodes which together represent a sequence. In its most basic form, each node contains data, and a reference (in other words, a link) to the next node in the sequence. This structure allows for efficient insertion or removal of elements from any position in the sequence during iteration. More complex variants add additional links, allowing more efficient insertion or removal of nodes at arbitrary positions</p> <p><a href="https://en.wikipedia.org/wiki/Linked_list" rel="nofollow noopener" target="_blank">https://en.wikipedia.org/wiki/Linked_list</a></p> </blockquote> <p>In our case we can use several single dimensioned arrays as our linked lists, but especially for things like the map and even our inventory.</p> <p>Linked Lists</p> <p>Taking the map first, using a linked list means we only need to set up data for locations that actually need to exist, and each location can point to the other locations the user can get to from there. This means they can go up and down, as well as the cardinal directions, if we want them to.</p> <p>Our objects can also start at a location and be moved to other locations, or be held by the player, by giving each object a current location that points to an entry in the map.</p> <pre><code>rc = 3 : rem room count dim lo$(rc) lo$(0)="inventory" lo$(1)="dank basement" lo$(2)="furnace room" lo$(3)="service hatch" oc = 2 : rem object count dim ob$(oc) ob$(0)="matches" ob$(1)="brass key" rem object's locations rem loc 0 = player's inventory dim ol(oc) ol(0)=0 ol(1)=1 </code></pre> <p>In the example above, we have our locations listed and you will notice the first item, item zero, we consider the player holding in their inventory.</p> <p>This means when we look at the Object Locations list, we can see the first object ("Matches") is being held by the player, but the "Brass Key" is in room 1, the "Dank Basement".</p> <p>If the player goes to Dank Basement and picks up the key, the location for that object changes to zero. If they then drop the Matches then the Matches object location changes to room 1.</p> <p>Listing the Inventory then becomes a case of going through the objects where the location is 0:</p> <pre><code>rem check object location from the first object to object count for i = 0 to oc-1 if ol(i) = 0 then print ". ";ob$(i) : rem if the object is in zero print it next i </code></pre> <p>Room descriptions follow the same pattern:</p> <pre><code>rem room descriptions (rc is the room count) dim rd$(rc) rd$(0)="" rd$(1)="a chillingly damp, bare-bricked room with poured cement floor and timber beamed ceiling. window frames are boarded along one wall." rd$(2)="this room is obviously a later addition, thrown together with drywall, and just large enough to section off the furnace from the main basement." rd$(3)="up above the furnace, this tiny space must have been built to allow access to hvac ducting." </code></pre> <p>When the player steps into a new room/location, we print the selected name from the list, but we could if we wanted to also present the description without expecting the player to request that explicitly:</p> <p><code>PRINT RD$(PL)</code></p> <p>This is far easier to accomplish in a modern programming environment, where you might have a class with name, location, and other properties, but it is the closest we can get with the tools we have!</p> <p>Look at that to-do list now, four out of five items checked off with one data structure!</p> <p><strong>Coding a Verb-Noun Text Parser in BASIC</strong></p> <p>Back when text adventures were popular, a lot of people were blown away as they got more and more sophisticated, but under the hood they were always very simple, because they had to be.</p> <p>We didn't have the "AI" tools that we have today, the programs would simply look for patterns and react or branch appropriately.</p> <p>The first check is to allow the player to "<code>GO WEST</code>" or simply enter "<code>W</code>" for their movements. It soon gets annoying to repeatedly write things out in full when you don't need to.</p> <p>Checking for <code>I</code> is just as easy, but if we are careful to not have another command that starts with that letter, it also serves to check for <code>Inventory</code> too.</p> <pre><code>25 PRINT "WHAT NOW?" 26 INPUT I$ 27 IF LEFT$(I$,3) = "GO " THEN GOSUB 42 28 IF I$ = "N" THEN GOSUB 46 29 IF I$ = "E" THEN GOSUB 46 30 IF I$ = "S" THEN GOSUB 46 31 IF I$ = "W" THEN GOSUB 46 32 IF I$ = "U" THEN GOSUB 46 33 IF I$ = "D" THEN GOSUB 46 34 IF LEFT$(I$,1) = "I" THEN GOSUB 58 </code></pre> <p>When the player uses <code>GO</code> then we need to find the direction part of that instruction using our neat <code>MID$</code> command we are now familiar with from last time.</p> <pre><code>42 REM FULLY WRITTEN OUT MOVE (EG. GO SOUTH OR GO S) 43 D$ = MID$(I$,4,1) 44 GOSUB 50 45 RETURN 46 REM ABBREVIATED MOVE (EG. N) 47 D$ = I$ 48 GOSUB 50 49 RETURN </code></pre> <p>With a single letter now in hand we need to check where to take the player to next.</p> <p>Rather than put together a multi-dimensional array, I opted to use strings for each location and the available exits. If there is a number greater than 00 in the string location then we get the <code>VAL()</code> to return the numeric versus string value, and that is the players new room to explore:</p> <pre><code>50 REM GO TO THE NEW PLAYER LOCATION (PL) 51 IF D$ = "N" THEN PL = VAL(MID$(EX$(PL),1,2)) 52 IF D$ = "E" THEN PL = VAL(MID$(EX$(PL),3,2)) 53 IF D$ = "S" THEN PL = VAL(MID$(EX$(PL),5,2)) 54 IF D$ = "W" THEN PL = VAL(MID$(EX$(PL),7,2)) 55 IF D$ = "U" THEN PL = VAL(MID$(EX$(PL),9,2)) 56 IF D$ = "D" THEN PL = VAL(MID$(EX$(PL),11,2)) 57 RETURN </code></pre> <p>More complicated instructions are really just a variation on what we did with <code>GO</code>, we split the instruction into verbs and nouns.</p> <ul> <li> <p><strong>Verbs are actions,</strong> so in the instruction they should come first, followed by a space.</p> </li> <li> <p><strong>Nouns are names</strong> of things, so we look at that part to see which object we are referring to.</p> </li> </ul> <p>C64 BASIC does not have a way to search within a string like other dialects (usually the <code>INSTR</code> command), so we can not look for the space character efficiently. Instead we need to check the start of the string for each specific word.</p> <p>Once we know the verb we can handle the noun in the subroutine that we then branch to.</p> <p>There is likely a more efficient way to do this, but this suffices:</p> <pre><code>35 IF LEFT$(I$,4) = "GET " THEN GOSUB 73 36 IF LEFT$(I$,5) = "TAKE " THEN GOSUB 69 37 IF LEFT$(I$,5) = "DROP " THEN GOSUB 93 38 IF LEFT$(I$,8) = "EXAMINE " THEN GOSUB 107 39 IF LEFT$(I$,4) = "LOOK" THEN PRINT"":PRINT RD$(PL):PRINT"":GOSUB 65 40 IF LEFT$(I$,1) = "Q" THEN GOTO 190 </code></pre> <p><code>Q</code> or <code>QUIT</code>, of course, takes you to the "ARE YOU SURE?" screen before closing the program.</p> <p><strong>Text Adventure Code So Far</strong></p> <pre><code>1 REM TEXT ADVENTURE GAME BY CHRIS GARRETT 2024 RETROGAMECODERS.COM 2 REM SET UP VARIABLES ETC 3 GOSUB 128 4 REM SHOW ROOM DETAILS 5 GOSUB 126 6 IF PL=0 THEN PL = PP : REM PLAYER LOCATION CAN NOT BE 00 AS THAT IS INVENTORY 7 PP = PL : REM BACKUP THE LOCATION IN CASE ILLEGAL MOVE MADE 8 PRINT RV$+LO$(PL)+RO$ 9 PRINT "" 10 PRINT "OBJECTS VISIBLE:"+LB$ 11 FOR I = 0 TO OC-1 : REM CHECK OBJECT LOCATIONS FROM THE FIRST OBJECT TO OBJECT COUNT 12 IF OL(I) = PL THEN PRINT ". ";OB$(I) : REM IF THE OBJECT IS IN CURRENT LOCATION PRINT IT 13 NEXT I 14 PRINT "" 15 PRINT WT$+"EXITS AVAILABLE:"+LB$ 16 REM CHECK EACH POSSIBLE EXIT 17 IF MID$(EX$(PL),1,2)&amp;lt;&amp;gt;"00" THEN PRINT ". NORTH" 18 IF MID$(EX$(PL),3,2)&amp;lt;&amp;gt;"00" THEN PRINT ". EAST" 19 IF MID$(EX$(PL),5,2)&amp;lt;&amp;gt;"00" THEN PRINT ". SOUTH" 20 IF MID$(EX$(PL),7,2)&amp;lt;&amp;gt;"00" THEN PRINT ". WEST" 21 IF MID$(EX$(PL),9,2)&amp;lt;&amp;gt;"00" THEN PRINT ". UP" 22 IF MID$(EX$(PL),11,2)&amp;lt;&amp;gt;"00" THEN PRINT ". DOWN" 23 I$="" 24 PRINT "" 25 PRINT YL$+"WHAT NOW?"+LB$ 26 INPUT I$ 27 IF LEFT$(I$,3) = "GO " THEN GOSUB 42 28 IF I$ = "N" THEN GOSUB 46 29 IF I$ = "E" THEN GOSUB 46 30 IF I$ = "S" THEN GOSUB 46 31 IF I$ = "W" THEN GOSUB 46 32 IF I$ = "U" THEN GOSUB 46 33 IF I$ = "D" THEN GOSUB 46 34 IF LEFT$(I$,1) = "I" THEN GOSUB 58 35 IF LEFT$(I$,4) = "GET " THEN GOSUB 73 36 IF LEFT$(I$,5) = "TAKE " THEN GOSUB 69 37 IF LEFT$(I$,5) = "DROP " THEN GOSUB 93 38 IF LEFT$(I$,8) = "EXAMINE " THEN GOSUB 107 39 IF LEFT$(I$,4) = "LOOK" THEN PRINT"":PRINT RD$(PL):PRINT"":GOSUB 65 40 IF LEFT$(I$,1) = "Q" THEN GOTO 190 41 GOTO 4 42 REM FULLY WRITTEN OUT MOVE (EG. GO SOUTH OR GO S) 43 D$ = MID$(I$,4,1) 44 GOSUB 50 45 RETURN 46 REM ABBREVIATED MOVE (EG. N) 47 D$ = I$ 48 GOSUB 50 49 RETURN 50 REM GO TO THE NEW PLAYER LOCATION (PL) 51 IF D$ = "N" THEN PL = VAL(MID$(EX$(PL),1,2)) 52 IF D$ = "E" THEN PL = VAL(MID$(EX$(PL),3,2)) 53 IF D$ = "S" THEN PL = VAL(MID$(EX$(PL),5,2)) 54 IF D$ = "W" THEN PL = VAL(MID$(EX$(PL),7,2)) 55 IF D$ = "U" THEN PL = VAL(MID$(EX$(PL),9,2)) 56 IF D$ = "D" THEN PL = VAL(MID$(EX$(PL),11,2)) 57 RETURN 58 REM OBJECTS THE PLAYER IS CARRYING 59 PRINT "" 60 PRINT "OBJECTS IN YOUR POSSESSION:" 61 FOR I = 0 TO OC-1 : REM CHECK OBJECT LOCATION FROM THE FIRST OBJECT TO OBJECT COUNT 62 IF OL(I) = 0 THEN PRINT ". ";OB$(I) : REM IF THE OBJECT IS IN ZERO PRINT IT 63 NEXT I 64 PRINT "" 65 PRINT CY$+RV$+" PRESS A KEY TO CONTINUE "+RO$ 66 GET I$ 67 IF I$="" GOTO 66 68 RETURN 69 REM ALTERNATIVE ACTION TO GET 70 F=-1:R$="" 71 R$ = MID$(I$,6) : REM R$ IS OBJECT REQUESTED 72 GOTO 76 73 REM ALLOW PLAYER TO GET AVAILABLE OBJECT AND PUT IN INVENTORY 74 F=-1:R$="" 75 R$ = MID$(I$,5) : REM R$ IS OBJECT REQUESTED 76 REM GET THE OBJECT ID 77 FOR I = 1 TO OC 78 IF OB$(I-1) = R$ THEN F=I : REM IT EXISTS 79 NEXT I 80 REM CAN'T FIND IT? 81 PRINT "" 82 IF F=-1 THEN PRINT "CAN'T SEE THAT HERE, CHECK SPELLING AND BE SPECIFIC?" : GOTO 90 83 IF OL(F-1)=PL THEN GOTO 87 84 IF OL(F-1)=0 THEN PRINT "YOU ALREADY HAVE THAT" : GOTO 90 85 PRINT "I CAN'T SEE THAT AROUND HERE" 86 GOTO 90 87 OL(F-1)=0 : REM SET THE OBJECT LOCATION TO INVENTORY AKA ROOM ZERO 88 PRINT "" 89 PRINT "GOT THE ";OBJ$(F-1) 90 PRINT "" 91 GOSUB 65 92 RETURN 93 REM DROP OBJECTS THE PLAYER IS CARRYING 94 F=-1:R$="" 95 R$ = MID$(I$,6) : REM R$ IS OBJECT REQUESTED 96 REM GET THE OBJECT ID 97 FOR I = 1 TO OC 98 IF OB$(I-1) = R$ THEN F=I : REM IT EXISTS 99 NEXT I 100 REM CAN'T FIND IT? 101 PRINT "" 102 IF F=-1 THEN PRINT "CAN'T SEEM TO FIND THAT, CHECK SPELLING AND BE SPECIFIC?" : GOTO 105 103 IF OL(F-1)=0 THEN PRINT "OK, DROPPED!" : OL(F-1)=PL : GOTO 105 104 PRINT "NO CAN DO, ARE YOU SURE YOU HAVE THAT?" 105 GOSUB 65 106 RETURN 107 REM EXAMINE OBJECTS THE PLAYER IS CARRYING 108 F=-1:R$="" 109 R$ = MID$(I$,9) : REM R$ IS OBJECT REQUESTED 110 REM GET THE OBJECT ID 111 FOR I = 1 TO OC 112 IF OB$(I-1) = R$ THEN F=I : REM IT EXISTS 113 NEXT I 114 REM CAN'T FIND IT? 115 PRINT "" 116 IF F=-1 THEN PRINT "CAN'T SEEM TO FIND THAT, CHECK SPELLING AND BE SPECIFIC?" : GOTO 119 117 IF OL(F-1)=0 THEN PRINT OD$(F-1) : GOTO 119 118 PRINT "NO CAN DO, ARE YOU SURE YOU HAVE THAT?" 119 GOSUB 65 120 RETURN 121 REM CLEAR SCREEN AND SET UP COLOURS 122 POKE 53281,6 : POKE 53280,6: REM SCREEN COLOURS 123 LB$=CHR$(154): WT$=CHR$(5): REM LIGHT BLUE, WHITE 124 YL$=CHR$(158): CY$=CHR$(159): REM YELLOW AND CYAN 125 RV$=CHR$(18): RO$=CHR$(146): BL$=CHR$(13) + CHR$(187) + CHR$(32): REM REVERSE ON AND OFF TO MAKE LISTING THE CODE EASIER 126 PRINT WT$: PRINT CHR$(147): PRINT CHR$(19);: REM CLEAR SCREEN, WHITE TEXT 127 RETURN 128 REM SET UP THE GAME AND THE DISPLAY 129 GOSUB 121 130 REM OBJECTS AND LOCATIONS 131 REM ===================== 132 REM OBJECTS 133 OC = 2 : REM OBJECT COUNT 134 DIM OB$(OC) 135 OB$(0)="MATCHES" 136 OB$(1)="BRASS KEY" 137 REM OBJECT DESCRIPTIONS 138 DIM OD$(OC) 139 OD$(0)="A SMALL BOOK OF PROMOTIONAL MATCHES ADVERTISING PATTY'S BAR AND GRILL, NORTH LAKES" 140 OD$(1)="A LARGE AND HEAVY KEY MADE OUT OF BRASS." 141 REM LOCATIONS 142 RC = 3 : REM ROOM COUNT 143 DIM LO$(RC) 144 LO$(0)="INVENTORY" 145 LO$(1)="DANK BASEMENT" 146 LO$(2)="FURNACE ROOM" 147 LO$(3)="SERVICE HATCH" 148 REM ROOM DESCRIPTIONS 149 DIM RD$(RC) 150 RD$(0)="" 151 RD$(1)="A CHILLINGLY DAMP, BARE-BRICKED ROOM WITH POURED CEMENT FLOOR AND TIMBER BEAMED CEILING. WINDOW FRAMES ARE BOARDED ALONG ONE WALL." 152 RD$(2)="THIS ROOM IS OBVIOUSLY A LATER ADDITION, THROWN TOGETHER WITH DRYWALL, AND JUST LARGE ENOUGH TO SECTION OFF THE FURNACE FROM THE MAIN BASEMENT." 153 RD$(3)="UP ABOVE THE FURNACE, THIS TINY SPACE MUST HAVE BEEN BUILT TO ALLOW ACCESS TO HVAC DUCTING." 154 REM OBJECT'S LOCATIONS 155 REM LOC 0 = PLAYER'S INVENTORY 156 DIM OL(OC) 157 OL(0)=0 158 OL(1)=1 159 REM EXIT NAMES 160 DIM EN$(6) 161 EN$(0)="NORTH" 162 EN$(1)="EAST" 163 EN$(2)="SOUTH" 164 EN$(3)="WEST" 165 EN$(4)="UP" 166 EN$(5)="DOWN" 167 REM ROOM EXITS 168 REM N E S W U D 169 DIM EX$(20) 170 EX$(1)="000002000000" 171 EX$(2)="010000000300" 172 EX$(3)="000000000002" 173 REM PLAYER 174 REM ====== 175 PL = 1 : REM PLAYER LOCATION 176 PP = 1 : REM PLAYER PREVIOUS LOCATION 177 GOSUB 121 178 PRINT " MURDER HOUSE" 179 PRINT " A TEXT ADVENTURE GAME" 180 PRINT " BY CHRIS GARRETT" 181 PRINT " 2024" 182 PRINT"" 183 PRINT LG$ 184 PRINT " RETROGAMECODERS.COM" 185 PRINT"" 186 PRINT"" 187 PRINT"" 188 GOSUB 65 189 RETURN 190 GOSUB 126 191 POKE 53281,6 : POKE 53280,14 192 PRINT "GOODBYE!" 193 PRINT "" 194 PRINT FRE(0) 195 PRINT "" </code></pre> <p>Here above is the C64 BASIC code for the text adventure so far, and it is also <a href="https://github.com/omiq/basic-adventure/blob/main/adv1.bas" rel="nofollow noopener" target="_blank">available on Github</a>9.</p> <p>It is sufficient to make a game, even though we have some pieces missing if you wanted to go full <em>Zork</em>.</p> <ul> <li>How would you make it so that the player wins if they find the treasure?</li> <li>Could you score the player based on completing the game in as few steps as possible?</li> <li>Can you figure out how to have closed or even hidden doors?</li> </ul> <p>The post <a href="https://retrogamecoders.com/c64-adventure-programming/" rel="nofollow noopener" target="_blank">C64 Text Adventure Game Programming Tutorial</a> appeared first on <a href="https://retrogamecoders.com" rel="nofollow noopener" target="_blank">Retro Game Coders</a>.</p> <p><a class="hashtag" href="https://xn--y9azesw6bu.xn--y9a3aq/streams/tag/programming/" rel="nofollow noopener" target="_blank">#programming</a> <a class="hashtag" href="https://xn--y9azesw6bu.xn--y9a3aq/streams/tag/basicprogramming/" rel="nofollow noopener" target="_blank">#basicprogramming</a> <a class="hashtag" href="https://xn--y9azesw6bu.xn--y9a3aq/streams/tag/commodore64c64/" rel="nofollow noopener" target="_blank">#commodore64c64</a></p>
That Tech Guy<p>The BASIC programming language turned 60 years old this week (May 1st). For so many people (myself included) BASIC was their first venture into computer programming. A simple, easy to read language that inspired many of the programming languages we use today. HAPPY BIRTHDAY!<br><a href="https://mastodon.social/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://mastodon.social/tags/BASIC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASIC</span></a> <a href="https://mastodon.social/tags/Programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Programming</span></a> <a href="https://mastodon.social/tags/Computer" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Computer</span></a> <a href="https://mastodon.social/tags/ComputerHistory" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ComputerHistory</span></a></p><p><a href="https://arstechnica.com/gadgets/2024/05/the-basic-programming-language-turns-60/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">arstechnica.com/gadgets/2024/0</span><span class="invisible">5/the-basic-programming-language-turns-60/</span></a></p>
@reiver ⊼ (Charles) :batman:<p>“On many early microcomputers, BASIC was more than a language — it was also the operating system of the machine, the interface between the electronics inside the beast and the gawk-eyed neophyte at the keyboard.”</p><p>⸺ G. Michael Vose</p><p>From page 298 of Byte Magazine Volume 09 Number 04 (1984 April) - "Real-World Interfacing"</p><p><a href="https://mastodon.social/tags/basic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>basic</span></a> <a href="https://mastodon.social/tags/basicProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>basicProgramming</span></a> <a href="https://mastodon.social/tags/retroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retroComputing</span></a> <a href="https://mastodon.social/tags/vintageComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vintageComputing</span></a></p>
Bornach<p>Discovered retro 8-bit computer programming click bait</p><p>You can read it on Internet Archive<br><a href="https://archive.org/details/33_Adult_Computer_Games_in_BASIC_1983_Tab_Books/mode/1up" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">archive.org/details/33_Adult_C</span><span class="invisible">omputer_Games_in_BASIC_1983_Tab_Books/mode/1up</span></a><br>Of course, it is not what you think</p><p><a href="https://fosstodon.org/tags/ClickBait" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ClickBait</span></a> <a href="https://fosstodon.org/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RetroComputing</span></a> <a href="https://fosstodon.org/tags/BASICProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BASICProgramming</span></a> <a href="https://fosstodon.org/tags/computerGames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>computerGames</span></a> <a href="https://fosstodon.org/tags/IBMPC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>IBMPC</span></a> <a href="https://fosstodon.org/tags/AppleII" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AppleII</span></a> <a href="https://fosstodon.org/tags/AppleIIe" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AppleIIe</span></a> <a href="https://fosstodon.org/tags/TRS80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TRS80</span></a></p>