Jump to content

99000 Pure theory: CSEG PSEG model

Recommended Posts

This is pure theory. I I though  about it during my commute. 


Suppose you used the segmented code/data memory model of the 99000. Program  segment (PSEG) is in distinct address space from Data segment. Loaded into different blocks of RAM. Which are selected by the BST bus status codes telling whether the 99000 is fetching code or data. 


I’m stuck thinking through how a branch table would appear. 


Am I right that this model breaks code like:


 PSEG   * directive: program segment 



DSR0 MOV *R14+,R1









DSEG * directive: data segment






  • Does BLWP fetch vector with BST = IAQ? 
  • Does DSRLNK vector belong in program or data segment?
  • *R14 would access data space, uhoh, not seeing the DATA 8
  • Dunno how JMPTBL is linked/loaded 


Is the Tagged Object Loader, as we know it, capable of resolving the JMPTBL addresses? (Supposing it had been loading a PSEG and DSEG into separate pages in this model.) should JMPTBL be in program or data segment?


Does BIND access JMPTBL as a IOP (immediate operands) or general memory? (Wrong segment!) On the other hand, Should JMPTBL be in program, or data segment using REF/DEF? (Is this a use case for SREF?)


Do like this instead of BIND? (Branch indirect)

MOV *R14+,R1


B *R2


And put JMPTBL in the data segment?



Thoroughly confused. 


Again, this is all theoretical, I’m not going to implement this. 




  • Like 1
Link to comment
Share on other sites

I'm thinking the instruction execution sequence tables in https://bitsavers.org/pdf/ti/TMS9900/MP009_99105A_99110A_Nov82.pdf* will be of use to you here. Table 19 sections on pages 81 and 82 show the branch instruction sequences and bus status codes you're concerned with. 


* also here: http://ftp.whtech.com/datasheets and manuals/Datasheets - TI/MP009_99105A_99110A_Nov82.pdf

Edited by jbdigriz
  • Like 2
Link to comment
Share on other sites

Ah, well, yes, there was some rearranging a while back and the dir was moved.  I was working from an old scratch copy.  Sorry.  The file appears to have been lost in the shuffle somehow, but it's on archive.org, or the preliminary datasheet is at http://www.bitsavers.org/components/ti/TMS9900/TMS99105A_and_TMS99110A_16-Bit_Microprocessors_Preliminary_Data_Manual_Nov82.pdf Same info, same pages. Maybe just another scan of the same doc.


The instruction tables in the 990 assembly manual are helpful as well:  http://www.bitsavers.org/pdf/ti/990/assembler/2270509-9701A_AsmRef_Nov82.pdf

Edited by jbdigriz
  • Like 2
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.

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.


  • Recently Browsing   0 members

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