Jump to content
IGNORED

9938/9958 Discussion Forum


Omega-TI

Recommended Posts

  • 3 weeks later...

On MSX there are only two ports involved in VRAM access (other ports are used for palette):

 

- port 0x99 is used to set VRAM addresses and to signal if the next operation will be read or write. As for the TMS9918, you need to access to port 0x99 twice, writing low and high bytes of the VRAM address on 14 bit

 

- port 0x98 is used for reading and writing the actual data from and to the VRAM, so you can read and write from the same port, if I understand your question

 

Port 0x99 is also used for writing the VDP registers (as for the TMS9918). On V9938 bits 14-16 of the VRAM address are stored in a VDP register above R7. If you need to change the current vram address passing the 16K limit of the current accessed area, you have to use 0x99 four times. Twice to set the VDP register that holds the upper bits of the address and twice to set the lower 14 bits.

There is also port 0x9b to write in a auto-increment way a block of vdp registers starting from one. Or to write multiple times directly a specific register, without the need of another out istruction for register n. specification. So multiple writes on 0x9b could do:

- write always the same register, as specificated by the register pointer value that is hold in another vdp register

- write the register, as specificated by the register pointer value that is hold in another vdp register, and setup the next write to the next register in a auto-increment fashion

 

port 0x9a is used to set palette registers

Link to comment
Share on other sites

Yeah, you are right!

UNTERP MOVB 13,*14     Videoregister 10010001 17 vorlegen
       MOV  *11+,0
       MOV  *11+,1     DATA Werte abholen
UNTER1 MOVB *0+,*15     Daten in Port 3 unterbringen
       DEC  1
       JNE  UNTER1     alle geschrieben?
       B    *11        Ja, dann geht es zurück

This code uses the auto-increment feature and I followed your advice with success using a "fixed" VR17 too as you are describing above. On a TI ports 0 and 1 are separated to four ports, while ports 2 and 3 are newly added with V9938/58 expansions. That is it what was confusing me in the past.

Link to comment
Share on other sites

  • 1 year later...
  • 2 years later...

I am reading up on the V9958 at the moment, but there is one thing I cannot find any information on: What will happen if I select 212 line and the GRAPHICS2 or GRAPHICS3 mode? Does it reuse the first character table, does it use a fourth undocumented table after the third one or does it just fill inn the extra lines with empty border?

 

From what I can find, all modes have 256 lines virtual display area, and the physical display is just 192 or 212 of these lines. From what I can guess, I assume most modes will function as described for all the lines in the virtual display area, which means that I should have to account for 256 total lines when setting up the Pattern Nametable or bitmap in non-pattern-based modes. Can someone tell me if my assumption is right, or if the lines outside the physical display area (with no scrolling) are treated differently?

Edited by per
Link to comment
Share on other sites

Thanks a bunch!

 

Going to make a V9958 card for a 4MHz Z80 desktop. It natively got a 32K bitmap display using a custom video cirquit, but 32K is way too much (pretty good image quality, but very slow to use). In addition to that, it can't easily be synced with the CPU without hardware mods. It will be very nice to have the ability to do flicker-free graphics with fast sprites!

Edited by per
Link to comment
Share on other sites

Thanks a bunch!

 

Going to make a V9958 card for a 4MHz Z80 desktop. It natively got a 32K bitmap display using a custom video cirquit, but 32K is way too much (pretty good image quality, but very slow to use). In addition to that, it can't easily be synced with the CPU without hardware mods. It will be very nice to have the ability to do flicker-free graphics with fast sprites!

If you don't mind sort of keep us apprised as to what your doing. I have a z80 foundation card for the TI, that I would like to add video to later on.

Link to comment
Share on other sites

If you don't mind sort of keep us apprised as to what your doing. I have a z80 foundation card for the TI, that I would like to add video to later on.

Will do!

 

Was thinking of basing it on this, but with some minor modifications. First of all, I need to add support for mode 2 interrupts, and then I can as well add a register for software-swapping between PAL and NTSC color carrier clock for the video amp/encoder as well!

.

http://primrosebank.net/computers/mtx/projects/mtxplus/video/Video%20Board%201.02.pdf

Edited by per
  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Does anyone have a good clear pdf or doc, of the procedure needed to convert a geneve to utilize a 9958.

 

I was supposed to get a 9938 from a source in china ( I know the last one was not a good experience, but they can't all be bad can they? Couldn't find a source here),

but they didn't have one so they substituted a 9958 instead. And as I have three of them now (9958's), plus the one mounted to my TIM.

 

I need to test them somehow to verify goodness, before I give feedback. Thanks for any help.

Link to comment
Share on other sites

To my knowledge, I have never known someone to interface a 9958 with a Geneve. I tried back in the 90's, but was never successful. As it turned out, I learned later on the 9958 I had was bad. What I do not know is if my testing destroyed the 9958, or if the 9958 that was given to me was bad.

At the time, I was trying to develop a frame grabber interface for the Geneve, but since I could not get the 9958 to work, I had to abandon my efforts.

 

If I recall correctly, it seems like someone may have commented sometime since the 9958 would also need something sent to it a bit different in one of the video registers during the initialization process at boot-up. Don't ask me what that may be as that was over 20 years ago.

Beery

Link to comment
Share on other sites

Take your brand-new V9958 (or a working pulled one)

 

Carefully bent out pins 4, 21, 26, 27 so they don't go into the socket.

 

Solder a wire from pin 58 on the Geneve (38) socket 5V power to one end of a filter cap/inductor setup and the other end goes to your new bent out pin 21 of your 58 to give its internal DAC the 5V supply line it needs.

(It should NOT be directly connected, should be filtered between the two see the underside of your TIM for circuit!

 

Original Geneve 0.98 eeprom should boot it up fine, but there was other versions which incorrectly setup R25 register.

 

Registers R25, R26, R27 if totally ZEROed which should be on normal RESET startup, the '58 will function like a '38.

 

The bit that causes problems is b5 on R25 when if 1 instead of 0 causes pin 8 to output VDS instead of CPUCLK

 

For more info, please review pages 5 and 12 of the V9958 technical manual (I attached it and v9938) manauls here to make it easier.

 

Since I am replying here and being a good mood, I decided to attach a 9938.ARK (and attached as .zip for PC emulators/editing) from my collection of private source codes, for your coding pleasure.

 

I hereby with this post on AtariAge on 4/11/2019 1:12pm give full permission for anyone to use the files inside it which are as follows:

 

 

#1 - ADJUST-S    v1.00.10/09/88  GENEVE 9938 SCREEN ADJUSTER
#2 - ART-S          v1.00.08/01/90  GENEVE/AVPC/TIM 3D STRING ART
#3 - FST-S          v1.00.08/01/90  9938 FAST GAT! 3D STRING ART
#4 - GDEMO-S    v1.00.10/11/88  GENEVE VDP 9938 DEMO
#5 - MOV-S         v1.00.08/03/90  MOVE 9938 GAT! 3D STRING ART
#6 - MYSHOW-s  v1.20 HFDC/TIM/32K - MY-ART/YAPP SLIDE SHOW (c)1990 OPA
#7 - TMP-S       v1.00.08/02/90  TEMP 9938 GAT! 3D STRING ART
#8 - TST-S       v1.00.08/03/90  MOVE 9938 GAT! 3D STRING ART
#9 - VDP-LIB    v1.00.07/30/90  9938/9958 VDP UTILITIES
#10 - VDP-UTIL1   v1.00.11/02/88  GENEVE VDP 9938 UTIL'S
#11 - XB-VDP-S   9938 UTILITES FOR EXTENDED BASIC

 

Please at least if you use any of the above source in your creative ideas, apps at least give credit for it. :)

 

Enjoy!

 

-=(Gary from O.P.A.)=-

yamaha_v9958_ocr.pdf

Yamaha_V9938_MSX-Video_Technical_Data_Book_Aug85.pdf

OPA-2019-04-11-V9938-Source-Examples.zip

OPA-2019-04-11-V9938-Source-Examples.ARK

  • Like 9
Link to comment
Share on other sites

Take your brand-new V9958 (or a working pulled one)

 

Carefully bent out pins 4, 21, 26, 27 so they don't go into the socket.

 

Solder a wire from pin 58 on the Geneve (38) socket 5V power to one end of a filter cap/inductor setup and the other end goes to your new bent out pin 21 of your 58 to give its internal DAC the 5V supply line it needs.

(It should NOT be directly connected, should be filtered between the two see the underside of your TIM for circuit!

 

Original Geneve 0.98 eeprom should boot it up fine, but there was other versions which incorrectly setup R25 register.

 

Registers R25, R26, R27 if totally ZEROed which should be on normal RESET startup, the '58 will function like a '38.

 

The bit that causes problems is b5 on R25 when if 1 instead of 0 causes pin 8 to output VDS instead of CPUCLK

 

For more info, please review pages 5 and 12 of the V9958 technical manual (I attached it and v9938) manauls here to make it easier.

 

Since I am replying here and being a good mood, I decided to attach a 9938.ARK (and attached as .zip for PC emulators/editing) from my collection of private source codes, for your coding pleasure.

 

I hereby with this post on AtariAge on 4/11/2019 1:12pm give full permission for anyone to use the files inside it which are as follows:

#1 - ADJUST-S    v1.00.10/09/88  GENEVE 9938 SCREEN ADJUSTER
#2 - ART-S          v1.00.08/01/90  GENEVE/AVPC/TIM 3D STRING ART
#3 - FST-S          v1.00.08/01/90  9938 FAST GAT! 3D STRING ART
#4 - GDEMO-S    v1.00.10/11/88  GENEVE VDP 9938 DEMO
#5 - MOV-S         v1.00.08/03/90  MOVE 9938 GAT! 3D STRING ART
#6 - MYSHOW-s  v1.20 HFDC/TIM/32K - MY-ART/YAPP SLIDE SHOW (c)1990 OPA
#7 - TMP-S       v1.00.08/02/90  TEMP 9938 GAT! 3D STRING ART
#8 - TST-S       v1.00.08/03/90  MOVE 9938 GAT! 3D STRING ART
#9 - VDP-LIB    v1.00.07/30/90  9938/9958 VDP UTILITIES
#10 - VDP-UTIL1   v1.00.11/02/88  GENEVE VDP 9938 UTIL'S
#11 - XB-VDP-S   9938 UTILITES FOR EXTENDED BASIC

Please at least if you use any of the above source in your creative ideas, apps at least give credit for it. :)

 

Enjoy!

 

-=(Gary from O.P.A.)=-

Thanks Gary, appreciate it. Wish you were still 'cookin' TI Hardware.

  • Like 1
Link to comment
Share on other sites

Thanks Gary, appreciate it. Wish you were still 'cookin' TI Hardware.

I been busy cooking up alot of other hardware projects over the decades for various companies and gaming system. and recently worked on two retro projects -- And I have tabled 2020 for some cool retro TI projects, we see how that develops as the rest of the year 2019 unfolds, and i survive my 50th birthday next month! :)

Edited by Gary from OPA
  • Like 5
Link to comment
Share on other sites

  • 2 years later...

I am looking for a non Chinesee Yamaha v9938 for an EVPC card. This belongs to @FDOS and his is giving a black screen or a dark red screen each time, as it is in my Geneve, and turned on. Not a dram issue as his dram tests fine and works in the same Geneve with a good 9938. If someone has a possible source, let me know.

Link to comment
Share on other sites

Note that the code on the listing does not match the code on the chip. A 1AZC chip should be a 9958, but that is also the most common ending used for the modern 9958 fakes. The two most common fake designators for 9938s are GAAF and FAAF, both of which you will see aplenty in the pictures associated with that link.

  • Like 2
Link to comment
Share on other sites

9978s never actually saw the light of day, unfortunately. The last chip in the family was the V9990, which has a lot of interesting new features, but which also breaks compatibility with a lot of the earlier chip functions. I have a pair of V9990 chips in my reference set, but they are so hard to get that it really makes no sense to design a project around them. . .unfortunately. Of course, one could do an FPGA variant (as you suggested @Nick99), which does have the possibility of using the new features without breaking compatibility. . .and the V9990 had 512K of VDP RAM.

  • Like 4
Link to comment
Share on other sites

24 minutes ago, Ksarul said:

9978s never actually saw the light of day, unfortunately. The last chip in the family was the V9990, which has a lot of interesting new features, but which also breaks compatibility with a lot of the earlier chip functions. I have a pair of V9990 chips in my reference set, but they are so hard to get that it really makes no sense to design a project around them. . .unfortunately. Of course, one could do an FPGA variant (as you suggested @Nick99), which does have the possibility of using the new features without breaking compatibility. . .and the V9990 had 512K of VDP RAM.

It sounds like a good plan, it'd be nice to set jumpers or configure from a menu the type of chip to emulate, v9938,58,78,90. We'll need something to replace our aging chip infrastructure.

  • Like 2
Link to comment
Share on other sites

  • 9 months later...

This topic seems like a good place to mention this as it applies to both the 9938 and the F18A.  I was trying out the SMU Electrical Engineering Library on both the real hardware (with F18A and nanoPEB) and in MAME (using TI-99/4A EVPC) and noticed that I got similar behavior on both fronts - where the systems hangs on disk loading, and the SMU splash screen never appears.  At first (before trying MAME) is suspected the nanoPEB, but since it did the same thing with the 9938 EVPC, now I suspect it is the cartridge itself, somehow calling on something that the 9918 has that the 9938/F18A doesn't have. 

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...