Jump to content

FarmerPotato

+AtariAge Subscriber
  • Content Count

    1,465
  • Joined

  • Last visited

Posts posted by FarmerPotato


  1. Schematics drawn up...


    Superimpose is a lot harder than I can do in my coming spare time. External sync is the hardest part. I have no experience with analog video debugging.


    However a single 9958 board is quite doable (Stuart wants this).


    Or not as tricky, a twin 9958 board with one clock source (no PLL) with superimpose.



    Options:

    • Twin+EXT: VDP2 can superimpose on VDP1 or EXT (ie EXT or VDP1 can be under the VDP2 image)
    • Twin+Sup: VDP2 can superimpose on VDP1
    • Twin: just two screens, no superimpose
    • Single: basic VDP upgrade

    I have dropped the expansion VRAM completely.


    Pro:

    • VGA out (or SCART?) as well as composite, s-video
    • upgrades a console to 80-column
    • Plugs into 9918A socket

    Con:

    • Bulky? or external
    • 15KHz monitor required http://15khz.wikidot.com/
    • Requires 3 wires soldered (except Single)
    • Obsolete when F18A mk2 comes out.

    • EXT must also be an analog RGB, 15khz signal




    BOM (Bill of Materials)


    Part Description price source package Twin+EXT Twin+Sup Twin Single
    CD74HC4060 oscillator, counter 0.65 mouser SOIC-16 1 1 0 0
    LT1675-1 RGB switch 3.21 mouser SO-8 3 3 0 0
    SN74LV4046 VCO and PLL 1.36 mouser SO-16 1 0 0 0
    LM1881 sync separator 0.70 ebay SO-16 1 1 1 1
    CXA1645 composite encoder 1.13 ebay SO-16 2 2 2 1
    41464 DRAM 1.79 unicorn DIP-16 8 8 8 4
    V9958 VDP 10.00 ebay DIP-64 2 2 2 1
    ATF16V8 logic 0.88 mouser PLCC-20 1 1 0 0
    PCB PCB 1.00 oshpark sq in 20 15 15 10
    crystal crystal 0.59 mouser TO-2 1 1 2 1
    transistors linear 0.10 mouser TO-3 0 0 0 0
    caps discrete 0.01 mouser SMD1206 21 19 19 11
    resistors discrete 0.01 mouser SMD1206 12 12 12 9
    DE-15 CORAS15SHD vga 0.84 unicorn rt angle 3 2 2 1


    Total BOM Cost



    Twin+EXT 73.23
    Twin+Super 66.01
    Twin 56.32
    Single 30.65



    Based on 10 unit run.


    Trivia: Single VDP option can't be rightly be called Gemini, therefore it defaults to the name of VDP1: Cautes.



    • Like 2

  2. Joystick required.

    Dig down.

    Find the gold squares.

     

    version 1

    10 DIM A$(24)::W$="   a              aa aaa a a ahhhhxhxhxxxhhhhhxxhxhhxxxxhhxxxphpxpphhhxxxppxxxhppppxxppppx"::_=1::@=24
    20 CALL CLEAR::CALL SCREEN(:: CALL COLOR(9,13,_)::CALL COLOR(10,7,_)::CALL COLOR(11,12,_)::CALL COLOR(12,15,_)::CALL COLOR(13,6,6)
    30 F$="FFFFFFFFFFFFFFFF"::CALL CHAR(96,"18183C5A5A182858"&F$)::CALL CHAR(104,"55AA55AA55AA55AA")::CALL CHAR(112,F$)::CALL CHAR(120,F$)
    40 FOR I=_ TO @::FOR J=_ TO 14::A$(I)=A$(I)&SEG$(W$,INT(RND*16+I*3),2)::NEXT J::PRINT A$(I)
    50 NEXT I::FOR I=_ TO 5::DISPLAY AT(I,_):A$(I)::NEXT I::FOR I=6 TO @::CALL HCHAR(I,3,128,28)::NEXT I
    60 C=16::R=4::CALL SPRITE(#1,96,14,R*8-7,C*8+9)
    70 CALL JOYST(_,X,Y)::C1=C+X/4::R1=R-Y/4:: IF X<>0 AND C1>_ AND C1<28 THEN C=C1 ELSE IF R1>3 AND R1<@ THEN R=R1
    80 IF SEG$(A$(R),C,_)="p" THEN G=G+_::DISPLAY AT(_,_) SIZE(3):G :: CALL SOUND(100,262,0,327,2,409,4) :: CALL SOUND(100,262,2,330,4,415,6)
    90 IF R>4 THEN A$(R)=SEG$(A$(R),_,C-_)&CHR$(128)&SEG$(A$(R),C+_,28-C)
    100 CALL LOCATE(#1,R*8-7,C*8+9)::FOR I=R-_ TO R+_::DISPLAY AT(I,C-_) SIZE(3):SEG$(A$(I),C-_,3)::NEXT I::GOTO 70
    

    version 2. Graphic chars! Two color sprite! Rocks are unbreakable!

    10 DIM A$(24)::W$= "    a  aa aahaahhahhhhhhhhhhhhhxhhxxxhhxhhxhpxxhxppxppxhhxhpxhhxxxxpp"&RPT$("x",16)::_=1::@=24::C=16::R=4
    20 CALL CLEAR::CALL SCREEN(:: CALL COLOR(9,13,_,10,7,15,11,12,16,12,15,2,13,6,2)::F$=RPT$("F",16)::RANDOMIZE
    30 CALL CHAR(96,"000C020509100000F00FF00FF00F1818606000FC606090D8",104,"33CC33CC33CC33CC",112,"FFDF8FDFFFFFFFFF",120,"74FAFA7A2AA98522",128,F$)::FOR I=_ TO @
    40 K=I*3-2::E$=SEG$(W$,K,_)::A$(I)=E$::FOR J=_ TO 13::A$(I)=A$(I)&SEG$(W$,INT(RND*16+K),2)::NEXT J::A$(I)=A$(I)&E$::PRINT A$(I)
    50 NEXT I::DISPLAY AT(_,_) SIZE(12):"10LINER 49ER"::FOR I=6 TO @::CALL HCHAR(I,3,129,28)::NEXT I::CALL SPRITE(#1,96,2,25,137,#2,98,16,25,137)
    60 CALL JOYST(_,X,Y)::C1=C+X/4::R1=R-Y/4
    70 IF X<>0 AND C1>_ AND C1<28 AND SEG$(A$(R),C1,1)<>"x" THEN C=C1 ELSE IF Y<>0 AND R1>3 AND R1<@ AND SEG$(A$(R1),C,1)<>"x" THEN R=R1
    80 G$=SEG$(A$(R),C,1)::IF R>4 THEN A$(R)=SEG$(A$(R),_,C-_)&CHR$(128)&SEG$(A$(R),C+_,28-C)
    90 CALL LOCATE(#1,R*8-7,C*8+9,#2,R*8-7,C*8+9)::FOR I=R-_ TO R+_::DISPLAY AT(I,C-_) SIZE(3):SEG$(A$(I),C-_,3)::NEXT I::IF G$<>"p" THEN 60
    100 G=G+_::DISPLAY AT(_,25) SIZE(4):G :: FOR I=2 TO 14 STEP 2::CALL SOUND(-200,262,I,330,I*2,415,16)::NEXT I::GOTO 60
    

    version 3. Press fire to dynamite! You get 5.

    10 DIM A$(24):: W$= "    aa aa aahaahhahhhhhhhhhhhhhxhhxxxhhxhhxhpxxhxppxppxhhxhpxhhxxxxpp" &RPT$("x",16) ::_=1::@=24::C=16::R=4:$=CHR$(128)::M=999
    20 CALL CLEAR::CALL SCREEN(:: CALL COLOR(9,13,_,10,7,15,11,12,16,12,15,2,13,6,2)::F$=RPT$("F",16)::RANDOMIZE
    30 CALL CHAR(96,"000C020509100000F00FF00FF00F1818606000FC606090D8",104,"33CC33CC33CC33CC",112,"FFDF8FDFFFFFFFFF",120,"74FAFA7A2AA98522",128,F$)::FOR I=_ TO @
    40 K=I*3-2::E$=SEG$(W$,K,_)::A$(I)=E$::FOR J=_ TO 13::A$(I)=A$(I)&SEG$(W$,INT(RND*16+K),2)::NEXT J::A$(I)=A$(I)&E$::DISPLAY AT(I,1):A$(I)
    50 NEXT I::DISPLAY AT(_,_) SIZE(12):"10LINER 49ER"::FOR I=6 TO @::CALL HCHAR(I,3,129,28)::NEXT I::CALL SPRITE(#1,96,2,25,137,#2,98,16,25,137)
    60 CALL JOYST(_,X,Y)::C1=C+X/4::R1=R-Y/4::CALL KEY(_,K,S)::IF K=18 AND D<5 THEN CALL SOUND(M,-6,0)::A$(R1)=SEG$(A$(R1),_,C1-_)&D$&SEG$(A$(R1),C1+_,28-C1):=D+1::GOTO 90
    70 IF X<>0 AND C1>_ AND C1<28 AND SEG$(A$(R),C1,1)<>"x" THEN C=C1 ELSE IF Y<>0 AND R1>3 AND R1<@ AND SEG$(A$(R1),C,1)<>"x" THEN R=R1
    80 G$=SEG$(A$(R),C,1)::IF R>4 THEN A$(R)=SEG$(A$(R),_,C-_)&D$&SEG$(A$(R),C+_,28-C)
    90 CALL LOCATE(#1,R*8-7,C*8+9,#2,R*8-7,C*8+9)::FOR I=R-_ TO R+_::DISPLAY AT(I,C-_) SIZE(3):SEG$(A$(I),C-_,3)::NEXT I::IF G$<>"p" THEN 60
    100 G=G+_::DISPLAY AT(_,25) SIZE(4):G :: FOR I=2 TO 14 STEP 2::CALL SOUND(-200,262,I,330,I*2,415,16)::NEXT I::GOTO 60
    
    
    • Like 4

  3. On 5/29/2019 at 3:04 PM, Albert said:

    What can I do to help support this event since I'm in Austin?

     

    ..Al

     

    I appreciate that, Albert.

     

    Here are some things I need volunteers to do:

     

    =================================================================
    Volunteer jobs
    =================================================================
    Attend the July 17 (3rd Wednesday) meeting for 99/4ATX business, during Hackerspace member work night.
     
    Preparation jobs:
     
    • Buy tablecloths if desired (the tables are kinda scratched up.)
    • Test the projector (is it working?)
    • Solve videoconferencing (we need a Zoom Pro account if anyone has it, the free one won't be enough.)
    • Snacks and drinks
     
    August 8 and 9
    • Move computers
    • Setup room
    August 10
    • Pick up Food
    August 11
    • Tear down
    Special jobs
    • Produce souvenir electronic badge
    • Write software for badge
    • Produce flyers
    • Produce newbie guide to hand out to visitors

  4. I spent May working on IceTea 0.2, now while I wait for boards from OSH Park I started laying out:

     

    Gemini - A Twin 9958 board to replace 9918.

     

    I started wondering how to best move data between screens, some kind of DMA maybe...

     

    I got the crazy idea to use 128K DRAM on each 9958, but, make the expansion 64K switchable.

     

    1. The first 9958 would use a block copy to move its data from main RAM to the expansion 64K.
    2. When the command finishes, the CPU would switch all the access lines to the other 9958.
    3. Hopefully this doesn't hurt the refresh cycle of the DRAM.
    4. The second 9958 would move from expansion RAM to the frame buffer in RAM.

     

    This would provide a way to flip a big chunk of data from one 9958 to the other.

     

    It's been 25 years since I programmed the 9938, so I forget whether there even is a block copy to expansion DRAM.

     

    Oh yeah,

    V9938 MSX-VIDEO USER'S MANUAL p 62
    
    4.3 HMMM (High-speed move VRAM to VRAM 
    
    The HMMM command transfers data in a specified rectangular area from the VRAM or the expansion RAM to the VRAM or the expansion RAM. 
    
    • Like 3

  5. Fest 99/4ATX will be held Friday August 9 to Sunday August 11.

     

    Details again:

     

    Dates are Friday August 9 to Sunday August 11.
    Costs for the event are:
    * A nominal charge for the 99/4ATX cartridge name badge, raffle ticket, snacks and drinks.
    * Breakfast or lunch on Saturday: group order of breakfast tacos and BBQ (County Line BBQ).
    * Otherwise open to free public walk-ins (I would expect others from the hackerspace and the local C-64 group.)
    • Venue: ATX Hackerspace 9700 Dessau Rd, Austin TX. Has air conditioning, a kitchen, and wi-fi. Classroom and lounge for the weekend, at no cost. Guided tours of members only areas like 3D printing, metal shop, lasers etc.
    • Format: BarCamp style. Attendees set up systems in the classroom or lounge or lobby. Anyone can schedule a presentation slot in the classroom or lounge, otherwise free form.
    • Security: we can put gear in a locked room overnight. The building is keyed entry.
    • Hardware: I can provide some P-Boxes, 4A consoles, monitors so you can travel lighter. Electronics lab available. Classroom has projection screen, whiteboard, giant monitor.
    • Lodging: Super 8 near ATXHS is as low as $58. Marriot $118. There are a lot of options.
    • Airport: Austin-Bergstrom airport ATX (sometimes AUS)
    • Transportation: Volunteers can help with airport pickup; Uber is around $35.
    • Food: Saturday: Breakfast Tacos. Lunch: barbecue delivery. Dinner: trip to Chuy's (Tex-Mex.)
    • Lottery: badge holders only. One Dragon's Lair cartridge.
    • Swap: bring items to sell or trade!
    • Like 3

  6. Another thing. The 9958 has 15KHz analog RGB output. Monitors to display that on are scarce. I wonder if there is an inexpensive IC that would do the job of converting analog RGB to DVI?

     

    This one costs $45:

    https://www.analog.com/media/en/technical-documentation/data-sheets/ADV7403.pdf

     

    Old $4 TVP7002 from TI takes analog RGB (multiplexed! superimpose!) but outputs 24 bit digital color. You need another chip to code that into a DVI signal.


  7. In MSX land, there is the V9990 Powergraph series of expansions, that is a second VDP on a card. The original version from the late 80s supported the graphics overlay mode so the output from the internal / builtin VDP can be fed as input into the second VDP. This allowed convential use as 1 screen...

     

    The 2 VDPs are mapped into memory at different addresses ( well, those are Z80 systems, so different io-ports ) -- so a program can instruct them independently.

     

    Today, the reproduction V9990's don't have the video input / overlay feature, so it gets you into a dual screen situation...

     

    What would I be interested in doing with a second screen?

     

    With 2 screens I can write games that put the status and score and player inventory or whatever on one screen, and keep the second 'immersive' ---

    or... there could be online gameplay with room for 'party' chat on the second screen.

    or... If overlay was supported, I could see writing some video titling for the second screen, that left controls and status up on the native screen so you don't have to memorize hot-keys... Even without overlay mode ( using post processing in a digital environment ) it could be usable. I've day dreamed about using the actual 4A to produce overlays for future youtube videos.

    and... I would send debugging information to the second screen when developing on hardware.

     

    [email protected]

     

     

     

    Those are all good reasons to build this!

     

    I bet we could get Doug to patch MG Explorer to use two screens.

     

    I looked on page 104 of the V9938 manual, External Synchronization. I don't understand how to build the GenLock. I get that it is a PLL circuit. VDP1 HSYNC is input to the PLL. I don't get where the VDP2 crystal goes (is HSYNC from VDP1 already fXTAL=21.48 MHz? No, it's fXTAL/2.)

     

    ExtSync

    Is there a suitable PLL IC you can just buy off the shelf? I see TI makes a bunch under $2. The SN74LV4046ANSR is a PLL and VCO . Combined with LT1675 high bandwidth switch, that seems to be a modern solution to external superimpose, for $10 in chips.

     

    Internal superimpose seems to be much easier. You need a single clock oscillator, but,

     

    "V9958 is more straightfoward on this, you just connect /VRESET and /HRESET to VSYNC and HSYNC signals coming from the other VDP/video source and you're good to go"

     

    according to this thread on msx.org

     

    So I imagine the following Superimpose use cases
    1. Twin 9958: superimpose VDP2 over VDP1, giving extra scrolling planes and sprites, or titling
    2. Video Production: superimpose VDP2 over external RGB for titling
    3. (No superimpose)
    These can combine with mirror and dual mode which are:
    • Mirror Mode: VDP1 and VDP2 have the same graphics.
    • Dual screen: VDP1 and VDP2 showing independent graphics screens.
    in either case, VDP1 is the console's default VDP.

     

     

    • Like 1

  8. Executive decision gets made today. I have all the inputs in a spreadsheet. I'm considering the Texas replies and a slim majority favor Aug 10.

     

    "Official" Sloth of Approval has been requested from Amanda, Chief Sloth of Operations (originally Chief Sloth of Communications for our Bricklink.com store).

    Amanda will be doing logistics and really important stuff. She also does surface mount soldering and laser cutting.

    • Like 3

  9.  

    Thanks Omega, I love the old SF stories- not that this one is that old, quite recent!, 1977.just a couple of years before the 99/4 was announced. Watch for the Canadian tv movie of the book, made in 1984 (that number rings a bell) as "Hide and Seek".

     

    The 1977 book seems to reference what today we would call a virus- had they appeared by 1977?

    The book came after "Colossus- the Forbin Project" (book 1966, film 1969) but the 1984 film was rather close to "War Games" (1983) which had a similar story to this one..

     

    In the US, the film adaption aired on PBS as The Adolescence of P-1.

    • Like 1

  10. Too boring for Rasmus.. I love the game I own two of the arcade games upright and cocktail table

     

    Sent from my LM-G820 using Tapatalk

    I watched this game a lot as a kid. Mostly because no good at it. There was a cocktail version in the restaurant atop Pyramid Plaza in Lubbock TX. (My mental map had a lot of neurons devoted to where the arcade games were.) Sunware/Exceltec had an office on the ground floor. I like to think they came upstairs to play Omega Race.. but shipped Space Patrol.

    • Like 3


  11. On an 80s workstation, a second display might have been a dedicated frame buffer, especially if the primary display was monochrome (or low color) and the second was 24-bit color.


    Imagine that the two VDPs start up in mirroring mode - they always show the same thing.


    Technically, in mirroring mode, VDP 2 would accept the writes to VDP 1 but do nothing on reads. It would always be up to date with the same image as VDP 1.




    Normal equates - call these VDP 1


    VDPRD EQU >8800 ; VDP read data
    VDPSTA EQU >8802 ; VDP status register
    VDPWD EQU >8C00 ; VDP write data
    VDPWA EQU >8C02 ; VDP set read/write address

    Additional equates - VDP 1 only

    VDPRD EQU >8810 ; VDP read data
    VDPSTA EQU >8812 ; VDP status register
    VDPWD EQU >8C10 ; VDP write data
    VDPWA EQU >8C12 ; VDP set read/write address

    Additional equates - VDP 2 only

    VDPRD EQU >8820 ; VDP 2 read data
    VDPSTA EQU >8822 ; VDP 2 status register
    VDPWD EQU >8C20 ; VDP 2 write data
    VDPWA EQU >8C12 ; VDP 2 set read/write address



    Once there has been an access to VDP 1 or 2 specifically at one of the new addresses, mirroring mode ends, VDP 2 becomes independent and responds only at

    its own addresses. VDP 1 responds at both the base address or the new VDP 1 address.


    Imagine this demo:


    1. A utility makes a copy of your favorite EA3 or EA5 program, substituting VDP addresses with VDP2. External references to E/A utilities like VMBW are replaced with VDP2 versions.


    You open your favorite program loader, load the program. So far VDP2 has been in mirrored mode, so it shows exactly the same thing as VDP 1. But as soon as the program starts, it begins writing to VDP2 so VDP2 enters dual mode. The image on VDP1 shows the program loader screen as if frozen while the program runs on VDP2.


    You quit the program. The TI title screen appears on VDP1 while the program you quit leaves a frozen screen behind on VDP2.


    2. A special EA3 or EA5 program loader has an option to choose which VDP to use. See #1.


    3. Screen dump. While VDP 2 retains a mirrored copy of the previous program output, you run a screen dump program that retrieves the image from VDP 2. This would work even if you didn't have a second monitor plugged in. For instance, Super Sketch or TI Artist runs in mirrored mode, then you push a button to freeze VDP 2, quit the program, and run a utility to retrieve the image from VDP 2.


    4. A specially written program uses both VDP1 and VDP2 for different purposes. Examples:

    4a. help is displayed on one screen.

    4b. a picture viewer puts the image on VDP 2.

    4c. the FORTH cursor runs on VDP 1 while bitmap graphics go to VDP 2.


    5. User switch. After viewing one screen of a program, press a button to freeze that display and switch to the other one.

    It's the same program, just captured at different moments.


  12. Interesting concept, but I've never given it much thought because with the TI's limited memory, there is little chance of running two programs/windows at the same time and with the stock VDP... questions arise. Now having a dual video display, one in the TI and one in the P-Box could be interesting, but then again, application to cost benefit or even availability of programs is another impediment... and of course you still have a single CPU. Now being able to switch back and forth quickly using paged memory in a SAMs' might be a nice trick, but, again I dunno enough about it to know if it's practical or actually doable..

     

    Now, the TIPI's RPi has a video output and a TI program could work as some sort of interface for a secondary program working in the background on the Rpi, but I figure the programming would be a nightmare for minimal gain.

     

    In the end I'm content using my TI for a single application at a time. This all being said, who knows what the future could bring.

     

    I can't of a way that two VDPs would help you run two programs, except for TI BASIC which might be flippable between two programs (however PAD contains some important info.)

     

    Also I foresee that two VDPs would need to coordinate (for instance only one can return data to the CPU at a time). I think two identical VDPs on one board would be simpler to build.



  13. So Stuart sent me a 9958 with the challenge to re-create a plug in video board upgrade.


    I built a 9938+9995 standalone wirewrap 30 years ago, so this is just fun, but it has been done before (OPA SoB, Dijit.)


    I got to thinking, what about a DUAL 9958?


    The VDP RAM ports could be switched to mirrored, or just one screen getting focus, or operated independently as two ports.


    That's seriously weird. What would anyone do with it? Support for a second graphics screen would be easy to add in environments like FORTH. Imagine instead of split-screen bitmap mode, you had one screen for text and coding and another for graphics.


    Or two TI BASIC programs operating out of separate VDP RAM, switchable with a button.


    Or the ultimate, a Munch-Man with a super wide screen.


    • Like 1

  14. Though for programmable chips like the 16V8Bs, PLCC might be a better choice, just in case you need to update them (unless you plan on doing some form of ISP with the SOIC chips.

     

    I am going with PLCCs, not SOIC. I got a lifetime supply of PLCC20 and PLCC28 sockets.

    There was a TL866II bundle for $84 with 15 adaptors, including PLCC20 to 44. When it arrives I'll determine what the SOP adaptors really are.

     

    3.3V PLD in PLCC28
    ATF22LV10C-10JU-ND $1.47 DigiKey
    5V PLD in PDIP and PLCC28
    ATF22V10C-15PU-ND $1.66
    ATF22V10C-15JU-ND $1.66
    5V PLD in PDIP and PLCC20
    ATF16V8B-15PU-ND $0.89
    ATF16V8B-15JU-ND $0.89
    "J" is PLCC (J lead) 1.27mm (0.05") and "P" is PDIP 2.54mm (0.1").
    • Like 3

  15.  

    I really hope people aren't just sitting on these, un-opened and un-played, in the hopes that they will be able to eventually flip them on eBay for a high price. A homebrew game like this is meant to played and appreciated! :thumbsup: :) It always frustrates me to see the people who have bought a copy of a limited release just to sit on it as it deprives someone else who actually wanted to PLAY the game... :_(

    I'm one of those who ordered extra copies at the end, and I'm happy to report that we often had 2 players at once at Midwest Gaming Classic (this is a really high foot traffic event.)

    We still have people excited to see the Pitfall cartridge. Philip was gracious enough to allocate two of them for our show, out of the original sales run.

    • Like 3
×
×
  • Create New...