Jump to content

retroclouds

+AtariAge Subscriber
  • Content Count

    2,118
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by retroclouds


  1. 3 hours ago, Asmusr said:

    I would start with that option because it sounds doable within a reasonable time frame.

     

    That what I also thought in the beginning as well. Now I'm not so sure anymore. 

    Having a good documented assembly source is a very valuable tool.

     

    At this time I'm still trying to better understand how well the Armadillo Basic internal design document matches with the ABASIC assembly source.

    Also the source code is really well documented, and it looks that it's pretty modular as well. 
    Perhaps starting from the assembly source is not as bad as it sounds, but guess it's still too early to tell. 

     

    EDIT: I stand corrected, the use of the many MDOS XOP calls (as Beery already pointed out), makes it impossible to backport ABASIC to the TI-99/4a

    • Sad 1

  2. Yesterday, I looked at the Armadillo Basic document specifying the statement dispatch table with equates for the basic tokens.

    Then I compared with the ABASIC (3.0) source code.

     

    I can confirm that for the most part the token labels and token values match with the document.

    There were a few tokens that had a changed token label, but I presume they still do the same functionality (if I understand the abbreviation in the label name correctly).

     

    Have to recheck and confirm, but I think there were only 3 token values that were unused in Armadillo Basic and are allocated in ABASIC.

     


  3. On 7/2/2020 at 5:57 PM, BeeryMiller said:

    If you are talking about the Advanced Basic developed from the source from the MDOS buyout, I would say it was a derivative from some port, probably Myarc XBII with new enhancements, and modifications to code to use MDOS XOP's where necessary, especially for video. All file access, video, and keyboard went through the XOP's.  Not sure on details on the level of dependency for math/floating point.  Memory management routines from the XOP's would be heavily used as well.

     

    Myself, I never dug into the code.  Jim Uzzell probably was the most familiar with the code.

     

    If someone wanted to ever develop something for the SAMS, that is likely the only known, commented source code base to work from I am aware.  Conversion back to something suitable for the TI-99/4A would be a major undertaking removing the pieces the 4A could not support such as 9938 features and developing a new page mapping scheme to be compatible with the SAMS.

     

    I'm still hoping Lou can come up with something, only time will tell to get us to the Myarc XBII codebase.

     

    Beery

     

     

    At this time I see 2 possibilities for getting Myarc XB II to run on the TI-99/4a:

    • Use the existing Myarc XB II with the 128K OS.  
      • Requirements:
        • SAMS, FGROM or superspace cart, floppy drive
      • Work involved:
        • disassemble cartridge image, get to understand everthing, create new image
      • Advantage:
        • Could be sufficient to replace the memory handling functions located in cartridge space
      • Disadvantage:
        • No assembly source, reduced feature set compared to ABASIC, more bugs?
        • Doing changes or bugfixes to XB II would be very hard to do, if not impossible
           
    • Backport ABASIC 4.05 to the TI-99/4a
      • Requirements:
        • SAMS, FGROM or superspace cart, F18a?
      • Work involved:
        • Get to understand inner workings
        • Backport ABASIC to the TI-99/4a
      • Advantage:
        • Source code available, most recent version 4.05 could be used as starting point for backport
        • Changes, new features and bugfixes to XBII possible
      • Disadvantage:
        • Iron out architecture differences between the 9640 and TI-99/4a
          • MDOS XOPs (scanned source code and counted 61 XOP calls)
          • PAB handling
          • CRU usage
          • Rework memory handling / paging
          • Rewrite 9938 VDP code (replace with F18a code?) 
    • Like 1

  4. 12 minutes ago, kl99 said:

    I have one 99/8, so one is in Austria.

    Jens-Eike has one in Germany.

    Michael Becker (Germany) might still have his 99/8.

    Ciro is the one 99/8 from Italy.

    Fabrice Montupet (France) has a 99/8 (or at least it is covered on his homepage ti99.com) with Advanced Home Computer on the title screen and TI Basic (must be Armadillo Basic) in the selection screen...

    http://www.ti99.com/ti/index.php?article24/computer-99-8

     

    Regardings Documents, this is the list I have on my website:

    http://www.ti99.eu/?page_id=2742&lang=en

     

    99/8 System Source code:

    http://ftp.whtech.com/source/

     

    Cool, thanks for the update Klaus, appreciate it a lot. 

    I'll check out the 99/8 system source code disk images in the next few days.

     

    From what we have so far, it looks that close to 10 machines are out there.


  5. 1 hour ago, Ksarul said:

    The BASIC in the 99/8 came in two flavors. The earliest prototypes used Armadillo BASIC. I don't think any machines with it installed made it into the wild, although I do have to check the BASIC chips on one of my spare motherboards to verify that. All later versions came with XB-II as part of the standard configuration--there were never iterations that had plain TI BASIC as part of the mix.

     

    Between the documents that Klaus and I found/scanned/put online (most of the WHT documents came from my set, Klaus found a few more), there isn't much else related to the 99/8 known to survive. I do have to check one additional binder I have to verify that I scanned everything in it (it may contain the source code to XB-II though, so I do need to do that soon).

     

    I own two complete 99/8 machines, one with the card-edge side port connector and the other with the Centronics side port (there were two main revisions to the motherboard, and I have both--the card-edge type came later). I also have half a dozen loose motherboards missing a lot of the major components, only one of which is mostly complete (and which may have the early Armadillo BASIC on it).

     

    Other things made for the 99/8 include:

     

    128K memory card

    512K memory card

    RS-232 card with a 99/8 DSR

    Flat Cable Armadillo Interface (for Card Edge motherboards)

    Round Cable Armadillo Interface (for Centronics motherboards)

    Hybrid Armadillo Interface (Round Cable version with 64K of additional CPU RAM installed)

     

    I have all of these cards with the exception of the Flat Cable Armadillo Interface, although my Hybrid board is missing the memory section components (they were never installed).

     

    I also built an adapter to use the Round Cable Armadillo Interface with a Card Edge console.

     

     

     

    Thanks for the update, that is most interesting.

     

    I read the Armadillo Basic specification document again. I don't have a release date on that document, but I presume it's one of the early documents (1982?).

     

    From that I understand that TI planned Armadillo Basic to be the new standard (Basic) interpreter in the 99/8. And Extended Basic (II) was meant to be a true extension of that standard interpreter and not a separate interpreter.

    Perhaps it was so, that during the early design phase they planned Extended Basic (II) to be an addon (cartridge?). During a later 99/8 implementation phase, they then changed their mind and replaced Armadillo Basic with Extended Basic II ?

     

    I also have the document that outlines the design of the basic/extended basic interface, with the goal of minimizing compatibility problems between the two basics.

     


  6. I'm trying to find out how many Atariage visiters actually own a 99/8. The word is there are about 150 preproduction units built.

    So, how many of these did survive and are in (more or less) active use.

     

    Also, I checked the 99/8 documents found on whtech. Are there more? I am especially interested in technical design documents on XBII

    (I'm especially interested in the later ones, around 1984).

     

    The ones I know are listed here:

     

     

    It is quite a fascinating machine, so I'd like to get as much information as possible.

    Also does anyone have a 99/8 revision with TI Basic (next to Extended Basic II) built-in? Or are there only XB II machines out there?

     

     

    Obviously also related in 99/8 source code, especially for the Extended Basic II.


  7. 32 minutes ago, Kiwi said:

    I was thinking that the graphical capability could be increase via the expansion port like we could have faster vector graphic using a co-processor like the Super FX chip or the ARM chip from the Atari 2600. Astroid, Gravitor, Tempest and Challenger could use vector-to-raster acceleration.  However the downside, TMS9918a graphic is too slow to update the entire VRAM in 1 frame. Or add a graphic chip and have the 9918A and the graphic chip works like MSX2 games.  Another idea I had if, I don't know if the cartridge could be mapped out to have 48KB ROM instead of having 32KB ROM when inserting game into the expansion port, and add additional hardware like RAM or chips to run the game on one cartridge. 

     

    As far as graphical capability is concerned, software has to be written.

    Why not concentrate on the F18a. It already opens up a ton of possibilities.

     

    I have barely seen any coleco games make us of what the F18a has to offer (which is a lot more than just VGA output).

    Do know that the F18a has been very hard to get in the last recent years. 

    But with the MKII almost finished and the F18a core in the Phoenix, the sky is the limit.


  8. Yesterday evening I downloaded as much information as I could find on the TI-99/8 armadillo Basic (XB II).

    There are actually quite a few documents floating around, created during a 2 years’ period (1982-1984)

    • ?/??/?? - 99/8 Basic / EXT. Basic interface specification
    • ?/??/?? - 99/8 Armadillo Basic specification
    • ?/??/?? - VDP RAM usage in Armadillo Basic
    • 5/26/82 - 99/8 The mapper and us
    • 9/30/82 - Armadillo Basic internal design
    • 3/23/83 - 99/8 Mapper specifications
    • 2/07/84 - 99/8 Bugs found after 7/34/84 release (TI998.BASLCP.BUG)
    • 2/07/84 - Usable XML’s, XOPs (TI998.BASLCP.DOC.ASSM)
    • 2/07/84 - Symbol table entry bits in use for the Armadillo (TI998.BASLCP.DOC.LINKBITS)
    • 2/07/84 - Interpreter variables V0.002 (9/10/82) (TI998.DOC.VARS)
    • 2/07/84 - PAD memory usage (TI998.DOC.PAD)

     

    This does bring a whole bunch of questions:

     

    1. ARMADILLO BASIC (XBII on the 99/8)

    • How many XB II versions existed on the 99/8 ?
       
    • The XB II on the 99/8 has substantial parts rewritten from GPL to assembly language, but certainly not everything
      • I did find source code for the 99/8 GPL interpreter itself, but not for XB II. Is it available somewhere?
      • Did anyone ever try to do a speed comparison between XB II on the 99/8 and Myarc XB II on the TI-99/4a?
         
    • According to the Armadillo Basic specification, the goal was to make XB II a true extension of the standard basic interpreter instead of having a separater interpreter that shared only a few routines.
      • Does the 99/8 also have a “standard” TI Basic like there was on the TI-99/4a ? From the 99/8 videos I’ve seen so far I only saw XBII
         
    • The Armadillo Basic also does heavily rely on XOP’s, as does ABASIC on the Geneve (3)

     

    2. MYARC XB II on the TI-99/4A

    • Is Myarc XB II on the TI-99/4a really all assembly language or are there still GPL parts involved
      • Could be that improved speed impression is due to the new screen handler that support faster scrolling (e.g. when listing source code)
      • Is the source code for Myarc XB II available? At this time it is not confirmed that it still exists.

     

    3. ABASIC on the Geneve

    • Source code available (need to check what version) 
      • Started as variant of (1) or rather (2) ?
        • Does the geneve memory architecture more resembles the 99/8 memory architecture ?
           

    4. BASIC on the TUTOR

    • I believe the Tutor Basic was pretty much the 99/8 Armadillo Basic (1).
      However, here I read that it’s in fact GPL (needs to be confirmed)

     

    Conclusion:

    • Backport from Armadillo Basic on the 99/8 to Myarc XB II on the 99/4a probably involved:
      • Rewriting XOP code
      • Rework scratch PAD usage from 1K on 99/8 to 256 bytes on the 99/4a.
        This probably explains the memory writes to the cartridge space >6000-61ff, it’s used as a PAD extension.
      • Fully rewrite memory handling/paging to make it match the Memory Expansion MEXP-1 
      • PAB handling (PAB stored in VDP instead of CPU RAM to make it compatible with the stock Disk Controller
      • Rewrite keyboard scan to make it work on the 99/4a 
         
    • ABASIC on the Geneve more likely variant of Armadillo Basic on the 99/8 instead of XB II on the 99/4a.

     

    There is a lot of speculation in all this, so more reseach required for confirming. As usual feedback welcome.

    • Like 3

  9. UPDATE: 2020/07/02 07:05 UTC

     

    This thread shall be used for documenting research on Myarc Extended Basic II.

     

    Purpose

    • Create a version that can be used with SAMS and a RAM cartridge (superspace)
    • Target modern storage devices like CF7+/Nanopeb, TIPI or HRD4000B.
    • No longer rely on the unobtainable MEMEXP-1 128K/512K memory expansion.
    • Recreate assembly source code
       

     

    Research originated on discussions found here: 

     

     

    This post will be updated on a regular basis as more accurate information is collected.

     

    BASIC variants

    • (1) Armadillo Basic on the TI-99/8
      • The new "standard" Basic interpreter on the TI-99/8. Only appeared on some early TI-99/8 prototypes.
      • The plan with Armadillo Basic was that it forms the "basis" for what is later known as Extended Basic II
        • Share as much code as possible between the two basics,
        • Modular setup: 
          • One idea was to keep core part of the basic interpreter in ram (statement dispatch table for functions), 
            where it can be modified by the extended basic interpreter startup sequence
          • Interface document exists that outlines the dispatch table
             
      • Possibility to load & save Extended Basic programs from DV80 files
      • 60K of free space for program code (170K) if 128K memory expansion installed
      • Certain parts rewritten in assembly language for optimized speed (e.g. screen handler)
      • Unknown if source code exists
      • Unknown if ROM dumps exist
         
    • (2) Extended Basic II on the TI-99/8
      • Extension of the Armadillo Basic found on early prototype
      • All later TI-99/8 preproduction units had Extended Basic II built-in, instead of Armadillo Basic
      • Unknown if source code exists
      • Confirmed ROM dumps, emulation in MESS/MAME possible.

     

    • (3) Myarc Extended Basic II on the TI-99/4a is basically (2), the Extended Basic found in the TI-99/8:
      • Written in Assembly language 
      • Versions known to exist: v2.10, v.2.11, v.2.12
        • Memory map changed to match TI-99/4a (+Myarc MEMEXP1) instead of TI-99/8
        • FREESPACE removed, memory allocation changes, comma instead of dash in list command, ...
        • Removed loading/saving extended basic programs from/to DV80 (at least in >v2.11)
      • Unclear if source code exists
         
    • (4) Myarc Extended Basic II for the Geneve
      • Written in Assembly language
      • Variant of (3)?  It’s the initial version of Extended Basic shipped with the Geneve
         
    • (5) Myarc Advanced Basic (ABASIC)
      • Written in Assembly language
      • Versions known to exist:
        • 4.04 (last version by Jim Uzzel)
        • 4.05 (~2013 by InsaneMultitasker, fixed assembly language parameter passing bug)
      • Based on (2)?
      • Source code exists, heavily commented
      • Backport to TI-99/4a probably difficult due to the XOP's used
         
    • (6) Basic on the Tomy Tutor
      • Variant of 99/8 Armadillo Basic 
      • Basic tokens compatible with TI Extended Basic
      • GPL involved, but no GROMS 
         
    • (7) TI-Basic on the 99/2
      • TI internal name “Ground Squirrel BASIC”
      • Developed outside of TI at a contracted university
      • Completely written in assembly language, no GPL involved. Very fast
      • Source code not related to Armadillo Basic (1) on the 99/8

     

    Documents Armadillo Basic on the 99/8

     

    There are actually quite a few documents floating around, created during a 2 years’ period (1982-1984):

    • ?/??/?? - 99/8 Basic / EXT. Basic interface specification
    • ?/??/?? - 99/8 Armadillo Basic specification
    • ?/??/?? - VDP RAM usage in Armadillo Basic
    • 5/26/82 - 99/8 The mapper and us
    • 9/30/82 - Armadillo Basic internal design
    • 3/23/83 - 99/8 Mapper specifications
    • 2/07/84 - 99/8 Bugs found after 7/34/84 release (TI998.BASLCP.BUG)
    • 2/07/84 - Usable XML’s, XOPs (TI998.BASLCP.DOC.ASSM)
    • 2/07/84 - Symbol table entry bits in use for the Armadillo (TI998.BASLCP.DOC.LINKBITS)
    • 2/07/84 - Interpreter variables V0.002 (9/10/82) (TI998.DOC.VARS)
    • 2/07/84 - PAD memory usage (TI998.DOC.PAD)

     

    Myarc Extended Basic II on the TI—99/4a

     

    Requirements

    • Myarc MEMEXP-1 128K (or 512K) memory expansion card required
      • Has 8K DSR in >4000-5fff (program loader, RAMDISK setup code, spooler?)
    • Myarc Extended Basic II cartridge required
      • It's confirmed that a 8K RAM cartridge (superspace) in >6000-7fff works fine.
    • Disk with Myarc Extended Basic II interpreter


    Workings

    1. When selecting the '128K BYTE O.S.' cartridge option, the file loader in the MEMEXP-1 DSR space is triggered
    2. The whole process of loading the Extended Basic II interpreter into the appropriate MEMEXP-1 memory pages seems to be handled from inside DSR space.
    3. In the cartridge space the memory management routines required by the interpreter are stored (required for banking the appropriate MEMEXP-1 pages)
      The code at >6030-7fff seems to be put there are the very end when XBII is loaded into memory. Could be this is part of XBII initialisation itself?
    4. When quitting XBII by using "BYE" command the cartridge space >6030-7fff is cleared with >00, only the cartridge header is present.
    5. While XBII runs it writes to the cartridge space >6000-61ff (clarify exact memory addresses). This is probably to compensate the fact that the 99/4a only has 256 scratchpad where 99/8 has 1K.

     

    Cartridge space:
    
    6000-602F   Cartridge header '128K BYTE O.S.'
    6030-612F   Written to by XBII while running               
    6130-7fff   Appears to be static code, haven't seen any writes here so far

     

    Unclarified behaviour

    • The DSR space >4000 is briefly activated every 5-10 seconds while XBII is idling in command mode. This does not happen when a program is running (e.g. 10 GOTO 10). Seems to be a background task:
      • Perhaps the access to the DSR rom space is related to the print buffering code checking to see if anything in the buffer on interrupts?

     

    • Like 9
    • Thanks 1

  10. This morning I went through and scanned this thread closely.

    Also looked at Ninerpedia and some other places to collect an overview of the different Extended Basic versions out there.

    Note: In this thread I only listed the versions related to Myarc XBII.

     

    As far as versions go, this is what I summarized:

    • (1) Armadillo Basic on the TI-99/8
      • Written in assembly language
      • Possibility to load & save Extended Basic programs from DV80 files
      • 60K of free space for program code (170K) if 128K memory expansion installed
      • Source code available on whtech (needs verification)
         
    • (2) Myarc Extended Basic II on the TI-99/4a is basically (1), the Armadillo Basic found in the TI-99/8:
      • Written in Assembly language 
      • Versions known to exist: v2.10, v.2.11, v.2.12
        • Memory map changed to match TI-99/4a (+Myarc MEMEXP1) instead of TI-99/8
        • FREESPACE removed, memory allocation changes, comma instead of dash in list command, ...
        • Removed loading/saving extended basic programs from/to DV80 (at least in >v2.11)
      • Unclear if source code exists
         
    • (3) Myarc Extended Basic II for the Geneve
      • Written in Assembly language
      • Variant of (2), it’s the initial version of Extended Basic shipped with the Geneve
         
    • (4) Myarc Advanced Basic (ABASIC)
      • Written in Assembly language
      • Based on (3) ?
      • Unclear if source code exists

     

    This is what I understand on the technical setup of Myarc Extended Basic II:

    • Myarc MEMEXP-1 128K (or 512K) memory expansion card required
      • Has 8K DSR in >4000-5fff (program loader, RAMDISK setup code, spooler?)
    • Myarc Extended Basic II cartridge required (Basically a RAM cartridge, something comparable to a superspace cartridge)
    • Disk with Myarc Extended Basic II interpreter


    Workings:

    1. Upon powerup the DSR in the MEMEXP-1 pushes a file loader into cartridge space >6000->6fff 
    2. The file loader is triggered and the Extended Basic II interpreter is loaded into the appropriate MEMEXP-1 memory pages
    3. In the cartridge space the memory management routines required by the interpreter are stored (required for banking the appropriate MEMEXP-1 pages)

     

    Note: not sure if (3) is moved there by the loader or if’s copied from the DSR space. Needs verification.

     

    If there’s interest, then I’ll create a new thread in the Development subforum for research. It’ll also include a first version of the memory map (as found on Ninerpedia).

     

    EDIT: 06-28-2020; Created a separate thread in the development subforum. Look there for the latest details.

     

     

    • Thanks 1

  11. Same here. I have “invested” quite a lot in old and new equipment for the TI-99/4a lately.

    For the old stuff, now have quite a collection of stuff I wanted to have back in the days.

    Even got myself a Geneve that I really want to dig in.

    My list of projects for things I want to try out is just getting longer and longer.

    But that is part of the fun, isn’t it 😄

     

    • Like 3

  12. Thank you all for the clarification. Yes, having the source code would definitely help.

     

    On the other hand if it does run in MAME, its debugger could be used for digging deeper.

    At this time I don’t know how capable the debugger is though. I looked at it many, many moons ago when it was still MESS.

     

    At least with the debugger we would for example see how often the cartridge space is accessed,

    after XBII has loaded and while it is running. What I for example do not know at this time, is if the MAME debugger

    can view paged memory.

     

    But still, sounds doable to me.

    Having said that, it’s something I’d like to take a look at, as soon as I have a first version of my Stevie editor out of the door.

    Would make a heck of a winter evening project.

    • Like 1

  13. 15 minutes ago, mizapf said:

    The MEXP-1 offers RAM at 2000-3FFF and A000-FFFF by 4 (128K) and 16 (512K) banks. The banks are set by 2 or 4 CRU bits.

     

    It also has a DSR at 4000-5FFF which implements a print spooler and a RAM disk.

     

    Try it with

     

    ./mame64 ti99_4ae -ioport peb -ioport:peb:slot2 myarcmem -ioport:peb:slot8 ddcc1 -cart myxbii -flop1 xbii212.dsk
    
    

     

     

    You need a program disk for booting; this is Myarc Basic V2.12. I have to check whether we have it on WHTech.

     

    Thanks the reason I asked is to see if Myarx XBII could be patched to run from SAMS and FinalGROM.

    Well, it seems it’s not an impossible task, unless I missed something.


  14. On 6/1/2020 at 5:36 AM, hloberg said:

    As of v2, or so, MAME now supports MyArc Extended BASIC II. I had this on PC99 and really liked it. It uses the MyArc memory card and disk/hd card. the XBII is fantastic. it's much faster that TI XB, sometimes up to twice as fast. It has a whooping 72k of program space and accesses all the graphic capabilities of the TI VDP such as 40 cloumn, hi rez, all the sprites and added character sets. 

    below I have set up a zip file that has all you need to run MyXBII. you just add the latest MAME or MESS in the MESS221 directory and modify the TI99-II.bat for the current MAME/MESS names and away you go.

    the manuals for the memory, HD, supespace2 are included. BUT, I did put in a copy of the MyXBII programming manual as the only one I have is from the Cyc. (if anyone has a copy they can scan?) I know, it's a bummer. if I can't find a non-cyc manual I guess I'll have to type a short one. but look at the various demos on the disks to get an idea of the capibilities.

    the MyXBII boots from WDS1 very quickly. in BASIC you can call the MyArc disk manager by typing CALL MDM. in BASIC and MyXBII you can use the dir by CALL DIR("filespec"). I have 2 HDs installed. It uses superspace 2 and EA is accessible from the menu. also can run TIWv5 from the HD. 

    a bit of a quirk in MyXBII is to list by line numbers you type in LIST 1stline,2ndline. you use a comma instead of a dash for some reason. also for some reason I can't get CALL PART to work to create a RAM disk/print spooler as it's written in the manual. since MyArc is bad about errors in their manuals, that's probably it.

    MyXBII is 100% compatible with XB IF you keep away from PEEKS and POKES that reference the VDP or GROM.

    All in all a really nice system and a nice, what could have been. 

    and speaking of 'nice' if this could, one day, become an add on to a real TI99 that would really be nice. all the design is there. the superspace2 is there. an HD adapter is there (TIPI). hard part be creating the myarc compatible memory with the MyXBII ROM installed. maybe it's time I got serious about learning this stuff and build my own?

    note: as soon as I can find a MyXBII manual i'll post it to my TI99resources.

     

     

    My-XBIIc.zip 76.51 MB · 23 downloads

    Are there any technical details on the MEMEXP-1 memory card? Could not find any details:

    • How much does it differ from SAMS?
    • What memory areas are pageable?
    • Does the MEMEXP-1 have a DSR?

    I read that the MYXBII cartridge is not much more than a loader for setting up the MEMEXP-1 card and loading MYXBII from a storage device. Is that confirmed?

×
×
  • Create New...