Jump to content
ballyalley

MAME TI-99/4a Floppy Disk Image Types?

Recommended Posts

I'm trying to use MAME 0.224 to create a disk image.  I have my PEB setup with 32K and disk drives.  My options to create a  disk image are:


TI99 sector dump
TI99 track dump

 

among other (see this screenshot):

 

MAME_Disk_Image.thumb.png.0598bf5f7477757d102df9d7596b3388.png

 

Which one should I use?  I would like to be able to share these disk images with the NanoPEB and other TI-99/4a emulators, if possible.

 

Adam

  • Like 1

Share this post


Link to post
Share on other sites

The sector dumps are most widely used, the track dumps are only used in PC99 (apart from MAME).

 

I'd recommend to use my TIImageTool to create and manage disk images.

  • Like 1

Share this post


Link to post
Share on other sites

Classic99 will also read and write the track dumps, though I don't guarantee the track dumps will be useful anywhere else after writing. ;)

 

Sector dumps are where most of the TI images standardized. There were very few (if any?) TI disks that required a track dump to operate, and some research years back cast doubt whether the inter-sector data on PC99-originated dumps was correct anyway.

 

  • Like 2

Share this post


Link to post
Share on other sites

When I implemented it in MAME and TIImageTool, I started to get creative and implemented a really flexible format which tried to autodetect the address marks and also filled in the proper CRC values instead of the pseudo F7 values ...

 

... just to learn some years later that PC99 rejected all these disks. The track dump format of PC99 is not as flexible as it seems, which is why I don't use this format in MAME and don't recommend it either. If we need a format that covers really weird stuff, there is still HFE.

Edited by mizapf
I don't recommend the format, not PC99 itself. Just to clarify.
  • Like 4

Share this post


Link to post
Share on other sites
10 hours ago, mizapf said:

The sector dumps are most widely used, the track dumps are only used in PC99 (apart from MAME).

 

I'd recommend to use my TIImageTool to create and manage disk images.

 

Thanks for letting me know.  I'll try both today.

 

Adam

Share this post


Link to post
Share on other sites
10 hours ago, mizapf said:

... just to learn some years later that PC99 rejected all these disks. The track dump format of PC99 is not as flexible as it seems, which is why I don't use this format in MAME and don't recommend it either. If we need a format that covers really weird stuff, there is still HFE.

That's a shame there isn't a widely favored format that agrees with both MAME and PC99 (fairly new PC99 user - I've been liking it). 

Edited by WhataKowinkydink
clarification

Share this post


Link to post
Share on other sites
16 hours ago, mizapf said:

I'd recommend to use my TIImageTool to create and manage disk images.

 

I was able to save and load an Extended BASIC program from within MAME using TI-99/4a emulation.  I also installed TIImageTool.

 

I have some questions about MAME disk emulation.  This thread is probably the best place for the question.  First, to make sure you know my MAMEsetup, here is the command line I'm using to start MAME from Windows 7:

 

mame64 ti99_4a -cart diskman2 -nofilter -window -keepaspect -mouse -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot3 speech -ioport:peb:slot6 tirs232 -ioport:peb:slot8 tifdc -flop1 "I:\Classic Computers and Consoles\Texas Instruments\MAME\Disk_Images\TI_Disk_Image_BASIC01_2020_10_06.dsk"

 

(Yeah, it's a mouthful, but it works.)

 

Here is what I've done so far:

 

1) First, I presume that MAME's TI disk floppy controller (tifdc) in the emulated PEB is single-side/single-density with 40 tracks per side.

2) I used Disk Manager 2 to initialize the disk.  (It's weird that Extended BASIC doesn't support this function).

3) I SAVed to the disk from Extended BASIC with: SAVE DSK1.TEST123

4) I loaded the program back with: OLD DSK1.TEST123

5) I used TIImageTool to look at my program and it opened fine; I could view the BASIC code in a text file.

 

I really need to get used to the keyboard layout for the TI in MAME.  This is normal.  In the past I've made special keyboards for my Commodore 64, Atari 8-bit and Bally Arcade/Astrocade.  Maybe I'll do the same for the TI-99/4a.

 

My MAME disk-related questions are:

 

1) If I want the 800K "floppy" disks that are used with the NanoPEB, then which disk controller do I use in MAME?

2) Does Disk Manager 2 support formatting 800K floppies?

 

For now, that's all my questions.

 

Thanks to "WhataKowinkydink" for helping me get over the hump of using a disk drive on the TI.  In-person instruction makes a big difference.

 

Adam

  • Like 2

Share this post


Link to post
Share on other sites

a) I recommend to use one of the DSDD controllers (all except fot the tifdc). Always remember: Double density also means double speed.

 

b) It could happen that one of these controllers accepts the uncommon geometry of the 800k disks. I would not count on it. It is not a matter of MAME supporting it, but of the DSR of the card. It is possible that you cannot use such an image in MAME until I write an emulation for the NanoPEB.

 

c) @WhataKowinkydinkMAME does support the PC99 format. I fixed that issue after I noticed it.

  • Like 1

Share this post


Link to post
Share on other sites
17 hours ago, ballyalley said:

 

I was able to save and load an Extended BASIC program from within MAME using TI-99/4a emulation.  I also installed TIImageTool.

 

I have some questions about MAME disk emulation.  This thread is probably the best place for the question.  First, to make sure you know my MAMEsetup, here is the command line I'm using to start MAME from Windows 7:

 

mame64 ti99_4a -cart diskman2 -nofilter -window -keepaspect -mouse -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot3 speech -ioport:peb:slot6 tirs232 -ioport:peb:slot8 tifdc -flop1 "I:\Classic Computers and Consoles\Texas Instruments\MAME\Disk_Images\TI_Disk_Image_BASIC01_2020_10_06.dsk"

 

(Yeah, it's a mouthful, but it works.)

 

Here is what I've done so far:

 

1) First, I presume that MAME's TI disk floppy controller (tifdc) in the emulated PEB is single-side/single-density with 40 tracks per side.

2) I used Disk Manager 2 to initialize the disk.  (It's weird that Extended BASIC doesn't support this function).

3) I SAVed to the disk from Extended BASIC with: SAVE DSK1.TEST123

4) I loaded the program back with: OLD DSK1.TEST123

5) I used TIImageTool to look at my program and it opened fine; I could view the BASIC code in a text file.

 

I really need to get used to the keyboard layout for the TI in MAME.  This is normal.  In the past I've made special keyboards for my Commodore 64, Atari 8-bit and Bally Arcade/Astrocade.  Maybe I'll do the same for the TI-99/4a.

 

My MAME disk-related questions are:

 

1) If I want the 800K "floppy" disks that are used with the NanoPEB, then which disk controller do I use in MAME?

2) Does Disk Manager 2 support formatting 800K floppies?

 

For now, that's all my questions.

 

Thanks to "WhataKowinkydink" for helping me get over the hump of using a disk drive on the TI.  In-person instruction makes a big difference.

 

Adam

"(It's weird that Extended BASIC doesn't support this function)."  yes but it's also weird on other computers.. On the TI basic has no idea what a disk drive is. It's the DSR in the controller that gives basic, or other software the ability to use disks. It is basically plug-and-play in 1979, pretty impressive.. Make a new storage device? basic doesn't care, just as long as the DSR is there.  They could have included format in the DSR maybe but I think they are using most of the 8k already. 

 

No native TI disk controller supports the nanopeb disk size, you'll have to copy the files to a disk with a format that is supported.  The nano was designed without consideration for standards, he just did whatever worked for him. 

 

90k ss/sd,180k ds/sd ss/dd, 360k ds/dd 40 tracks 

TI controller: SS/SD-DS/SD

Myarc/Corcomp: SS/SD-DS/DD

HFDC: SS/SD-DS/HD (geneve only HD) 

 

DM1 supports only the format that the TI sidecar supported SS/SD

DM2 supports only the formats that TI supported on the PEB DS/SD controller.. 

DM3 supports DS/DD for the unreleased DS/DD controller 

DM2K is better it can do 40/80 track DS/DD.  current version is 3.0 and it's the most versatile disk manager  www.ti99-geek.nl/Projects/dm2k/dm2k.html

 

with the HFDC you can do 1.44MB floppies but I think only the Geneve works correctly 

 

Greg 

 

Share this post


Link to post
Share on other sites
28 minutes ago, arcadeshopper said:

"(It's weird that Extended BASIC doesn't support this function)."  yes but it's also weird on other computers.. On the TI basic has no idea what a disk drive is. It's the DSR in the controller that gives basic, or other software the ability to use disks. It is basically plug-and-play in 1979, pretty impressive.. Make a new storage device? basic doesn't care, just as long as the DSR is there.  They could have included format in the DSR maybe but I think they are using most of the 8k already. 

 

No native TI disk controller supports the nanopeb disk size, you'll have to copy the files to a disk with a format that is supported.  The nano was designed without consideration for standards, he just did whatever worked for him. 

 

90k ss/sd,180k ds/sd ss/dd, 360k ds/dd 40 tracks 

TI controller: SS/SD-DS/SD

Myarc/Corcomp: SS/SD-DS/DD

HFDC: SS/SD-DS/HD (geneve only HD) 

 

DM1 supports only the format that the TI sidecar supported SS/SD

DM2 supports only the formats that TI supported on the PEB DS/SD controller.. 

DM3 supports DS/DD for the unreleased DS/DD controller 

DM2K is better it can do 40/80 track DS/DD.  current version is 3.0 and it's the most versatile disk manager  www.ti99-geek.nl/Projects/dm2k/dm2k.html

 

with the HFDC you can do 1.44MB floppies but I think only the Geneve works correctly 

 

Greg 

 

 

Just wanted to throw this out there as I did not know what Michael may or may have not done with support for the Myarc HFDC.  To support the 1.44 MB format with the Geneve, two things were required.  One needed to have a 9216B chip (data separator chip I think is what it is called) that was faster, and secondly, you needed to replace the 8K chip RAM chip with a 32K RAM chip.  The reason being is that during the format process, the entire track is laid out in RAM prior to writing the track to the device. The 8K RAM chip was insufficient to hold the entire track contents that included all the in-between sector information that was necessary.  I do not know if Michael capped the RAM support on the HFDC at the 8K or 32K limit, hopefully at 32K so the 1.44 MB format could be used (I do not think I ever tested MAME with 1.44 MB floppy images).  I'm guessing within MAME there is no discernible chip difference between the 9216 and 9216B chips.

 

I know at one point in time I had written code that would read a track on a HFDC disk in MDOS mode.  I could discern the sectors within the displayed track, but was never able to fully grasp the needed understanding of the in-between sector information to ever write the track back out.  I had wanted to write a MDOS HFDC track copier, however the logic for the HFDC was significantly different than for the TI/CorComp/Myarc FDC's due to the 8K/32K buffer RAM chip.

 

Beery

 

 

 

 

  • Like 1

Share this post


Link to post
Share on other sites
10 hours ago, mizapf said:

a) I recommend to use one of the DSDD controllers (all except fot the tifdc). Always remember: Double density also means double speed.

 

Last night I loaded a game from "tape" onto real hardware.  The load time for the game was about 2 1/2 minutes.  Even a regular-speed disk drive is fast enough for me.  I should note that the WAV file that I loaded the game from was output from MAME emulation after loading the game from "disk."  I was extremely pleased to see it load perfectly onto my TI-99/4a using the standard cassette tape cable.  I recorded the process and I'll upload my video in a few days to this thread.

 

Adam

  • Like 1

Share this post


Link to post
Share on other sites
48 minutes ago, arcadeshopper said:

"(It's weird that Extended BASIC doesn't support this function)."  yes but it's also weird on other computers. [...]

 

In a way, I guess that the use of the Disk Manager cartridge isn't too different from loading DOS for the Atari or using Commodore's DOS Wedge.

 

I didn't realize that the NanoPEB used non-native-sized floppy disk images.  As I use that hardware, I guess that I'll learn more about it.

 

Thanks for the explanation of the different sized floppy disks used by various controllers.  I'm going to copy and paste that into a document and printed it out for later use as a reference for me.

 

Thanks for pointing out Disk Manager 2000.  I bookmark the page and will try it out in the next week or so.  There are so many utilities available for the TI-99/4a that allow access and use of various formats of disk images.  This can be daunting to a beginner like myself, but once I find one that suits my needs, I'll probably stick with it.

 

Adam

  • Like 1

Share this post


Link to post
Share on other sites
38 minutes ago, ballyalley said:

 

In a way, I guess that the use of the Disk Manager cartridge isn't too different from loading DOS for the Atari or using Commodore's DOS Wedge.

 

 

From a hardware perspective they are very similar - Commodore BASIC doesn’t know what a disk drive is either - it just sends commands out to device 8 and device 8 does whatever was asked of it.  This is nearly exactly how TI BASIC works.  It just looks for a DSR named “DSK1” and passes the rest of the information you supply along with it.

 

The difference on the TI is that Disk Manager cartridge doesn’t add any commands to TI BASIC, which is unlike how DOS works on the Atari or what the DOS Wedge does.  Atari BASIC can initialize floppy disks with an XIO command, and the Commodore DOS Wedge can make it easier for you to send the “new” command to the disk drive, but Disk Manager doesn’t do that to TI BASIC.  It would be possible to add a CALL FORMAT command to a cartridge that would add the command to TI BASIC, but the TI Disk Manager doesn’t do that.  More difficult is that you can’t easily display a disk directory in TI BASIC without writing a program.  Some disk managers (and some Extended BASICs) have a subprogram to return a disk directory but natively you don’t have that.

 

  • Like 1

Share this post


Link to post
Share on other sites

The Myarc disk controllers (DDCC-1 and HFDC) have a DIR subprogram in their DSR which just does that - this is why the DDCC-1 was my favorite controller. CALL DIR(disk#) provides a directory listing, but the ROM space was the limiting factor for the early controllers like the original TI controller.

 

TI changed their strategy with the Hexbus peripheral system which allowed for devices that contained complex functions. For instance, the HX5102 has an integrated formatting routing.

  • Like 1

Share this post


Link to post
Share on other sites
12 hours ago, mizapf said:

It is possible that you cannot use such an image in MAME until I write an emulation for the NanoPEB.

Emulation of the nanoPEB could be really helpful I'd think - if for nothing else, testing a program's compatibility with the it.   I've had a few disappointments now with breakages - like TI Casino and even Plato (which I was really down to see that isn't compatible with the nano).

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, arcadeshopper said:

The nano was designed without consideration for standards, he just did whatever worked for him.

 

with the HFDC you can do 1.44MB floppies but I think only the Geneve works correctly 

 

Hmmm, not quite true.  It depends on what one considers 'standard'.  The defined bitmap allows for up to 1600 allocation units (bitmap of 200 bytes*8 bits/byte*1AU/bit) which can be increased by factors of 2 where the DSR supports it.  The nanopeb is operating within the standard, and the creator took this into account.  It is the media-based devices that do not support the full bitmap available via the DSR.  For example, the Horizon RAMDisk also leverages the standard to allow for 1600 and 3200 sector 'disks'. 

 

The HFDC is capable of 1.44MB but only the Geneve DSR implements the necessary cluster and bitmap calculations needed to read/write files.  The HFDC DSR was never fully extended to go beyond 720K  :( 

  • Like 1

Share this post


Link to post
Share on other sites
Hmmm, not quite true.  It depends on what one considers 'standard'.  The defined bitmap allows for up to 1600 allocation units (bitmap of 200 bytes*8 bits/byte*1AU/bit) which can be increased by factors of 2 where the DSR supports it.  The nanopeb is operating within the standard, and the creator took this into account.  It is the media-based devices that do not support the full bitmap available via the DSR.  For example, the Horizon RAMDisk also leverages the standard to allow for 1600 and 3200 sector 'disks'. 
 
The HFDC is capable of 1.44MB but only the Geneve DSR implements the necessary cluster and bitmap calculations needed to read/write files.  The HFDC DSR was never fully extended to go beyond 720K   
I'll clarify then the standard disk formats you can use with real controllers and disks

Sent from my LM-V600 using Tapatalk

  • Like 1

Share this post


Link to post
Share on other sites
47 minutes ago, InsaneMultitasker said:

For example, the Horizon RAMDisk also leverages the standard to allow for 1600 and 3200 sector 'disks'.

That's interesting to know that such leveraging goes back to the Horizon RAMDisk.  I wonder though what it is about the nano that breaks some programs.   It does seem like the creator did put a fair amount of thought into the design, so it's weird there are these handful of incompatibilities.

Share this post


Link to post
Share on other sites

Most programs break because he didn't enable the rs232 port like the ti card does so software that doesn't explicitly enable it doesn't work most things have been patched though that people use he also uses some of VDP RAM that other programs expect to be unused

Sent from my LM-V600 using Tapatalk

  • Like 1

Share this post


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

He also uses some of VDP RAM that other programs expect to be unused.

 

Any program that expects to use VRAM above what is stored in >8370 (highest available VRAM) is not standard. It may well be that there are such expectations, but any programmer who ignores that location does so at her/his peril. The nanoPEB/CF7+ power-up routine sets that location to accommodate the extra bytes necessary for the nanoPEB/CF7+ DSR.

 

...lee

  • Like 1

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...