Jump to content
Tempest

7800 Keyboard

Recommended Posts

2 hours ago, Tempest said:

Same Curt didn't give me the Video Writer or BASIC roms. 

 

I wonder what that non-booting prototype was?  I can't read the labels very well but it looks like some sort of code/part number.

Curt told me it is the Atari term program and that he later got it working. I can't remember what he said the issue was. Maybe it needed the modem plugged into the SIO port or something.

 

Mitch

Share this post


Link to post
Share on other sites
4 minutes ago, Mitch said:

Curt told me it is the Atari term program and that he later got it working. I can't remember what he said the issue was. Maybe it needed the modem plugged into the SIO port or something.

 

Mitch

Oh cool!  Did he send you any of the roms by chance?

Share this post


Link to post
Share on other sites
Just now, Tempest said:

Oh cool!  Did he send you any of the roms by chance?

Sadly no. I do not have any of them.

 

Mitch

Share this post


Link to post
Share on other sites

Here is an old thread that has some interesting info.

Mitch

 

  • Like 4

Share this post


Link to post
Share on other sites

FWIW, I'm willing to attempt a BASIC port if there's a way to test it on my linbox, but I wouldn't be porting the OSS dialect.

Share this post


Link to post
Share on other sites

From Curt's answer to the 7800 basic Thread..

Quote

The programs however are useless to anyone without a keyboard as they perform a sync-up to the keyboard to get an ack(nowledge) signal and then they will execute, so they just sit at a blank screen without a keyboard attached...

I came acress such code on the light module. It writes a long series (140+256+256) of 1.1.1 (looping at  $F900) and finally writes a 0.0.0.

This subroutine returns with A=0 and carry set on success. In case of a timeout due to keyboard not respond it returns with A=$ff and carry clear.

 

LF8E5: LDY    #$8C    
       LDA    #$0F    
       STA    SWCHA   
       STA    SWACNT  
       LDA    #$00    
       STA    $C0     
       STA    SWBCNT  
       LDA    INPT5   
       AND    #$80    
       STA    $C1     
       LDA    #$03    
       STA    $C2     
LF900: LDA    #$07  ; data = 1.1.1  
       STA    $C3     
       JSR    LF999   ;/// write data bits 
       JSR    LF9A7  ;///  wait for ack, return with carry clear on timeout 
       BCC    LF91C   
       DEY            
       BNE    LF900   
       DEC    $C2     
       BNE    LF900   
       LDA    #$00    ; data = 0.0.0
       JSR    LF966  ;/// write data bits along with strobe signal and wait for ack   
       LDA    #$00    
       SEC            
       RTS            

LF91C: LDA    #$FF    
       RTS   

 

Share this post


Link to post
Share on other sites

One thing that's intriguing me a timeout checking that references the address $bc.

Unless there is some code running on interrupts or a hardware timer mapped at such address, it makes no sense use this address to check for a timeout.

;/// write data bits along with strobe signal and wait for ack
LF966: JSR    LF999    ;/// write strobe signal   
LF969: LDA    $BC       ; // what is at $bc??
       BEQ    LF979   ; if contents of $bc is zero, clear carry and return
       LDA    INPT5   
       AND    #$80    ; isolate fire button 
       CMP    $C1     ; flipped? 
       BEQ    LF969   ; no, try again (maybe something decreases the contents of $bc like a timer interrupt?
       STA    $C1     ; yes, save state
       SEC            ; and set carry to indicate success
       RTS            

LF979: CLC            
       RTS 

 

Share this post


Link to post
Share on other sites

It looks to me like $BC is essentially a "keyboard detected" flag. It gets set to $FF @LEDE7, and then gets incremented to $00 @LEE7F, if the keyboard init failed.

  • Like 1

Share this post


Link to post
Share on other sites

I keep wondering how the keyboard would differentiate a read from a write.

Maybe the keyboard latches the data lines during strobe change, then it publishes its data before the ack rise, but that would require the 7800 to write 1.1.1 to the data lines after sensing the ack signal flip, and only then it would read the keyboard data.

In other words a biditectional protocol with wired or data lines....

 

Share this post


Link to post
Share on other sites

I'm currently talking to one of the old GCC programmers.  If you can put all your questions in a post, I'll pass it along to him.  He may not know, but he's in touch with all the other GCC people so odds are one of them knows.

  • Like 6
  • Thanks 2

Share this post


Link to post
Share on other sites

Thanks @Tempest, I have elaborated some questions:

- So far we could understand that the communnication between the host and the keyboard peripheral is done 3 bits at a time (swcha.2..0), lsbits first, flipping the strobe signal (swcha.3) and waiting for the keyboard to ack by flipping the fire (inpt5) line. Can you confirm that?

-  We found a routine that writes a lot of data bits in 1.1.1 ended with a write with 0.0.0. is this a sync routine? 
- How do you manage to get in sync in short term? Or it is always necessary to repeat the long sync routine ?

- how do the keyboard peripheral differentiate a read from a write? 
- Do the communnication between the keyboard peripheral and the host is or was intended to be bidirectional? (paced by swcha.3 strobe signal from host to keyboard an by inpt5 from keyboard to host?)
- How should the host address the SIO port and the cassette port? Is there any document or specification of a higher level protocol? Did such protocol resembles the sio standard?

Share this post


Link to post
Share on other sites
Posted (edited)
On 4/13/2022 at 10:30 AM, Tempest said:

I really wish I knew where Curt got these roms from.  Did GCC have anything to do with them?

 

I can't remember if Curt got them from GCC or from Dan Kramer. If I recall, Dan may still have the AtariLab, 7800 BASIC, and AtariWriter/VideoWriter 7800 [or whatever it was titled] ROMs in physical form.

 

This is an exciting thread because there didn't seem to be any interest in modding the ROMs to work with the XEGS keyboard port on the XM back when Curt was still alive.

 

For the record, Curt said many times in the 7800 Facebook group - and privately - that the controller chip in the 7800 Keyboard was proprietary and he didn't have the means to reverse-engineer it. From memory, the keyboard plugged into Joystick Port #2 and could also provide pass-through Joystick/Controller Mode and SIO support while the keyboard was also being operated. Curt had speculated that the later Atari Corp might've planned to use the plans for that proprietary controller chip for an adapter cable that would make possible to network the 7800 for MIDI Maze since there were rudimentary plans to port MIDI Maze to the 7800 in the last days of the console's commercial life.

 

Does anyone else think the 7800 keyboard design looks a lot like the SX-64's keyboard?

Edited by Lynxpro

Share this post


Link to post
Share on other sites
On 4/16/2022 at 6:57 AM, Tempest said:

I'm currently talking to one of the old GCC programmers.  If you can put all your questions in a post, I'll pass it along to him.  He may not know, but he's in touch with all the other GCC people so odds are one of them knows.

 

I'm curious if they were initially scheduled to program Demolition Derby, Track & Field, and Elevator Action or if Atari Inc planned to have their own programmers code those titles [I think that was the plan with Tempest & Black Widow but I'm doubting my memory ATM]...

Share this post


Link to post
Share on other sites
1 hour ago, Lynxpro said:

 

I'm curious if they were initially scheduled to program Demolition Derby, Track & Field, and Elevator Action or if Atari Inc planned to have their own programmers code those titles [I think that was the plan with Tempest & Black Widow but I'm doubting my memory ATM]...

Track & Field yes, no to the other two.

  • Like 1

Share this post


Link to post
Share on other sites

If we are going down that road; does a finished version of Rescue on Fractalus actually exist? What about Moon Patrol, Millipede and Jr Pac?

 

Mitch

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Mitch said:

If we are going down that road; does a finished version of Rescue on Fractalus actually exist? What about Moon Patrol, Millipede and Jr Pac?

 

Mitch

I'm waaaay ahead of you on that.  He's checking for me when he gets a chance.  He's very busy right now so it may be awhile.

 

I don't recall ever hearing about Jr Pac for the 7800 though.

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, Tempest said:

I'm waaaay ahead of you on that.  He's checking for me when he gets a chance.  He's very busy right now so it may be awhile.

 

I don't recall ever hearing about Jr Pac for the 7800 though.

That's a job for Bob DeCrescenzo then. 😁

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, Tempest said:

I'm waaaay ahead of you on that.  He's checking for me when he gets a chance.  He's very busy right now so it may be awhile.

 

I don't recall ever hearing about Jr Pac for the 7800 though.

It is on the master parts list right between Millipede and Track and Field. I also forgot about Crystal Castles, there is actually box art for that one.

 

Mitch

 

Crystalcastlesbox.JPG

  • Like 6

Share this post


Link to post
Share on other sites

I'll ask but I think GCC was only working on Millipede, T&F, and Moon Patrol.

  • Like 1

Share this post


Link to post
Share on other sites

Yes, I don't know which ones were being done by Warner and which by GCC.

 

Mitch

Share this post


Link to post
Share on other sites
On 4/20/2022 at 1:36 PM, Tempest said:

Track & Field yes, no to the other two.

 

So I guess that means if they say they didn't code it, then it's not a "lost game" because it wasn't started/completed...

Share this post


Link to post
Share on other sites
On 4/20/2022 at 7:37 PM, Mitch said:

It is on the master parts list right between Millipede and Track and Field. I also forgot about Crystal Castles, there is actually box art for that one.

 

Mitch

 

Crystalcastlesbox.JPG

 

I can't make out the copyright year on it. Looks like 1988. It certainly reads "Atari Corporation" on it. No mention of the unreleased 7800 Trak-Ball controller, or any Trak-Ball controller for that matter...

Share this post


Link to post
Share on other sites
On 4/20/2022 at 5:44 PM, Tempest said:

I'm waaaay ahead of you on that.  He's checking for me when he gets a chance.  He's very busy right now so it may be awhile.

 

I don't recall ever hearing about Jr Pac for the 7800 though.

This would be great to have for the Atari 7800. Saw some screen shots and to me a step up in graphics from A5200 and A8 computer graphics. Love to see it. 

Share this post


Link to post
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...