• General
  • Anyone been playing with BASIC Engine lately?

Hawk I've been wanting to get the PicoMiteVGA a spin! I've got a Color Maximite 1 and 2, Haven't updated the Maximite 2 in ages. That is something I need to do, whenever (if ever) things settle down around here.

I've got a FabGL VGA setup, but was unsuccessful loading BASIC to it. One of these days I will get back to it. I did find (re-find, lmao) my original BASIC Engine a few days ago 🙂

    davegardnerisme My preference is all the Orange Pi NG version, Dave. I have a 10" portable LCD monitor mounted to an old laptop lap desk thing, with a large 12 volt / 5 volt lithium battery pack. Got the Orange Pi (as well as Raspberry Pi, and other things at times) attached to the back of the monitor with Velcro. On the odd day I have to pick the wife up from work, I will take it and get there an hour or 90 minutes early, then play about with that until she comes outside.

    Another reason I like the Arm NG version better is that there are no issues with MOD tunes or with BLIT. The MOD player doesn't load in the x86/x64 LT version (compiler error), and I can't get pixel by pixel movements with BLIT. When trying to BLIT a large object a pixel or two at a time, the only thing it shows it the original and final positions.

    There was someone hacking on the LT version some time back, but I can't recall who, bumping up the number of sprites. Was that you, by chance?

    I won't be so long before checking the board next time. My brother in law was hospitalized just after my last post in early November. He is still in the hospital, but is supposed to be released around the turn of the new year. I've been helping my sister and taking turns sitting with him at the hospital. It has been a trying time. Come to find out it started with an abscessed tooth that ruptured in his sleep. He went septic, had a stroke, etc. Nearly two months of IV antibiotics.

    painintheworld I recently ordered the PicoMiteVGA, as I thought that it would satisfy most of my wants for a modern Boot-to-BASIC computer. I also bought the rest of the parts to get my Colour Maximite 2 put together. I haven’t built either of them yet.

    I had high hopes for the FabGL VGA setup, and had several different versions. I thought that the Eris BASIC was the best option, since Uli didn’t want to go backwards with BASIC Engine. Eris BASIC never quite felt complete enough. I have since found out that Paul Scott Robinson, the author of Eris BASIC, is developing for the Foenix computers made by Stephany Allaire.

    Lately my programming efforts have been towards my vintage pen plotters. These require either an RS232 or centronics port, neither of which seem to be implemented in newer Boot-to-BASIC hardware, so I have been using my old computers instead. Old versions of BASIC are very cumbersome.

    I’m looking to getting one of the Agon Light boards that Olimex is going to release soon (that was created by Bernardo Kastrup). They look really nice as a platform.

    I’m still dreaming of my idea of a board that delivers an environment like the Pico-8, but using BASIC as the programming language.

    A lot of the modern efforts to create BASIC boards are centered around making the hardware faster and more powerful, which in itself is a good thing, but I firmly believe that to encourage kids to program in the way home computers did in the eighties, you need to provided tools that ease the creation of games, but with a set of limitations that discourage distractions by offering too many options, in the way Pico-8 does. Fantasy consoles are what I would’ve wanted as a kid, and the only problem I see to them is that you need to load a full OS to use them.

    A little, cheap RPi sized board, with instant on BASIC interpreter, and game creation tools like Pico-8 is my Utopia. Maybe some day…

      was someone hacking on the LT version some time back, but I can't recall who, bumping up the number of sprites. Was that you, by chance?

      Yes!

      Having a few more sprites makes life easier when making games. The next biggest thing that would make my life easier is having structures, dictionaries, better functions, a bigger stack to avoid running out of local variables. This is where I’m not sure I would choose BASIC if I was making the whole thing from scratch. Not sure what I’d go with instead though. If it were me, probably Go!

      I’ve written a pretty big game for basic engine NG and working on another now (side scroll army shooting game).

      Dmian I've had a bit of a look at the Agon project now, and I really like how they're using an ESP32 as a graphics chip. Ever since I saw this project https://www.instructables.com/Arduino-Basic-PC-With-VGA-Output/ and also came across Fabrizio's FabGL, I thought that using dual ESP32s would be a great option. Plenty of scope to improve the graphics over time...although developers really want stability.
      In the PicoMite VGA project, they use the second core of the RPi Pico as the graphics adapter. I think this is faster, as it reads/writes to shared RAM. Again, room to improve the graphics independantly from the OS/BASIC interpretor.
      I may yet be enticed into purchasing an Olimax Agon Light just because I think they're cool.

        5 days later

        My wife traveled for work and came home with Covid. So i am quarantined for a few days. Converted a raycaster for the NG version of Basic-Engine while I have lots of time to play. If you make a game of it , please share.
        ``
        10 DIM SinTable(1795)
        20 DIM CosTable(1799)
        30 PI = 22 / 7
        40 DIM Mapp(10, 10)
        50 FOR z= 0 TO 1795
        60 SinTable(z) = SIN(z * PI / 900) * 100
        70 CosTable(z) = COS(z * PI / 900) * 100
        80 NEXT z
        90 FOR y = 1 TO 10
        100 FOR x = 1 TO 10
        110 READ Mapp(x, y)
        120 IF Mapp(x, y) = 2 THEN
        130 Mapp(x, y) = 0
        140 px = x: py = y
        150 END IF
        160 NEXT x
        170 NEXT y
        180 px = px * 1000
        190 py = py * 1000
        200 SCREEN 3
        210 Angle = 0
        220 SkyColor = rgb(0,0,64)
        230 ' WallColor = rgb(0,64,0)
        240 FloorColor = rgb(12,12,12)
        250 DO
        260 call Raycast
        270 DO
        280 kb = INKEY()
        290 LOOP UNTIL kb >1
        300 IF kb = 87 THEN px = px - SinTable(mangle) * 5: py = py - CosTable(mangle) * 5
        310 IF kb = 83 THEN px% = px + SinTable(mangle) * 5: py = py + CosTable(mangle) * 5
        320 IF kb = 65 THEN mangle = mangle + 25
        330 IF kb = 68 THEN mangle = mangle - 25
        340 IF mangle < 0 THEN mangle = mangle + 1800
        350 IF mangle > 1795 THEN mangle = mangle - 1800
        360 LOOP
        370 proc Raycast
        380 s = -1
        390 FOR z = -160 TO 160
        400s = s + 1
        410 a = mangle + z
        420 IF a < 0 THEN a = a + 1795
        430 IF a > 1795 THEN a = a - 1795 '
        440 xx = px: yy = py
        450 dd = 0
        460 DO
        470 xx = xx - SinTable(a)
        480 yy = yy - CosTable(a)
        490 m = Mapp(xx / 1000, yy / 1000)
        500 dd = dd + 1
        510 LOOP UNTIL m
        520 ds = 1000 / dd
        525 cr=rnd(16):cg=rnd(15):cb=rnd(16)
        530 LINE s, 0,s, 99 - ds, SkyColor
        540 LINE s, 100 - ds,s, 100 + ds,rgb(cr,cg,cb)'walls
        550 LINE s, 101 + ds,s, 199, FloorColor
        560 NEXT z
        570 RETURN
        580 DATA 1,1,1,1,1,1,1,1,1,1
        590 DATA 1,0,0,0,0,0,0,0,0,1
        600 DATA 1,0,0,1,0,1,1,1,0,1
        610 DATA 1,1,1,1,0,0,0,1,0,1
        620 DATA 1,0,0,0,0,0,0,1,0,1
        630 DATA 1,0,0,0,0,2,0,0,0,1
        640 DATA 1,1,1,1,0,1,0,0,0,1
        650 DATA 1,0,0,0,0,1,0,1,0,1
        660 DATA 1,0,1,1,1,1,0,0,0,1
        670 DATA 1,1,1,1,1,1,1,1,1,1

        8 days later

        Between the disaster of a job I was involved with, COVID-19, and the mess things have been since, I had to put mine down in the fall of 2019, but as of late I'm looking to get back into it again. I was working on a classic 8-bit BASIC converter, an update of something I created back in the 80's, and my need for it came up again so I'm picking up the project again.

        a month later

        Hawk I'm tempted to make a RPi 3-footprint sized PicoMite VGA. It's not that difficult, I think. The RPi Foundation gives you all the info to implement a board similar to the RPi Pico using the RP2040. I may try this, since the micro is really cheap, and I have a few ideas of how to solve the footprint limitations.

          Dmian My PicoMite VGA is still still in my workshop waiting to get built. I did get a step closer last weekend though, by 3D printing a case for it. A guy from a BASIC programming group on FB designed it. It printed really well.
          https://www.thingiverse.com/thing:5872053

          4 days later

          I have built every kind of MMbasic board they have I think. They do work well , very small , strong basic language. The Pico line are easy to do. I recommend them. They even have a web enabled one now. Go to the backshed.com for all the info. I spend a lot of time there since this one has been kinda sparse lately.

          Okay, I know I said I would be visiting more frequently, but we've have one more time with my brother in law's health problems. My sister and I have been playing physical therapist for months. He has been on the mend from a bout of sepsis, that had him millimeters from death. In any case, I thought I would be back more often at my last post...but it has taken this much longer to get him from the wheelchair...to a walker...then a cane....and now just his feet 🙂 My stint as a physical therapist has come to an end, so more time for hobbies!

          I have been playing a little here and there, starting stuff, getting part of the way, starting something else, etc. Kind of learning some stuff about game design that I didn't know before - and still a long ways to go 🙂 Forever ago I designed assets for a Star Raiders type game (the Atari 8 bit version), that I really want to get back to. That game is probably still my favorite game of all time. Just an amazing feat in an 8K ROM. I've designed assets and quite a bit of code of an Arkanoid type game. I've made a few test programs for different parts of the game, and need to weld them together and get the game put out here one day. The wife and I made some assets for a Bejeweled-ish type game and layed out some of the logic, but still have more learning to do. She also helped me make some graphical assets for Columns/Tetris type game, but screen layout and graphics tiles/sprites are as far as it has gotten.

          @davegardnerisme Is adding the extra sprites something that a neophyte, such as me, could do, or do you have something ready to burn to a microSD card? Some more sprites would be great for something I was playing with! I was going back and forth with the idea or reloading a sprite image to reuse the sprite or using different frames of a sprite. The former would be wayyyy better.

          @Gadgetjack Thank you for posting the code, I will play about with that some!

          Semi-related to having more sprites available: have any of you guys used BLIT, somehow non-destructively, as sort of a jumbo sprite? I'd reckon the LT is fast enough that on something that is only about 128x72 (a particular space ship the wife designed) that I could read the background data around the asset to be moved into an array(s) (just a few pixels on all four sides, depending on the movement increment), move the asset, then write the background date back to the appropriate pixels.

          My biggest stumbling block is sound. As bad as I am with the other stuff, it is an order of magnitude worse for me dealing with sound. I do have a bunch of really good public domain MOD files for background music, so that is no problem...unless I try it on the LT, in which case an error is thrown.

          One last question I have pertains specifically to BASIC Engine LT. No matter what capture device I try, it doesn't capture what is happen in Engine BASIC, only the underlying Linux test stuff. Hints and tips greatly appreciated!

          Also, if there is a Discord server or Facebook group where BASIC Engine stuff is discussed, please let me know! I really dig the old school forums, prefer it even, but getting direct notifications would make me interact much more frequently.

          Thanks for sharing @painintheworld, sorry to hear about your brother in-law’s illness. When life throws you a curved ball, you just make the best of it as you can.
          Your BASIC Engine plans sound interesting. I’m not planning anything so lavish. I’m was working on a card game. I prototyped the card routines and displaying the cards, but haven’t got any further than that. I’m hoping that this new TV box I got that runs BASIC Engine will motivate me to get back into it. Meanwhile, I have an unbuilt PicoMiteVGA calling to me.
          Keep sharing your progress.
          I agree that a FB group would be easier to keep up with if you are already monitoring FB. Forums have their benefits, but you do have to go an visit them specifically. Maybe turn on the email notifications. That’s what tells me when there are replies to my posts at least.

            I had some time, so I decided to dust off my BASICEngine project and try it again. Before the chip shortage, I had bought two Libre ALL-H3-CC 1Gb boards and cases to use with my BASICEngine project. Turning them on, I found that I had the NG firmware on one and the LT firmware on the other one. I have spent the last few days reviewing the NG Reference Manual page to get familiar with the commands again

            I decided the best way to get use to using the commands is to port a program to BASICEngine. I chose an Apple II program to port. Since I have never used an Apple II, I am having to research the Apple commends to match up with the BASICEngine commands.

            I have found an issue that I need help with. The Apple uses the Input command to get string Input from the keyboard. In BASICEngine I found the Input$() command but it is for Data read from file. It has SEE ALSO [INPUT] but the link doesn't go to the INPUT command. I checked and this is also in the Classic Reference Manual. I didn't get a syntax error in the BASICEngine port, but I don't know how to use it. Is this an undocumented command in BASICEngine?

              Willard Willard, if you don't get this worked out today (it is 19:02 Eastern Time in the U.S. March 8th), I will be back to my BE stuff tomorrow and will take a looksee.

              Hawk Thank you, Hawk. Evidently it was a ruptured abscessed tooth that turned to bodywide sepsis. It was VERY touch and go for two weeks, with one foot over death's door threshold and the other foot on a banana peel. He has pretty good health insurance, but not HI that wanted to pay for two full-time physical therapists for weeks on end. His wife (my big sis), me, his two kids, and a close friend of his were given instructions on what to do, and we did it.
              I've been really wanting to get a PicoMite VGA (already made up). I really dig the Color Maximite and Color Maximize 2.

              In BASIC Engine land, I still prefer BASIC Engine NG. The inbuilt BLIT command and MOD player work correctly in NG. It feels more authentic in a way, I reckon.

              2 months later

              uli hello. I'm a developer of TauonPC computer which is compatible with BASIC Engine. I currently have about 300 TauonPCs left in the warehouse in China. They lack SD Card extension cord but still are very good option to be used with Basic Engine on sd card. Are you interested in any way to distribute them between your users? I can offer them at the original manufacturing price, which is less than the current PCB costs.

                tauonpc I’d like to be in a position to help, but every person I know who is interested in BASIC Engine is on this site. You could perhaps put a post in the Modern Retro Computing FB group.
                Unfortunately Uli seems to have moved onto other things, so BASIC Engine remains what it is.
                Have you considered sourcing an alternate SD card extension? After seeing how you used it to move the SD card away from the board I sourced and purchased some to experiment with. There seem to be others available that may suit the Tauon PC-1.
                The Tauon PC-1 remains a very good attempt to bring a very affordable all-in-one retro styled PC to the market.

                  Powered by: FreeFlarum.
                  (remove this footer)