Uncle Clive

60 Followers
0 Following
85 Posts

I run Sinclair Spectrum 48K programs, and make videos of the results. Toot me with valid Speccy BASIC.

Videos have sound and are a minute long. The source BASIC is in the ALT tag for each video.

I will favourite your post when I pick it up, then re-share your post if it works.

Suggestions for improvements welcome.

Made by @popey who smashed together some Python, Fuse, a tiny shell script and other yarn and sundries to make a bot.

Very much inspired by https://mastodon.me.uk/@bbcmicrobot

Ownerhttps://mastodon.social/@popey
@UncleClive
10 REM This is just a test
20 REM to see visibility and
30 REM annoyance of a post
40 REM in the timeline.
50 REM This is Quiet Public
@UncleClive
10 REM Don't blow a gasket
20 LET x=0: LET y=0
30 LET r=RND
40 IF r<0.33 THEN LET u=0: LET v=0
50 IF r>=0.33 AND r<0.67 THEN LET u=175: LET v=0
60 IF r>=0.67 THEN LET u=88: LET v=175
70 LET x=(x+u)/2
80 LET y=(y+v)/2
90 PLOT x,y
100 GOTO 30
@UncleClive
10 REM Don't blow a gasket
20 LET x=0: LET y=0
30 LET r=RND
40 IF r<0.33 THEN LET u=0: LET v=0
50 IF r<=0.33 AND r<0.67 THEN LET u=175: LET v=0
60 IF r>=0.67 THEN LET u=88: LET v=175
70 LET x=(x+u)/2
80 LET y=(y+v)/2
90 PLOT x,y
100 GOTO 30

A non-comprehensive TO DO list:

* More error correction and tolerance of code messiness
* Run Fuse in xvfb rather than my display
* Containerise this rather than on my laptop
* Speed up the processing pipeline
* Optimise the video compression
* Switch to the streaming API rather than poll

DONE:
* Cut videos early if they are finished (no movement or sound)

Formatting tips:

I'm picky about the code layout. Currently, the following rules apply.

Start by tagging me on the first line and nobody else. You may add a space and #128K, then a space, and on the next line, start your code.

You may omit the #128K to default to 48K ROMs. If you're eager, you can replace #128K with #16K

Lines must start with a number, and the first line of code must be line 10.

I will loosen this up over time. But those are the rules right now :)

@UncleClive #128K
100 LET a$="UX4000W0N7&&&3BA#G#F5#G3E#F5#G3B&BA#G#F5#G3E#F5#G3E&X2000N3BA#G#F5#G3E#F5#G3B&BA#G#F5#G3E#F5#G3E&H"
110 LET b$=T120Ueb))"
120 PLAY a$,b$
130 LET a$="UX20000W0O6N3b#CD#C5b3#Ca7b3&#CD#Cb#Cba5b3#ga5b3#g&5b3#gaba#ga8b3#g&7&H"
140 PLAY a$,b$
150 LET a$="UX4000W0O5N3BA#G#F5#G3E#F#GABA#G#F5#G3E#F#GABA#G#FH"
160 PLAY a$,b$
170 LET a$="UX4000W0O5N5#GUX30000W0N3E&7#F#F#F"
180 LET b$="5e3#g&7bbb"
190 PLAY a$,b$
@UncleClive #128K
10 LET a$="T180O6(CDEC)(5EF7G)(3GAGF5EC)5Cg7C9CgC"
20 LET b$="O4(CDEC)(5EF7G)(3GAGF5EC)5Eb7E9EbE"
30 LET c$="O3(7CG)(7CG)(7CG)5GD7G9GDG"
35 PRINT "Test 128K ROM mode"
40 PLAY a$,b$,c$
50 REM Third time is the charm
@UncleClive
10 CLS: POKE 23659,0
11 FOR l=1 TO 20
12 FOR m=4 TO 1: BRIGHT m
20 FOR n=1 TO 14
30 FOR c=4 TO 7
40 PAPER c: PRINT " ";
50 NEXT c: NEXT n: NEXT m
60 FOR m=0 TO 1: BRIGHT m: PAPER 7
70 FOR c=0 TO 3: BORDER c
80 INK c: PRINT c;" ";
90 NEXT c: PAPER 0
100 FOR c=4 TO 7
101 BORDER c
110 INK c: PRINT c;" ";
120 NEXT c: NEXT m
130 PAPER 7: INK 0: BRIGHT 0
131 NEXT l
140 POKE 23659,2: PAUSE 0
@UncleClive
10 PRINT "butts";
20 GOTO 10