Jump to content
Sign in to follow this  
jbdigriz

DX10 Home Computer Software Development System

Recommended Posts

On 7/9/2020 at 3:34 PM, kl99 said:

thank you very much for preserving this for the community!

My pleasure. I've managed to scan some more yesterday and FLMGR359_022081.pdf is now available as well, in the same place. I went ahead and did that one so Rich or anyone else can compare with 080680 for differences. Best I can tell there is only one version of the rest of the 359 files, but I'll look them over again tomorrow.

 

jbdigriz

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
Posted (edited)

GPL module EDIT359 is now posted at ftp://www.dragonsweb.org/pub/ti/docs/Product359/edit359.pdf

 

Notes: Page 33 of the GPL assembler listing and page 1 of the cross-reference were missing from the photocopy I have. Also, you'll have to look carefully to catch some of the annotations, which brings me to another point: It is by no means clear if these listings correspond *exactly* to any production Extended Basic. They'll need to be checked against dumps of actual cartridges to determine that. 

 

[edit] SUBS359 module now up, same place. There are fairly extensive annotations that did not scan too well. I have a feeling these may be more related to a derivative product of another company, as they were made in pencil *after* the listing was photocopied, and came from one of said co's developers,  but I will rescan  the pages in question in grayscale, after I finish the other listings. The remaining GROM modules are EXEC, PSCAN, and ALCS. After that, there is about a 4" stack of ROM (9900) code. I'll post the link control file next which lists all the ROM modules.

 

[edit] SDSLNK control files at ftp://www.dragonsweb.org/pub/ti/docs/Product359/lnkblks.pdf

 

[edit] ALCS now up in same directory. These are the Assembly Language support routines. CALL INIT, CALL LOAD, etc.

 

[07/14/20 edit] PSCAN359 is up.

 

[07/15/20 edit] EXEC359 is up. Unfortunately I have misplaced the first 27 pages, so it's incomplete. I have it around here somewhere, and will post the complete file after I locate it as I go through and organize all the stuff I got out of storage a few months ago. Had to pile everything up in dry spots till I repaired the roof, but that's done now, so hopefully it won't be too long. Worst case, there is enough information, between these files, a cartridge dump, and everything else known about XB, to reconstruct the missing pages if need be. Non-trivial amount of work, but doable.

 

Also, start of SDSMAC listings referenced in link file above, again same directory as everything else so far: 

 

     XML359             XML  table and equates for P359 BASIC

     REF359             References to 99/4 console routines

     CPT359             Character Property Table

     BASSUPP359      General BASIC support routines (not including PARSE)

 

[07/16/20 update] Balance of Bank 0 routines (>6000), again all in ftp://www.dragonsweb.org/pub/ti/docs/Product359

 

     PARSE359          Parser for P359 BASIC 

                                   Note: Page 15 is missing due to an apparent collation error which replaced it with a dupe, not included here, of page 14.

     GETPUTP359      GETPUT for P359 - 2 byte transfers to and from VDP and expansion RAM

     NUDS359           NUDS and LEDS for P359 - "Null designator" and "Left designator" codes

     SPEEDP359        SPEED Support for P359

     MVUPP359         MVUP for P359 - Move the contents in  ERAM from higher address to lower

     GETNBP359        GETNB for P359 - Get the next character

 

[07/17/20]   Bank 1 (>7000)

 

     FORNEXTP359   FOR and NEXT for P359

                                  Note: missing page 9, unfortunately

     CIFP359           Convert integer to floating point

     SUBPROGP359  Subprograms for P359

     SCROLLP359     Scroll for P359 BASIC

     SCANP359        Prescan support for P359

     GREADP359      Read data from expansion RAM

     GWRITEP359    Write data from CPU to expansion RAM

     DELREPP359     Delete the text in crunched program in VDP or expansion RAM

     MVDNP359       MVDN for P359 - Move the contents in either VDP or ERAM from lower address to higher avoiding possible overwrite

     VGWITEP359    Move data from VDP to expansion RAM

     GVWITEP359    Move data from expansion RAM to VDP

 

[07/18/20] Bank 2, alternate >7000 ROM bank. ISTR XB  writes to a byte at some special address in the bank to switch between these two? Oh well, use the source, Jim. 🙂 [Correction: write to >6000 enables Bank 1, write to >6002 enables Bank 2. Sorry, rusty brain cells.]

 

     CNSP359          Convert number in the FAC to string

     TRINSICP359    Appears to be transcendental functions and support

     CRUNCHP359    Loads a line into crunch buffer converting line no.'s to binary, tokenizing, etc.

 

And finally, SUPPORT, which is the 9900 code loaded from GROM into expansion RAM for assembly language support by CALL INIT (See ALCS above.)

 

And that's it. If there's anything missing (like, shouldn't there be a CSN complement to CNS? Maybe it got subsumed into another routine or something,) well, I don't have it here. Still looking for the 1st 27 pages of EXEC.

 

The Product 359 design spec document is of great help putting all these listings into context. Scanning it in right now. I'll also put up a single PDF of all these files shortly. It'll be a monster, though, >200 MB.

 

jbdigriz

Edited by jbdigriz
posting updates, additions, and corrections
  • Like 3

Share this post


Link to post
Share on other sites
Posted (edited)

Found more SDS listings, plus Product 359 design specs: 

 

     "Product 359 Basic Interpreter Design Specifications",  v3.0, TI Personal Computer Division, 06/30/80

      Disk DSR ROM SDSMAC source listing

      Console ROM SDSMAC source listing.

 

I know the last one is covered in Heiner Martin's "TI Intern", but I'll probably scan it in anyway, just to have it on record, unless this has already been done.

I don't think I've seen the 1st two anywhere else, so I'll scan them in after I finish with the Extended Basic sources (Done! See previous post.) Unless, that is, someone shows me where they've already been posted online, which would be appreciated.

 

Thanks,

jbdigriz

Edited by jbdigriz
Note XB source scan done!
  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

Just sorry it took so long.

 

File "p359_design_spec.pdf" is now available on my ftp server in the same location as the files above. I'll post it here as well. It's an interesting read, and references some other documents that might be useful. I found the ACM article on "Top Down Operator Precedence" listed, but the ACM free coronavirus access period is over and I don't happen to be a member. Trying to find the others listed too, but nothing so far, although a few ring a bell.

 

The 4A community has collectively pretty well grokked the in and outs of XB, but this document really brings a lot  together in one place. Also, Appendix B will explain a lot about the DX10 conditional assembly statements in the listings above and the makeup and recommended use of the DX10 SDS for debugging. (Perhaps a native version  is possible?)  I've already had my eyes opened about some things. The spec and the listings should I hope be helpful to Rich or any one else extending the interpreter further (Nice job, btw, Rich!) or porting to other 9900 family platforms, building or maintaining compilers, etc.  They should be useful  for optimizing XB programs as well. Again, I haven't seen these anywhere else, so I hope they'll be useful. I also hope it's not going to be too much of a pain to OCR and/or transcribe the listings to use as an open, coordinated reference base for future developments, particularly with all the new hardware coming out lately. Lastly, this material really makes it clear the effort and skill it took PCD's engineers to pull off putting a 16-bit CPU in an 8-bit system architecture with only 256 bytes of CPU RAM and making it work. Hindsight says it would have been better either to use an 8-bit CPU, or design a 16 bit system (which TI of course already had), but it was a remarkable achievement regardless, in my opinion.

 

Ok, time for a break! p.s. flatbed scanners are the pits! :-)

 

jbdigriz 

p359_design_spec.pdf

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

Thank you so much for providing this! The sheer amount of detailed information contained in this single document is unbelievable.

Lately I’ve been looking at XBII on the 99/8 closely (an extension of Extended Basic on the TI-99/4a).

 

This document helps explain a lot (terms like NUD and LED). I’m going to print the document and will be looking at it a lot.

Share this post


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

This document helps explain a lot (terms like NUD and LED).

 

Finally!! I have tried to figure out “NUD” for years!

 

...lee

Share this post


Link to post
Share on other sites
Posted (edited)

Here is the disk controller DSR code I mentioned. Includes:

 

     strucmac.pdf            - Macro definitions for "Enhanced Assembly Structures" used in some of the code. See also DECUS library item 11-256, which I   

                                     haven't found online so far, but have reached out to the programmer. Hopefully he can direct me to a copy or has one.

                                     Very interesting; IF-THEN-ELSE, CASE, loops, etc. 

     linkdisk.pdf              - Link control file

     romtmpl.pdf            - Powerup routines, etc.

     hclvl1.pdf                - Level 1 DSR. These files were in a folder labelled "T.I. DDCC" but the code is for the WD 1771, so, not DD after all.

                                     Maybe used for reference by someone working on a double-density DSR, or the DD in the label means something else,

                                     like "Disk Drive", possibly. 

     stackc.pdf               - Stack routines

     stackc-012880.pdf   - Earlier version of stack routines

     hclvl2d.pdf             - Level 2 DSR.

     hclvl3e.pdf             - Level 3 DSR.

     hccatlge.pdf           - Catalog routines

     hcgplsub.pdf          - GPL and console BASIC callable subroutines.

 

Unfortunately, the photocopies I scanned from have the bottom line truncated to one degree or another on many of the pages, but it should be possible to puzzle them out.

 

Again, maybe this is old news, but, maybe not, and it does serve as historical reference, if nothing else.

 

jbdigriz

DiskDSR.zip

Edited by jbdigriz
  • Like 5

Share this post


Link to post
Share on other sites
Posted (edited)
3 hours ago, Ksarul said:

This may mirror some of the data @FALCOR4dug up on disk DSRs a while back. many thanks for preserving and posting it.

Ah, I wasn't aware of the sidecar DSR sources he had posted.  I don't have time to go through them completely right now, but while a quick glance shows different dates, the contents I compared so far look identical, other than his not having truncated pages. Thanks for pointing that out for me.

 

What difference would there be, btw, between the sidecar and PEB DSRs at the assembly level? Is the CRU base different? Bug fixes? As far as I know, the listings I posted are for the PEB CC, but I have no unambigous way to confirm that.

 

jbdigriz

Edited by jbdigriz

Share this post


Link to post
Share on other sites

The CRU would be the same (>1100). Actually, there is a way to somewhat confirm it as the sidecar controller. The PEB controller didn't exist until 1982. These files are from 1980, which was the year the sidecar controller design was finalized and released. Much of the code for the PEB card is the same though. Major differences are support for double-sided disk drives and even some support for 80-track drives. That last bit isn't active unless you are using a modified DSR, but it was apparently intended to support it, based on the design specs (they are up on WHT).

Share this post


Link to post
Share on other sites
20 hours ago, Ksarul said:

The CRU would be the same (>1100). Actually, there is a way to somewhat confirm it as the sidecar controller. The PEB controller didn't exist until 1982. These files are from 1980, which was the year the sidecar controller design was finalized and released. Much of the code for the PEB card is the same though. Major differences are support for double-sided disk drives and even some support for 80-track drives. That last bit isn't active unless you are using a modified DSR, but it was apparently intended to support it, based on the design specs (they are up on WHT).

Ok, that makes sense. Thanks for clearing the cobwebs!

Share this post


Link to post
Share on other sites
On 7/3/2020 at 4:50 PM, Casey said:

Has there ever been a mechanism to take a TI BASIC program and convert it to GROM as documented in the Software Development System manual available to the masses?   And how many modules were released that were created this way, do we know?  It’s a very interesting concept to me.

 

The Mechatronics Gram Karte also has a tool in the DSR for doing this with your own BASIC code. The docs note, that more VDP RAM for stack/etc is then available to your program since your program resides in the GROM during execution. 

  • Like 2

Share this post


Link to post
Share on other sites
On 7/24/2020 at 6:19 PM, jbdigriz said:

Here is the disk controller DSR code I mentioned. Includes:

 

...

 

jbdigriz

DiskDSR.zip 33.29 MB · 8 downloads

This is another spectactular preservation. Thank you so much!

I wonder what is the best way to compare all these docs with existing sourcecode, be it in scanned or in digital format.

For any digital files like the ones from RXB for Extended Basic we could make a "print out" and imitate in that the font and spacing in it to have a SDSMAC like format. TIcode99 could be of help to recalculate any missing addresses.

Any difference should then be easily spotted, we could even think of some automatic png comparer if we get the formatting exact.

There is a Product359 Design Spec pdf within The Cyc by C.a.d.d. Electronics. But again, this actual printed source can be used to find errors or missing parts in it. So big thanks for this!

Share this post


Link to post
Share on other sites
14 hours ago, kl99 said:

This is another spectactular preservation. Thank you so much!

I wonder what is the best way to compare all these docs with existing sourcecode, be it in scanned or in digital format.

For any digital files like the ones from RXB for Extended Basic we could make a "print out" and imitate in that the font and spacing in it to have a SDSMAC like format. TIcode99 could be of help to recalculate any missing addresses.

Any difference should then be easily spotted, we could even think of some automatic png comparer if we get the formatting exact.

There is a Product359 Design Spec pdf within The Cyc by C.a.d.d. Electronics. But again, this actual printed source can be used to find errors or missing parts in it. So big thanks for this!

Thanks for the tip on "The Cyc". Need to get that.

 

Ideally, if we could get all these sources under version control of some kind, it would be a lot easier to generate diffs and patches, reconstruct, and keep track of all the variants. Lotta work OCR'ing, proofing, and typing, but git or something would make collaboration on that easier, too. All you other guys that have been working on reconstructing these sources, what do you think? Lee, Jim, Rich, etc. etc. etc.?  And, Lee, do I need to scan in these 4A console ROM listings, or do you already have the TI-commented sources?

 

BTW I finally found my box of 990 docs that came from Guntis Sprenne quite some while back.  For some reason I misremembered it as the 990/12 maintenance manual, but there is a massive SBS (Small Business System) Maintenance Manual (Vol 1., 2270213-9701), hundreds of pages of diagrams, schematics, etc. for the Model 770, 771, 990/1, and 915. *Many* of the pages are fold-out 11"x17", though, so I'm going to have to find a wide format ADF before I can scan. Not directly 99/4a related, but I know you have a 990/1. Also there are a couple of maintenance manuals for the 8" floppy systems, and more on these machines. If there is specific info you or Piero are looking for, let me know. 

 

I just bought a VDU to replace the one I had lost, so I'll be working on my 990/1 soon. A recycler had one that came in without the system, so I didn't have to part out another machine to get it, which makes me glad. Probably get one of those Goteks to boot from for now.

 

jbdigriz

  • Like 3

Share this post


Link to post
Share on other sites
On 7/24/2020 at 11:19 AM, jbdigriz said:

Here is the disk controller DSR code I mentioned. Includes:

 

     hclvl1.pdf                - Level 1 DSR. These files were in a folder labelled "T.I. DDCC" but the code is for the WD 1771, so, not DD after all.

                                     Maybe used for reference by someone working on a double-density DSR, or the DD in the label means something else,

 

 

I almost didn't check out this topic seeing "DX10" -  what a neat set of material you are preserving!  I particularly like seeing comments for things like timing loops, which often get us into trouble when the TI is clocked faster or the card is used with a Geneve.  Very cool.

 

image.thumb.png.b9b25ccfbd5023f2fe61519c5b78cb9f.png

Share this post


Link to post
Share on other sites
On 7/24/2020 at 12:19 PM, jbdigriz said:

Here is the disk controller DSR code I mentioned. Includes:

 

     strucmac.pdf            - Macro definitions for "Enhanced Assembly Structures" used in some of the code. See also DECUS library item 11-256, which I   

                                     haven't found online so far, but have reached out to the programmer. Hopefully he can direct me to a copy or has one.

                                     Very interesting; IF-THEN-ELSE, CASE, loops, etc. 

     linkdisk.pdf              - Link control file

     romtmpl.pdf            - Powerup routines, etc.

     hclvl1.pdf                - Level 1 DSR. These files were in a folder labelled "T.I. DDCC" but the code is for the WD 1771, so, not DD after all.

                                     Maybe used for reference by someone working on a double-density DSR, or the DD in the label means something else,

                                     like "Disk Drive", possibly. 

     stackc.pdf               - Stack routines

     stackc-012880.pdf   - Earlier version of stack routines

     hclvl2d.pdf             - Level 2 DSR.

     hclvl3e.pdf             - Level 3 DSR.

     hccatlge.pdf           - Catalog routines

     hcgplsub.pdf          - GPL and console BASIC callable subroutines.

 

Unfortunately, the photocopies I scanned from have the bottom line truncated to one degree or another on many of the pages, but it should be possible to puzzle them out.

 

Again, maybe this is old news, but, maybe not, and it does serve as historical reference, if nothing else.

 

jbdigriz

DiskDSR.zip 33.29 MB · 11 downloads

I was totally surprised by the Macro file. They were not programming Assembly language. The combination of macros created a simple hi-level language.

Some of it is similar to how a Forth Assembler works.

 

I don't fully grok the stack stuff where they are doing a BLWP ??  Looks like they created a way to push/pop variable numbers of registers.

Very fun to see this. 

Thanks

 

 

  • Like 1

Share this post


Link to post
Share on other sites

We have a posted set of the console GROMs that @FALCOR4had in his documents collection, but I think we are still missing a few pages ofit at random points (also missing from his set). Someone else had some of the missing bits, but again, I think we may still be missing a few pages to complete the set. On the console ROMs, I don't think we've got a good original source code set of those yet. Heiner Martin did his own commented disassembly of the whole console in his book, TI Intern, but the comments were his own, and nowhere near as complete (or accurate) as what is in the TI originals.

 

@urbite and I reconstructed an editable copy of the original source for Parsec a while back, and I did a similar exercise for the source code included with the BASIC Support Module documentation.

Share this post


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

And, Lee, do I need to scan in these 4A console ROM listings, or do you already have the TI-commented sources?

 

This thread, The TI-99/4A Operating System, is probably why you asked the question. The commented DX10 source code for console ROM0 is in post #5 from Tim (@InsaneMultitasker). They look original, but they are not scans of TI printouts. I modified the code to assemble to a single binary with Asm994a (see post #1). I commented all changes to the original code and got a binary identical to Heiner Martin’s listing in TI99/4A Intern.

 

...lee

Share this post


Link to post
Share on other sites
23 minutes ago, Ksarul said:

On the console ROMs, I don't think we've got a good original source code set of those yet.

 

There is just one console ROM (ROM0) and I have (from Tim) what appears to be the original DX10 ALC (see my last post above).

 

...lee

Share this post


Link to post
Share on other sites
9 hours ago, Lee Stewart said:

 

This thread, The TI-99/4A Operating System, is probably why you asked the question. The commented DX10 source code for console ROM0 is in post #5 from Tim (@InsaneMultitasker). They look original, but they are not scans of TI printouts. I modified the code to assemble to a single binary with Asm994a (see post #1). I commented all changes to the original code and got a binary identical to Heiner Martin’s listing in TI99/4A Intern.

 

...lee

Yep, that's why I asked. When I get a chance to take a look at the file Tim uploaded, I'll decide whether to scan. If I do, I'll post to that thread, too. Thanks!

  • Like 1

Share this post


Link to post
Share on other sites
13 hours ago, jbdigriz said:

BTW I finally found my box of 990 docs that came from Guntis Sprenne quite some while back.  For some reason I misremembered it as the 990/12 maintenance manual, but there is a massive SBS (Small Business System) Maintenance Manual (Vol 1., 2270213-9701), hundreds of pages of diagrams, schematics, etc. for the Model 770, 771, 990/1, and 915. *Many* of the pages are fold-out 11"x17", though, so I'm going to have to find a wide format ADF before I can scan. Not directly 99/4a related, but I know you have a 990/1. Also there are a couple of maintenance manuals for the 8" floppy systems, and more on these machines. If there is specific info you or Piero are looking for, let me know.

 

jbdigriz

Wow. Simply wow.

 

After many attempts Piero had success in reading out the operating system disks that I send to him. It is in KryoFlux DiskSystem Format and can not directly be used yet on the machine. So far the disk format (DSDD, 1.153.152 bytes, 288 bytes per sector) is not supported by the Gotek system and Piero has some write issue on his FD1000 that blocks him from creating an actual duplicate disk. But he is on both, getting the Gotek Authors to support this Disk Format (next to the already supported FD800 SSSD 256.256 bytes Format).

I am on writing a Windows based tool to analyze the Disk Images. See fd800-tifilelist.txt to see which files on FD800 images it already identified.

 

But you can use a Gotek Device already to boot your DS990/1 with FD800 disk images.

From 15th August (home vacation) I will also work on my DS990/1 system to get it finally running.

  • Like 3

Share this post


Link to post
Share on other sites

I can't explain how much happy I am!

That's a fantastic news! I had started the reverse engineering of my ds990 but is a big work.. Now we have schematic!

Thanks so much for sharing

Share this post


Link to post
Share on other sites
14 hours ago, Ksarul said:

We have a posted set of the console GROMs that @FALCOR4had in his documents collection, but I think we are still missing a few pages ofit at random points (also missing from his set). Someone else had some of the missing bits, but again, I think we may still be missing a few pages to complete the set. On the console ROMs, I don't think we've got a good original source code set of those yet. Heiner Martin did his own commented disassembly of the whole console in his book, TI Intern, but the comments were his own, and nowhere near as complete (or accurate) as what is in the TI originals.

 

@urbite and I reconstructed an editable copy of the original source for Parsec a while back, and I did a similar exercise for the source code included with the BASIC Support Module documentation.

I managed to get the missing GROM pages thanks to Regulus.  We have a "retype" of the original ROM listing but I've not seen the original listing it came from; would love to have a copy though.

 

 

Share this post


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

I managed to get the missing GROM pages thanks to Regulus.  We have a "retype" of the original ROM listing but I've not seen the original listing it came from; would love to have a copy though.

 

Did you not see my post #44 above?

 

...lee

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.

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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...