intvnut Posted February 17, 2021 Share Posted February 17, 2021 3 hours ago, etxmato said: Yes the Studio IV BASIC is rather slow. One reason for it being slow is that it is written in a pseudo code language, similar set-up as the Chip8. The same BASIC was released for the VIP as the VP700 Tiny BASIC. Both use the same pseudo code (more or less) but interpreters have some larger differences. So the fact that it is not really coded in 1802 code makes it that much slower. I'm not sure you can fully explain its speed by that. TI BASIC on the TI-99/4A is itself written in an interpreted pseudo-code, and has to access all of BASIC memory through a 1 byte pinhole on the VDP. Furthermore, it's a floating point BASIC with 8-byte Radix-100 floating point. And yet, it's about 50× faster than this. (At least, comparing 22 seconds to 995 seconds.) The ECS BASIC @carlsson compared it to is very slow (203 seconds, almost 10× the TI-99/4A), in part because it excessively synchronizes with the vertical retrace interrupt. For 2 frames out of N (where N is usually 3), the interpreter is completely paused. Even after I optimized the ECS BASIC interpreter and math routines, I could only speed it up about 20%, due to losing so many cycles waiting for the EXEC synchro. This Tiny BASIC is 5 times slower than that, it seems. It's slow enough that it seems to execute about one BASIC token per display refresh, or something close to that. This may also partly why there are some performance differences between PAL and NTSC. Perhaps there's a misguided SYNC / DO SYNC in the main interpreter loop (leftover debug code)? Or maybe it's looking for a "break" key between each token, but waiting for a full debounce interval for no good reason? I can understand a slowdown due to double-interpretation. This seems like a bit much, though. 1 Quote Link to comment Share on other sites More sharing options...
intvnut Posted February 17, 2021 Share Posted February 17, 2021 (edited) . Edited February 17, 2021 by intvnut deleting double post Quote Link to comment Share on other sites More sharing options...
etxmato Posted February 17, 2021 Share Posted February 17, 2021 Hi Anders, intvnut, The Studio IV needs a lot of CPU power to do the screen update. Both the Pixie chip used in the VIP and the Studio IV video are very basic, or in other words the 1802 does most of the work. This leaves a lot less processing power for the the 'rest' of the code. Anyway, glad to see my NTSC 2020 version has the same speed as the 1978 one :). The reason why my 2020 PAL version runs so much slower is only caused by the video routines. There are no other differences. The Studio video needs to be updated with a frequency of 50 Hz on PAL. On every update the complete video memory (1K) will be outputted via DMA out instructions. On NTSC (60 Hz) every byte is outputted twice (total of 2K DMA outs) and on a PAL every byte is done 3 times (total of 3K DMA outs). This as we have more lines to show on a PAL system. Besides the 3K DMA outs instructions there is additional 'overhead'; to get the output timed it also delays at every horizontal sync. This is another 6 instruction for every line, i.e. every 16 DMAs. These 6 instructions are actually needed/used to make sure lines are repeated twice or three times depending on PAL/NTSC systems. So we are actually doing 22 instructions per visible line, every vertical sync, meaning PAL: 64*3*22=4224, NTSC 64*2*22=2816 instructions needed for every vsync. I think on a PAL system that leaves about 1500+ instructions for regular code :(. The 1978 version is an NTSC version, so yes you can run it on a PAL emulation but the video output will in that case use the same amount of lines as the NTSC mode. Maybe also worth noting is that the 1802 uses 16 clock cycles per CPU instruction (at leats on a pixie system, other systems 16 or 24). And as said before on all of this we have an interpreter running the BASIC interpreter... TI is a timer, 1 = 1/60 of a second. So TI=300 sets a 5 seconds timer. Didn't actually test that on Emma 02 but would be a good test to see if I got it right :). I expect a PAL will do 1/50 of a second. To use this you need something like 10 TI=300 20 X=TI 30 IF TI>0 THEN 30 FQ sets the tone generator frequency, but this is for the VP-595 simple sound board; not sure if it does anything on the Studio. TO generates the tone, so TO=180 should create a tone of 3 seconds. Again not sure it does anything on a Studio, would need to check. Not sure about the BASIC manual, will check and let you know.... Cheers, Marcel. 2 Quote Link to comment Share on other sites More sharing options...
carlsson Posted February 17, 2021 Share Posted February 17, 2021 Thanks a lot! Yes, FQ makes no difference in the Studio IV emulation, but TO will generate the tone for the given interval. Without frequency changes, all you can do seems to be to have a long or short beep. Quote Link to comment Share on other sites More sharing options...
etxmato Posted February 18, 2021 Share Posted February 18, 2021 Hi Anders, I got a scan of the VIP Tiny BASIC manual from Ed Keefe; thanks Ed! As mentioned Studio IV BASIC is more or less the same however has a higher video resolution and is of course missing the Simple sound board. Have fun! If the speed is a problem for you, you can always give it a bit higher CPU frequency in Emma 02 ;). Cheers, Marcel. VIP Tiny Basic - Instruction Manual - VP700.pdf 1 Quote Link to comment Share on other sites More sharing options...
carlsson Posted February 18, 2021 Share Posted February 18, 2021 Cool! I didn't realize that COLOR could paint blocks of the screen or that it had PRINT AT. Out of the reserved keywords, the only one I can't find in the manual is ON, unless it is reserved due to TVON. It leads me to wanting to see if BASIC is any faster with TVOFF, or do you still need to send all that DMA data on every frame? Quote Link to comment Share on other sites More sharing options...
etxmato Posted February 18, 2021 Share Posted February 18, 2021 Yes TVOFF should stop the interrupt and as such the DMA outs. Haven’t tested it but fairly sure it will speed up. Quote Link to comment Share on other sites More sharing options...
carlsson Posted February 18, 2021 Share Posted February 18, 2021 (edited) Oh yes! My test program got roughly 100% speedup after turning off the screen! I hand timed 10 iterations (1978 version NTSC) to 6.5 seconds with the screen on and about 3 seconds with the screen off. Not useful for action games of course, but something that does a lot of calculations really would benefit from turning off the display. Edited February 18, 2021 by carlsson Quote Link to comment Share on other sites More sharing options...
mikepell Posted March 8, 2021 Share Posted March 8, 2021 Hi, I am building some Switchboxes. Anyone know what this 'red eye' monster is? T1 on the diagram- I got this from Radio Shack years ago in a 'combo coils ' bag and seems to work. 4mm x 10 mm. Would like an equivalent I can buy. Quote Link to comment Share on other sites More sharing options...
Rob Mitchell Posted November 18, 2021 Share Posted November 18, 2021 Anyone have a non-function studio II motherboard from which I can get ROMs? I'm trying to fix a console and only 3 of 5 built-in programs work. Bowling crashes and Freeway starts then crashes. The two doodles and Addition and all carts work fine. I plan to socket the ROMs and document as I proceed. thx. Quote Link to comment Share on other sites More sharing options...
flip Posted February 7, 2022 Share Posted February 7, 2022 Hi all, Sad news that was posted on the CosmacElf group: Ed Keefe suddenly passed away on Sat Feb 5. Ed was quite active in this group and a great source of info on the 1802 CPU and all related things. His website (www.cosmacvip.com) is a goldmine for Cosmac and Studio II info and he helped out with the initial multicart hardware. He was always ready to help and I will miss his input and wisdom... RIP @ekeefe FliP 6 Quote Link to comment Share on other sites More sharing options...
ubersaurus Posted February 8, 2022 Share Posted February 8, 2022 (edited) Oh no. That’s awful news. Ed was great in all my interactions with him - I provided him with photos of the VIP II schematics I found at Hagley Library, which he was thrilled by. He in turn provided me with a video recording of a one-of-a-kind VIP demo he got from a former staffer and typed in a VIP game for me to record footage of that I couldn’t find a binary for. Just a great guy all around. My dream would be to see his materials show up as an Ed Keefe collection at the Strong Museum or something. I think he’s been instrumental enough with our efforts to understand and preserve RCA’s history that he deserves that honor. Edited February 8, 2022 by ubersaurus 4 Quote Link to comment Share on other sites More sharing options...
+stupus Posted February 8, 2022 Share Posted February 8, 2022 (edited) So sad to hear that. Ed was a good friend and had such a passion for the hobby and was such a wealth of knowledge. We will really miss him. Edited February 8, 2022 by stupus 1 Quote Link to comment Share on other sites More sharing options...
Blazing Lazers Posted February 9, 2022 Author Share Posted February 9, 2022 I never thought that I'd regret reading an update in this thread but learning that Ed passed away suddenly is absolutely horrible news. He was one of very few truly irreplaceable sources of knowledge for any platform, and unless he wrote down every single thing he knew much perspective and insight is now gone forever. He wasn't really that old, though he had been into the RCA and related systems since he was very young and I figured he would be one of the last of the "original" generation of their users to be around, and that he'd still be with us for many, many years to come. We had several very enjoyable and hours-long phone calls and email chains, and not just about RCA. It isn't just that he was one of a kind, though- so much of what he had collected and preserved is also unique. He did once indicate that he had taken steps to ensure that should anything to him that his treasures were documented would be properly shared and donated, but didn't go into specifics. I really hope that the community will (if they haven't already) respectfully get in touch with his next of kin and make sure none of his life's work is undone and lost to time. 1 Quote Link to comment Share on other sites More sharing options...
RayXambeR Posted February 20, 2022 Share Posted February 20, 2022 So sad to hear that... I remembered discussed with him about the Studio II. He was a very kind person, with a fantastic knowledge. It's a very bad news. And I am totally in favor to preserve his work, it is a very good idea! Perhaps someone could preserve his website to be sure it will never disappeared? Quote Link to comment Share on other sites More sharing options...
Blazing Lazers Posted March 17, 2022 Author Share Posted March 17, 2022 It's amazing what can turn up in the wake of someone's passing. RIP, Mr. Callahan: https://dankshinskifuneralhome.com/tribute/details/1338/Harry-Callahan-Jr/obituary.html https://www.ebay.com/itm/RCA-Studio-II-Game-TV-BINGO-Appears-New-in-Box-Complete-SUPER-RARE-Read-All-/294862232678?mkcid=16&mkevt=1&_trksid=p2349624.m2548.l6249&mkrid=711-127632-2357-0 ...I don't know where he's getting the info about a third copy from, as this newly emerged Callahan copy would be the third publicly verified copy. Mine (originally the Philly Classic copy preserved by Dan), and the copy that showed up 2016 originally owned by Joseph Santone are the only other two that have emerged into public view. 2 Quote Link to comment Share on other sites More sharing options...
+stupus Posted March 17, 2022 Share Posted March 17, 2022 It's funny as they originally listed it at $29.99 bin and it sold very quickly. I was very sad I just missed it but then they didn't follow thru with the sale and relisted it at the $10k price....not sure where they pulled that number from ? ?? So i just ended up being glad i wasn't the $29.99 bin buyer who got shafted lol 1 Quote Link to comment Share on other sites More sharing options...
Blazing Lazers Posted May 17, 2022 Author Share Posted May 17, 2022 https://www.ebay.com/itm/294976981033?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=RzdQMI4wT8W&sssrc=2349624&ssuid=cssq4zlBQMK&var=&widget_ver=artemis&media=COPY ...it looks like we now know the upper limits of a copy of TV Bingo. Given the rarity and lore behind it, I must say that I'm a bit surprised that it hasn't yet sold. Quote Link to comment Share on other sites More sharing options...
+stupus Posted May 17, 2022 Share Posted May 17, 2022 Well we know the upper asking limits....they started at $8k with no luck. I figured that was possibly even 3x too high for a sale given the very small fan base for the system. Maybe the wata boyz aren't quite there yet lol Quote Link to comment Share on other sites More sharing options...
Blazing Lazers Posted July 10, 2022 Author Share Posted July 10, 2022 https://www.videogamesage.com/forums/topic/2688-post-your-holy-grail-item/?do=findComment&comment=265374 ... there's now a 4th known copy of Bingo! It was posted back in February but I just saw it now. So, updating the registry of Bingo copies as follows: 1) PC2K1/Philly Classic/Dan McIntyre copy: discovered by an owner of the Studio 2 Demonstration Cartridge at the Circle 40 flea-market on the way back home from the previous Philly Classic. This was the infamous copy exhibited at PC2K1 that everyone got excited about and which became a minor videogame urban legend. It re-surfaced in 2018 and I now own it. Does not have a manual but does have two very old photocopied manuals from RCA, and a red inner tray instead of a blue one. The original owner is unknown. 2) the 2016 Joseph Santone copy: Joseph Santone worked in Finance for RCA and this copy was discovered by NJ house cleanout company A W Cleanout and put up on eBay, initially in a lot. Multiple collectors flooded the seller with offers and it was relisted separately and eventually sold to a very established and reputable collector who still has it. This was the copy from which the ROM dump was made by Ed Keefe. This copy is complete. 3) The Harry Callahan copy: recently listed complete copy on eBay and is apparently from the estate of the late RCA employee Harry Callahan. Still available and has been relisted multiple times: https://www.ebay.com/itm/294976981033?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=RzdQMI4wT8W&sssrc=2349624&ssuid=cssq4zlBQMK&var=&widget_ver=artemis&media=COPY 4) the videogamesage/VGCollectaholic copy: https://www.videogamesage.com/forums/topic/2688-post-your-holy-grail-item/?do=findComment&comment=265374 ...not only complete but with extra sets of cards and an extra manual! And apparently also found, again at the home of a former RCA employee in NJ, by the same company that found the Santone copy! So, 4 confirmed copies, and old online posts hint at other potential copies, and the extra card sets known to exist suggest that at least a few more were made. I guess if anyone wants a copy they just have to shell out on eBay or just move to NJ and go work for A W Cleanout. 3 Quote Link to comment Share on other sites More sharing options...
Mikebloke Posted March 11, 2023 Share Posted March 11, 2023 Got a technical question, hoping someone knows the answer. How the [beep] do you compile a .asm file to a .bin and then convert to a .st2 file? I've tried four assemblers now, none of which the format for assembling makes much sense to me, tried assembling raw code of homebrew to make sure I got the right format, but nothing comes up when loading it in. I think part of my issue is that information how to do it is very fragmented, and sometimes references sites that no longer exist. Here is what I got so far: A18 assembler http://www.retrotechnology.com/memship/a18.html - just says there is lots of errors when I try, not sure if there is an error list that is saved... ASMX http://www.retrotechnology.com/memship/asmx.html - Got the furthest with this one I think, I can get it to create a .bin file, that has something in it, but when I try to load it in emulator... nothing again. TASM redownloaded dosbox for this, couldn't get this to work either. There is also asm80 which I did try, and gave up on. https://www.asm80.com/ I understand that the st2 filetype is just a renamed .bin with possibly a header at the beginning, though apparently most things would run fine anyway. There is a python program to do this, but it seems riddled with bugs possibly due to depreciation of code or syntax (I can sometimes "fix" this myself, but no luck this time). Anyone able to help? Quote Link to comment Share on other sites More sharing options...
flip Posted March 12, 2023 Share Posted March 12, 2023 18 hours ago, Mikebloke said: I understand that the st2 filetype is just a renamed .bin with possibly a header at the beginning, though apparently most things would run fine anyway. There is a python program to do this, but it seems riddled with bugs possibly due to depreciation of code or syntax (I can sometimes "fix" this myself, but no luck this time). Anyone able to help? The .ST2 filetype is a .bin file with an additional 256 bytes header that specify things like where to load the binary in an emulator. The structure of the header is as follows (courtesy of Paul Robson, who I believe came up with this format) Offset Contents Reqd Notes 0-3 Header Y RCA2 in ASCII code 4 Blocks Y Total number of 256 byte blocks in file (including this one) 5 Format Y Format Code (this is format number 1) 6 Video Y If non-zero uses a special video driver, and programs cannot assume that it uses the standard Studio 2 one (top of screen at $0900+RB.0). A value of '1' here indicates the RAM is used normally, but scrolling is not (e.g. the top of the page is always at $900). 7 - 8,9 Author N 2 byte ASCII code indicating the identity of the program coder. 10,11 Dumper N 2 byte ASCII code indicating the identity of the ROM Source. 12-15 - 16-25 Catalogue N RCA Catalogue Code as ASCIIZ string. If a homebrew ROM, may contain any identifying code you wish. 26-31 - 32-63 Title N Cartridge Program Title as ASCIIZ string. 64-127 Block Pages Y Contain the page addresses for each 256 byte block. The first byte at 64, contains the target address of the data at offset 256, the second byte contains the target address of the data at offset 512, and so on. Unused block bytes should be filled with $00 (an invalid page address). So, if byte 64 contains $1C, the ROM is paged into memory from $1C00-$1CFF 128-255 - 256 Block 1 (Page address at 64) 512 Block 2 (Page address at 65) and so on Not sure which python script you are using (possibly from Paul Robson's github?) This is probably using python2 and running it on python3 could create issues. For a quick hack, the easiest is probably to copy the first 256 bytes from an existing .st2 file and insert this before your .bin using a hex editor. If your .bin is compiled for $0400, then the only thing that might need to be changed is the byte 4, the length and the block pages. So if your program is less than 256 bytes, byte 4 should be $02 and the block pages should be $04 $00 $00 $00 ... If your .bin is <=512 bytes, then byte 4 should be $03 and block pages should be $04 $05 $00 $00 ... Hope this makes sense. If you still have problems compiling, feel free to PM me FliP 2 Quote Link to comment Share on other sites More sharing options...
Mikebloke Posted March 17, 2023 Share Posted March 17, 2023 On 3/12/2023 at 9:33 AM, flip said: The .ST2 filetype is a .bin file with an additional 256 bytes header that specify things like where to load the binary in an emulator. The structure of the header is as follows (courtesy of Paul Robson, who I believe came up with this format) Offset Contents Reqd Notes 0-3 Header Y RCA2 in ASCII code 4 Blocks Y Total number of 256 byte blocks in file (including this one) 5 Format Y Format Code (this is format number 1) 6 Video Y If non-zero uses a special video driver, and programs cannot assume that it uses the standard Studio 2 one (top of screen at $0900+RB.0). A value of '1' here indicates the RAM is used normally, but scrolling is not (e.g. the top of the page is always at $900). 7 - 8,9 Author N 2 byte ASCII code indicating the identity of the program coder. 10,11 Dumper N 2 byte ASCII code indicating the identity of the ROM Source. 12-15 - 16-25 Catalogue N RCA Catalogue Code as ASCIIZ string. If a homebrew ROM, may contain any identifying code you wish. 26-31 - 32-63 Title N Cartridge Program Title as ASCIIZ string. 64-127 Block Pages Y Contain the page addresses for each 256 byte block. The first byte at 64, contains the target address of the data at offset 256, the second byte contains the target address of the data at offset 512, and so on. Unused block bytes should be filled with $00 (an invalid page address). So, if byte 64 contains $1C, the ROM is paged into memory from $1C00-$1CFF 128-255 - 256 Block 1 (Page address at 64) 512 Block 2 (Page address at 65) and so on Not sure which python script you are using (possibly from Paul Robson's github?) This is probably using python2 and running it on python3 could create issues. For a quick hack, the easiest is probably to copy the first 256 bytes from an existing .st2 file and insert this before your .bin using a hex editor. If your .bin is compiled for $0400, then the only thing that might need to be changed is the byte 4, the length and the block pages. So if your program is less than 256 bytes, byte 4 should be $02 and the block pages should be $04 $00 $00 $00 ... If your .bin is <=512 bytes, then byte 4 should be $03 and block pages should be $04 $05 $00 $00 ... Hope this makes sense. If you still have problems compiling, feel free to PM me FliP Yeah I probably will pm! I did try Paul Robson github one and did manage to find a python version with zero errors (think it was 2.7) but nothing loads correctly. However I don't know if I'm doing one of the steps first wrong, and haven't checked anything with a hex editor. I think if I can get something compiled I'll be happy because I'm OK with brute force learning assembly till something works! Quote Link to comment Share on other sites More sharing options...
poppalarge Posted March 27, 2023 Share Posted March 27, 2023 Hey everyone! If anyone is looking for any games to complete their collection, I've just posted my own collection consisting of the full run for sale in the marketplace. Quote Link to comment Share on other sites More sharing options...
UrQuan3 Posted August 12, 2023 Share Posted August 12, 2023 I just finished spending the last three weeks of my time going through this thread beginning to end. While I started hoping to find an answer to a question, I need to say two things first. 1. This is an amazing lesson on doing primary research. I have watched the knowledge base of this system grow drastically, but due to almost ten years of people's effort. I will have to remember the techniques everyone has used here. 2. That RCA Adventure Game digitized at the Hagley? I want to play that game. Not the game the team envisioned, THAT game. Page turner: "There's something wrong. There are extra pages" Director: "Keep going" ...(later)... Narrator: "Can we start over?" Director: "No" Ok, with that out of the way, I have the same question as mikepell two years ago. There are significantly more Studio II's out there than there are switchboxes to run them. From pange 9 of the service manual, I can figure out everything except 'T1' in the circuit diagram. The bottom half of the circuit are noise reduction circuits and C1 is a high-pas filter. But, what is T1? The only info I have to work with are some (excellent) photos on Wikipedia and the very first post on this thread. "This technique is widely used in old RCA products, like mast amplifiers, etc." -fauxscot Because mast amplifiers are another name for antenna amplifiers, I have tried asking a few HAM radio operators about the circuit. Most of them conclude that it must be an isolation transformer, but the diagram looks more like an autotransformer. Does anyone here have any contacts that might be able to identify it or guess at the coil values? It's either that, or I am designing a circuit myself, and I have next to zero experience with very high frequency circuit design. Heck, I don't even know if the S2 I have works. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.