Artoj Posted September 6 Author Share Posted September 6 Hi All, I had some time working on the only working TI99 I have, I put my 32K single slot board together. At first it didn't seem to work, after a careful digital probing, I found that the EN# pin on the 74LS245 was not even connected, one wire later, success!! I checked my unpopulated FORTI card just to make sure the fit was good, also my original hand wound FORTI board, it looks like all is good. I will redesign the single slot board and add a few extras on the same slim board, I will use the MPEB as the footprint for the length, this gives me room for another useful addition. Regards Arto. 9 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 7 Author Share Posted September 7 (edited) Hi All, After the success of the slimline card, I added a 16 bit i/o to the new version, I left it fairly generic, it will give you 16 CRU bit control at R12=>0400, 16 OUT at CRU bit 0 to 15 and 16 IN at CRU bits 32 to 47. I have added the circuitry but if you just want the 32K memory you will only need to add those components. I made it so I can add a jumper wire to control and monitor bits on other plugin cards. A handy card for the experimenter. Regards Arto. Edited September 8 by Artoj 6 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 8 Author Share Posted September 8 (edited) Hi All, For expansion beyond what I have on the slimline card, here is your MAP: R12 = >0400 These are on the board CRU 0 1 2 3 4 5 6 7 Output PIN J5 J6 J7 J8 J9 J10 J11 J12 CRU 8 9 10 11 12 13 14 15 Output PIN J13 J14 J15 J16 J17 J18 J19 J20 These 8 can be added by using J1 to enable a 74LS259 on Pin 14 CRU 16 17 18 19 20 21 22 23 Output PIN These 8 can be added by using J2 to enable a 74LS259 on Pin 14 CRU 24 25 26 27 28 29 30 31 Output PIN These are on the board CRU 32 33 34 35 36 37 38 39 Input PIN 21 22 23 24 25 26 27 28 CRU 40 41 42 43 44 45 46 47 Input PIN 29 30 31 32 33 34 35 36 These 8 can be added by using J3 to enable a 74LS251 on Pin 7 CRU 48 49 50 51 52 53 54 55 Input PIN These 8 can be added by using J4 to enable a 74LS251 on Pin 7 CRU 56 57 58 59 60 61 62 63 Input PIN If you want each Pin to be an IO type then you can connect the Output to the Input Pins: J5 -> J21 SBO/SBZ 0 -> TB 0 J6 -> J22 SBO/SBZ 1 -> TB 1 J7 -> J23 SBO/SBZ 3 -> TB 2 J8 -> J24 SBO/SBZ 4 -> TB 3 J9 -> J25 SBO/SBZ 5 -> TB 4 J10 -> J26 SBO/SBZ 6 -> TB 5 J11 -> J27 SBO/SBZ 7 -> TB 6 J12 -> J28 SBO/SBZ 1 -> TB 7 This also applies to the other 8 Outputs and 8 Inputs If you connect all 16 pins together you will have 16 GPIO ports that can be changed with just one LDCR or STCR assembly statement. This also applies to the other 4 ports you can create, giving you another 16 GPIO ports, a total of 32 GPIO ports, not bad for a 40 year old Computer, Regards Arto. Edited September 8 by Artoj 3 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 11 Author Share Posted September 11 Hi All, I have been carefully going over the many boards I have been working on so far, a lot that are not TI related as well, I found the APR33A3 sound recorder chip only available in India, so I looked a little further to find a recording module that looks so much better. The DFR0745. it has 16 meg of storage, which equates to 40 minutes at 48kbs. It has a RS232 interface and a Analog U-Disk interface. Lots of interesting interface options, I made a preliminary design to see if it is feasible. This would be the most simplest method for cassette only systems, I tied the play and record functions to the cassette port motor control CRU, so it should look like a tape recorder to the user. I still have to refine all the logic, so I added a lot spare chips(4066) and pins for external control as well, this should work well with the 32k/CRU slimline card. Regards Arto. 1 1 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 15 Author Share Posted September 15 (edited) Hi All, I do like Kicad and find it has some nice Schematic tools, I have a long way to master it idiosyncrasies. Here is my TI99 RS232/MIDI Jumper card, first attempt at using bus connections, not the easiest, I would rather do each line at a time, I guess each to their own. It is not quite finished yet, I am doing a few more cards with Kicad, so I can get used to it. Regards Arto. Edited September 15 by Artoj 3 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 22 Author Share Posted September 22 Hi All, I am completing a few boards for testing when the next batch get ordered. I have two PIO boards, one is CRU only (no DSR) and the other is Memory Mapped (no DSR), I am preparing to complete a sequence of hardware tests, so I can complete the MPEB IBM port board and test the IBM Port with a IBM PIO card. I have already designed a Parallel Port tester previously that will be used on this project. Regards Arto. TI99 Parallel Port MM V3.1 -------------------------- Memory mapped Parallel Port (NO DSR). HEX DECIMAL PORT ------------------------ >5000 20480 PIO OUT >5002 20482 PIO IN >5004 20484 CONTROL OUT BIT NUMBER VALUE FUNCTION BIT 0 1 STROBE OUT BIT 1 2 USER 1 OUT BIT 2 4 USER 2 OUT BIT 3 8 USER 3 OUT BIT 4 16 USER 4 OUT BIT 5 32 AUTO LINE OUT BIT 6 64 USER 5 OUT BIT 7 128 INITILIZE OUT >5006 20486 CONTROL IN BIT NUMBER VALUE FUNCTION BIT 0 1 STROBE IN BIT 1 2 BUSY IN BIT 2 4 ACKNOWLEDGE IN BIT 3 8 PAPER IN BIT 4 16 SELECT IN BIT 5 32 AUTO LINE IN BIT 6 64 ERROR IN BIT 7 128 INITILIZE IN ***************************************** PRINT A VALUE TO PRINTER 10 INPUT V 20 CALL PEEK(20486,VN):: ! CHECK IF BUSY 30 IF VN=1 THEN GOTO 20 40 CALL LOAD(20480,V):: ! SEND DATA OUT 50 CALL LOAD(20484,1):: ! STROBE = 1 60 CALL LOAD(20484,0):: ! STROBE = 0 **************************************** READ A VALUE FROM DATA PORT 10 V=0 20 CALL PEEK(20486,VN):: ! CHECK IF BUSY 30 IF VN=1 THEN GOTO 20 40 CALL PEEK(20482,V):: ! READ DATA IN 50 CALL LOAD(20484,1):: ! STROBE = 1 60 CALL LOAD(20484,0):: ! STROBE = 0 *************************************** TEST ALL PORTS FOR INPUTS (USE PARALLEL PORT TESTER) 10 V1=0 :: V2=0 20 CALL PEEK(20482,V1) 30 CALL PEEK(20486,V2) 40 PRINT V1,V2 *************************************** SEND VALUES TO ALL PORTS IN SEQUENCE (USE PARALLEL PORT TESTER) 10 FOR V3=0 TO 7 20 V4=2^V3 :: V5 = 128-V4 30 CALL LOAD(20480,V4) 40 CALL LOAD(20484,V5) 50 NEXT V3 2 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 23 Author Share Posted September 23 (edited) Hi All, As I am anticipating the arrival of the TI99/22 boards, I have started on the first phase of expansion, I have designed a plug-in for the 74LS138 (U505) which will give me a narrower memory map targets, rather than >8400 to >87FF for the TMS9919 sound chip, it will be >8400 to >84FF for the on board TMS9919, allowing you to add 3 more sound chips. A total of 4 sound chips will now be asses-able, >8400, >8500, >8600 and >8700, you can now have a version of the Forti Music system on the Motherboard. This also includes the expansion of the VDP, Speech and Grom, imagine running 4 VDPs. This is the first version so I anticipate a few more iterations, it could even be made in SMD so it fits neatly on the board. I started this in view of creating a replacement for the TMS9919 chip, I have gone a fair way down this road and it is looking promising, I think now a complete expansion of the sound chip is some where on the horizon. Running 4 VDP chips is an interesting option, so much to contemplate on this idea. Regards Arto. Edited September 23 by Artoj 3 1 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted September 23 Share Posted September 23 8 hours ago, Artoj said: rather than >8400 to >87FF for the TMS9919 sound chip, it will be >8400 to >84FF for the on board TMS9919, allowing you to add 3 more sound chips. A total of 4 sound chips will now be asses-able, >8400, >8500, >8600 and >8700, you can now have a version of the Forti Music system That's not how FORTI defined the addresses. It addresses the chips in groups, potentially* avoiding excess wait states when the same voice is on left/right channels. Or when silencing all channels. the base of 8400 addresses all 4 chips. 8402 masks out the first chip 8404 8408 8410 The console chip was addressed always. Given card enable = 84xx and A15==0 Then the chip enables are that and A14,13,12,11. (Active low.) Can be done with 4 OR gates (LS32) or a quad 2:1 multiplexer (LS157) where CARDSEL switches between four output bits or four 1s. (Whichever chip makes ordering easier!) *potentially: the FORTi software doesn't have a word to do that, but it's obvious how to. Each voice called in the interrupt routine is a workspace, and has a register with its sound chip address. The Bach Fugue in G minor is using this. Worst case timing is I guess ~50 microseconds/voice/tick, eating 3 ms per voice. Assuming 1 byte per tick. I didn't count all the instructions. 2 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 24 Author Share Posted September 24 10 hours ago, Artoj said: you can now have a version of the Forti Music system on the Motherboard. Thanks for your reply, this is why I said Version, you would need to address the chips differently. I have built 3 Forti cards, one which I hand wired, and they are basically software addressable (no DSR) just as you described, he worked around the limitations and designed a functional system. Thanks to the creative use of BLWP you can have 16 voices. I have just received the TI99/22 board only minutes ago, I will now be doing another version of the expanded Decode, regards Arto. Here is a section of your excellent breakdown of the software: FORTI WS usage. WS is a register workspace ------------------------ R0 voice or cascade addr. List of byte pairs (note#,dur) R1 pitch-table: e.g. PT0 or PT1 R2 envelope. e.g. PLUCK3 or ORGAN2 R3 index into envelope R4 countdown timer to next note. init to 0 to begin. R5 const pitch cmd byte R6 const attn cmd byte (for a noise, pitch is tone#3 and attn is tone#4/noise) R7 pitch cmd word for current note or 0 for rest R8 temp. compute vdp address (for sprite) or envelope address R9 vdp addr of sppat# R10 copy of SGCA, sound card address (copied from SGCA at each ISR entry, sic) R11 not used R12 temp. compute vdp data byte (for sprite) R13 ... R15 after blwp, not used 4 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 24 Author Share Posted September 24 Hi All, just updated to version 2.0. 5 Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 24 Share Posted September 24 (edited) 19 hours ago, Artoj said: Running 4 VDP chips is an interesting option, so much to contemplate on this idea. Reuters News TV bulletin board 1978 part 2 In case you're wondering why those stupid looking arrows are pointing downward from the top... This is(was) Manhattan Cable TV's, INTERNATIONAL NEWS CHANNEL. It used to say so at the top. Later, they changed it to a Larger font, that read: REUTERS NEWS. Then, one day, soon after, something went wrong, and garbage, including flashing @ signs, appeared at the top. There was another channel that had only SPORTS news. Information from the two channels, became interspersed, and misaligned, along with some occasional garbage characters. Switching back and forth, quickly, between the two channels... I noticed that as soon as one channel's printing reached the bottom of the page, the other channel's printing started at the top. This was when I put it together that both channels were being generated by a single system. Wow! I thought this was so exciting. P.S. You can bet, that no one else cared, or even believed me, ha. P.P.S. "All the news just repeats itself... Like some forgotten dream, that we've both seen..." -John Prine(Hello in there) Edited September 24 by HOME AUTOMATION . 1 1 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 24 Author Share Posted September 24 11 hours ago, HOME AUTOMATION said: This was when I put it together that both channels were being generated by a single system. So another possible idea is to use those extra addresses as different peripherals, memory, SD card or even a separate CPU/GPU, so many more options available without the burden of a huge card hanging off the side/back and the complexity of generating a new address, CRU control or attaching another 32bit micro-controller to handle the task. Running 4 VDP's might bog down the TMS9900, but if you use the extra 3 addresses to run a TMS32xxx chip for some fancy hardware graphics, then the burden is off loaded. The computer will still run the same even if the plugin card is attached, but now you will have 24 extra places to have some digital freedom with, this old CPU can now stretch it's legs and blow off a lot of steam, it is all up the imagination of the hacker. Regards Arto. 3 Quote Link to comment Share on other sites More sharing options...
Artoj Posted September 25 Author Share Posted September 25 The Forti card will still function fine with this Expander, added that you can Memory Map the Sid Blaster, AY-3-8xxx and have a Midi Port as well. This will bring the Music programmer to another level of Choice and versatility. The lack of supply of TMS9919 type chips had prompted me down this road awhile ago, so i even though of interfacing an old SoundBlaster IBM card (or new clone) with the prototype ISA port I have made. So I decided I might build a basic sound card from scratch(10 years ago) , using the TMS9919 as the Template for in/out/control etc. and by adding the extra ports will allow a very powerful Music Synthesizer with 16 channels and access to Analog Sound tables and more. This is still an idea, I have a few more unfinished projects to complete before I attempt to climb that mountain. The Ternary Project will have capability of Sound control but not in the same way as Binary, as the basic form has already 3 components, making sound waves will be much easier, with faster algorithms. These last few years have been such a fun journey of learning, building, discovery and creativity. Thanks for all your support, regards Arto. 6 Quote Link to comment Share on other sites More sharing options...
Artoj Posted October 1 Author Share Posted October 1 Hi All, Thanks to Dan for suggesting I look for Geoff Trotts Console Tester, well I found the circuit diagram, alas I have no software. I wonder does anyone have the Eprom/Software? I could try to workout his implementation and try and write my own, I have tried to contact him, still no luck at present, Regards Arto. 1 1 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted October 1 Share Posted October 1 8 minutes ago, Artoj said: Hi All, Thanks to Dan for suggesting I look for Geoff Trotts Console Tester, well I found the circuit diagram, alas I have no software. I wonder does anyone have the Eprom/Software? I could try to workout his implementation and try and write my own, I have tried to contact him, still no luck at present, Regards Arto. Only person that might have dumped the eprom would had been @Ksarul as this was ti99 ramtrap device and I think he has one of the originals. If we do get the dump. I would love to build one myself and look at improving the testing/diagnostic software which makes use of the load interrupt feature. 2 Quote Link to comment Share on other sites More sharing options...
Artoj Posted Friday at 06:11 AM Author Share Posted Friday at 06:11 AM (edited) Hi All, Here is a unfinished sample of the V9919 Sound Unit, which is the TMS9919 chip made from IC's and such, it is only a work in progress at this moment. When I have decided to complete this work, I will make small improvements that will still fit into the same footprint as the original and programming will be the same. I was recently inspired by Glen a fellow Australian with his version for the TRS80. wow to think this guy is another local, he short cut many of the ideas I had for it's implementation, thanks Glen. Regards Arto. Edited Friday at 06:39 AM by Artoj 4 Quote Link to comment Share on other sites More sharing options...
Artoj Posted Friday at 02:50 PM Author Share Posted Friday at 02:50 PM I just plugged in the old MiniPE into my Slim 32k card and look at what I got, 9 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.