Jump to content

Photo

9938/9958 Discussion Forum

9938 9958 Video

113 replies to this topic

#101 eck OFFLINE  

eck

    Space Invader

  • 44 posts

Posted Sun Jan 12, 2014 8:46 AM

Thanks, artrag!

 

That is it, what I want to know. There are ports for writing purposes like >8C00, >8C02, >8C04 and >8C06 on the TI and ports to read from like >8800 and >8802. Interesting that the TI engineers used this way.



#102 microprocessor OFFLINE  

microprocessor

    Space Invader

  • 38 posts

Posted Sat Feb 1, 2014 2:35 PM

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



#103 eck OFFLINE  

eck

    Space Invader

  • 44 posts

Posted Sun Feb 2, 2014 1:16 PM

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. 



#104 artrag OFFLINE  

artrag

    Stargunner

  • 1,256 posts

Posted Mon Apr 6, 2015 1:36 PM

The v9938 lacks of HW horizontal scrolling, never the less try this rom on any msx 2

https://sites.google...redirects=0&d=1



#105 per OFFLINE  

per

    Moonsweeper

  • 340 posts

Posted Thu Aug 3, 2017 9:58 PM

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, Thu Aug 3, 2017 9:59 PM.


#106 artrag OFFLINE  

artrag

    Stargunner

  • 1,256 posts

Posted Fri Aug 4, 2017 12:30 AM

Under the border there is a 4th character bank that appears or when 212 lines are selected or when the vertical scroll register is used

#107 per OFFLINE  

per

    Moonsweeper

  • 340 posts

Posted Sat Aug 5, 2017 3:18 AM

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, Sat Aug 5, 2017 3:21 AM.


#108 RickyDean OFFLINE  

RickyDean

    Stargunner

  • 1,117 posts

Posted Mon Aug 7, 2017 5:44 AM

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.



#109 per OFFLINE  

per

    Moonsweeper

  • 340 posts

Posted Wed Aug 9, 2017 10:45 AM

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.... Board 1.02.pdf


Edited by per, Wed Aug 9, 2017 10:46 AM.


#110 RickyDean OFFLINE  

RickyDean

    Stargunner

  • 1,117 posts

Posted Thu Apr 11, 2019 5:58 AM

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.



#111 BeeryMiller ONLINE  

BeeryMiller

    Dragonstomper

  • 901 posts
  • Location:Campbellsburg, KY

Posted Thu Apr 11, 2019 6:16 AM

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



#112 Gary from OPA OFFLINE  

Gary from OPA

    Moonsweeper

  • 420 posts
  • Location:The World Wide Web

Posted Thu Apr 11, 2019 11:18 AM

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.)=-

Attached Files



#113 RickyDean OFFLINE  

RickyDean

    Stargunner

  • 1,117 posts

Posted Thu Apr 11, 2019 12:14 PM

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.


  • RXB likes this

#114 Gary from OPA OFFLINE  

Gary from OPA

    Moonsweeper

  • 420 posts
  • Location:The World Wide Web

Posted Thu Apr 11, 2019 12:59 PM

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, Thu Apr 11, 2019 1:01 PM.






Also tagged with one or more of these keywords: 9938, 9958, Video

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users