Mutiny Community Development Notes Version 5.0 - 2023-12-12 Normally I only jump the major version number up when a major feature is added or some big change but in this case there's only a few minor things. The reason for the bump is that somewhere along the way the version numbers got messed up. I was at 4.3g but when I went to write the dev notes I saw notes for versions up to 4.8 so obviously somewhere along the way I either screwed up the versioning or the notes (or both). So I'm starting with a clean slate (version numbering-wise). What I've been working on is making that door game UR (The Royal game of UR is the offical name of the game) and since I was doing it all in Mutant Basic I needed to make a few improvements to that as well as the BBS in general. First, what's new with UR: I changed the drawing routine so that it no longer uses cursor positioning this allows the game to be played in ASCII so you don't need ansi/cbm although it's nice to have colors but isn't required. Also I rotated the board horizontally which means the game will show up properly on the 64x16 display of the MailStation and yet is still playable on 40 column displays as well. Now for changes to the BBS: In the text files area, if you are in the SQL manager (you edited a .sql file) you can run a script using "run (sql filename)". I found this handy because I can write the table creation script in a text file and then use this command to run it, made it a lot easier if I needed to come back and add a column or something. Although, in general, I found working with SQL a bit tedious and went a different way in UR by using save-states instead (which uses SQL behind the scenes). To that end... In Mutant Basic: The "loadstate" statement can take an optional list of variables you want to load from the state. Normally loadstate will load all variables from the state but you might need to only load a few and want other variables untouched. For writing the code on a Commodore computer there are two characters that might come up which aren't on the C64/128 keyboard: The underscore and the pipe (|). For me the pipe only came up in SQL queries which I ended up not using still it would be nice to be able to use this. The left-arrow (not cursor key but the key in the position of the ESC (top/left) which looks like an arrow pointing to the left) is the underscore. This is needed for scoped variables. For the pipe you can use shift+minus (the petscii character on that key looks like a pipe, a veritcal line). The statement "showfile" can be used to display the contents of a text file. I used this to write the instructions for the game UR in the text editor rather than doing a ton of "print" statements. Key-polling can be problematic, but without it you might find yourself unable to break out of an infinite loop. You can disable key-polling by having the first statement of your program be "polloff". I would strongly recommend keeping that commented out until you're ready to publish your program however. The statement "lock" can be used to prevent two or more users from running your program at once, which could corrupt game state. listing your program now uses the same paging system used for any other large block of text, this gives you a "more?" prompt which in-turn gives you page-up and keyword searches. The new command "clist" can be used for continuous listing which lists the old way, no page pausing. This can be helpful if you're sending the listing to a printer or text file. The new command "labels" finds and lists all labels in your program. Outside of Mutant Basic: Not much changed in the BBS as a whole but there was one minor thing: In ascii mode the up arrow works for recalling the last entered line, at least it does on the Apple //c but should work for any ascii terminal (will need to test more). Also changed is in the text files mode, if you're working your directory, you can now copy files. Although the system makes backups behind the scene it is also nice to be able to just copy a file so that you can make backups before you go make big changes which might break things. Between copy and rename (ren/mv) and delete (del/rm) it's fairly simple to make backups or have some kind of rudimentary branching. .