Intelligentleman Posted February 14, 2021 Share Posted February 14, 2021 Might it be possible in theory to assign BASIC programming snippets to the keys on an Intellivision music synthesizer? So if I play a certain "note” on the keyboard, the program knows to call up a specified BASIC routine. This routine then runs and causes the audio/visual experience to change. Alternatively, could I record the audio “sound” of rudimentary BASIC programs or definitions and piece together a BASIC program in a wav editor like audacity? Then, play it back to a the intellivision? Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted February 14, 2021 Share Posted February 14, 2021 In theory, it should be possible. In practice, I do not know if anybody has mapped out the programming interface of the ECS Executive ROM to know how to call the BASIC routines. Essentially, that's what the game Mr. BASIC Bits 'n Bytes does: it has a program that calls back to the ECS BASIC to process mini "BASIC programs." -dZ. 1 Quote Link to comment Share on other sites More sharing options...
intvnut Posted February 14, 2021 Share Posted February 14, 2021 21 hours ago, Intelligentleman said: So if I play a certain "note” on the keyboard, the program knows to call up a specified BASIC routine. This routine then runs and causes the audio/visual experience to change. It seems like you'd want higher-order snippets than just a BASIC statement. You want a full-blown subroutine. If you use IntyBASIC, it seems like it shouldn't be too hard to write a program that scanned the synth keyboard and had an ON x GOSUB to invoke one of 49 different routines based on which synth key you pressed. You'd need to write that scanner, or integrate my assembly code synth scanner. My assembly code scanner would actually do the "ON x GOSUB" thing for you, the way it's currently written. It dispatches key-down and key-up events for all 49 keys independently, so you can press chords, etc. A different approach, depending on what you're going for, might be to have a main loop that has up to 49 * 4 different condition tests ("just pressed", "held down", "just released", "not pressed") that repeatedly cycles and processes all keys. 21 hours ago, Intelligentleman said: Alternatively, could I record the audio “sound” of rudimentary BASIC programs or definitions and piece together a BASIC program in a wav editor like audacity? Then, play it back to a the intellivision? That won't quite work, as I believe the data structure that represents each line of an ECS BASIC program has absolute address information hardcoded in it. MS BASIC does the same thing; however, MS BASIC has a fixup pass that runs after loading the program. I don't think ECS BASIC has that. All that said, it seems like it shouldn't be too hard to write an ECS BASIC tokenizer that runs on a PC and produces a binary that can be run through a binary-to-wave converter to produce something you could CLOD. (I believe I've posted my bin2wav utility in the past that did the necessary FSK encoding. It's not a difficult conversion) 1 Quote Link to comment Share on other sites More sharing options...
Intelligentleman Posted February 15, 2021 Author Share Posted February 15, 2021 (edited) Edited February 15, 2021 by Intelligentleman Quote Link to comment Share on other sites More sharing options...
Intelligentleman Posted February 15, 2021 Author Share Posted February 15, 2021 1 hour ago, intvnut said: It seems like you'd want higher-order snippets than just a BASIC statement. You want a full-blown subroutine. If you use IntyBASIC, it seems like it shouldn't be too hard to write a program that scanned the synth keyboard and had an ON x GOSUB to invoke one of 49 different routines based on which synth key you pressed. You'd need to write that scanner, or integrate my assembly code synth scanner. My assembly code scanner would actually do the "ON x GOSUB" thing for you, the way it's currently written. It dispatches key-down and key-up events for all 49 keys independently, so you can press chords, etc. A different approach, depending on what you're going for, might be to have a main loop that has up to 49 * 4 different condition tests ("just pressed", "held down", "just released", "not pressed") that repeatedly cycles and processes all keys. That won't quite work, as I believe the data structure that represents each line of an ECS BASIC program has absolute address information hardcoded in it. MS BASIC does the same thing; however, MS BASIC has a fixup pass that runs after loading the program. I don't think ECS BASIC has that. All that said, it seems like it shouldn't be too hard to write an ECS BASIC tokenizer that runs on a PC and produces a binary that can be run through a binary-to-wave converter to produce something you could CLOD. (I believe I've posted my bin2wav utility in the past that did the necessary FSK encoding. It's not a difficult conversion) 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.