I'm not the original author of this program; it was originally written for the PC in GW-Basic in 1996, with a revision in 1998. The original author(s) are unknown. I initially found mention of the GW-Basic version here, while googling "BASIC 3D Engines": http://www.petesqbsite.com/sections/zines/qbcm/issues/1-2/default.html The, googling "SHUTTLE.BAS" led me to this archive: http://www.w0btu.com/files/misc/software/hamcalc/PROG/ I downloaded SHUTTLE.BAS and GWBASIC.EXE; I tried to load SHUTTLE.BAS in a text editor, but it had been saved in GWBASIC's binary format. To convert it to ASCII I would need to boot into GWBASIC, load the file, then re-save it using: SAVE "filename", A So thats what I did - see "SHUTTLE.TXT" for the converted version. I also ran it to see what it looked like. I found that it runs in the EGA mode 8 (640x200x16 colors). I then decided that a CoCo version needed to be made - so I converted it using MESS and the CoCo 3 emulation. At first I wasn't sure if I wanted to convert it to run on the CoCo 3 or if I wanted all CoCo's to be able to run it. I event- ually decided on the latter. When you run it, it loads up the data, then goes into a loop to draw the shuttle, clearing the screen between each iteration. I decided to use PMODE 4, with the "secondary" colorset because it had a more "retro" feel about it, evoking a green-screen terminal (VT-100 yay!). There is a line, commented out, that would allow you to enter initial rotation parameters (after which it would start to rotate from that angle). I found it was much more enjoyable in MESS to pop the high-speed poke, then using F11 to disable throttling of the emulator, for the highest speed redrawing in BASIC. I'd like to see or create a version that renders to a background page, and then PCOPY the finished drawing to the foreground, or flip between the two pages (in other words, implement double-buffering). I think there's a way to do this, perhaps something in one of the PEEKs, POKEs, EXECs books can help? Anyhow - play around with it, and have some fun with it! Andrew L. Ayers Glendale, Arizona https://www.github.com/andrew-ayers June 2018 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- !! UPDATE !! UPDATE !! UPDATE !! UPDATE !! I've updated the ZIP file in a couple of ways: 1. The DSK image now has four versions of the BAS file for the Color Computer: a. SHUTTLE1.BAS - The original conversion for the CoCo 1,2,3 (ECB, PMODE 4) that renders a rotating view, clearing the screen between each view b. SHUTTLE2.BAS - A modified version for the CoCo 1,2,3 (ECB, PMODE 4) that renders a fixed orientation, for a screenshot c. SHUTTLEP.BAS - A modified version for the CoCo 1,2,3 (ECB, PMODE 4) that works in a similar manner as SHUTTLE1.BAS, rendering a rotating view, but does it using double buffering d. SHUTTLE3.BAS - Same as SHUTTLE2.BAS, but for the CoCo 3 only! Uses the 640x192x4 color mode (HSCREEN 4). Please note that this version also uses the high-speed poke for the CoCo 3 (POKE 65497,0) - it catches the BREAK key, though, and restores the normal speed and palette. 2. I included screenshots from SHUTTLE2.BAS and SHUTTLE3.BAS. Note that these were generated using the OVCC emulator and thea CoCo 3 ROM; things may look different using a real CoCo or a different emulator. 3. Changes to this file, of course... :) It's something I've wanted to do, and after posting things a couple of times on the FB CoCo group, and requests for screenshots, I decided adding a CoCo 3 version was something that needed to be done. In the course of all of this, I also decided that a double-buffered version for PMODE 4 should be implemented, too. Hint: If you are using an emulator or other "non-standard" Color Computer, increase the speed/framerate/overclocking to max, and enjoy the show... -- AndrewA, July 22-26, 2021 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- What the future might bring... Needless to say, after all of these changes and updates, the code is a mess, and there are too many versions, that all do basically the same thing. My future goals for this code: 1. Unify everything - bring it all under a single codebase 2. Modularization of code? 3. Menu and configuration options? 4. Save and load a view? 5. Get rid of DATA statements (maybe a file generator)? 6. Allow for custom models? 7. Documentation of the code (it desperately needs this)... 8. HSCREEN double buffering? I can't guarantee any or some of this will happen, but they are all nice to think about. Of course, that's what I thought after my first conversion of the code, and now here we are, right? -- AndrewA, July 26, 2021